I3957 — No entry path or gate builds: the launcher, the gates, the test harness and the just bridge call the tree's executable and fail fast or use a release of the same generation
Change bin/majordomus-cli so a missing or stale executable exits 12 naming the explicit build for every caller, or answers through the installed release only when its build generation matches the tree; make the nine cargo-run gates of .ai/repo/ci/gates.yaml, test/lib.sh and the just bridge call the tree's executable; make the edit guard and the pre-commit guard declare their outcome instead of passing silently.
PŘIPRAVENO vlna 0 · p0 · profil implementation · běží samostatně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3957 bude přijato.
Cíl
Change bin/majordomus-cli so a missing or stale executable exits 12 naming the explicit build for every caller, or answers through the installed release only when its build generation matches the tree; make the nine cargo-run gates of .ai/repo/ci/gates.yaml, test/lib.sh and the just bridge call the tree's executable; make the edit guard and the pre-commit guard declare their outcome instead of passing silently.
Proč
The owner, 2026-10-22: ADR 0172 is replaced (by ADR 0224) and I3180 cancelled, after a pre-push timed out at ninety minutes in cargo-run gates queued behind the shared build lock, and the architecture review recorded as intent every-capability-has-one-owner-and-the-cli-never-builds.
Aktuální stav
Measured on master 2034d4a3f0b: see milestone ordinary-commands-never-build.
Cílový stav
Zero cargo invocations from any ordinary path with the executable missing or stale; a mismatched release refused; no silent pass.
Rozsah
- bin/majordomus-cli
- bin/majordomus-mcp
- lib/rust_bin.sh
- test/lib.sh
- .ai/repo/ci/gates.yaml
- .claude/hooks/majordomus-edit-guard
- .githooks/
- apps/majordomus-cli/src/command_graph/bridge.rs
- .ai/repo/project/intents/every-capability-has-one-owner-and-the-cli-never-builds.yaml
- test/cases/3958_no_entry_path_or_gate_builds.sh
Mimo rozsah
- Migrating shell domain logic
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A case extending the stand-in-cargo fixtures of cases 3831 and 3177 walks every command path through bin/majordomus, bin/majordomus-cli, bin/majordomus-mcp, the just bridge, each git hook and every gate, with the executable missing and then stale, and counts zero cargo invocations
- An installed release whose build generation differs from the tree is refused, and one whose generation matches is used
- The edit guard and the pre-commit guard name their outcome for a stale executable; neither passes silently
- Cases 3177, 3221 and 3831 still pass, or are amended with the reason ADR 0224 gives
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=2 bash test/run.sh 3958_no_entry_path_or_gate_builds
Požadované důkazy
- zero_cargo_case
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/I3957.yaml. Read it back with majordomus plan show I3957.