{"id":"additive-surface","step":"Implement the surface additively","detail":"Add the page or export without removing or renaming any existing field; no scraping, jobs, runtime APIs, auth, or DB writes.","category":"build"}
{"id":"register-route","step":"Register the route","detail":"Add the path to the route catalog and the appropriate sitemap so it is discoverable and reconciled.","category":"build"}
{"id":"source-and-label","step":"Source and label every figure","detail":"Each number carries a sourceId and confidence; live figures carry as-of and last-reviewed dates; sample rows are labeled illustrative.","category":"build"}
{"id":"new-field","step":"Advertise one new export field","detail":"Add exactly one new top-level field to the dataset export so the version diff reports a real field delta.","category":"version"}
{"id":"bump-version","step":"Bump the export version","detail":"Increment DATASET_EXPORT_VERSION by one minor; never reuse or rewrite a released version.","category":"version"}
{"id":"snapshot-ladder","step":"Append to the snapshot ladder","detail":"Record the release with its addedFields, counts, and graph totals (append-only; past releases are never edited).","category":"version"}
{"id":"freeze-payload","step":"Freeze a byte-stable payload","detail":"Commit the complete export under payloads/<version>.json, served verbatim at the versioned data.json route.","category":"version"}
{"id":"add-test","step":"Add a focused test","detail":"Write a test for the new surface and append it to npm run audit:data.","category":"verify"}
{"id":"validate","step":"Run the full validation","detail":"Run lint, tests, build, and audit:data; all must pass before the release is committed.","category":"verify"}
{"id":"reconcile-catalog","step":"Reconcile the catalog","detail":"Confirm every advertised path resolves to a real route and the no-overclaim audit passes.","category":"verify"}
{"id":"no-overclaim","step":"Confirm honest framing","detail":"No fabricated data, no real-time or complete-coverage claims, no causal overclaims; associative language only.","category":"verify"}
{"id":"commit","step":"Commit the release","detail":"Commit separately with a concise message describing the additive change and the new field.","category":"ship"}
