Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,21 @@ milestones on `main`.
checks.
- Moved completed `EvidenceSet` delivery truth out of future-tense planning
language and tightened durable doc checks against ephemeral delivery labels.
- Added Coinbase `ClaimSet` authority, claim-stage assessment sidecars, and a
compatibility view back into the current normalization bridge.
- Added planner-enabled Coinbase `ClaimSet` authority, deterministic
claim-stage gap and review sidecars, and `draft_projection_fields.json`
compatibility output under `working/products/claim_sets/`.
- Added derived `EconomicActivityDraft` and `SourceTranslationBatch`
compatibility rebuilding from authoritative `ClaimSet` plus the declared
bridge-only claim sidecar fields.
- Added authoritative `EconomicFacts`, `ReconciliationState`, and `Checkpoint`
kernels for the bounded planner-enabled Coinbase slice, with normalization
persisting those product roots and mirroring target-derived
compatibility `facts.csv`, `balance_snapshots.csv`, and
`balance_references.csv` back into the existing capture output tree.
- Split live repo docs enforcement between `docs-maintenance`,
`target-naming`, and `docs-audit` as script-owned checks instead of pytest.
- Hardened repo-native PR review routing, quality-gate selection, and current
runtime delivery guardrails around the rebuilt typed architecture.

## 2026-04-01

Expand Down
133 changes: 41 additions & 92 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ These anchors drive sequencing and acceptance criteria:

## Phase 0. Contract Lock And Bounded-Slice Prep

Phase 0 is complete. Its durable outputs now live on the owner docs that carry
Phase 0 is complete. Its durable outputs live on the owner docs that carry
ongoing contracts and migration rules:

- [Bridge To Target Mapping](docs/concepts/bridge-to-target-mapping.md)
Expand All @@ -88,7 +88,7 @@ those owner docs rather than restating them here.

## Phase 1. `EvidenceSet` Is Complete

Phase 1 is complete. Its implemented runtime truth and durable references now
Phase 1 is complete. Its implemented runtime truth and durable references
live on the owner surfaces that describe the active bridge boundary and product
outputs:

Expand All @@ -97,107 +97,56 @@ outputs:
- [Evidence And Claim Contract](docs/reference/evidence-claim-contract.md)
- [CHANGELOG.md](CHANGELOG.md)

## Phase 2. Land `ClaimSet`
## Phase 2. `ClaimSet` Is Complete

Goal:

- interpose a real claim stage between evidence capture and final economic
truth

Deliver:

- evidence-local `ClaimSet` emission keyed by `claim_set_id`
- explicit claim scopes, mutually exclusive claim bundles, and
claim-bundle-decision records
- claim fields frozen for the first upstream slice plus
`observation_refs`
- shared gap and review outputs attached to claim scopes where needed, with any
readiness views staying local to the claim-owning capability
- declared compatibility views for `EconomicActivityDraft` and
`SourceTranslationBatch`, with legacy hint fields kept outside `ClaimSet`
kernels

Exit criteria:

- ambiguous source meaning can remain explicit without being forced into final
economic meaning
- claim-bundle decisions remain claim-owned and do not carry economic
truth

Transition to Phase 3:

- downstream bridge outputs stay on the live bridge path until
`EconomicFacts` exists
- the first downstream slice is the first slice that turns those downstream
bridge outputs into target-derived compatibility views

## Phase 3. Land `EconomicFacts`

Goal:

- move accepted economic meaning off the bridge fact path and onto the target
economics layer

Deliver:

- `EconomicFacts` kernels keyed by `economic_facts_id` over ordered
`claim_set_refs`
- `EconomicEventRecord`, `EconomicLegRecord`, and `ValuationRecord`
- claim-bundle-derived event identity
- bridge compatibility view for `TransactionFact`
- parity coverage for the first claim-to-economics slice

Exit criteria:

- accepted economic meaning is no longer constrained by bridge activity labels
- at least one bounded slice proves target economic modeling without wrapper
lanes

## Phase 4. Land `ReconciliationState`

Goal:

- move continuity, linkage, completeness, and checkpoint proposal records onto an
explicit reconciliation product

Deliver:
Phase 2 is complete. Its implemented runtime truth and durable references
live on the owner surfaces that describe the active claim-stage authority and
the retained bridge compatibility boundary:

