Found while revising the sibling item cli.doctor-health-report for #10798. That card's declared file surface was that one item only, so this is filed rather than folded into its PR — and docs/qa/platform-checklist/areas/cli.json is the hot shared file of the #10663 QA-run lane, where a second item's edit is separate authoring work owing its own revision bump plus a history entry.
Measured at origin/main @ bb006446, against packages/cli/src/commands/doctor.ts.
1. The EXPECTED-FAIL clause (acceptance[5]) no longer describes head
It states: "the remediation hint printed after hits (doctor.ts:2149) prescribes objectstack codemod v2-to-v3, but no codemod command is registered anywhere in packages/cli/src/commands/ … The clause: the hint must name a command os actually registers; today it does not".
That hint changed in #10680. At head (doctor.ts:2284) it reads:
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).
The route taken was "prescribe nothing" rather than "prescribe a different command"; the reasoning is written out at doctor.ts:2258-2281 (os migrate meta cannot touch src/** TypeScript, os lint --fix is print-only). So the clause is not simply a fail that flipped to a pass — its own assertion ("the hint must name a command os actually registers") is the wrong shape for head, where the hint deliberately names none. It wants the same inversion #10798 applied to the sibling item: an ordinary pass clause asserting the hint prescribes no command and routes the operator to the per-finding → replacement lines instead.
One half of the citation still holds: content/docs/protocol/backward-compatibility.mdx:134 reads as the item quotes it.
2. Every doctor.ts anchor the item quotes has drifted
#10679 inserted ~90 lines above this item's whole anchor set (the MonorepoTreeScan type, the skip-notice helper, the two rewritten scans) and #10680 added its comment block below. Quoted vs. measured at bb006446:
| quoted in the item | at head |
|---|
DEPRECATED_PATTERNS :1186-1234 | :1262-1310 |
retired lookup-scoping pair :1215 | :1291 |
scanDeprecatedPatterns :1236-1265 | :1312-1341 |
absent-dir early return :1238 | :1314 (if (!fs.existsSync(dir)) return results;) |
.ts-only walk + .test.ts filter :1240 | :1316 |
--scan-deprecations flag :1717 | :1793 |
scan block :2136-2153, scanDir = <cwd>/src :2138 | :2247 |
per-hit warning row :2143 | :2252 |
verbose → replacement:2144-2146 | :2254-2256 |
remediation hint :2149 | :2284 |
walkDir node_modules prune :1130 | :1130 — the only anchor that held |
The item's own "8 entries at authoring time" count for DEPRECATED_PATTERNSdoes still hold; I recounted the table at head and it is 8. That part needs no edit.
Nothing is red, and nothing will go red
check:platform-checklist is structural — ids, revisions, oracles, trap vocabulary — and never judges whether a clause is true. It is also not wired into CI at all: .github/workflows/lint.yml carries the note "by MAINTAINER DECISION it is NOT wired into CI — it runs on a periodic manual cadence". So this rots silently until a runner reads the item.
Owed on a fix
One revision bump to 3 on cli.doctor-deprecation-scan, plus a history entry carrying a ref. Same file surface discipline as #10798: that one item only.
Generated by Claude Code
Generated by Claude Code
Found while revising the sibling item
cli.doctor-health-reportfor #10798. That card's declared file surface was that one item only, so this is filed rather than folded into its PR — anddocs/qa/platform-checklist/areas/cli.jsonis the hot shared file of the #10663 QA-run lane, where a second item's edit is separate authoring work owing its ownrevisionbump plus ahistoryentry.Measured at
origin/main@bb006446, againstpackages/cli/src/commands/doctor.ts.1. The EXPECTED-FAIL clause (
acceptance[5]) no longer describes headIt states: "the remediation hint printed after hits (doctor.ts:2149) prescribes
objectstack codemod v2-to-v3, but no codemod command is registered anywhere in packages/cli/src/commands/ … The clause: the hint must name a command os actually registers; today it does not".That hint changed in #10680. At head (doctor.ts:2284) it reads:
The route taken was "prescribe nothing" rather than "prescribe a different command"; the reasoning is written out at doctor.ts:2258-2281 (
os migrate metacannot touchsrc/**TypeScript,os lint --fixis print-only). So the clause is not simply a fail that flipped to a pass — its own assertion ("the hint must name a command os actually registers") is the wrong shape for head, where the hint deliberately names none. It wants the same inversion #10798 applied to the sibling item: an ordinary pass clause asserting the hint prescribes no command and routes the operator to the per-finding→ replacementlines instead.One half of the citation still holds:
content/docs/protocol/backward-compatibility.mdx:134reads as the item quotes it.2. Every
doctor.tsanchor the item quotes has drifted#10679 inserted ~90 lines above this item's whole anchor set (the
MonorepoTreeScantype, the skip-notice helper, the two rewritten scans) and #10680 added its comment block below. Quoted vs. measured atbb006446:DEPRECATED_PATTERNS :1186-1234:1262-1310:1215:1291scanDeprecatedPatterns :1236-1265:1312-1341:1238:1314(if (!fs.existsSync(dir)) return results;).ts-only walk +.test.tsfilter:1240:1316--scan-deprecationsflag:1717:1793:2136-2153,scanDir = <cwd>/src :2138:2247:2143:2252→ replacement:2144-2146:2254-2256:2149:2284walkDirnode_modules prune:1130:1130— the only anchor that heldThe item's own "8 entries at authoring time" count for
DEPRECATED_PATTERNSdoes still hold; I recounted the table at head and it is 8. That part needs no edit.Nothing is red, and nothing will go red
check:platform-checklistis structural — ids, revisions, oracles, trap vocabulary — and never judges whether a clause is true. It is also not wired into CI at all:.github/workflows/lint.ymlcarries the note "by MAINTAINER DECISION it is NOT wired into CI — it runs on a periodic manual cadence". So this rots silently until a runner reads the item.Owed on a fix
One
revisionbump to 3 oncli.doctor-deprecation-scan, plus ahistoryentry carrying aref. Same file surface discipline as #10798: that one item only.Generated by Claude Code
Generated by Claude Code