fix(help): correct input and MCP descriptions, add a first-screen help gate

Merged
TH
7h ago
+231-10

Summary

Salvages three non-STE parts of closed #3735. The ASD-STE100 help rewrite is not brought over; main's help wording is unchanged.

  • fix(help): correct two wrong input descriptions — launchConsole is a file path for the initial iOS simulator launch stdout/stderr (direct app launches only, not URL opens), not a "launch console mode"; jitterPx is deterministic (pressJitter cycles a fixed table), not random. Matches the existing flag texts.
  • fix(help): name the root decision card in the MCP help tool description — the no-topic call returns buildUsageText() (the root decision card), not the workflow card.
  • fix(help): omit a topic's own entry from its Related footer — manual-qa/workflow no longer self-link.
  • test(help): pin each topic's key rules to its first 30 lines — new cli-help-first-screen.test.ts. Declared rules quote main's exact phrases. The gate passes for the root help and all 18 topics with no rule excluded, so there are no first-screen findings to report.
  • build(bench): default the help bench Codex runner to gpt-6-luna — gpt-5.4-mini fails with a ChatGPT login here.

Touched files: 7. No scope expansion beyond the salvaged items.

Validation

  • Head 138be32b01: pnpm check:affected --run --head 138be32b01 — all runnable checks passed; receipt at .tmp/validation/run-X9KO20/receipt.json (exactCommit=true).
  • pnpm vitest run src/commands/schema src/mcp — 294 passed.
  • Mutation proof: padding the workflow body so a declared rule lands on line 41 fails the gate; rewording "End with: agent-device close" out of the root help fails it as "missing". Both reverted.
  • Bench smoke: node scripts/help-conformance-bench.mjs --runner codex:gpt-6-luna --case focused-type-stops-at-success completes with no runner error.