Skip to content

v2 Stage 5: docs, versioning, hand-off #75

Closed

Description

@rahlk

Part of #69.

Stage 5 — docs, versioning, hand-off

Branch: feat/v2-stage5-docs-release

Deliverables:

  • README.md rewrite: v2 model + four levels + Architecture & Tooling (incl. the Scalpel decision); drop the "queryable slicer" product framing.
  • CLAUDE.md + AGENTS.md rewrite describing schema v2 in detail (verify git ls-files AGENTS.md; un-ignore if the global gitignore hides it).
  • .claude/SCHEMA_DECISIONS.md v2 entries: can:// grammar, synthetic-vertex of/var vocabulary, Scalpel oracle.
  • Regenerate schema.neo4j.json at 2.0.0; update test_neo4j_schema.
  • CHANGELOG.md + MAJOR version bump in pyproject.toml; regenerate the README --help block.
  • Hand-off bundle (docs/handoff/): sample analysis.json per level + a graph.cypher; the schema contract; the CLI --help; the published package name + version to pin (for the separate cldk-sdk-frontend follow-up).

Gate: full suite green (pytest test/ -q); --emit schema yields 2.0.0; hand-off bundle present.

Expand into full bite-sized tasks with superpowers:writing-plans at stage start.

Activity

  1. rahlk commented on Jul 7, 2026

    @rahlk
    ContributorAuthor

    Stage-5 schema task (surfaced in Stage 3 Task 3.6): the Neo4j CPG emitter now writes PY_DDG.prov (list), but the neo4j/schema.py catalog declares PY_DDG with only var. Runtime-harmless (Neo4j props are schemaless; the catalog only feeds --emit schema + the currently-skipped test_neo4j_schema). When re-enabling test_neo4j_schema in Stage 5: add prov: "string[]" to the PY_DDG RelType, regenerate schema.neo4j.json, and MAJOR-bump the Neo4j SCHEMA_VERSION to 2.0.0.

  2. rahlk commented on Jul 13, 2026

    @rahlk
    ContributorAuthor

    Additional Stage-5 schema-regen cleanup (Task 4.6): the PyCFGNode NodeLabel in neo4j/schema.py declares a dead of: "string" prop that the emitter never produces (it maps BodyNode.of → the var prop). Drop the of declaration before regenerating schema.neo4j.json, else it surfaces to SDK consumers as an always-null queryable property. (The call_node int→string retype landed in 4.6 is correct — keep it.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions