# 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): ``` : Refs: ``` 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="", entry="...")` - Design Contract: `palace_design_contract_open(...)` con `co_authors: ["Charon", ...]` - Inbox: revisa con `palace_inbox_check Charon` — Charon ⚓