Part of #69.
Stage 0 — Scalpel / toolchain verification spike
Confirm python-scalpel installs across the support matrix and that its alias/SSA output can be mapped onto our (signature, node_id) access paths, before committing to it as the L4 oracle. No product code — this stage produces a decision record and a throwaway probe.
Branch: feat/v2-stage0-scalpel-spike
Deliverables:
- Discover Scalpel's real import paths + call signatures (its API is undocumented); verify install on the Python support matrix; check statement- vs block-level granularity and modern-syntax handling (match/async/walrus).
- Record in
.claude/SCHEMA_DECISIONS.md: primary oracle = ScalpelAliasOracle, fallback = TypeBasedAliasOracle; the exact Scalpel APIs consumed and the output → access-path mapping; the support-matrix result.
- If Scalpel cannot be mapped or won't install on the matrix: stop and surface to the maintainer — the fallback stub stays default until resolved.
Gate: a committed decision in .claude/SCHEMA_DECISIONS.md naming the exact Scalpel APIs and the output→(signature, node_id) mapping (or an explicit "fallback-only until X resolved" record).
Part of #69.
Stage 0 — Scalpel / toolchain verification spike
Confirm
python-scalpelinstalls across the support matrix and that its alias/SSA output can be mapped onto our(signature, node_id)access paths, before committing to it as the L4 oracle. No product code — this stage produces a decision record and a throwaway probe.Branch:
feat/v2-stage0-scalpel-spikeDeliverables:
.claude/SCHEMA_DECISIONS.md: primary oracle =ScalpelAliasOracle, fallback =TypeBasedAliasOracle; the exact Scalpel APIs consumed and the output → access-path mapping; the support-matrix result.Gate: a committed decision in
.claude/SCHEMA_DECISIONS.mdnaming the exact Scalpel APIs and the output→(signature, node_id)mapping (or an explicit "fallback-only until X resolved" record).