From 992a83e0dc9da1b1afc818c1972a52afceb49c8e Mon Sep 17 00:00:00 2001 From: t Date: Thu, 4 Jun 2026 11:18:19 +0800 Subject: [PATCH 1/2] docs(behavior-parity): audit slash-command + CLI-flag tables against code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reconcile docs/BEHAVIOR_PARITY.md with the actual source. Verified every row in the Slash-commands, CLI-flags, and Tools tables by grepping the code rather than trusting the doc. Slash commands (apps/cli/src/commands.ts BUILTIN_COMMANDS): - /init ๐Ÿ”„ โ†’ โœ… โ€” runInitFlow is a real 3-phase REPL flow (scan โ†’ draft โ†’ approve-write AGENTS.md), wired in repl.ts; no longer a stub. - /bug โœ— โ†’ โœ… and /release-notes โœ— โ†’ โœ… โ€” both registered since PR #150. - /upgrade โœ“/๐ŸŸก โ†’ โœ—/๐Ÿ”„ โ€” there is no /upgrade slash command; it is the `deepcode upgrade` CLI subcommand (cli.ts) that prints an upgrade hint. - add missing rows: /diff (โœ…, PR #150) and /keybindings (๐Ÿ†•, DeepCode-only). - /effort wording: CLI prints the EFFORT_PARAMS-derived tier table (PR #147). - header count ~20 โ†’ ~28 shipped. - genuinely-missing commands kept ๐Ÿ”„ (/btw /recap /voice /teleport /desktop /background /batch /tasks /plan /login /logout /pr_comments /terminal-setup /privacy-settings /migrate-installer); skill-backed kept ๐ŸŸก (/review, /security-review, /schedule, /loop โ€” skills confirmed under packages/core/skills). CLI flags (apps/cli/src/parse-args.ts + cli.ts): - split `--mode` / `--permission-mode`: the latter is parsed + validated but never consumed (cli.ts forwards only args.mode) โ†’ ๐Ÿ”„ not wired. - add `-C` / `--cd ` (โœ…, wired via process.chdir in cli.ts, PR #148). Tools table (de-staled by PR #151) re-verified row-by-row โ€” all markers hold: TaskTool + ctx.runSubAgent (agent.ts), all 7 TASK_TOOLS, NotebookEdit, AskUserQuestion, Enter/ExitPlanMode, Enter/ExitWorktree, ToolSearch, Cron*; ScheduleWakeup correctly โš ๏ธ (not a tool โ€” use CronCreate). Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/BEHAVIOR_PARITY.md | 123 +++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 58 deletions(-) diff --git a/docs/BEHAVIOR_PARITY.md b/docs/BEHAVIOR_PARITY.md index c01d535..7a58f85 100644 --- a/docs/BEHAVIOR_PARITY.md +++ b/docs/BEHAVIOR_PARITY.md @@ -4,66 +4,71 @@ Legend: `โœ…` matches ยท `๐ŸŸก` matches with caveats ยท `๐Ÿ”„` deferred ยท `โš ๏ธ` deliberately differs ยท `๐Ÿ†•` DeepCode-only addition -> **2026-06 accuracy pass.** Several per-row tags below had drifted behind the -> code (the Tools table in particular marked shipped tools as deferred โ€” now -> corrected). Treat the milestone tags (`M3c`, `M8`, โ€ฆ) as historical notes, not -> current status. Additions landing in the alignment batch this pass: -> CLI `-C` / `--cd` (Codex parity); the `/diff`, `/release-notes`, and `/bug` -> (alias `/feedback`) slash commands; and a fix so the CLI `/effort` table reads -> its numbers from `EFFORT_PARAMS` instead of a divergent hardcoded copy. The -> rows below will be flipped to `โœ…` as those PRs merge. +> **2026-06 accuracy pass (audited against code).** Several per-row tags below +> had drifted behind the code. This pass reconciles the **Slash-command**, +> **CLI-flag**, and **Tools** tables with the actual source. Treat the milestone +> tags (`M3c`, `M8`, โ€ฆ) as historical notes, not current status. Highlights now +> landed on `main`: CLI `-C` / `--cd` (Codex parity, PR #148); the `/diff`, +> `/release-notes`, and `/bug` (alias `/feedback`) slash commands (PR #150); +> `--resume` / `--continue` / `--fork-session` wired to real session resume +> (PR #153); the `/init` 3-phase REPL flow; and the CLI `/effort` table reading +> its numbers from `EFFORT_PARAMS` (PR #147). Caveat: `--permission-mode` is +> parsed but **not yet wired**. The Tools table (de-staled in PR #151) was +> re-verified row-by-row this pass โ€” all markers hold. --- -## Slash commands (30+ in Claude Code, ~20 shipped in DeepCode) - -| Command | Claude Code | DeepCode | Status | -| --------------------- | ----------- | ------------------ | ------------------------------------------------------------------------------------------ | -| `/help` | โœ“ | โœ“ | โœ… | -| `/clear` | โœ“ | โœ“ | โœ… | -| `/exit` / `/quit` | โœ“ | โœ“ | โœ… | -| `/status` / `/doctor` | โœ“ | โœ“ | โœ… | -| `/model` | โœ“ | โœ“ | โœ… DeepCode constrains to deepseek-\* (model picker doesn't show foreign providers) | -| `/mode` | โœ“ | โœ“ | โœ… | -| `/effort` | โœ“ | โœ“ | ๐ŸŸก โ€” UI selector deferred to GUI (M6); CLI works | -| `/cost` / `/usage` | โœ“ | โœ“ | โœ… | -| `/context` | โœ“ | โœ“ | โœ… | -| `/config` | โœ“ | โœ“ (read-only) | ๐ŸŸก โ€” Claude Code's `/config` is interactive editor; ours is JSON dump (M3c-ext for editor) | -| `/resume` | โœ“ | โœ“ (list only) | ๐ŸŸก โ€” Claude Code has fuzzy picker; ours lists; pick via `--resume ` | -| `/init` | โœ“ | โœ“ (stub) | ๐Ÿ”„ โ€” multi-phase interactive flow deferred to M3c-ext | -| `/mcp` | โœ“ | โœ“ | โœ… | -| `/add-dir` | โœ“ | โœ“ (records intent) | ๐ŸŸก โ€” M3 will enforce | -| `/todos` | โœ“ | โœ“ | โœ… โ€” reads `/todos.json` written by TodoWrite tool | -| `/plugins` | โœ“ | โœ“ | โœ… โ€” lists wired plugins + contributed hook events + warnings (M5.2) | -| `/compact` | โœ“ | โœ“ | โœ… โ€” manual `/compact` + automatic threshold trigger in the agent loop | -| `/btw` | โœ“ | โœ— | ๐Ÿ”„ | -| `/recap` | โœ“ | โœ— | ๐Ÿ”„ | -| `/rewind` | โœ“ | โœ“ | โœ… โ€” 5 ops (code/conversation/both/summarize-from/up-to); `Esc Esc` bound | -| `/voice` | โœ“ | โœ— | ๐Ÿ”„ M8 | -| `/teleport` | โœ“ | โœ— | ๐Ÿ”„ M8 | -| `/desktop` | โœ“ | โœ— | ๐Ÿ”„ M6 | -| `/background` | โœ“ | โœ— | ๐Ÿ”„ (paired with TaskCreate M3.15.3) | -| `/batch` | โœ“ | โœ— | ๐Ÿ”„ | -| `/tasks` | โœ“ | โœ— | ๐Ÿ”„ | -| `/plan` | โœ“ | โœ— | ๐Ÿ”„ โ€” set via `/mode plan` in DeepCode | -| `/login` / `/logout` | โœ“ | โœ— | ๐Ÿ”„ โ€” DeepCode currently uses re-onboarding (clear creds + restart) | -| `/export` | โœ“ | โœ“ | โœ… โ€” writes the conversation to a markdown file | -| `/bug` | โœ“ | โœ— | ๐Ÿ”„ | -| `/upgrade` | โœ“ | โœ“ (hint only) | ๐ŸŸก | -| `/pr_comments` | โœ“ | โœ— | ๐Ÿ”„ | -| `/review` | โœ“ | โœ— (skill avail) | ๐ŸŸก โ€” via Skill tool | -| `/security-review` | โœ“ | โœ— (skill avail) | ๐ŸŸก โ€” via Skill tool | -| `/schedule` | โœ“ | โœ— (skill avail) | ๐ŸŸก | -| `/loop` | โœ“ | โœ— (skill avail) | ๐ŸŸก | -| `/terminal-setup` | โœ“ | โœ— | ๐Ÿ”„ | -| `/vim` | โœ“ | โœ“ | โœ… โ€” toggles Vim mode (persists to `~/.deepcode/keybindings.json`) | -| `/agents` | โœ“ | โœ“ | โœ… โ€” lists sub-agents from `.deepcode/agents/` | -| `/hooks` | โœ“ | โœ“ | โœ… โ€” lists hooks configured in settings.json | -| `/skills` | โœ“ | โœ“ | โœ… โ€” lists built-in + user + project skills | -| `/permissions` | โœ“ | โœ“ (read-only) | ๐ŸŸก โ€” shows rules + default mode (interactive editor deferred) | -| `/privacy-settings` | โœ“ | โœ— | ๐Ÿ”„ | -| `/migrate-installer` | โœ“ | โœ— | ๐Ÿ”„ | -| `/release-notes` | โœ“ | โœ— | ๐Ÿ”„ | +## Slash commands (30+ in Claude Code, ~28 shipped in DeepCode) + +| Command | Claude Code | DeepCode | Status | +| -------------------------- | ----------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `/help` | โœ“ | โœ“ | โœ… | +| `/clear` | โœ“ | โœ“ | โœ… | +| `/exit` / `/quit` | โœ“ | โœ“ | โœ… | +| `/status` / `/doctor` | โœ“ | โœ“ | โœ… | +| `/model` | โœ“ | โœ“ | โœ… DeepCode constrains to deepseek-\* (model picker doesn't show foreign providers) | +| `/mode` | โœ“ | โœ“ | โœ… | +| `/effort` | โœ“ | โœ“ | ๐ŸŸก โ€” CLI prints the tier table (numbers from `EFFORT_PARAMS` SSOT); switch via `/effort `; arrow-key selector is GUI-only (M6) | +| `/cost` / `/usage` | โœ“ | โœ“ | โœ… | +| `/context` | โœ“ | โœ“ | โœ… | +| `/config` | โœ“ | โœ“ (read-only) | ๐ŸŸก โ€” Claude Code's `/config` is interactive editor; ours is JSON dump (M3c-ext for editor) | +| `/resume` | โœ“ | โœ“ (list only) | ๐ŸŸก โ€” Claude Code has fuzzy picker; ours lists; pick via `--resume ` | +| `/init` | โœ“ | โœ“ | โœ… โ€” interactive 3-phase REPL flow (scan โ†’ draft โ†’ approve-write `AGENTS.md`) | +| `/mcp` | โœ“ | โœ“ | โœ… | +| `/add-dir` | โœ“ | โœ“ (records intent) | ๐ŸŸก โ€” M3 will enforce | +| `/todos` | โœ“ | โœ“ | โœ… โ€” reads `/todos.json` written by TodoWrite tool | +| `/plugins` | โœ“ | โœ“ | โœ… โ€” lists wired plugins + contributed hook events + warnings (M5.2) | +| `/compact` | โœ“ | โœ“ | โœ… โ€” manual `/compact` + automatic threshold trigger in the agent loop | +| `/diff` | โœ“ | โœ“ | โœ… โ€” git diff + untracked files in the working tree (PR #150) | +| `/btw` | โœ“ | โœ— | ๐Ÿ”„ | +| `/recap` | โœ“ | โœ— | ๐Ÿ”„ | +| `/rewind` | โœ“ | โœ“ | โœ… โ€” 5 ops (code/conversation/both/summarize-from/up-to); `Esc Esc` bound | +| `/voice` | โœ“ | โœ— | ๐Ÿ”„ M8 | +| `/teleport` | โœ“ | โœ— | ๐Ÿ”„ M8 | +| `/desktop` | โœ“ | โœ— | ๐Ÿ”„ M6 | +| `/background` | โœ“ | โœ— | ๐Ÿ”„ (paired with TaskCreate M3.15.3) | +| `/batch` | โœ“ | โœ— | ๐Ÿ”„ | +| `/tasks` | โœ“ | โœ— | ๐Ÿ”„ | +| `/plan` | โœ“ | โœ— | ๐Ÿ”„ โ€” set via `/mode plan` in DeepCode | +| `/login` / `/logout` | โœ“ | โœ— | ๐Ÿ”„ โ€” DeepCode currently uses re-onboarding (clear creds + restart) | +| `/export` | โœ“ | โœ“ | โœ… โ€” writes the conversation to a markdown file | +| `/bug` (alias `/feedback`) | โœ“ | โœ“ | โœ… โ€” prints a prefilled GitHub issue link (model/mode/effort in the body) | +| `/upgrade` | โœ“ | โœ— | ๐Ÿ”„ โ€” no slash command; the `deepcode upgrade` CLI subcommand prints an upgrade hint | +| `/pr_comments` | โœ“ | โœ— | ๐Ÿ”„ | +| `/review` | โœ“ | โœ— (skill avail) | ๐ŸŸก โ€” via Skill tool | +| `/security-review` | โœ“ | โœ— (skill avail) | ๐ŸŸก โ€” via Skill tool | +| `/schedule` | โœ“ | โœ— (skill avail) | ๐ŸŸก | +| `/loop` | โœ“ | โœ— (skill avail) | ๐ŸŸก | +| `/terminal-setup` | โœ“ | โœ— | ๐Ÿ”„ | +| `/vim` | โœ“ | โœ“ | โœ… โ€” toggles Vim mode (persists to `~/.deepcode/keybindings.json`) | +| `/keybindings` | โœ— | โœ“ | ๐Ÿ†• โ€” lists configured key bindings (pairs with `/vim`); DeepCode-only | +| `/agents` | โœ“ | โœ“ | โœ… โ€” lists sub-agents from `.deepcode/agents/` | +| `/hooks` | โœ“ | โœ“ | โœ… โ€” lists hooks configured in settings.json | +| `/skills` | โœ“ | โœ“ | โœ… โ€” lists built-in + user + project skills | +| `/permissions` | โœ“ | โœ“ (read-only) | ๐ŸŸก โ€” shows rules + default mode (interactive editor deferred) | +| `/privacy-settings` | โœ“ | โœ— | ๐Ÿ”„ | +| `/migrate-installer` | โœ“ | โœ— | ๐Ÿ”„ | +| `/release-notes` | โœ“ | โœ“ | โœ… โ€” prints the latest `CHANGELOG.md` entry | --- @@ -167,9 +172,11 @@ Specific deviations: | Flag | Status | | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | `--help` / `--version` | โœ… | -| `--mode` / `--permission-mode` | โœ… | +| `--mode` | โœ… | +| `--permission-mode` | ๐Ÿ”„ โ€” parsed + validated as a `--mode` alias, but **not wired**: the value is currently ignored (pass `--mode`) | | `--model` / `--effort` | โœ… | | `--max-turns` | โœ… | +| `-C` / `--cd ` | โœ… โ€” chdir before running (Codex parity); validated eagerly, bad path exits 2 | | `--system-prompt` / `--append-system-prompt[-file]` | โœ… | | `--allowedTools` / `--disallowedTools` | โœ… | | `--bare` | ๐Ÿ”„ (parsed, semantics deferred) | From 6168ba2196d807baf687e5e7302d3d5306abf0e7 Mon Sep 17 00:00:00 2001 From: t Date: Thu, 4 Jun 2026 15:39:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(behavior-parity):=20fix=20/keybindings?= =?UTF-8?q?=20=E2=80=94=20it's=20a=20Claude=20Code=20built-in,=20not=20Dee?= =?UTF-8?q?pCode-only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified against Claude Code's built-in command set: /keybindings ships in Claude Code ("open or create your keybindings config file"). DeepCode's /keybindings only lists bindings (read-only; edit ~/.deepcode/keybindings.json by hand), so mark it โœ“ / โœ“ (read-only) / ๐ŸŸก โ€” same shape as /config and /permissions โ€” rather than ๐Ÿ†• DeepCode-only. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/BEHAVIOR_PARITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/BEHAVIOR_PARITY.md b/docs/BEHAVIOR_PARITY.md index 7a58f85..6ad95b6 100644 --- a/docs/BEHAVIOR_PARITY.md +++ b/docs/BEHAVIOR_PARITY.md @@ -61,7 +61,7 @@ Legend: `โœ…` matches ยท `๐ŸŸก` matches with caveats ยท `๐Ÿ”„` deferred ยท `โš  | `/loop` | โœ“ | โœ— (skill avail) | ๐ŸŸก | | `/terminal-setup` | โœ“ | โœ— | ๐Ÿ”„ | | `/vim` | โœ“ | โœ“ | โœ… โ€” toggles Vim mode (persists to `~/.deepcode/keybindings.json`) | -| `/keybindings` | โœ— | โœ“ | ๐Ÿ†• โ€” lists configured key bindings (pairs with `/vim`); DeepCode-only | +| `/keybindings` | โœ“ | โœ“ (read-only) | ๐ŸŸก โ€” Claude Code opens/creates the keybindings config; ours lists bindings (edit `~/.deepcode/keybindings.json` manually) | | `/agents` | โœ“ | โœ“ | โœ… โ€” lists sub-agents from `.deepcode/agents/` | | `/hooks` | โœ“ | โœ“ | โœ… โ€” lists hooks configured in settings.json | | `/skills` | โœ“ | โœ“ | โœ… โ€” lists built-in + user + project skills |