Skip to content

epic: cldk-forge compliance — contract-correctness cluster #26

Description

@rahlk

cldk-forge compliance: contract-correctness cluster

Tracking epic: bring codeanalyzer-typescript's emitted contract (both the analysis.json and Neo4j projections) into compliance with the cldk-forge skillset (codeanalyzer-backend), and make the additive L1 ⊆ L2 ⊆ L3 ⊆ L4 invariant CI-enforced.

Audit verdict: MOSTLY COMPLIANT. The v2 migration substance is faithful — schema keystone, symbol table, call graph, dataflow L3/L4, Neo4j projection, and packaging all land close to spec. This epic closes the contract-correctness gaps: the ones that change what the SDK and Neo4j actually consume.

Child issues

Delivered as a stacked PR chain merging bottom-up into feat/issue-2-program-graphs (the v2 base is not yet on main). Each PR shows exactly one issue's diff. Order: the monotonicity gate lands first (it is the regression net for the rest); the Neo4j inheritance edges land last (most involved).

Status: all six shipping issues implemented (TDD, per-task review + a final whole-branch review → READY TO MERGE); suite 95 pass / 0 fail, typecheck clean, schema.neo4j.json in lockstep; validated end-to-end on OWASP Juice Shop (5.7 MB analysis.json, correct analyzer manifest).

Out of scope (separate epics)

  • Theme A — modularity (the skillset's named anti-example): a pluggable analysis/ pass + registry layer and a frameworks/ finder layer, plus splitting the ~998-line flat src/syntactic_analysis/builders.ts. Real, but touches no emitted output.
  • Theme G — breaking-release hygiene: CHANGELOG.md + curated breaking-change notes for the v1→v2 break; a caching test gate (second-run-reuse / eager-rebuild); release-workflow wheel smoke-test, per-artifact checksums, and a musllinux/Alpine decision.

Follow-ups surfaced during implementation (filed)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions