ordinary-commands-never-build — No ordinary command builds: every entry path fails fast or answers through a release of the same generation
Every entry path and every gate calls the tree's executable, a missing or stale one fails fast naming the explicit build or answers through a release whose generation matches, and no caller passes silently.
PLÁNOVÁNO 0 z 1 úkolů hotovo
- připraveno
- 1
- blokováno
- 0
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
On 2026-10-22 a pre-push sat forty minutes in one gate and timed out at ninety, queued behind the shared build lock with the tree's executable already built: nine gates run cargo run and ignore MAJORDOMUS_BIN, and at least seven other entry paths build implicitly or pass silently on a stale executable. ADR 0224 (accepted the same day, superseding ADR 0172) decides that only an explicit build builds.
Výsledek
Every entry path and every gate calls the tree's executable, a missing or stale one fails fast naming the explicit build or answers through a release whose generation matches, and no caller passes silently.
Aktuální stav
Measured on master 2034d4a3f0b: bin/majordomus-cli rebuilds a stale executable for every caller; nine gates in .ai/repo/ci/gates.yaml run cargo run; test/lib.sh runs a raw cargo build; the edit guard passes on exit 12; mj_rust_installed accepts a release on --version alone.
Cílový stav
A case counts zero cargo invocations across every path with the executable missing and stale, and a mismatched release is refused.
Rozsah
- bin/majordomus-cli
- bin/majordomus-mcp
- lib/rust_bin.sh
- test/lib.sh
- .ai/repo/ci/gates.yaml
- .claude/hooks/majordomus-edit-guard
- apps/majordomus-cli/src/command_graph/bridge.rs
Mimo rozsah
- Migrating lib/*.sh domain logic (intent repository-automation-is-typed)
Kritéria přijetí
- Every criterion of intent every-capability-has-one-owner-and-the-cli-never-builds that names this milestone's issues has its proof in the tree
Validace
- majordomus plan validate
- majordomus intent validate
Rizika
- A client that relied on the hidden rebuild now sees exit 12: the message names the one command to run
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3957 | PŘIPRAVENO | 0 | — | 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 |
Graf
flowchart LR
I3957["I3957<br/>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"]:::ready
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxCanonical record: .ai/repo/project/milestones/ordinary-commands-never-build.yaml. Read it back with majordomus plan show ordinary-commands-never-build.