You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
analysis.json: every body node carries id (the global ordinal <callable-id>@<local>) and every parameter carries id (<callable-id>@formal_in:<i>). Spec: codellm-devkit/.github docs/design/specs/2026-09-05-body-node-id-in-analysis-json.md, epic Epic: body nodes and parameters carry their id in analysis.json .github#56. The spine BodyNode lists kind, span, callee, of, parent only, and the language schemas close with unevaluatedProperties: false, so the python samples fail validation against the current files once regenerated.
Neo4j: _module is gone from every node, :PyCanNode marks every can://python/ node, PyApplication gained entrypoint_frameworks and entrypoint_report_json, PyAttribute/PyVariable ids changed shape, the _module indexes are replaced by one on PyCanNode.id. Contract version stays 2.0.0 (ruled: no released consumer pins it).
Scope boundary
Python's files, plus the spine field. Java and typescript get id under their own children of epic .github#56; their schema files change when they ship.
Goals
Spine analysis.schema.json: BodyNode.id and Parameter.id as required string fields
v2/json/python/analysis.schema.json closes with both
The three python samples regenerated from 1.4.1
v2/neo4j/python/schema.neo4j.json replaced byte-for-byte with 1.4.1's schema.neo4j.json (release asset schema.json)
README sources line: codeanalyzer-python v1.4.1
scripts/check.py green
Caveats and known risks
Making id required on the spine will fail the java and typescript samples until those analyzers emit it. Either mark it required per language and optional on the spine for now, and record the divergence under x-cldk.divergences, or hold the spine change until the first sibling ships. Decide in the PR; the spec says required.
Definition of done
python3 scripts/check.py passes on every schema and sample.
A python 1.4.1 analysis.json validates; a 1.4.0 one fails on the missing id (proves the closure is real).
Problem
codeanalyzer-python1.4.1 (https://github.com/codellm-devkit/codeanalyzer-python/releases/tag/v1.4.1) changed what it emits and this repo's copies are behind:analysis.json: every body node carriesid(the global ordinal<callable-id>@<local>) and every parameter carriesid(<callable-id>@formal_in:<i>). Spec: codellm-devkit/.githubdocs/design/specs/2026-09-05-body-node-id-in-analysis-json.md, epic Epic: body nodes and parameters carry their id in analysis.json .github#56. The spineBodyNodelistskind, span, callee, of, parentonly, and the language schemas close withunevaluatedProperties: false, so the python samples fail validation against the current files once regenerated._moduleis gone from every node,:PyCanNodemarks everycan://python/node,PyApplicationgainedentrypoint_frameworksandentrypoint_report_json,PyAttribute/PyVariableids changed shape, the_moduleindexes are replaced by one onPyCanNode.id. Contract version stays2.0.0(ruled: no released consumer pins it).Scope boundary
Python's files, plus the spine field. Java and typescript get
idunder their own children of epic .github#56; their schema files change when they ship.Goals
analysis.schema.json:BodyNode.idandParameter.idas required string fieldsv2/json/python/analysis.schema.jsoncloses with bothv2/neo4j/python/schema.neo4j.jsonreplaced byte-for-byte with 1.4.1'sschema.neo4j.json(release assetschema.json)scripts/check.pygreenCaveats and known risks
idrequired on the spine will fail the java and typescript samples until those analyzers emit it. Either mark it required per language and optional on the spine for now, and record the divergence underx-cldk.divergences, or hold the spine change until the first sibling ships. Decide in the PR; the spec says required.Definition of done
python3 scripts/check.pypasses on every schema and sample.analysis.jsonvalidates; a 1.4.0 one fails on the missingid(proves the closure is real).