- `ContinuitySegmentRecord`, `BalanceTargetRecord`, and
`CheckpointProposalRecord` for the first downstream slice
- `EventLinkRecord` when a later in-phase reconciliation increment needs
explicit event linkage rather than inferred continuity alone
- direct `AssertionValue` fields for expected and observed balance meaning
- fixed subject and position identity seams for in-scope reconciliation
- bridge compatibility view for `balance_snapshots.csv`
- [Current State](docs/status/current-state.md)
- [Evidence And Claim Contract](docs/reference/evidence-claim-contract.md)
- [Architecture Overview](docs/concepts/architecture-overview.md)
- [Product Outputs](docs/workspace/working/products/README.md)
- [CHANGELOG.md](CHANGELOG.md)

Exit criteria:
## Phase 3. `EconomicFacts` Is Complete

- reconciliation is expressed as explicit continuity and completeness decisions
- exact balance assertions are one reconciliation concern, not the whole
product
Phase 3 is complete. Its implemented runtime truth and durable references
live on the owner surfaces that describe the active downstream economics
authority and retained compatibility views:

## Phase 5. Land `Checkpoint`
- [Current State](docs/status/current-state.md)
- [Architecture Overview](docs/concepts/architecture-overview.md)
- [Economics Reconciliation Checkpoint Contract](docs/reference/economics-reconciliation-checkpoint-contract.md)
- [Migration Sequence](docs/status/migration-sequence.md)
- [Product Outputs](docs/workspace/working/products/README.md)
- [CHANGELOG.md](CHANGELOG.md)

Goal:
## Phase 4. `ReconciliationState` Is Complete

- make accepted checkpoint truth and acceptance basis explicit
Phase 4 is complete. Its implemented runtime truth and durable references
live on the owner surfaces that describe the active downstream reconciliation
authority and retained compatibility views:

Deliver:

- `CheckpointRecord` and `CheckpointAssertionRecord`
- explicit trust level, acceptance basis, support kind, and continuity kind
- direct `AssertionValue` accepted truth
- bridge compatibility view for `balance_references.csv`
- [Current State](docs/status/current-state.md)
- [Architecture Overview](docs/concepts/architecture-overview.md)
- [Economics Reconciliation Checkpoint Contract](docs/reference/economics-reconciliation-checkpoint-contract.md)
- [Migration Sequence](docs/status/migration-sequence.md)
- [Product Outputs](docs/workspace/working/products/README.md)
- [CHANGELOG.md](CHANGELOG.md)

Exit criteria:
## Phase 5. `Checkpoint` Is Complete

- accepted checkpoint truth is explicit, not an inferred side effect
- statement-backed checkpoint acceptance is separated cleanly from manual-only
runtime aids
Phase 5 is complete. Its implemented runtime truth and durable references
live on the owner surfaces that describe the active downstream checkpoint
authority and retained compatibility views:

Phases 6 and later remain intentionally high-level in this round. This roadmap
repair makes Phase 0 to Phase 5 implementation decision-complete without
defining bounded slices for later downstream products yet.
- [Current State](docs/status/current-state.md)
- [Architecture Overview](docs/concepts/architecture-overview.md)
- [Economics Reconciliation Checkpoint Contract](docs/reference/economics-reconciliation-checkpoint-contract.md)
- [Migration Sequence](docs/status/migration-sequence.md)
- [Product Outputs](docs/workspace/working/products/README.md)
- [CHANGELOG.md](CHANGELOG.md)

## Phase 6. Land `Journal`

Expand Down
5 changes: 3 additions & 2 deletions docs/concepts/architecture-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ The target runtime pipeline is:
`EvidenceSet -> ClaimSet -> EconomicFacts -> ReconciliationState -> Checkpoint -> Journal -> TaxInputs -> TaxOutputs`

Within that pipeline, `EvidenceSet` and `ClaimSet` are already the implemented
authorities for the bounded planner-enabled Coinbase slice. Downstream target
products remain future work.
authorities for the bounded planner-enabled Coinbase slice. `EconomicFacts`,
`ReconciliationState`, and `Checkpoint` are authorities for the bounded
downstream Coinbase slice, while direct reader cutovers remain later work.

The primary contract pages freeze product ids, product headers, critical-path
kernel field tables, and the compatibility sidecar boundary for retained legacy
Expand Down
14 changes: 9 additions & 5 deletions docs/concepts/bridge-to-target-mapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,11 +89,15 @@ No-dual-center rule:
- none of those surfaces may remain a second architecture center once the
corresponding target product is authoritative for that scope
- broader grouped consumers stay on authoritative kernels, compatibility views, or tax-output-local and rendering-local derived outputs while broader derived read models and projections stay deferred, and they move only when a later capability-specific increment requires a dedicated derived read-model slice
- before the economics/reconciliation/checkpoint contract lands,
`TransactionFact` and `facts.csv` remain on the live bridge fact path; the
evidence/claim contract may preserve downstream parity only through that
existing bridge path and must not
introduce a second fact-reducer lane from `ClaimSet`
- the bounded economics/reconciliation/checkpoint contract is now implemented
for planner-enabled Coinbase normalization, so `TransactionFact`,
`facts.csv`, `balance_snapshots.csv`, and `balance_references.csv` are
target-derived compatibility views for the current readers that still depend
on those bridge-local surfaces
- the evidence/claim contract still does not authorize a second independent
fact-reducer lane from `ClaimSet`; downstream parity now flows through the
authoritative `EconomicFacts`, `ReconciliationState`, and `Checkpoint`
kernels instead

## Cutover Matrix

Expand Down
6 changes: 4 additions & 2 deletions docs/reference/evidence-claim-contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,17 @@ This slice is:
- recognized Coinbase statement document selection
- statement-backed balance-row observations under selected statement documents
- bounded `EvidenceSet` emission for that slice
- bounded `ClaimSet` emission for that slice
- bounded `ClaimSet` emission for that slice, which is now implemented for the
planner-enabled Coinbase slice
- continued compatibility with current `translation_input_plan.json`,
`EconomicActivityDraft`, and `SourceTranslationBatch`

The slice is not:

- the actual filing adapter inventory for `2023` to `2025`
- a repo-wide claim migration
- a replacement for `EconomicFacts`, `ReconciliationState`, or `Checkpoint`
- a replacement for already-separated downstream `EconomicFacts`,
`ReconciliationState`, or `Checkpoint` authorities
- a broad unified-adapter facet rollout

## `EvidenceSet` Coverage
Expand Down
26 changes: 19 additions & 7 deletions docs/status/current-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ The repo currently ships typed replacements for the current workflow capabilitie
`translation_input_issues.csv` before translation, blocks ambiguous file
selection, and records translation planner metrics in
`normalization_summary.json`
- planner-enabled Coinbase normalization now also emits
- planner-enabled Coinbase normalization also emits
`working/products/evidence_sets/<evidence_set_id>/evidence_set.json` as the
authoritative kernel for the bounded evidence-selection and typed
statement-observation scope, with
Expand All @@ -79,8 +79,18 @@ The repo currently ships typed replacements for the current workflow capabilitie
claim-stage assessment sidecars and
`compatibility/draft_projection_fields.json`, then derives the current
`EconomicActivityDraft` bridge outputs from that persisted `ClaimSet`
- downstream bridge authorities for facts, balances, and checkpoints remain
unchanged until the later target products land
- planner-enabled Coinbase normalization also emits
`working/products/economic_facts/<economic_facts_id>/economic_facts.json`,
one or more
`working/products/reconciliation_states/<reconciliation_state_id>/reconciliation_state.json`,
and zero or more
`working/products/checkpoints/<checkpoint_id>/checkpoint.json`, each with
product-local compatibility facts, snapshots, or references derived from the
authoritative downstream kernels
- `ClaimSet`, `EconomicFacts`, `ReconciliationState`, and `Checkpoint` are
therefore implemented authorities for the bounded planner-enabled Coinbase
slice, while current readers still consume the mirrored compatibility
`facts.csv`, `balance_snapshots.csv`, and `balance_references.csv` outputs
- source assembly via `source assemble`, producing reconciliation-ready source
datasets under `working/normalized/sources/<source>/` and rewrites its owned
generated artifact set on rerun
Expand Down Expand Up @@ -132,11 +142,13 @@ The repo currently ships typed replacements for the current workflow capabilitie
compatibility plan, the mirrored legacy `translation_input_plan.json`, and
the legacy planner candidates and issues artifacts for operator review.
- Successful non-planner normalization leaves `evidence_set_id` and
`evidence_set_ref` empty in response and summary surfaces.
`evidence_set_ref` empty, and out-of-slice normalization also leaves the new
downstream product ids and refs empty in response and summary surfaces.
- For planner-enabled Coinbase normalization,
`translation_input_plan.json` is a compatibility view derived from the
authoritative `EvidenceSet` kernel. Downstream bridge authorities for
facts, balances, and checkpoints remain unchanged.
authoritative `EvidenceSet` kernel. The mirrored `facts.csv`,
`balance_snapshots.csv`, and `balance_references.csv` artifacts are
target-derived compatibility views owned by the downstream product kernels.
- Capture-scoped normalized outputs live under `working/normalized/captures/`.
- Reconciliation reads assembled source datasets under
`working/normalized/sources/`.
Expand Down Expand Up @@ -179,7 +191,7 @@ The repo currently ships typed replacements for the current workflow capabilitie
## Current Migration Notes

- Translation input planning is opt-in per adapter during the first increment.
- Coinbase is the first planner-enabled adapter and now describes retail CSV
- Coinbase is the first planner-enabled adapter and describes retail CSV
candidates instead of choosing one file by path order.
- Legacy adapters still use the fallback `translate(...)` path until their
candidate overlap and replacement rules are modeled well enough to migrate
Expand Down
11 changes: 9 additions & 2 deletions docs/status/migration-sequence.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,10 @@ aligned and frozen.

### 2. Evidence And Claim Contract

Keep the bounded
The bounded
[`EvidenceSet -> ClaimSet`](../reference/evidence-claim-contract.md) contract.

Required posture:
Implemented posture:

- `EvidenceSet` becomes authoritative for in-scope evidence selection
- `ClaimSet` is the remaining upstream authority slice for in-scope
Expand All @@ -135,6 +135,9 @@ Required posture:
economics/reconciliation/checkpoint contract makes the downstream target
products authoritative for that scope

This evidence-and-claim contract is already implemented for the bounded
planner-enabled Coinbase slice.

### 3. Economics Reconciliation Checkpoint Contract

Land the bounded
Expand All @@ -153,6 +156,10 @@ Required posture:
This contract is therefore the first increment that converts
downstream bridge surfaces into target-derived compatibility views.

This contract is implemented for the bounded planner-enabled Coinbase slice.
Current facts, balance snapshots, and balance references remain on the
compatibility path for readers until the later reader-cutover work lands.

### 4. Reader Cutovers

After those slices land, migrate readers one consumer surface at a time:
Expand Down
20 changes: 16 additions & 4 deletions docs/workspace/working/products/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ naming_scope: workspace_reference
Use this subtree for authoritative target-product kernels and any product-local
compatibility views that are derived from those kernels.

Current implemented runtime surface:
Current runtime surface:

- `working/products/evidence_sets/<evidence_set_id>/evidence_set.json` is the
authoritative `EvidenceSet` kernel for the bounded evidence-selection and
Expand All @@ -25,9 +25,21 @@ Current implemented runtime surface:
`assessment/review/` store deterministic claim-stage gap and review sidecars,
even when those arrays are empty
- `working/products/claim_sets/<claim_set_id>/compatibility/draft_projection_fields.json`
stores the retained bridge-only draft projection fields used to rebuild
`EconomicActivityDraft` and `SourceTranslationBatch`
stores the retained bridge-only draft projection fields and compatibility
annotation payloads used to rebuild `EconomicActivityDraft`,
`SourceTranslationBatch`, and downstream compatibility annotations
- `working/products/economic_facts/<economic_facts_id>/economic_facts.json`
is the authoritative `EconomicFacts` kernel for the bounded downstream
Coinbase slice, with `compatibility/facts.csv` and
`compatibility/fact_annotations.json` derived from that kernel
- `working/products/reconciliation_states/<reconciliation_state_id>/reconciliation_state.json`
is the authoritative `ReconciliationState` kernel for one bounded continuity
segment in that slice, with `compatibility/balance_snapshots.csv` derived
from that kernel
- `working/products/checkpoints/<checkpoint_id>/checkpoint.json` is the
authoritative `Checkpoint` kernel for one accepted as-of point in that
slice, with `compatibility/balance_references.csv` derived from that kernel

The normalized capture output under `working/normalized/captures/<capture_uid>/`
may still mirror retained compatibility files for current readers, but the
authoritative kernel lives here once a product has landed.
authoritative kernel lives here when a product is authoritative.
Loading
Loading