I3206 — The delivery phases have budgets in benchmark policy, and a phase over its budget is a finding with its trend
Once I3202 and I3203 measure the phases, declare each phase's budget beside the UI budgets bench --check already holds, report a phase over budget as a finding with its last window's trend, and keep wall time a report rather than a correctness gate where the runner is not ours.
BLOKOVÁNO wave 2 · p2 · implementation profile · parallel safe
Blocked. This issue cannot start until I3202, I3203, milestone:delivery-flow-is-measured are done. The status is derived from that, not declared.
Cíl
Once I3202 and I3203 measure the phases, declare each phase's budget beside the UI budgets bench --check already holds, report a phase over budget as a finding with its last window's trend, and keep wall time a report rather than a correctness gate where the runner is not ours.
Proč
The owner set speed goals repeatedly: CI under a minute (c195#0), pull requests under five minutes (c208#24), deploy in minutes (c204#0). PR descriptions of 2026-10-16/17 recorded pre-push checks of 305-455 s against a 180 s budget (c287#2). A goal with no budget in policy is not enforced; a budget on a shared runner pool cannot be a red gate without becoming flaky. Proposed in ADR 0196 (Delivery latency targets are budgets of benchmark policy, measured per phase, and never a correctness gate on runners the repository does not own) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c204#2, chatgpt-majordomus:c287#2.
Aktuální stav
I2489 (DONE) made the UI's latency budgets benchmark policy held by bench --check; .ai/repo/ci/suite.yaml and structure-durations.tsv bound the suite; no delivery phase has a declared budget.
Cílový stav
Benchmark policy carries a budget per delivery phase with its source (owner goal or measured baseline); the reading marks each phase within or over; over-budget phases surface on the drain screen and in the brief; nothing turns the ci verdict red on GitHub wall time.
Rozsah
- apps/majordomus-cli/src/bench
- apps/majordomus-cli/src/integration/metrics.rs
- docs/CI.md
- .ai/repo/benchmarks/rust/policy.yaml
- .ai/repo/benchmarks/rust/README.md
- apps/majordomus-cli/src/ui/prs.rs
- apps/majordomus-cli/src/capability/builtin/brief.rs
- site/content/docs/ci.md
Mimo rozsah
- Weakening any gate to meet a budget
- Choosing the numbers (ADR proposed: delivery latency targets are budgets)
Závislosti
- I3202BLOCKED CI timings measure the wait before a run starts beside the run, and count what cancelled runs spent
- I3203BLOCKED Delivery lead time is measured per phase, from a pull request's opening to its verified publication
Kritéria přijetí
- Each phase budget names where its number came from
- A phase over budget is a finding with the window and sample it was read from
- No required check depends on runner wall time
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib bench::
- majordomus plan validate
Požadované důkazy
- test_delivery_phase_budgets
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/I3206.yaml. Read it back with majordomus plan show I3206.