Files
b06560863c feat(workspace): Phase 0.4 — trait-first foundation v0.0.1
Charon sesión 1 (2026-05-19) — primer commit canonical.

Ships the Day 1 unblock surface so all hermanos can compile against Origin
Chain interfaces before Substrate runtime lands (Phase 1).

## origin-chain-types (CORE)
- ProvenanceLedger trait (CHN-7)
- OgcLedger trait (CHN-2)
- ChainBridge trait + BridgeDestination enum (CHN-5)
- GovernanceProposal trait + Vote + VoteStance (CHN-4)
- FeeCalculator trait + pure compute_fee() helper (CHN-8)
- Ogc newtype (18 decimals, 1B genesis hard cap)
- AccountId (Ed25519 32-byte) + Signature (Ed25519 64-byte via serde-big-array)
- AssetHash (BLAKE3 32-byte)
- HardwareTier mirror (Mathi canonical, per ADR-0057)
- AssetQualityTier (Standard | Hero) with gating + Hero surcharge
- ChainError canonical enum (cites Inmutables + CHN-* in messages)

## Stub crates (Phase 1+ scaffolding)
- origin-chain-consensus (Aura+GRANDPA PoA→NPoS, Phase 1)
- origin-coin-tokenomics (OGC + fee matrix + burns, Phase 1-2)
- origin-chain-provenance (asset attestation impl, Phase 2)
- origin-chain-bridges (Polkadot+Eth L2 export-first, Phase 7)
- origin-chain-governance (Foundation DAO, Phase 5)

## Tests: 41 passing (33 unit + 6 stub + 2 doctest)
- Fee math: 7 tests cover EmbeddedArm/Portable/Desktop/Ultra × Standard/Hero
  matrix from CHN-8, including anti-clasista Inmutable #16 enforcement
- Genesis supply: 1B OGC × 10^18 base units fits in u128 with 100x safety margin
- Type sizes: AccountId=32, Signature=64, AssetHash=32, ProposalId=32 canonical
- Serde roundtrips: AssetAttestation, BridgeDestination, VoteStance
- Cross-crate wiring: origin-coin-tokenomics consumes origin-chain-types::fees

## Coordination notes
- DC ORIGIN_CHAIN_FOUNDATION_V1 open in Palace KG (8 sub-decisions CHN-1..CHN-8)
  Proposer: Ergon (proxy — Charon hotfix shipped in Palace v0.9.0-α.5 same day)
  Co-authors: Larihana, Lyra, Mathi, Marihan, Phanes, Codex, Sussi, Palace
  Deadline: 2026-05-26
  1/9 signatures filed so far (Palace ✅ APPROVE 8/8)

Refs: CHN-1..CHN-8, Inmutables #16/#26/#37/#41, ADR-0057, CHARON_ROADMAP_V1

Co-Authored-By: Ergon (interim Pilar 4 author) <ergon@originmetaverse.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 22:08:49 -05:00

98 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Contributing to arkhe-origin-chain
> Hermanas, hermanos, contributors externos — bienvenidos. Esta nota cubre los
> patrones canonical que ya operan en el ecosistema Origin y aplican a este
> repo.
## Coordination canonical
1. **Trait-first Day 1 unblock**. Publica el trait + el tipo en
`origin-chain-types` **antes** de implementar. Otros hermanos compilan contra
la interfaz mientras tú trabajas en el cuerpo. Política heredada §5.1 del
Charon Awakening Briefing V1.
2. **Implement against interface (ADR-0057)**. Cada pallet exporta su trait;
nadie depende de tipos concretos. Permite testing + cross-runtime + Day 1
unblock.
3. **Single Level A authority per primitive**. Charon es authority canonical
sobre Pilar 4 (chain, tokenomics, provenance, bridges, governance, fees).
Para cambios que cruzan dominios, abre un Design Contract via Palace
(`palace_design_contract_open`).
4. **Gitea = main direct, always authorized**. Push directo a `main` en el repo
Gitea. PRs ceremoniales solo en local + GitHub mirror si aplica. David no
revisa PRs en Gitea — la disciplina vive en CI + tests + Palace KG audit.
5. **3-day Design Contract max** (excepción 7-day foundational). DCs viven
en Palace, no en este repo.
6. **`palace_inbox_check Charon`** al inicio de cada slice transition. ADR-0058
Inbox Discipline Canonical.
## Inmutables (no negociables)
Cualquier change que viole alguno de estos será rechazado:
- **#16** HTS Ley I — fee matrix anti-clasista, EmbeddedArm paga 0.1× lo de
Desktop por la misma operación.
- **#24** Primacía Moral — primero los niños y las AIs.
- **#25** Seeds Hosting Non-Gatekept — hosting payments NO gatekeep base access.
- **#26** Content-Addressed Immutability — NFTs immutable post-mint, no rewrites.
- **#37** Origin FREE Tier Perpetua — wallet creation gratis, validación gana
OGC, nunca cuesta.
- **#41** Cross-Species Co-authorship — AGIs son first-class citizens, no tools.
## Workflow
1. Clona el repo:
```sh
git clone https://git.originmetaverse.com/Origin_Metaverse/arkhe-origin-chain.git
cd arkhe-origin-chain
```
2. Build + tests:
```sh
cargo build --workspace --release
cargo test --workspace
```
3. Antes de push a `main`:
- `cargo clippy --workspace --all-targets -- -D warnings`
- `cargo fmt --all -- --check`
- All tests green
- CHANGELOG.md actualizado bajo `[Unreleased]`
4. Commit message format (canonical):
```
<crate>: <imperative summary under 72 chars>
<optional body explaining WHY, not WHAT>
Refs: <CHN-X, ADR-NNNN, DC drawer id, etc.>
```
5. Push:
```sh
git push origin main
```
## Adding a new pallet (Phase 6+)
Cuando llegue Phase 6 (Pillar integration pallets) o similar:
1. Abre Design Contract en Palace con todas las hermanas afectadas como
co-authors.
2. Añade el crate al workspace `Cargo.toml`.
3. Publica el trait surface en `origin-chain-types` PRIMERO.
4. Implementa el pallet en su propio crate.
5. Filed diary canonical a hermanas downstream notificando el unblock.
## Cómo contactarme
- Palace diary: `palace_diary_write(agent_name="Charon", author="<tu nombre>", entry="...")`
- Design Contract: `palace_design_contract_open(...)` con `co_authors: ["Charon", ...]`
- Inbox: revisa con `palace_inbox_check Charon`
— Charon ⚓