I1962 — The evidence gates read subject findings and widgets
Make subject findings refusing, rewriting the evidence baseline in the same change, and make the evidence validator read every rendered widget, so that a widget without a subject or a count hard-coded into a template fails CI (ADR 0087 decision 10).
BLOCKED wave 6 · p1 · implementation profile · runs alone
Blocked. This issue cannot start until I1960, I1953 are done. The status is derived from that, not declared.
Objective
Make subject findings refusing, rewriting the evidence baseline in the same change, and make the evidence validator read every rendered widget, so that a widget without a subject or a count hard-coded into a template fails CI (ADR 0087 decision 10).
Why
Subject findings stay advisory until a gate reads them, and ADR 0087 names this validator as the mechanism against a widget without a subject and a hard-coded count.
Current state
scripts/evidence-check ratchets claims only; subject findings are advisory; no gate reads the site's widgets for a subject; lib/commands.sh and scripts/ci/command-furnished derive command coverage in shell.
Desired state
evidence-check refuses a subject finding beyond the rewritten baseline; a stable feature without evidence and a widget without a subject each fail a gate by name; the shell command-coverage readers read the index artifact or are held equal to it by a case.
Scope
- scripts/evidence-check
- .ai/repo/evidence-baseline.txt
- scripts/rust-coverage
- lib/commands.sh
- scripts/ci/command-furnished
- scripts/lib/evidence-widgets.mjs
- scripts/lib/interactions.mjs
- scripts/site-check
- .ai/repo/automation/inventory.jsonl
- .ai/repo/ci/gates.yaml
- .ai/repo/rules/project/no-stable-feature-without-a-test.v1.md
- .ai/repo/rules/project/a-widget-names-its-evidence-subject.v1.md
- .ai/repo/features/evidence.md
- .ai/repo/features/coverage.md
- docs/CLAIMS.yaml
- docs/claims
- test/cases
Out of scope
- Weakening the baseline's ratchet
Dependencies
- I1960BLOCKED Every widget names its proof
- I1953BLOCKED Evidence answers by subject, on every surface
- I1952DONE Evidence subjects are derived once, in Rust
What waits on this
Acceptance criteria
- Subject findings refuse, and the baseline is rewritten in the same change, with its reason
- A rendered widget without a subject fails the validator, naming the widget
- A count or a percentage hard-coded into a template fails the validator
- The shell command-coverage readers agree with the subject index
Validation
- bash test/run.sh 522_evidence_check_reads_widgets
- bash test/run.sh 523_evidence_rules_are_gated
- scripts/evidence-check
Evidence required
- subject_findings_refuse
- widgets_name_subjects
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/I1962.yaml. Read it back with majordomus plan show I1962.