LOC is NOT a significant metric for INHERIT v2 planning
Rule: Do not use “Lines of Code” / “LOC budget” / “LOC target” as a significant planning metric, scorecard criterion, completeness gate, or commitment artifact in INHERIT v2 / InheritKit / IAS work going forward.
Why: Rich directive 2026-04-26T07:00 (“i don’t think we should have Lines of Code as a significant metric”) — repeated correction. Precedent already locked at architecture-state v2.12 (2026-04-24T23:55) when Rich directed Wills brief Decision #5: “REPLACED LOC target with Gate 1/2/3 structural completeness metric (session-consistent with A-21/A-22/A-56/A-63/A-66/A-33; LOC falls where it falls)”. I carried “LOC budgets per module” into the §3 framing in plan-from-the-beginning §2.4 bridge text without honoring the precedent — Rich corrected.
LOC is a noise metric for spec / standard / formal-DSL work because:
- Schema density varies wildly across modules (Core has dense type axiomatisation; Commerce is structurally light)
- Catala / SHACL / LinkML LOC is not comparable to TS/Python LOC
- Verbose vs terse styles produce different LOC at same structural completeness
- LOC encourages padding (a known anti-pattern in formal-spec work)
- LOC backlash compresses what should be careful expression
How to apply:
- Never propose LOC budgets per module in any §3 / Phase-1 / Phase-1.5 / module-brief framing.
- Never use LOC as a scorecard criterion (
c2 Phase-1 LOC realismhistorically used in §2.2 scorecards is admissible only when it captures implementation effort proxy — but use sparingly and rename to “Phase-1 effort realism” or similar). - Replace LOC framings with:
- Gate 1/2/3 structural completeness (per A-21/A-22/A-56/A-63/A-66/A-33 — the session-consistent precedent)
- AC-1 cross-cut coverage (how many modules a primitive serves)
- Conformance tier (Bronze/Silver/Gold per Bowtie/FHIR-Inferno pattern)
- 21-v6.6-extensions coverage (Phase-1.5 stress-test fidelity)
- Primitive-count + classifier-count + VC-schema-count (already used; prefer these)
- CI-gate count (A-21 7→18 has tracked structural maturity better than any LOC metric would have)
- Historical LOC references in changelog entries are OK — they record what happened at the time. The directive is forward-looking only.
- If LOC sneaks into a phase / module / planning artifact, flag it immediately and propose the structural-completeness replacement.
Boundary test: “Am I proposing this as a target/budget/commitment, or just a passing observation?” If target/budget/commitment → drop it. If passing-observation in changelog/history → fine.
Recurrence-prevention pattern: when authoring §3 / §4 / §5 of plan-from-the-beginning, audit my own framing text for “LOC” / “Lines of Code” / “size budget” / “complexity budget” before sending. Catch in pre-send review, not via Rich correction.