feat(spec): a semantic migration names the D2 conversions whose applied edits it judges (SemanticMigration.conversionIds) - #20716
Conversation
…ed edits it judges SemanticMigration gains an optional conversionIds list, the same ids MigrationApplication.conversionId carries, so a printer of a chain result can show an entry beside the applied edits it judges. flow-decision-edge-branching-first-match links flow-decision-mode-inclusive-explicit, and migrations.test.ts refuses a link that no step at or below the entry's own replays. Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <[email protected]>
Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <[email protected]>
📓 Docs Drift Check2 anchor(s) derived from 1 changed package(s); no hand-written page names any of them, so this run has nothing to list — not a clean bill of health. This check sees only pages that NAME a derived anchor: one that documents this change in prose, or enumerates it in an authoring dialect, names none and stays invisible to it on every run. What this run could not see
Coarse fallback — 137 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin bf4e11d967d3c0f561227a098113ffab03b60a25 && git checkout bf4e11d967d3c0f561227a098113ffab03b60a25
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 679f95ec5c7c4b0797d10afb60efa8220d92a98a 32e8411a6ba96f7681120e7c5973724cdcdf8221 && git checkout -B drift-repro 679f95ec5c7c4b0797d10afb60efa8220d92a98a && git merge --no-ff 32e8411a6ba96f7681120e7c5973724cdcdf8221
node scripts/docs-audit/affected-docs.mjs --json 679f95ec5c7c4b0797d10afb60efa8220d92a98a |
…mantic-conversion-ids Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <[email protected]>
Contract reviewServed-tier: Inputs read: card #20697 (body and all 4 comments: triage ① Derived judgmentsAccept-set and public-surface changes the diff implies — each named.
Every author-shown or AI-facing sentence, tested against the tree.
② Semver level
③ Boundary flags
Check-runs on Implemented-by: VERDICT: PASS Adopted and posted by
Generated by Claude Code |
Closes #20697
SemanticMigrationgains an optionalconversionIds, naming the D2 conversions whose applied edits the entry judges. A test refuses an id that no registered conversion at or below the entry's step replays. One link is added after reading both sides:flow-decision-edge-branching-first-match→flow-decision-mode-inclusive-explicit.Clause-②: yes (widening)
🤖 Generated with Claude Code
https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1