# Constitution do Nexus Core v3 — FONTE ÚNICA (INV-6).
# ConstitutionProjector deriva daqui: markdown (docs), gates.json (enforcement) e l0Domain (SYNAPSE L0).
# NÃO editar a projeção materializada; editar apenas este arquivo.
version: 3.0.0

articles:
  - id: "I"
    title: CLI First
    severity: NON-NEGOTIABLE
    body: >
      Toda inteligência, execução e automação vive no CLI. Observabilidade é secundária;
      UI é terciária. Nenhuma capacidade essencial pode existir apenas na UI.
  - id: "II"
    title: Agent Authority
    severity: NON-NEGOTIABLE
    body: >
      Operações exclusivas pertencem a um único agente dono. Outros agentes são bloqueados
      (fail-closed). Delegação é o padrão para trabalho especializado.
  - id: "III"
    title: Story-Driven Development
    severity: MUST
    body: >
      Todo desenvolvimento parte de uma story com critérios de aceite. Progresso é rastreável
      por ID; nada é entregue sem rastreabilidade.
  - id: "IV"
    title: No Invention
    severity: MUST
    body: >
      Cada afirmação de spec/feature rastreia a um requisito, restrição ou achado de pesquisa.
      Nenhuma feature inventada. Declarado = real, verificável em CI.
  - id: "V"
    title: Quality First
    severity: MUST
    body: >
      Typecheck, lint e testes passam antes de qualquer entrega. Cobertura com ratchet.
      Degradação graciosa nunca esconde código morto.
  - id: "VI"
    title: Absolute Imports
    severity: SHOULD
    body: >
      Preferir imports por pacote (@nexus/*) a caminhos relativos profundos, mantendo o grafo
      de dependências explícito e acíclico.
  - id: "VII"
    title: Squad Charter
    severity: NON-NEGOTIABLE
    body: >
      Squads herdam a constituição INTEGRAL. Operações exclusivas do core (git_push, pr_create,
      pr_merge, mcp_manage → devops) JAMAIS são sobrescritas ou duplicadas por squad. Autoridades
      de squad são ADITIVAS e namespaced 'squad.{id}.{operation}'; conflito com operação exclusiva
      bloqueia a composição do gate (fail-closed) — o gate permanece único.

authorities:
  - operation: git_push
    owner: devops
    exclusive: true
    matchPatterns:
      - tool: Bash
        subcommand: git push
  - operation: pr_create
    owner: devops
    exclusive: true
    matchPatterns:
      - tool: Bash
        subcommand: gh pr create
  - operation: pr_merge
    owner: devops
    exclusive: true
    matchPatterns:
      - tool: Bash
        subcommand: gh pr merge
  - operation: mcp_manage
    owner: devops
    exclusive: true
    matchPatterns:
      - tool: Bash
        subcommand: claude mcp
