Skip to content

ADR: raw microdata in Chronicle is identity, not content - #222

Open
MaxGhenis wants to merge 5 commits into
mainfrom
adr-raw-microdata-identity
Open

ADR: raw microdata in Chronicle is identity, not content#222
MaxGhenis wants to merge 5 commits into
mainfrom
adr-raw-microdata-identity

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Summary

Adds docs/adr-chronicle-raw-microdata-identity.md and amends the boundary docs to match. The store stays facts-only. What changes is narrow: Chronicle registers every raw microdata release its consumers build from (publisher, access route, vintage, SHA-256, licence, access class) as a source artifact, archives bytes only for redistributable public-use files, and never parses microdata into rows or facts or holds licensed bytes.

Why: raw pins in Microcosm are scattered across four mechanisms with no shared registry, licence record, or witnessed fetch time; publishers revise and withdraw files (IRS PUF, 2026); the node graph's roots deserve declared identity. Content stays out for the reasons in the ADR (registry and journal scale, licence terms, Thesis resolution substrate). The 2026-06-30 removal of microdata surfaces (#68) stands.

Docs touched: README boundary paragraph, docs/architecture.md ownership row, docs/storage-architecture.md (raw-archive paragraph, ownership matrix row, Non-Goals), docs/chronicle-governance.md (may / must-not lists, judge rule), AGENTS.md.

Implementation is tracked in #221 (manifest licence/access fields, hash-only registration, first registrations) and PolicyEngine/microcosm#848 (consumer-side references and fail-closed gate).

Chronicle Governance

This PR changes the documented source-data boundary (docs only, no code, no source packages, no schemas). None of the three agent roles' allowed paths cover docs; requesting a ledger-boundary judge read from the reviewer. Deterministic checks: tests/test_chronicle_boundaries.py, tests/test_chronicle_governance.py pass.

Tests

uv run pytest -q tests/test_chronicle_boundaries.py tests/test_chronicle_governance.py — 7 passed.

🤖 Generated with Claude Code

Register every raw microdata release consumers build from (publisher, vintage,
sha256, licence, access class) as a source artifact; archive bytes only for
redistributable public-use files; never parse microdata into rows or facts and
never hold licensed bytes. Narrows the storage and governance non-goals
accordingly and points README, architecture, and AGENTS at the ADR.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…icrodata identity ADR

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
MaxGhenis and others added 3 commits September 2, 2026 12:42
Require kind: microdata_release; define content as rows, cells, or facts;
say licensed or restricted bytes everywhere; narrow the fact prohibition to
facts computed directly from raw microdata; reference the country-aware key
convention; name the pending fail-closed path (chronicle#221); extend the
ledger-boundary judge contract and the package docstring to match.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…GENTS, the judge contract, and the package docstring

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ody, canonical prohibition vocabulary, hash attestation semantics, scoped harness plan

Byte custody now requires access public AND a licence on the redistributable
allowlist; the prohibition reads identically in the ADR, governance doc, judge
contract, README, architecture table, AGENTS, and package docstring (records,
rows, columns, row values, cells; facts derived from raw microdata by
Chronicle or a consumer; licensed or restricted bytes) and the governance test
pins the judge wording; hash_source and verified_at define what a
registration attests; the storage matrix says what exists today; the harness
plan is scoped to publisher aggregates; the key convention states the
unmapped-publisher fallback.

Co-Authored-By: Claude Fable 5.1 <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