I4220 — A run that /trends/ draws is a link the site check decides by provenance
scripts/ci/link-check admits every run that site/data/trends.json names as a decided Actions link, as it already admits the run that site/data/evidence.json names, so the /trends/ page I3933 publishes passes the deploy check and master's pages publish.
READY wave 0 · p0 · implementation profile · parallel safe
Ready. Every dependency is done, so majordomus plan start I4220 will be accepted.
Objective
scripts/ci/link-check admits every run that site/data/trends.json names as a decided Actions link, as it already admits the run that site/data/evidence.json names, so the /trends/ page I3933 publishes passes the deploy check and master's pages publish.
Why
Master 563fe99a7eb (train 5) went red on pages, run 40086406838, deploy job 120851551330 step check, exit 10: 59 findings 'FAIL link refused /trends/: …/actions/runs/<id>: a actions link cannot be decided offline'. The site kept serving 575d39f. /trends/ links each run in site/data/trends.json, but link-check decided only evidence.json's single run. Both files are written at publish time from the forge's own answers (scripts/pages evidence, scripts/pages trends), so a run either names exists for the same reason.
Current state
link-check builds its set of decided runs from site/data/evidence.json alone; every other Actions run link is refused.
Desired state
link-check also adds runs[].run_id of site/data/trends.json to that set. A run neither file names is still refused, and case 335 holds all three outcomes.
Scope
- scripts/ci/link-check
- test/cases/335_every_link_resolves.sh
- .ai/repo/project/issues/I4220.yaml
Out of scope
- The /trends/ template, which keeps linking each run to its forge page
- Deciding any other forge path (issues, pulls, milestones) offline
- The ui-snapshot job's forge read on the same run, which failed with exit 12 (the forge did not answer) and is retried by the next pages run
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- A link to a run site/data/trends.json names is decided, and the check exits 0
- A link to the run site/data/evidence.json names is still decided
- A link to a run neither file names is still refused as undecidable offline (exit 10)
Validation
- bash test/run.sh 335_every_link_resolves
Evidence required
- suite
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
None beyond the trust already given evidence.json: both files are produced by scripts/pages from forge answers at publish time, never typed.
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/I4220.yaml. Read it back with majordomus plan show I4220.