astdiff parses JavaScript, provides a legacy structural declaration diff,
builds a validated in-memory analysis IR, matches symbol lineage between exact
analysis identities, maintains reviewable semantic-name state, and can render
an immutable target input into a separate renamed/pretty-printed artifact.
The authoritative component contracts are:
README.md: supported commands and user-facing behavior;docs/analysis-ir.org: analysis model, identities, and verification boundary;docs/lineage.org: bounded structural matching and semantic-name review;docs/corpus-plan.org: generic generated/public/external evaluation plan;spec/comprehensive-dump-format.md: current legacy dump boundary and its explicitly proposed extensions; anddocs/source-map.org: raw source-map validation, lookup, and lineage evidence.
The line-oriented mapping format used by astdiff canon --map is a legacy
canonicalization interface. It is keyed by canonical spelling and must not
be used as cross-version symbol identity or as the semantic-name review
format. LLM or human review uses the strict bounded JSON and audited CLI in
docs/lineage.org; raw source and arbitrary string-table data are not part of
that packet.