I1958 — Evidence has one route per subject, and every panel is joined to its subject
Generate one evidence route per subject from site/data/registry/evidence-subjects.json, as sections of the one evidence template, and join every homepage panel to its subject by its route, failing generation for a subject the index does not have (ADR 0087 decision 9).
BLOCKED wave 4 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I1955 is done. The status is derived from that, not declared.
Objective
Generate one evidence route per subject from site/data/registry/evidence-subjects.json, as sections of the one evidence template, and join every homepage panel to its subject by its route, failing generation for a subject the index does not have (ADR 0087 decision 9).
Why
The site only joins to the index. Today no panel names a subject, and /evidence/ is one page.
Current state
/evidence/ is a single page whose CI view is the Recorded by CI section of PR #577; panels carry a route and no subject; the tests of commands.json are derived in shell.
Desired state
/evidence/ is a section with a child per subject kind, plus suites, coverage and runs; the Recorded by CI section becomes the runs section; scripts/generate-site-data sets each panel's subject by joining its route to an index key and passes the executable's refusal through; the tests of commands.json are read from the artifact.
Scope
- scripts/generate-site-data
- scripts/lib/panel-subjects.jq
- site/content-src/evidence.md
- site/content-src/evidence
- site/templates/evidence.html
- site/data/nav.toml
- test/cases
- docs/CLAIMS.yaml
- docs/claims
- .gitattributes
Out of scope
- Deriving a subject in shell or jq beyond the join
- The badge, which is I1960's
Dependencies
- I1952DONE Evidence subjects are derived once, in Rust
- I1946DONE The verdict words are status words of the design system
- I1955BLOCKED The evidence publication is an allow-listed projection
What waits on this
- I1960BLOCKED Every widget names its proof
- I1961BLOCKED A deploy verifies the evidence routes it publishes
Acceptance criteria
- Every subject of the index has a route, and no route exists for a subject the index does not have
- Every panel carries the subject its route joins to, or an explicit illustration marker, and an unknown subject fails generation with the executable's refusal
- The Recorded by CI section is folded into the runs section
Validation
- bash test/run.sh 516_evidence_routes_render_from_the_subject_index
- bash test/run.sh 517_a_panel_subject_is_joined_from_its_route
Evidence required
- routes_from_the_index
- panels_joined_to_subjects
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
It also waits on PR #621 and PR #626, which change the templates it edits.
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/I1958.yaml. Read it back with majordomus plan show I1958.