I3358 — economics check refuses a guaranteed claim of value that no passed proof test backs, in the claims matrix only
Extend apps/majordomus-cli/src/economics/claims.rs: a docs/CLAIMS.yaml claim named in a proof test's settles may carry status guaranteed only while that test reads passed, and a claim sentence that carries a value word the plan declares must be settled by some proof test. Each finding names the file, line, claim, word, test and status. An unreadable plan is a finding. General prose is not scanned for value words. Add the mutations to test/cases/431_economics_claims_gated.sh and the rule to docs/claims/economics-claims-gated.md.
BLOCKED wave 3 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I3352, I3354 are done. The status is derived from that, not declared.
Objective
Extend apps/majordomus-cli/src/economics/claims.rs: a docs/CLAIMS.yaml claim named in a proof test's settles may carry status guaranteed only while that test reads passed, and a claim sentence that carries a value word the plan declares must be settled by some proof test. Each finding names the file, line, claim, word, test and status. An unreadable plan is a finding. General prose is not scanned for value words. Add the mutations to test/cases/431_economics_claims_gated.sh and the rule to docs/claims/economics-claims-gated.md.
Why
The owner's report of 2026-10-19 says advantages must be measured and public claims evidence-backed. The critique counted dozens of existing hand-written sentences that use these words in other senses (for example site/content-src/proof-carrying-documentation.md:52), so a word scan of all prose would refuse master; binding the claims matrix suffices, because homepage-check's promises rule already requires a promise word's claim to be guaranteed and supported (homepage-check:523-531), and guaranteed would then require a passed test.
Current state
claims.rs:42-45 VOCABULARY and :51-75 SAVING decide a savings sentence; :100-112 PROSE lists the scanned files; :1093 check_claims binds claims only to methodology metrics. Case 431 holds the existing refusals.
Desired state
economics check is clean on master; a fixture guaranteed claim settled by T5 is refused while T5 is not passed; a fixture claim using 'fewer interventions' that no test settles is refused.
Scope
- apps/majordomus-cli/src/economics/claims.rs
- apps/majordomus-cli/tests/economics.rs
- test/cases/431_economics_claims_gated.sh
- docs/claims/economics-claims-gated.md
- docs/ECONOMICS.md
Out of scope
- Scanning general prose for value words
- Changing homepage-check
- The refusals of I3297, which edits the same file
Dependencies
- I3352BLOCKED The six proof tests are registered, each with the claim it settles and its instrument, and none carries a protocol yet
- I3354BLOCKED 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
Acceptance criteria
- A guaranteed claim settled by a test that is not passed is refused, and accepted in a fixture where the test reads passed
- A claim sentence with a declared value word that no test settles is refused
- An unreadable plan is a finding, never a clean result
- majordomus economics check passes on master's tree
Validation
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
- bash test/run.sh 431_economics_claims_gated
- majordomus economics check
- cargo fmt --manifest-path apps/majordomus-cli/Cargo.toml --check
Evidence required
- case_value_claim_refused_until_passed
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3358.yaml. Read it back with majordomus plan show I3358.