Gap: Episode 04 cannot distinguish survivor from archive_ghost — canon.json lacks lifecycle state, choice schema, or provenance binding. Replace: - Add form.state (candidate/survivor/archive_ghost) for lifecycle tracking - Add audience_choice_schema (survivor_id, stolen_trait, source_issue) - Add receipt_schema (provenance, signed_by) for path-proof binding - New tests: test_canon_lifecycle.py (5 tests) Acceptance: All 8 canon tests pass (3 original + 5 lifecycle).
1.6 KiB
1.6 KiB