I4207 — Only a trends series of the shape the publication writes decides a run link
scripts/ci/link-check adds the runs of site/data/trends.json to the runs it decides by provenance only when the file is the series `scripts/pages trends` writes, an object of schema trends/v1; a file of any other shape decides nothing and does not break the check.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I4207 bude přijato.
Cíl
scripts/ci/link-check adds the runs of site/data/trends.json to the runs it decides by provenance only when the file is the series `scripts/pages trends` writes, an object of schema trends/v1; a file of any other shape decides nothing and does not break the check.
Proč
I4220 admitted every runs[].run_id of site/data/trends.json without looking at what the file is. The trust rests on provenance: scripts/pages trends wrote it from the forge's answers at publish time, and its own output says schema trends/v1. A stale, hand-made or differently shaped file with a runs list would turn arbitrary run links into decided ones, and a top-level list made the check die with AttributeError instead of deciding.
Aktuální stav
link-check reads `.get('runs')` of whatever site/data/trends.json parses to: any object's runs are decided, and a JSON list raises AttributeError.
Cílový stav
Only an object whose schema is trends/v1 contributes runs; a series of another schema or none leaves those run links refused as undecidable offline (exit 10), and case 335 holds both.
Rozsah
- scripts/ci/link-check
- test/cases/335_every_link_resolves.sh
- .ai/repo/project/issues/I4207.yaml
Mimo rozsah
- What scripts/pages trends writes, which already carries schema trends/v1
- Deciding any other forge path offline
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A run a trends/v1 series names is still decided
- The same run named by a series of schema trends/v0 is refused as undecidable offline (exit 10)
- The same run named by a top-level JSON list is refused (exit 10), not a crash
Validace
- bash test/run.sh 335_every_link_resolves
Požadované důkazy
- sada testů
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á.
Riziko
None: the only series the publication writes is trends/v1 (scripts/pages, `schema: \"trends/v1\"`), so a published site decides exactly what it did.
Č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/I4207.yaml. Read it back with majordomus plan show I4207.