I3354 — A pure scorecard function computes each proof test's status, counted sample, effect and losses from committed records, and withholds a verdict until the registered sample is complete
Add economics::proof::scorecard(root): per test, status not_run (protocol not registered, instrument not built, or no counted record, each named), running (counted sample below the registered minimum, no verdict word and no effect shown), else passed, failed or inconclusive by the registered decision. paired: the suite's primary verdict as I3366's functions compute it. trials: min_successes and all_must_pass over counted trials. window: passed when the window closed and every field's not-observed share is within its bound, failed when one exceeds it, running while open. Losses list every invalid pair with its failing side, every pair or trial against the favourable direction, and every uncounted record with its reason. Totals per status are included. Fixture tests only; no capability.
BLOKOVÁNO vlna 2 · p1 · profil implementation · bezpečné paralelně
Blocked. This issue cannot start until I3351, I3353, I3366 are done. The status is derived from that, not declared.
Cíl
Add economics::proof::scorecard(root): per test, status not_run (protocol not registered, instrument not built, or no counted record, each named), running (counted sample below the registered minimum, no verdict word and no effect shown), else passed, failed or inconclusive by the registered decision. paired: the suite's primary verdict as I3366's functions compute it. trials: min_successes and all_must_pass over counted trials. window: passed when the window closed and every field's not-observed share is within its bound, failed when one exceeds it, running while open. Losses list every invalid pair with its failing side, every pair or trial against the favourable direction, and every uncounted record with its reason. Totals per status are included. Fixture tests only; no capability.
Proč
The owner's report of 2026-10-19 asks that T1 to T6 be settled by measurement, losses included; a typed verdict is the forecast the report rejects. The critique split the original scorecard issue because a calculator, three decision kinds and a capability with its projections were more than one reviewable pull request. Withholding the verdict while running answers the critique's point that a republished report would otherwise show interim verdicts during the runs.
Aktuální stav
No function computes a proof status. stats.rs:260 provides bootstrap_median_clustered for the token metric, which suits a median of ratios, not a binary acceptance outcome.
Cílový stav
scorecard(root) over the tracked plan reads six not_run rows with their reasons; fixtures drive each status and each loss reason.
Rozsah
- apps/majordomus-cli/src/economics
- apps/majordomus-cli/tests/economics.rs
Mimo rozsah
- Declaring a capability or regenerating projections (I3355)
- Any statistic not in stats.rs
- Rendering
Závislosti
- I3351READY A proof plan is a validated record in which each protocol is frozen by its own digest, so registering one test never stales another's records
- I3353BLOCKED A trial is a typed record that carries its protocol's digest, refuses what the protocol does not declare, and redacts what its publication basis does not permit
- I3366READY The economics calculator decides a binary paired outcome by an exact task-level test, intervals a continuous paired difference by task-clustered bootstrap, and turns either into one verdict
Co na tom čeká
- I3355BLOCKED majordomus economics proof serves the scorecard on the command line, HTTP and MCP from one capability declaration
- I3358BLOCKED economics check refuses a guaranteed claim of value that no passed proof test backs, in the claims matrix only
- I3372BLOCKED The registered corpus is run in both arms, its records are committed, and its verdict is published with its losses and its origin
- I3384BLOCKED The first delivery window is measured at its close and published with its denominators, the work not accepted and the checkouts it could not read
- I3389BLOCKED The mesh suite is run in both arms and its guarded verdict is published with its losses
- I3394BLOCKED The mesh lab's work-fault evidence from CI is committed as T5 trials and the T5 verdict is published with every failed trial
Kritéria přijetí
- Fixtures drive each of the five statuses, and not_run for each of its three reasons
- A paired fixture whose test does not reject reads inconclusive, never passed
- A running fixture shows no verdict word and no effect
- Per-status totals equal the number of tests
- A stale record, a record under another digest and one recorded before registered_at appear under losses and change no status
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
- cargo fmt --manifest-path apps/majordomus-cli/Cargo.toml --check
Požadované důkazy
- test_proof_status_is_computed
- test_uncounted_records_are_listed
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/I3354.yaml. Read it back with majordomus plan show I3354.