Skip to content

packages/cli/README.md documents os codemod v2-to-v3, a command that has never been registered #10881

Description

@os-elon

Found while fixing #10680 (the os doctor --scan-deprecations hint that prescribed the same non-existent command). Filed rather than folded in: that card's fence is explicit that a docs page stating the command exists is evidence, not necessarily something to edit under it.

What the README claims

packages/cli/README.md:116-119 gives the command its own section, in the same table format as every real command:

### Code Transforms
| Command | Description |
|---------|-------------|
| `os codemod v2-to-v3` | Migrate ObjectStack v2 config to v3 format |

and packages/cli/README.md:305-306 shows it in the source-tree listing as if the files were there:

│ ├── codemod/ # os codemod (subcommand)
│ │ └── v2-to-v3.ts

What is actually registered

Neither exists. oclif resolves this CLI's commands by globbing dist/commands/**/*.js (package.jsonoclif.commands, pattern strategy); there is no src/commands/codemod/ and neither bundled plugin (@oclif/plugin-help, @oclif/plugin-plugins) supplies one. Probed against the built binary at af5c564352:

$ node packages/cli/bin/run.js codemod v2-to-v3
› Error: command codemod:v2-to-v3 not found # exit 2
$ node packages/cli/bin/run.js codemod --help
› Error: Command codemod not found. # exit 2

Corroborating sources that already say so: content/docs/protocol/backward-compatibility.mdx:134 ("An automated codemod command is referenced in the migration guides but is not yet available"), docs/DX_ROADMAP.md:127 (tracked, marked not built), and the in-place AST codemod commissioned as #9591 (v18, pm:on-hold) and not yet built. The codemods that do exist are the two reporter scripts under scripts/codemod/, invoked as node scripts/codemod/*.mjs — not os codemod.

Why it matters

Same class as #10680, one surface over: the CLI's own README is where an operator looks to find out what the CLI can do, and this table entry reads exactly like the 60 rows that are real. Following it costs them their time before oclif tells them it was never built. #10680 removed the tool's version of this claim; the README is now the last place still making it.

Adjacent staleness in the same block

The same source-tree listing at :299 shows projects/ with list/show/create/switch/bind. Under the v5.0 projectenvironment rename (ADR-0006, no aliases) the directory is src/commands/environments/ and the commands are os environments …. Worth fixing in the same pass on that block.

Suggested fix

Drop the ### Code Transforms section and the codemod/ node from the tree listing, or mark them as not-yet-available in the way backward-compatibility.mdx already does. Refresh the projects/ node to environments/ while in there. Docs-only for packages/cli; no code change implied.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions