the-product-shows-what-it-caught — What finish caught is counted from the ledger and compared on the benchmark, never asserted
One read over the ledger answers what finish caught and what it cost, a refusal nobody answered is separated from a caught one, /ui shows it, and the benchmark gains an acceptance metric beside its token metric.
BLOKOVÁNO 0 ze 4 úkolů hotovo
- připraveno
- 0
- blokováno
- 4
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
task.refused was added to the ledger so that the tool's own benefit could be counted (share/events.yaml: 'a refusal that was later satisfied is a false done that was caught'), but no capability, page or report reads it. The economics benchmark compares tokens and states that the finish contract's effect is not measured (docs/ECONOMICS.md, 'What this does not measure'), and no live pair has been recorded (docs/generated/economics.md at 707a04c7ce8: 0 valid pairs under methodology 1). So the one product metric every assessment named has a producer and no reader. Proposed in ADR 0208 (The product's value is stated as the false dones its finish caught, beside the friction it cost) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c119#7, chatgpt-majordomus:c119#10, chatgpt-majordomus:c256#2, chatgpt-majordomus:c277#1.
Výsledek
One read over the ledger answers what finish caught and what it cost, a refusal nobody answered is separated from a caught one, /ui shows it, and the benchmark gains an acceptance metric beside its token metric.
Aktuální stav
lib/finish.sh:108 appends task.refused (task_id, outcome, unmet, refused, contract) to each checkout's $MJ_STATE_DIR/ledger.jsonl, which is checkout-local and lost when a worktree is removed; task.finished already records verify.tree from mj_worktree_tree_id; lib/history.sh:158 only prints the line. gates.completion judges one task; no capability aggregates, and the Rust side already reads the ledger through apps/majordomus-cli/src/ledger.rs. .ai/repo/benchmarks/economics/methodology.yaml measures effective_token_reduction, and its pairing treats a failed run as invalid; tasks carry hidden acceptance tests already.
Cílový stav
A gates capability (one capability! declaration, every transport generated) aggregates task.refused and task.finished; events carry a tree digest; /ui dashboard draws it with view::kpi_not_observed for absence; the methodology names an acceptance metric over the existing pilot corpus.
Rozsah
- apps/majordomus-cli/src/capability/builtin/gates.rs
- lib/finish.sh
- share/events.yaml
- apps/majordomus-cli/src/ui/dashboard.rs
- .ai/repo/benchmarks/economics/methodology.yaml
- docs/ECONOMICS.md
- apps/majordomus-cli/src/ledger.rs
Mimo rozsah
- Token economics (ADR 0082)
- Cost per accepted outcome, which waits on execution-telemetry
- Publishing checkout-local ledger figures on the public site
- The /cockpit overview card (dashboard.overview), until its measure renders absence as not observed
Kritéria přijetí
- Every criterion of intent the-product-shows-what-it-caught has its evidence
- No second ledger, registry or hand-written OpenAPI entry is added
Validace
- majordomus plan validate
Rizika
- The ledger is checkout-local, so a figure covers one checkout; it must say which
- A counted refusal invites gaming by refusing more; the figure is shown beside the unanswered-refusal count
Ú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 |
|---|---|---|---|---|
| I3130 | BLOKOVÁNO | 1 | I0401 | The ledger answers how many false dones finish caught, by doctrine, with the tasks it counted |
| I3131 | BLOKOVÁNO | 2 | I3130 | A refusal answered by no change to the tree is not counted as a caught false done |
| I3132 | BLOKOVÁNO | 2 | I3130 | /ui shows what finish caught beside what being caught cost, and says not observed where there is no ledger |
| I3133 | BLOKOVÁNO | 1 | I0401 | The economics benchmark measures acceptance: how many sessions declared done while the task's hidden tests fail, with and without the finish contract |
Graf
flowchart LR
I3130["I3130<br/>The ledger answers how many false dones finish caught, by doctrine, with the tasks it counted"]:::blocked
I3131["I3131<br/>A refusal answered by no change to the tree is not counted as a caught false done"]:::blocked
I3132["I3132<br/>/ui shows what finish caught beside what being caught cost, and says not observed where there is no ledger"]:::blocked
I3133["I3133<br/>The economics benchmark measures acceptance: how many sessions declared done while the task's hidden tests fail, with and without the finish contract"]:::blocked
I3130 --> I3131
I3130 --> I3132
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:2pxOdkazuje z tohoto diagramu (4)
- I3130 The ledger answers how many false dones finish caught, by doctrine, with the tasks it counted
- I3131 A refusal answered by no change to the tree is not counted as a caught false done
- I3132 /ui shows what finish caught beside what being caught cost, and says not observed where there is no ledger
- I3133 The economics benchmark measures acceptance: how many sessions declared done while the task's hidden tests fail, with and without the finish contract
Canonical record: .ai/repo/project/milestones/the-product-shows-what-it-caught.yaml. Read it back with majordomus plan show the-product-shows-what-it-caught.