Changelog: November 2026
Week #44
360 commits
Safety Score counts each open question once, and /coverage/ publishes the three numbers behind each grade.
- Open-question countscoverage
/coverage/ now opens with three server-counted numbers: open questions, not disclosed by issuers, and documentation gaps. Each is counted once at its root asset, and an older publication reads as unavailable, never zero.
- Report-cards API 9feature
The report-cards API gains an additive openEvidence block with the same three totals, owner and reason rows, the issuer review window and per-card rows. Scores, grades and evidence levels stay untouched.
- Documentation gapscoverage
A policy-owned documentation class now marks the open questions whose resolution cannot materially move a score, under six published reasons and two strict bars. Pricing, causes, caps and evidence levels stay byte-identical, and a card reads "limited · documentation gaps only" only when every limiting witness is documentation.
- Missing-data registry v3infra
The curation registry gains documentation and issuer bands, keys its questions through the shared counting authority, and drops a supplement only when every obligation it carries is already a compiled task, so the worklist shows 72 supplements instead of 469 on the current capture.
- Scores dataset v2infra
The scores dataset display projection carries the same totals with their semantics, plus a machine-readable reason when a generation predates them, so missing counts never read as zero.
- Plainer gap languagedesign
A cause-A pillar gap now reads "data pipeline unavailable" rather than implying an issuer omission, and one shared vocabulary names all three buckets on the page and in its explanations.
Show commits
- 3fed1765 feat(safety-score): publish documentation counts and documentation-only annotations
- 3c1a7d02 test(safety-score): pin the documentation-class invariants and fail-closed annotation
- 71318c26 feat(registry): dedupe registry supplements against compiled tasks
- 3aec22f3 feat(safety-score): project documentation carriers and documentation-only limited pillars
- d7186223 fix(coverage): give every open-evidence owner a distinct rail swatch
- a38c1418 test(safety-score): prove restatement aliases are score-neutral at the exit pillar
- a47d31b7 fix(safety-score): let provider-wide reviews omit assetId in the authored envelope
- 28f2ae27 docs(coverage): document the open-evidence counting and API contract
- 57bff3ed fix(safety-score): finalize the open-evidence contract per contract review
- 5cc9369d test(safety-score): read the asset score from the trace in the exit-coverage invariant
- ad826a70 fix(safety-score): gate durable custody lapse on the retention flag alone
- 0d779691 refactor(safety-score): drop per-reason retention from the documentation policy block
- 3dd33696 fix(safety-score): tighten incident-review contracts per contract review
- c666a424 refactor(safety-score): single authority for documentation retention and thresholds
- c7a1ad5b fix(safety-score): serve every archived report8 snapshot through the historical schema
- 3c3fc45a refactor(curation): key registry questions through the shared open-questions authority
- 89f48318 test(safety-score): pin exit and backing documentation-class invariants
- 6ec31640 feat(curation): missing-data registry schema 3 with documentation and issuer bands
- 30afb5a4 feat(safety-scores): annotate pillars limited only by documentation gaps
- eb95a75d fix(safety-score): alias source-less restatements to their compiled gaps
… and 340 more