You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ROADMAP.md
+55Lines changed: 55 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5247,3 +5247,58 @@ $ claw state --output-format json
5247
5247
**Blocker.** None. Pure error-text + doc fix. ~30 lines.
5248
5248
5249
5249
**Source.** Jobdori dogfood 2026-04-21 16:00 KST on main HEAD `f3f6643`. Joins **error-message-quality** cluster (related to §4.44 typed error taxonomy and §5 failure class enumeration). Joins **CLI discoverability** cluster (#108 did-you-mean for typos, #127 --json on diagnostic verbs). Session tally: ROADMAP #139.
5250
+
5251
+
## Pinpoint #141. `claw <subcommand> --help` has 5 different behaviors — inconsistent help surface breaks discoverability
5252
+
5253
+
**Gap.** Running `<subcommand> --help` has five different behaviors depending on which subcommand you pick. This breaks the expected CLI contract that `<subcommand> --help` returns subcommand-specific help.
5254
+
5255
+
**Matrix (verified on main HEAD `27ffd75` 2026-04-21 16:59 KST):**
| `bootstrap-plan` | Prints phases JSON (not help at all) | ❌ broken |
5264
+
5265
+
**Concrete repro:**
5266
+
```
5267
+
$ claw system-prompt --help
5268
+
error: unknown system-prompt option: --help
5269
+
5270
+
$ claw dump-manifests --help
5271
+
error: unknown dump-manifests option: --help
5272
+
5273
+
$ claw bootstrap-plan --help
5274
+
- CliEntry
5275
+
- FastPathVersion
5276
+
...
5277
+
5278
+
$ claw init --help
5279
+
claw v0.1.0
5280
+
Usage:
5281
+
claw [--model MODEL] ... # this is global help, not init-specific
5282
+
```
5283
+
5284
+
**Why this is a clawability gap.**
5285
+
1. **Product principle violation**: every CLI subcommand should have a consistent `<cmd> --help` contract that returns subcommand-specific help.
5286
+
2. **CI/orchestration hazard**: a claw script that tries `<cmd> --help | grep <option>` gets structural behavior differences — some return 0, some return 1 with "unknown option", some return global help that doesn't mention the subcommand at all.
5287
+
3. **Discoverability asymmetry**: 7 subcommands have good help, 4 have global-help fallback, 2 error out, 1 produces irrelevant output. No documented reason for the split.
5288
+
4. **Follow-on from #108**: #108 fixed subcommand typos at the dispatch layer. #141 is the next layer up — even valid subcommands have inconsistent `--help` dispatch.
5289
+
5290
+
**Fix shape (~50 lines).**
5291
+
1. For subcommands that return a structured help block (`status`, `sandbox`, `doctor`, `skills`, `agents`, `mcp`, `acp`): this is the model. Use the same pattern.
5292
+
2. For `init`, `export`, `state`, `version`: add subcommand-specific help block or explicitly dispatch `--help` to `claw --help` (consistent fallback is OK; returning global help that doesn't mention the subcommand is not).
5293
+
3. For `dump-manifests`, `system-prompt`: fix the parser to recognize `--help` as a dispatch rather than unknown flag. Add subcommand-specific help.
5294
+
4. For `bootstrap-plan`: add `--help` dispatch to explain what the subcommand does (currently prints phases, which is the primary output but not help text).
5295
+
5. Add a consistency test: `for cmd in <list>: assert exitcode_of("claw $cmd --help") == 0 and contains help text`.
5296
+
5297
+
**Acceptance.**
5298
+
- All 14 subcommands have `<cmd> --help` exit 0 with relevant help text
5299
+
- No "unknown option" errors from `<cmd> --help`
5300
+
- Consistency test in the regression suite
5301
+
5302
+
**Blocker.** None. Scoped to CLI parser + help text. ~50 lines + test.
5303
+
5304
+
**Source.** Jobdori dogfood 2026-04-21 16:59 KST on main HEAD `27ffd75`. Joins **CLI/REPL parity** cluster (§7.1) and **discoverability** cluster (#108 did-you-mean, #127 --json on diagnostic verbs, #139 worker concept unactionable). Session tally: ROADMAP #141.
0 commit comments