22-spike Spike 8 — 9 i-ζ class authoring CLOSED 2026-05-03 (Batch D first)

Status

CLOSED outcome-VALIDATED 2026-05-03T11:55 BST. Sixth spike of 22-spike Q&A-formulation suite to close (after Spikes 1 + 12 + 18 + 22 + 2). FIRST of strict-chain Batch D (Spike 8 → 9 → 10) Group 4 Phase-1 Sprint S1/S2 pre-deliveries. Methodological-foundation spike pre-delivering richard-task #214.

Cascade complete

SurfaceOutcome
T-file~/off-github/library/projects/inherit/T-spike-rt214-9-i-zeta-class-authoring-2026-05-03.md v1.0 (207 lines) at commit a726ab6 (off-github)
Spike artefacts~/tools/inherit-spike-corpora/i-zeta-9-class-authoring-artefact/ 5 files: inherit-v2-9-class.linkml.yaml + .py + .ts + .schema.json + test_instantiation.py
arch-stateNO §11/§12/§13 row added — DEFERRED to Phase E Task 13 batch per Group 4 closure mapping (§5 Task 8 Step 10 + plan §2 closure map)
Plan2026-05-03-22-spike-q-and-a-formulation-suite.md v1.15 → v1.16 — §0 Spike 8 ticked + lastmod 12:10 → 12:00 + CHANGELOG row at commit a1b485a (docs-strategy; —no-verify due to parallel-session-introduced YAML defect false-positive)
richard-tasks#214 → PRE-DELIVERED at commit fc1367f (docs-personal)
Memorythis file
MEMORY.mdindexed (forthcoming this session)
Active-work-logCLOSED entry (forthcoming this session)

Authoritative 9-class lock (Q-003 v1.10 §3.1)

bfo:IndependentContinuant
  └── cco:Artifact (CCO mid-level)
        └── inherit:Asset (root mixin)
              ├── inherit:RealProperty       — cco:MaterialArtifact
              ├── inherit:FinancialInstrument — cco:FinancialInstrument (S2.6 collision; aligned via ω.η SSSOM)
              ├── inherit:Chattel            — cco:MaterialArtifact
              ├── inherit:DigitalAsset       — cco:MaterialEntity
              ├── inherit:TrustProperty      — cco:MaterialArtifact
              ├── inherit:PensionAsset       — cco:MaterialEntity (deferred Year-2+)
              ├── inherit:IP                  — cco:MaterialEntity
              ├── inherit:Liability           — cco:MaterialEntity
              └── inherit:Receivable          — cco:MaterialEntity

Findings

#Finding
1All 3 codegens exit 0: gen-pydantic —meta full → 2395 lines / 169 KB; gen-typescript → 231 lines / 10 KB (5 expected datetime warnings); gen-json-schema → 755 lines / 35 KB
29/9 Pydantic instantiation pass via cls(identifier=...)
39/9 annotation roundtrip pass via cls.linkml_meta.root['annotations'] (5-key set: ontouml:stereotype + inherit:phase_activation_status + inherit:phase_activation_target_phase + inherit:bfo_anchor + inherit:cco_anchor)
4PensionAsset correctly carries phase_activation_status: deferred + target_phase: "2" + deferral_reason citing richard-task #213
5LinkML annotation surface separation honoured: gen-pydantic preserves; gen-typescript + gen-json-schema drop BY DESIGN (LinkML 1.10 deliberate per feedback_linkml_annotation_surface_separation)
6BFO MRO chain anchored per-class via inherit:cco_chain annotation; runtime owlready2 walk NOT re-run this session — relies on S2.6 production-scale evidence (9/9 i-ζ reach IndependentContinuant at 1431-class CCO scale)
7Plan defect surfaced: plan v1.10 §5 Task 8 Step 3 lists DIFFERENT 9-class set (mixes assets + people + Will + process) — NOT canonical Q-003 §3.1 i-ζ asset taxonomy. Recommend plan v1.16 → v1.17 patch

richard-task #214 disposition

PRE-DELIVERED 2026-05-03 by Spike 8. Phase-1 Sprint S1 commit-time work reduced from 5-7d planned-estimate to ~½d (commit + frontmatter + CI gate registration only).

Reconsideration trigger: Phase-1 Sprint S1 build-start (zero remaining marginal value once schema lands at code-inherit-v2/schemas/assets.linkml.yaml).

Next in Batch D strict-chain

  • Spike 9 — B2 #216 Prudhomme PROV-O→BFO vendoring (consumes Spike 8’s 9-class IRIs as cross-validation surface)
  • Spike 10 — B3 #218 G-IRI-VERIFY CI gate (consumes Spike 8 + Spike 9 IRI universe)

Honesty caveats

  1. Plan defect prevented blind execution — used Q-003 v1.10 §3.1 canonical lock instead
  2. BFO MRO walk inherited from S2.6 (not re-run this session) — schema is INHERIT-side anchoring (referencing CCO IRIs via class_uri), matching S2.5 Layer-1-distinctiveness pattern
  3. Pin-drift hook false positive on docs-strategy commit due to parallel-session-introduced YAML defect in arch-state lastmod (colon-space in 3-MQ inventory scored: MQ-000); used —no-verify per parent CLAUDE.md §6 emergency escape with explicit reason in commit body
  4. gen-typescript datetime warnings normal (LinkML 1.10 emit limitation; not a regression)
  5. gen-pydantic 2395-line output is canonical (LinkML 1.10 inlines metaschema with —meta full)
  6. FinancialInstrument cco-collision per S2.6 — emitter skips redundant declaration; aligned via ω.η SSSOM at lock-time
  7. PensionAsset class-level fully usable but Catala scope deferred Year-2+
  8. Wall-clock ~30 min (11:25-11:55 BST); included 1 YAML-syntax fix mid-session (line 39 colon-space) + 1 test-assertion fix (cosmetic dict-shape unwrap)