Skip to content

Fold three concept-spelling duplicate lineages; defer entity-drift splits - #147

Merged
MaxGhenis merged 1 commit into
codex/thesis-ledger-factsfrom
curate/duplicate-lineages
Aug 7, 2026
Merged

Fold three concept-spelling duplicate lineages; defer entity-drift splits#147
MaxGhenis merged 1 commit into
codex/thesis-ledger-factsfrom
curate/duplicate-lineages

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Curation pass over the 10 duplicate-lineage families flagged after the v3 catalog rebuild (follow-up chip from #128's merge disposition).

What folds

Three same-dimension concept-spelling pairs — identical geography and entity key, so alias inheritance is in-dimension and no observation moves across identity slices:

Retired spelling (noted retire event) Surviving lineage
dol.eta.initial_claims.sa (330ec66b) 830e68bb
us.census.housing_starts.total_saar (d542cb8d) d0212a1e
us.frb.industrial_production.total.mom_sa (b5a74252) d5634fc4

Catalog: 209 → 206 series. Registry: +3 noted retire appends (216 entries), append-only. No surviving UUID changes; 171/171 observations preserved; all 83 docket-pinned UUIDs remain live. The identity-map sha256 anchor moves in this same diff, per its contract.

What does not fold, and why

The seven entity-drift families (May/June observations disagreeing on entity) would require moving observations across entity keys — exactly what dimension-scoped alias inheritance forbids, and a disposable-copy experiment confirmed regeneration restores the split. They are recorded with per-family blockers in docs/catalog-curation-backlog.md, alongside the us.dol.initial_claims.sa weekly/monthly split that awaits upstream cadence-metadata correction (the "monthly" rows carry week-ending identifiers and weekly-thousands values).

Verification

Adversarial review to follow before merge, per the standing gate (MERGE verdict + green CI).

🤖 Generated with Claude Code

…lits

Curation pass over the 10 duplicate-lineage families flagged after the v3
catalog rebuild. Three same-dimension concept-spelling pairs fold cleanly
(identical geography and entity, disjoint or continuous observations):

- dol.eta.initial_claims.sa -> survivor 830e68bb (us.dol spelling retired
  binding 330ec66b)
- us.census.housing_starts.total_saar -> survivor d0212a1e (retired
  d542cb8d)
- us.frb.industrial_production.total.mom_sa -> survivor d5634fc4 (retired
  b5a74252)

Three noted retire events append to the UUID registry; no surviving UUID
changes, no observation is lost (171/171 preserved), and all 83 docket-
pinned UUIDs remain live. Catalog: 209 -> 206 series, byte-idempotent
under regeneration, suspects=0, ambiguous_aliases=0.

The seven entity-drift families (May/June observations disagreeing on
entity) cannot fold without moving observations across entity keys, which
alias inheritance is dimension-scoped to forbid; a disposable-copy
experiment confirmed regeneration restores the split. They are recorded
with blockers in docs/catalog-curation-backlog.md, alongside the
us.dol.initial_claims.sa weekly/monthly split that awaits upstream cadence
metadata correction.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Adversarial review round 1 — verdict: MERGE (risk LOW, zero findings)

Reviewer: gpt-5.6-sol (ultra reasoning), read-only worktree, diff vs origin/codex/thesis-ledger-facts (990fc13b6173ba). REPORT verbatim:

REPORT
verdict: MERGE
risk: LOW
findings: []

Highlights of the reviewer's independent verification (full validation record in the review transcript):

  • Fold mechanism traced end to end: row deletion + survivor aliases perform the fold; the retire events record the resulting dormant bindings. A retire-only counterfactual regenerated 209 rows (reviving all three UUIDs), and alias-without-deletion was rejected as contradictory curation — confirming all three pieces of the diff are load-bearing.
  • Observation conservation proven: 171 distinct current records assigned exactly once before and after; each pair's 1+1 became the survivor's 2.
  • Docket safety: all 83 seed names retain identical pre/post candidate UUID sets, all live; the actual pins in the affected families (1ad67747, 8c999902, dbfd5050) sit on separate cadence/entity slices and remain live; no retired UUID or concept appears in the seed.
  • Registry: exact 213→216 append, three prior-live same-UUID noted retires, live bindings 209→206 matching the catalog, no UUID recycling.
  • Anchor digest recomputed independently (c82492ab…): exactly three identity lines removed, none added.
  • Backlog honesty reproduced: the CPI entity-drift fold was undone by regeneration (byte-identical restore), and the initial-claims cadence diagnosis matches the underlying records.
  • Test audit: 98 named test functions before and after; none removed or weakened.

Zero findings; merging on MERGE verdict + green CI per the standing gate.

@MaxGhenis
MaxGhenis merged commit 3fdc875 into codex/thesis-ledger-facts Aug 7, 2026
8 checks passed
@MaxGhenis
MaxGhenis deleted the curate/duplicate-lineages branch August 7, 2026 20:43
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