Skip to content

Chronicle holds government-produced records only: write the rule, drop TPC and score examples - #375

Draft
MaxGhenis wants to merge 1 commit into
mainfrom
docs/government-records-only
Draft

MaxGhenis wants to merge 1 commit into
mainfrom
docs/government-records-only

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Chronicle is to hold government-produced records only. This PR writes that rule down and removes the non-government and "scores" examples. It does not add, move or remove any source package or data.

  • TPC and "scores" removed from the source-projection examples in all five places that named them: README.md, AGENTS.md, docs/chronicle-governance.md, docs/adr-chronicle-facts-only.md (line 47, the "validation comparators (TPC, JCT scores)" rationale) and the AggregateFact docstring in chronicle/core.py. The ADR and governance mentions were not on the original list of three. Chronicle never held a TPC package. Comparisons against outside scores live in PolicyEngine/policyengine-scorecard.
  • The rule is stated in the README, AGENTS.md, the governance doc's "must not" list, and a 2026-10-21 amendment to the facts-only ADR. The amendment also proposes how to treat edge cases (central banks, regulators, public corporations, intergovernmental bodies, government records on third-party hosts) and lists the three folders that predate the rule (isc, ici, kff) with a government replacement for each. The edge cases and migrations await a ruling; until then nothing moves.
  • The rule is enforced. docs/source-publishers.yaml names and classifies the publisher of all 55 source folders (packages/ ∪ db/data/). tests/test_source_publishers.py fails when a folder is unclassified, an entry is stale, an edge case has no category, or a non-government folder appears beyond the three that predate the rule.

Audit (2026-10-21, origin/main aa288c3)

What was checked: all 383 manifest registrations and 415 source packages. Every package lives in the same publisher folder as its data. Also checked: the code-defined loaders (IRS SOI, Census PEP, USDA SNAP), the URL hosts in every manifest, and the Thesis observation journal (codex/thesis-ledger-facts, 251 rows; all government, including central banks).

  • Non-government folders: isc (Independent Schools Council), ici (Investment Company Institute), kff (KFF).
  • Edge cases (all proposed in): nbb and federal_reserve (central banks); ofgem and orr (GOV.UK lists both as non-ministerial departments); nithc (public corporation, Transport Act (NI) 1967) and slc (executive NDPB); eurostat and jrc (European Commission DGs).
  • Government records reached through a third-party host:
    • a DWP FOI reply on WhatDoTheyKnow
    • NRS census tables on the UK Data Service
    • Welsh BRMA boundaries 2012 on University of Edinburgh DataShare
    • NZ Treasury AN24/01 on GitHub
  • Smaller items: db/pe_source_inventory.py registers a Disability Rights UK news page under source_id: dwp and the ISC census page. The curated Statbel NIS crosswalk cites publisys.eu. bfp and fpb are the same publisher (Federal Planning Bureau).

Consumers of the affected packages, found by searching Microcosm, Thesis, the scorecard, chronicle.institute, and GitHub code search over PolicyEngine, TheAxiomFoundation and ThesisInstitute:

Package Consumers
isc-annual-census-* Microcosm's UK calibration feed (Chronicle abf0921) compiles the January 2025 ISC count (545,640) as a live national target
ici-fact-book-table-30 No consumer reads the Chronicle package. Microcosm has only a display label; growth-act cites the ICI URL directly
kff-marketplace-effectuated-enrollment In Microcosm's US feed scope but excluded there as superseded by CMS. calibration-diagnostics maps it (diagnostics only). Listed in the chronicle.institute registry
jct-tax-expenditures-2024 Compiled Microcosm US calibration family. Also used by calibration-diagnostics, sparsity-paper and refundable-credit-conversion
jct-obbba-revenue-estimates-2025 Microcosm US feed scope; a deferred, reviewed exclusion (the TY2025–28 tips and overtime anchors)
jrc-euromod-be-baseline-statistics-2025 No Microcosm consumer. The scorecard vendors the CSV, pinned at Chronicle 1cab809

Decisions queued (rulings needed before any data moves): d1822 (keep both JCT packages; move the comparison-only JRC EUROMOD-BE package to the scorecard), d1823 (edge-case treatment), d1824 (replace then remove isc and kff; drop ici; clean the two inventory/crosswalk items). Full audit and consumer trace are recorded outside the repo.

Chronicle Governance

  • Approved Chronicle agent role: ledger-contract-maintainer (docstring in chronicle/core.py, boundary docs). No source package, target profile, consumer contract, or schema changes.
  • Deterministic checks run: uv run pytest -q (full suite), ruff check at the locked ruff 0.14.10, and six mutants of the new guard (dropped entry, gov→non-gov flip, bad status, edge case without category, new folder, stale entry), each failing the test.
  • LLM judge verdicts:
    • ledger-source-fidelity: n/a (no facts change)
    • ledger-target-profile: n/a
    • ledger-contract: REVIEW_PLACEHOLDER
    • ledger-boundary: REVIEW_PLACEHOLDER

This PR touches the boundary's wording, not any source data.

Tests

  • tests/test_source_publishers.py (new): 3 tests; registry ↔ folder equality, status/category validity, no new non-government folders.
  • Full suite locally at 5e1b63a: uv run pytest -q → 5155 passed, 8 skipped (27.5 min).

🤖 Generated with Claude Code

…tion examples

Chronicle holds government-produced records only. State the rule in the
README, AGENTS.md, the governance doc and a 2026-10-21 amendment to the
facts-only ADR, and remove "TPC/JCT scores" from the source-projection
examples in all five places that named them (TPC is not a government
publisher; comparisons against outside scores live in the separate
scorecard).

docs/source-publishers.yaml names and classifies the publisher of all 55
source folders; tests/test_source_publishers.py fails on an unclassified
folder, a stale entry, or a new non-government folder beyond the three that
predate the rule (isc, ici, kff). The ADR amendment proposes the treatment of
edge cases (central banks, regulators, public corporations,
intergovernmental bodies, third-party hosts), which awaits a ruling. No
source package or data changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant