Part of #364 (D107 temporal clocks). Gates WP-T.1. Lands as an amendment to hard_forget_design.md §4 and the canary matrix (and postgres_schema_design.md §13.2), reviewed by Codex, before any WP-T.1 code.
Context
D74 requires every source-bearing field to be classified in the explicit scrub/residual inventory with a canary. D107 adds: seed_claim_id on both fact tables (design says scrubbed on hard forget); occurs_from/until/precision (design says recomputed from surviving evidence); temporal_window_verdicts (stores seed_claim_id, actor, rationale, before/after bounds — source-derived); temporal_window review-queue payloads; migration adjudications whose features carry legacy and converted bounds; fact_expiry_schedule rows; derived dated labels (obs_label, FactResult.label, profile lines, K sheet cells) and their P1 embeddings; and the populated relation_adjudications.triggering_claim_id.
What the spike must decide (Codex round 5, major 8)
For each item: delete / null / recompute, the order relative to claim and evidence deletion, what the canary asserts, and what residual (if any) is acceptable and documented. Specifically decide whether a verdict that cites a forgotten seed claim is kept with the reference nulled (append-only audit) or deleted, and whether a derived label that embedded a forgotten source's date must be regenerated from surviving evidence or dropped.
Acceptance
The hard-forget canary matrix covers every new column/table; a forget of a document whose claim seeded a fact leaves no reference to that claim anywhere (facts, verdicts, adjudication features, schedule, labels, embeddings) while the fact's surviving evidence still supports it.
🤖 Generated with Claude Code
Part of #364 (D107 temporal clocks). Gates WP-T.1. Lands as an amendment to
hard_forget_design.md§4 and the canary matrix (andpostgres_schema_design.md§13.2), reviewed by Codex, before any WP-T.1 code.Context
D74 requires every source-bearing field to be classified in the explicit scrub/residual inventory with a canary. D107 adds:
seed_claim_idon both fact tables (design says scrubbed on hard forget);occurs_from/until/precision(design says recomputed from surviving evidence);temporal_window_verdicts(storesseed_claim_id, actor, rationale, before/after bounds — source-derived);temporal_windowreview-queue payloads; migration adjudications whosefeaturescarry legacy and converted bounds;fact_expiry_schedulerows; derived dated labels (obs_label,FactResult.label, profile lines, K sheet cells) and their P1 embeddings; and the populatedrelation_adjudications.triggering_claim_id.What the spike must decide (Codex round 5, major 8)
For each item: delete / null / recompute, the order relative to claim and evidence deletion, what the canary asserts, and what residual (if any) is acceptable and documented. Specifically decide whether a verdict that cites a forgotten seed claim is kept with the reference nulled (append-only audit) or deleted, and whether a derived label that embedded a forgotten source's date must be regenerated from surviving evidence or dropped.
Acceptance
The hard-forget canary matrix covers every new column/table; a forget of a document whose claim seeded a fact leaves no reference to that claim anywhere (facts, verdicts, adjudication features, schedule, labels, embeddings) while the fact's surviving evidence still supports it.
🤖 Generated with Claude Code