ν.β C2 — Cross-module reference resolution pattern — CLOSED 2026-05-04

Outcome: outcome-VALIDATED

Kill condition: NOT-MET (all 4 patterns produce 0-error codegen; P4-hybrid recommended)

Core empirical findings

Benchmark: 147 subprocess-isolated measurements (7 schemas × 3 generators × 7 trials); 0 errors; all patterns gen-pydantic + gen-json-schema + gen-shacl succeed.

SHACL: 6/6 boundary tests pass (pySHACL 0.31.0). P1-closed REJECTS partner-ext triples. P2/P4-open ACCEPT all.

Critical discovery: gen-shacl DEFAULT = --closed. Every INHERIT v2 CI pipeline MUST use --non-closed explicitly. Without it, all partner-extension triples are rejected silently. This extends ν.α A2 open-shape finding.

4-Pattern matrix

PatternCodegenSHACL defaultCatalaPartner extScore
P1-MonorepoOKsh:closed trueFULLBLOCKED2/5
P2-Pip-moduleOKsh:closed true (→ —non-closed)PARTIALOK4/5
P3-IRI-onlyOKsh:closed falseNONEOK3/5
P4-HybridOKsh:closed true (→ —non-closed)STRUCTUREDOK5/5

P4-Hybrid: base module defines InheritEntity + Person + CrossModuleRef (target_iri + target_type + target_module); domain modules import base only; CI gen-shacl MUST use —non-closed.

A-21 CI gate candidate

G-SHACL-OPEN-FLAG-ENFORCED: verify —non-closed flag in CI gen-shacl invocation. Pre-staged, not yet A-N registered.

Files

  • T-file: ~/off-github/library/projects/inherit/T-spike-nu-beta-C2-cross-module-reference-resolution-2026-05-04.md
  • Q-NU-007: ~/testatetech/docs-strategy/docs/superpowers/specs/2026-04-29-multi-phase-audit/current-questions/Q-NU-007-cross-module-reference-resolution-pattern.md
  • Scratch: /tmp/spike-nu-beta-C2/ (benchmark.py, benchmark-results.txt, shacl-boundary-test.py, shacl-results.txt, catala-results.txt, prior-evidence.md)

Forward traceability

  • ζ-Q12 formal ask → Q-NU-007 graduates to Q-012
  • Phase-1 Sprint S1 schema commit → P4-Hybrid implemented
  • A-21 CI gate extension → G-SHACL-OPEN-FLAG-ENFORCED