Is your feature request related to a problem? Please describe.
Spec: docs/design/specs/2026-09-09-schema-uptake-on-release.md · Epic: codellm-devkit/.github#73
This repo's release workflow already emits its Neo4j graph contract as a release asset, but nothing carries either the contract or the analysis.json samples into the shared contract repo, codellm-devkit/codeanalyzer-schema. That repo refreshes by hand, which means late: on 2026-09-09 its copy of this analyzer was java 3.0.1 against a released 3.1.1, and across the three analyzers the python contract still declared a _module property that 1.4.1 had removed. Nothing is wrong with the analyzer; the record of what it emits drifts, silently, because nothing fails when it is stale.
Describe the solution you'd like
Describe alternatives you've considered
Not stated in the original issue.
Additional context
Scope boundary
One step at the end of the release job, gated on a tag. Does not change what this analyzer emits. Does not touch analysis.schema.json in the contract repo — that file is hand-written, not analyzer output. Does not add CI to the contract repo to gate the resulting PRs; that is left open in the spec.
Caveats and known risks
- The token is
ORG_DISCUSSIONS_TOKEN, already used cross-repo by these workflows. The repos describe its scope inconsistently, so it may lack contents:write on the contract repo; the step names CLDK_AUTH_TOKEN as the documented repo-scope alternative when it fails.
- The step adds fixture runs to release time.
- It cannot be exercised without pushing a tag, so the first real release is its first test. It is gated and last in the job, so a failure there cannot affect the published release.
Definition of done
- A tagged release opens a PR on
codeanalyzer-schema containing only this analyzer's files, at paths matching that repo's existing layout.
python3 scripts/check.py passes in the contract repo with the PR applied.
Is your feature request related to a problem? Please describe.
Spec:
docs/design/specs/2026-09-09-schema-uptake-on-release.md· Epic: codellm-devkit/.github#73This repo's release workflow already emits its Neo4j graph contract as a release asset, but nothing carries either the contract or the
analysis.jsonsamples into the shared contract repo,codellm-devkit/codeanalyzer-schema. That repo refreshes by hand, which means late: on 2026-09-09 its copy of this analyzer was java 3.0.1 against a released 3.1.1, and across the three analyzers the python contract still declared a_moduleproperty that 1.4.1 had removed. Nothing is wrong with the analyzer; the record of what it emits drifts, silently, because nothing fails when it is stale.Describe the solution you'd like
releasejob, gated onstartsWith(github.ref, 'refs/tags/')v<major>/neo4j/java/and the samples tov<major>/json/java/, each<major>derived from that document's ownschema_versionuptake/java-v<version>; a re-run of the same tag updates that branch rather than opening a second PRcontents:writeon the contract repoDescribe alternatives you've considered
Not stated in the original issue.
Additional context
Scope boundary
One step at the end of the
releasejob, gated on a tag. Does not change what this analyzer emits. Does not touchanalysis.schema.jsonin the contract repo — that file is hand-written, not analyzer output. Does not add CI to the contract repo to gate the resulting PRs; that is left open in the spec.Caveats and known risks
ORG_DISCUSSIONS_TOKEN, already used cross-repo by these workflows. The repos describe its scope inconsistently, so it may lackcontents:writeon the contract repo; the step namesCLDK_AUTH_TOKENas the documented repo-scope alternative when it fails.Definition of done
codeanalyzer-schemacontaining only this analyzer's files, at paths matching that repo's existing layout.python3 scripts/check.pypasses in the contract repo with the PR applied.