100%

01 — Schema Foundation + Forward-Only Migration

Goal

Land every new evolution-entry/archive field as ONE forward-only migration with v2/v7 binding parity, keeping the 24 historical entries valid. Schema substrate before behavior consumes it.

Implementation Sketch

  • Add fields as OPTIONAL/additive (absent => pending, never a deferral), so historical entries validate unchanged.
  • migration 012 backfills defaults; version bump 7->8; consumer pin advances on next sync.
  • validate_evolution_entry is the binding-agnostic SSOT; both bindings call it.

Spec References

  • scripts/plan_corpus/schemas/v7/plan-routing.schema.json $defs/EvolutionEntry, $defs/GateMetric, $defs/SuccessCriterion
  • scripts/plan_corpus/schemas.py (v2 LedgerSchema, validate_evolution_entry, EVOLUTION_STATUSES)
  • learning-ledger.md §5 append-only, §7 physical bindings (v2+v7 parity)
  • scripts/plan_corpus/version.py CURRENT_SCHEMA_VERSION; migrations/NNN_*.py forward-only

Work Items

  • Extend $defs/EvolutionEntry (+ make $defs/GateMetric multi-objective-ready) in scripts/plan_corpus/schemas/v7/plan-routing.schema.json with: behavior_descriptor.mechanism_class (the plan-declared niche label), portfolio candidate-set fields, calibration_record, and non-scalar ratification fields; mirror every addition in the v2 LedgerSchema/validators in scripts/plan_corpus/schemas.py (binding parity).
  • Author forward-only migration scripts/plan_corpus/migrations/012_evolution_redesign_fields.py and bump version.py CURRENT_SCHEMA_VERSION 7 -> 8; backfill defaults so the existing 24 evolution entries stay schema-valid (append-only §5 intact — no entry rewritten).
  • Extend scripts/plan_corpus/tests/test_evolution_schema.py: v2 LEDGER.md and v7 plan.json produce IDENTICAL accept/reject for every new field (binding parity), plus a 24-historical-entries-still-valid regression.

Fresh intel (regenerated)

{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “evolution-empirical-redesign/s-fe628d76” }, “generated_at”: “2026-06-19T20:22:04.860133+00:00”, “graph_state”: { “head_sha”: “0c7294bd”, “last_code_import_at”: “2026-06-19T20:19:35.641Z”, “embedding_stale”: false, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:evolution-empirical-redesign/s-fe628d76] agent-authored dossier”, “degraded”: false, “dossier”: { “objective_symbols”: [], “tiers”: {}, “agent_authored”: true, “difficulty”: { “class”: “routine”, “research_online”: false, “research_mode”: “auto”, “signals”: [], “plan_dir”: “/home/eric/projects/ori_lang/plans/evolution-empirical-redesign” } } }

(full dossier: schema-foundation—s-fe628d76.intel.json)