I3147 — The effective governance has one digest, computed by one function and shown by the preflight
Compute a digest over the sources of the effective governance, declared once in policy.yaml (project and vendored rules at their versions, profiles, workflows, skills, prompts, scope.yaml, the declared share/schemas entries, the hook wiring in .claude/settings.json and a declared list of governing policy keys), as sha256 over a canonical manifest of (input id, content hash) from working-tree bytes, and show the digest and its manifest in the preflight's governance check and on every entry surface.
BLOKOVÁNO vlna 0 · p1 · profil implementation · bezpečné souběžně
Blocked. This issue cannot start until milestone:entry-proves-what-it-handed is done. The status is derived from that, not declared.
Cíl
Compute a digest over the sources of the effective governance, declared once in policy.yaml (project and vendored rules at their versions, profiles, workflows, skills, prompts, scope.yaml, the declared share/schemas entries, the hook wiring in .claude/settings.json and a declared list of governing policy keys), as sha256 over a canonical manifest of (input id, content hash) from working-tree bytes, and show the digest and its manifest in the preflight's governance check and on every entry surface.
Proč
On 2026-09-10 the owner asked to see at every start that governance is in force; the assistant's answer named a fingerprint to prove what an agent started under, detect a change and pin handovers. On master the preflight counts rules but no digest exists; intent_binding's plan_revision pins intents only. Proposed in ADR 0181 (An episode records the governance and the briefing it was handed, each by one digest) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c103#2.
Aktuální stav
environment/cache.rs fingerprints cache tiers by path, size and modification time (fingerprint_of); environment/preflight.rs has no governance digest; docs/PREFLIGHT.md 'Governance status' names none.
Cílový stav
environment.preflight answers governance.digest; the same tree gives the same digest on every surface.
Rozsah
- apps/majordomus-cli/src/environment
- apps/majordomus-cli/src/capability/builtin/environment.rs
- .ai/repo/policy.yaml
- docs/PREFLIGHT.md
Mimo rozsah
- Recording the digest per episode (I3148)
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3148BLOCKED An episode records the governance digest and the briefing digest it was handed at start
- I3150BLOCKED A handover carries the governance digest it was written under, and resolving it says when governance moved
- I3151BLOCKED Every entry surface reports the same governance digest for one checkout
Kritéria přijetí
- Editing a rule changes the digest
- Touching a timestamp or a non-governance file does not
- The input set is declared once and the preflight names it
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test preflight
- bash test/run.sh 190_entry_is_automatic
Požadované důkazy
- test_governance_digest_is_stable
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3147.yaml. Read it back with majordomus plan show I3147.