Parent: #35 · Roadmap: docs/design/roadmap.md (candidates 1, 2, 4)
Skeleton — bodies to be filled in by the maintainer.
Problem
Canonical v2 is specified, but each analyzer projects it differently and nothing states which projection is correct. codeanalyzer-python uses 9 Neo4j merge labels and splits the body model across PyCallSite and PyCFGNode; codeanalyzer-typescript uses 2 (Application, CanNode) with a unified TSBodyNode; codeanalyzer-java has no statement-level nodes in Neo4j at all (.claude/SCHEMA_DECISIONS.md #9) and no can:// ids.
Scope boundary
Writes the contract. Does not migrate any analyzer, does not build the conformance suite or the parity gate (separate sub-issues), and does not settle the entrypoint vocabulary (its own design session).
Goals
Caveats and known risks
- TODO
- Java's statement-level CPG was deliberately deferred, not overlooked — the contract must state what it now requires and at what cost.
Definition of done
- TODO — exact conditions, not "spec written".
Parent: #35 · Roadmap:
docs/design/roadmap.md(candidates 1, 2, 4)Problem
Canonical v2 is specified, but each analyzer projects it differently and nothing states which projection is correct.
codeanalyzer-pythonuses 9 Neo4j merge labels and splits the body model acrossPyCallSiteandPyCFGNode;codeanalyzer-typescriptuses 2 (Application,CanNode) with a unifiedTSBodyNode;codeanalyzer-javahas no statement-level nodes in Neo4j at all (.claude/SCHEMA_DECISIONS.md#9) and nocan://ids.Scope boundary
Writes the contract. Does not migrate any analyzer, does not build the conformance suite or the parity gate (separate sub-issues), and does not settle the entrypoint vocabulary (its own design session).
Goals
kinddiscriminant, and what Java must addcan://grammar conformance: per-languagesignatureOf()pinned, including Java which has none todaydocs/design/specs/Caveats and known risks
Definition of done