ζ.3 Spike A1 — LinkML schema-evolution + semver migration — CLOSED 2026-05-03

Outcome: outcome-VALIDATED. Kill condition NOT-MET. Targets ζ-Q10 schema-migration policy.

Why: ν.α/ζ.3 SOTA-derisking suite Spike A1 (Plan §3 Task 4). Pre-validates substrate for ζ-Q10 formal asking. A2 SHACL invariants spike (Q-NU-005) depends on A1 outcome.

How to apply: When ζ-Q10 is formally asked under refined-prompt v3.8, pull up Q-NU-004 at docs-strategy/docs/superpowers/specs/2026-04-29-multi-phase-audit/current-questions/Q-NU-004-linkml-schema-evolution-migration-policy.md v0.1. σ.α (minor-only Phase-1 baseline) is Claude provisional pick. Score at formal asking time.

5 load-bearing findings

  1. Minor bump ~30-45 min/extension (Case 1 v3.0→v3.1): all 4 generators exit 0; deprecated slot preserved in gen-pydantic json_schema_extra; gen-typescript + gen-json-schema drop BY DESIGN.
  2. Major bump ~4-8h/extension (Case 2 v3.1→v4.0): manual reclassification required for class hierarchy restructuring. Expected semver-major behavior. Policy: minor-only Phase-1; major deferred Phase-1.5+.
  3. Partner extensions MUST import pip-installable INHERIT base. Standalone codegen fails without imports: [inherit-base]. INHERIT v2 MUST publish inherit-schema PyPI package before first partner onboarding.
  4. linkml-store has no Alembic-equivalent. T44 chunk #96 verbatim confirms data plane choice must be Supabase Postgres. Do NOT introduce linkml-store as secondary data plane without explicit migration tooling.
  5. ROBOT OWL DL/EL violations cosmetic (dcterms annotation-property only). rdflib confirms structural integrity (179-279 triples correct). Fix via dcterms import or CI suppression.

5-policy Phase-1 recommendation

  • Policy-1: Minor-version-only Phase-1 (v3.0→v3.1→v3.2); major reserved Phase-1.5+ with 90-day partner windows
  • Policy-2: pip-installable inherit-schema PyPI package mandatory before partner onboarding
  • Policy-3: mapping_set_version: "v3.N.0" in every SSSOM catalog (Mondo precedent validated S7)
  • Policy-4: ROBOT validate-profile at release CI — non-blocking annotation violations; blocking structural
  • Policy-5: linkml-store NOT as primary data plane (T44 verbatim; already locked in IAS arch-state)

Artefacts committed

  • T-file: ~/off-github/library/projects/inherit/T-spike-zeta-3-A1-linkml-schema-evolution-2026-05-03.md v1.0 — off-github commit 07332d1
  • Q-NU-004: docs-strategy/.../current-questions/Q-NU-004-linkml-schema-evolution-migration-policy.md v0.1 — docs-strategy commit d5aaf8f
  • Test cases: /tmp/spike-zeta-3-A1/test-cases/ (ephemeral; not committed)
  • Codegen results: /tmp/spike-zeta-3-A1/codegen-results.md (ephemeral)