PROBLEM
skills/codeanalyzer-backend/references/neo4j-projection.md documents the label-namespacing convention as: "Java prefixes relationship types (J_HAS_UNIT, J_CALLS); Python uses PY_; TypeScript (and a new bare-namespaced language) uses unprefixed names. Pick one convention and hold it." That blessing of bare namespacing is what produced the TS divergence now being fixed (see the epic). The convention must become prescriptive.
SCOPE BOUNDARY
Doc change only, but covering EVERY copy of the reference in this repo (the plugin and sdd skill trees both carry it) — grep for other statements of the old convention (e.g. skill prose citing TS as unprefixed) and update them in the same PR. Note: this repo was formerly codellm-devkit/cldk-forge; stale clones may point at the old remote.
GOALS
- Rewrite the namespacing section to mandate, for every analyzer: a CamelCase language tag on every specific node label (
JCallable, PyCallable, TSCallable) and an UPPER_SNAKE tag on every relationship type (J_CALLS, PY_CALLS, TS_CALLS). Remove the bare-namespaced option.
- Document the two carve-outs: the shared canonical merge label (
CanNode, keyed on can:// ids that embed the language) is unprefixed by design; and dual-labeling (bare + prefixed twin at a MINOR, drop bare at the next MAJOR) is the sanctioned migration path for an already-shipped unprefixed projection.
- Update the TypeScript examples/rows in the same file to the prefixed forms, noting the staged versions (1.1.0 dual, 2.0.0 prefixed-only).
CAVEATS AND KNOWN RISKS
- The doc also records per-language merge keys and schema versions ("Python is at 1.1.0 over Java's 1.0.0") — refresh those lines while touching the file so the reference doesn't ship half-updated.
DEFINITION OF DONE
- No sentence in the reference permits an unprefixed specific label or relationship type for a new analyzer.
- The carve-outs and the dual-label staging pattern are documented with the TS migration as the worked example.
Part of codellm-devkit/codeanalyzer-typescript#64
PROBLEM
skills/codeanalyzer-backend/references/neo4j-projection.mddocuments the label-namespacing convention as: "Java prefixes relationship types (J_HAS_UNIT,J_CALLS); Python usesPY_; TypeScript (and a new bare-namespaced language) uses unprefixed names. Pick one convention and hold it." That blessing of bare namespacing is what produced the TS divergence now being fixed (see the epic). The convention must become prescriptive.SCOPE BOUNDARY
Doc change only, but covering EVERY copy of the reference in this repo (the plugin and sdd skill trees both carry it) — grep for other statements of the old convention (e.g. skill prose citing TS as unprefixed) and update them in the same PR. Note: this repo was formerly codellm-devkit/cldk-forge; stale clones may point at the old remote.
GOALS
JCallable,PyCallable,TSCallable) and an UPPER_SNAKE tag on every relationship type (J_CALLS,PY_CALLS,TS_CALLS). Remove the bare-namespaced option.CanNode, keyed oncan://ids that embed the language) is unprefixed by design; and dual-labeling (bare + prefixed twin at a MINOR, drop bare at the next MAJOR) is the sanctioned migration path for an already-shipped unprefixed projection.CAVEATS AND KNOWN RISKS
DEFINITION OF DONE
Part of codellm-devkit/codeanalyzer-typescript#64