Found while refreshing the sibling checklist item cli.doctor-deprecation-scan for #11420. That card's declared file surface is docs/qa/platform-checklist/areas/cli.json, that one item — so this is filed rather than folded in, matching the precedent #11420 was itself filed under.
Measured at origin/main @ 3637731e2.
The row
docs/qa/platform-checklist/FOLLOW-UPS.md:211-215, under §7b Docs drift (PD#10 class — file as docs fixes, not checklist items):
- Dead remediation prescription in a live command —
doctor.ts:2149 prints "Run
objectstack codemod v2-to-v3 to auto-fix"; no codemod command exists (the real path
is os migrate meta), and content/docs/protocol/backward-compatibility.mdx:134 admits
it. Fix the string; the new cli.doctor-deprecation-scan item carries the expected-fail
probe until then.
Three things in it are false at head, and one is still true.
1. The string was already fixed — by #10680. The row's closing instruction ("Fix the string … until then") reads as open work. At head the print site is doctor.ts:2283-2288 and prints a two-branch printInfo:
Found N deprecated pattern(s). No automated codemod ships with the CLI — apply each finding's replacement by hand (re-run with --verbose to print them).
Found N deprecated pattern(s). No automated codemod ships with the CLI — apply the → replacement shown under each finding above. (--verbose)
grep -rn "codemod v2-to-v3" packages/cli/src/ returns only the comment at doctor.ts:2258 that records the removed prescription, and packages/cli/src/commands/doctor-deprecation-hint-commands.test.ts pins the class (expect(unregisteredHintsIn(printable)).toEqual([])).
2. "the real path is os migrate meta" is the reading #10680 explicitly refused. Its comment at doctor.ts:2265-2277 and the test's own header both record why: os migrate meta's subject is an authored stack config, its header declines the AST rewrite as "unsafe and lossy", both its writes are --out JSON snapshots, and three of the eight DEPRECATED_PATTERNS (EnhancedObjectKernel and the two deep-import paths) are not metadata at all. The test asserts the repoint did not happen: expect(printable).not.toContain('migrate meta'). A reader acting on this row today would re-introduce the defect in its "same defect respelled" form.
3. The doctor.ts:2149 anchor moved — #10679 shifted the scanner block by +76 lines and #10680's comment block pushed the print site further; the hint is at :2283-2288.
Still true:content/docs/protocol/backward-compatibility.mdx:134 does still admit the automated codemod is "not yet available" — and at head that admission is consistent with the tool rather than contradicting it, which is the opposite of what the row asserts.
Why it is worth an edit rather than a shrug
§7b's own heading says these rows are filed as docs fixes; the row is the ledger's record that this one is outstanding. A resolved row left in the outstanding list is the same class of stale-instruction defect that #11420, #11138 and #10798 were each filed for — the cost lands on whoever works the ledger next, and here the wrong action it prescribes (repoint at os migrate meta) is one a landed fix specifically argued against.
Not resolved here
§7b shows no convention for retiring a row — no struck-through, annotated or dated example exists in the file — so the correct shape (delete the row, or annotate it with the fixing PR and keep the history) is a call for whoever owns the ledger, not something this report should guess. #10881 closed the twin claim in packages/cli/README.md; how that one was recorded may be the precedent to follow.
Generated by Claude Code
Found while refreshing the sibling checklist item
cli.doctor-deprecation-scanfor #11420. That card's declared file surface isdocs/qa/platform-checklist/areas/cli.json, that one item — so this is filed rather than folded in, matching the precedent #11420 was itself filed under.Measured at
origin/main@3637731e2.The row
docs/qa/platform-checklist/FOLLOW-UPS.md:211-215, under §7b Docs drift (PD#10 class — file as docs fixes, not checklist items):Three things in it are false at head, and one is still true.
1. The string was already fixed — by #10680. The row's closing instruction ("Fix the string … until then") reads as open work. At head the print site is
doctor.ts:2283-2288and prints a two-branchprintInfo:grep -rn "codemod v2-to-v3" packages/cli/src/returns only the comment atdoctor.ts:2258that records the removed prescription, andpackages/cli/src/commands/doctor-deprecation-hint-commands.test.tspins the class (expect(unregisteredHintsIn(printable)).toEqual([])).2. "the real path is
os migrate meta" is the reading #10680 explicitly refused. Its comment atdoctor.ts:2265-2277and the test's own header both record why:os migrate meta's subject is an authored stack config, its header declines the AST rewrite as "unsafe and lossy", both its writes are--outJSON snapshots, and three of the eightDEPRECATED_PATTERNS(EnhancedObjectKerneland the two deep-import paths) are not metadata at all. The test asserts the repoint did not happen:expect(printable).not.toContain('migrate meta'). A reader acting on this row today would re-introduce the defect in its "same defect respelled" form.3. The
doctor.ts:2149anchor moved — #10679 shifted the scanner block by +76 lines and #10680's comment block pushed the print site further; the hint is at:2283-2288.Still true:
content/docs/protocol/backward-compatibility.mdx:134does still admit the automated codemod is "not yet available" — and at head that admission is consistent with the tool rather than contradicting it, which is the opposite of what the row asserts.Why it is worth an edit rather than a shrug
§7b's own heading says these rows are filed as docs fixes; the row is the ledger's record that this one is outstanding. A resolved row left in the outstanding list is the same class of stale-instruction defect that #11420, #11138 and #10798 were each filed for — the cost lands on whoever works the ledger next, and here the wrong action it prescribes (repoint at
os migrate meta) is one a landed fix specifically argued against.Not resolved here
§7b shows no convention for retiring a row — no struck-through, annotated or dated example exists in the file — so the correct shape (delete the row, or annotate it with the fixing PR and keep the history) is a call for whoever owns the ledger, not something this report should guess.
#10881closed the twin claim inpackages/cli/README.md; how that one was recorded may be the precedent to follow.Generated by Claude Code