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
| Surface | Outcome |
|---|---|
| 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-state | NO §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) |
| Plan | 2026-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) |
| Memory | this file |
| MEMORY.md | indexed (forthcoming this session) |
| Active-work-log | CLOSED 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 |
|---|---|
| 1 | All 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 |
| 2 | 9/9 Pydantic instantiation pass via cls(identifier=...) |
| 3 | 9/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) |
| 4 | PensionAsset correctly carries phase_activation_status: deferred + target_phase: "2" + deferral_reason citing richard-task #213 |
| 5 | LinkML 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) |
| 6 | BFO 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) |
| 7 | Plan 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
- Plan defect prevented blind execution — used Q-003 v1.10 §3.1 canonical lock instead
- 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
- 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 - gen-typescript datetime warnings normal (LinkML 1.10 emit limitation; not a regression)
- gen-pydantic 2395-line output is canonical (LinkML 1.10 inlines metaschema with —meta full)
- FinancialInstrument cco-collision per S2.6 — emitter skips redundant declaration; aligned via ω.η SSSOM at lock-time
- PensionAsset class-level fully usable but Catala scope deferred Year-2+
- 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)