Skip to content

docs(behavior-parity): audit slash-command + CLI-flag tables against code#154

Merged
oratis merged 3 commits into
mainfrom
claude/affectionate-margulis-24c654
Jun 4, 2026
Merged

docs(behavior-parity): audit slash-command + CLI-flag tables against code#154
oratis merged 3 commits into
mainfrom
claude/affectionate-margulis-24c654

Conversation

@oratis
Copy link
Copy Markdown
Owner

@oratis oratis commented Jun 4, 2026

What

Full audit of docs/BEHAVIOR_PARITY.md against the actual code. The doc tracks
DeepCode-vs-Claude-Code parity but the Slash-commands and CLI-flags tables
had drifted behind main (PR #151 already de-staled the Tools table). Every row in
all three tables was re-verified by grepping the source — not by trusting the doc.

Slash commands

Row Was Now Why
/init ✓ (stub) 🔄 runInitFlow is a real 3-phase REPL flow (scan → draft → approve-write AGENTS.md), wired in repl.ts:435
/bug 🔄 Registered in commands.ts (BugCommand, alias /feedback) since PR #150
/release-notes 🔄 Registered (ReleaseNotesCommand) since PR #150
/upgrade ✓ (hint only) 🟡 🔄 There is no /upgrade slash command — it's the deepcode upgrade CLI subcommand (cli.ts)
/diff missing Registered (DiffCommand) in PR #150 — row added
/keybindings missing 🆕 Registered (KeybindingsCommand), DeepCode-only — row added
/effort 🟡 (wording) 🟡 (wording) CLI now prints the EFFORT_PARAMS-derived tier table (PR #147); clarified caveat
  • Header count updated ~20 → ~28 shipped.
  • The 15 genuinely-missing commands stay 🔄 (/btw /recap /voice /teleport /desktop /background /batch /tasks /plan /login /logout /pr_comments /terminal-setup /privacy-settings /migrate-installer) — confirmed absent from BUILTIN_COMMANDS.
  • The 4 skill-backed commands stay 🟡 (/review /security-review /schedule /loop) — skills confirmed shipping under packages/core/skills/.

CLI flags

Row Was Now Why
--mode / --permission-mode one row, ✅ split --mode ✅; --permission-mode 🔄 — it's parsed + validated but never consumed (cli.ts forwards only args.mode)
-C / --cd <dir> missing Wired via process.chdir in cli.ts:44 (PR #148) — row added

The remaining flag rows (--bare, --settings/--agents/--mcp-config/--plugin-dir/--plugin-url, --no-plugins/--strict as 🔄 parsed-only; --resume/--continue/--fork-session, -p, --output-format/--json-schema/--include-partial-messages as ✅) were each re-checked and confirmed accurate.

Tools table

De-staled by PR #151re-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). No changes needed.

Notes

  • Doc-only change. npx prettier --check passes (tables reformatted to canonical widths — most of the line-count delta is whitespace; git diff -w shows only the semantic rows above).
  • Committed with git commit --no-verify per the repo's husky pre-commit corruption gotcha.

🤖 Generated with Claude Code

…code

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 <dir>` (✅, 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) <[email protected]>
@oratis
Copy link
Copy Markdown
Owner Author

oratis commented Jun 4, 2026

Heads-up: #157 implements /recap, /login, /logout, /pr_comments and flips those rows to ✅ in BEHAVIOR_PARITY. This audit PR currently marks them 🔄 (correct when it was opened). Whichever of us merges second should keep those four rows ✅ — they're now implemented + tested.

oratis added a commit that referenced this pull request Jun 4, 2026
…157)

* feat(cli): add /recap, /login, /logout, /pr_comments parity commands

Four Claude-Code slash commands that were missing (🔄 in BEHAVIOR_PARITY):

- /recap        — provider-summarized recap of the session so far (ctx.provider
                  + ctx.history → runTurn; honest empty/no-provider states)
- /login [key]  — show auth status, or store a new DeepSeek API key (applies on
                  next launch); /logout — clear stored creds + exit
- /pr_comments  — `gh pr view` comments for the current branch's PR (graceful
                  no-gh / no-PR handling); pure formatPrComments renderer

Adds credsStore to SessionContext (REPL-injected) for /login + /logout.

Tests (parity-commands.test.ts, 9 cases): /recap via a mock provider + empty/
no-provider; /login + /logout against a forceFile CredentialsStore under a temp
HOME (never the keychain, never real creds); formatPrComments rendering + the
no-PR/no-gh fallback. Full CLI suite: 133 pass. Verified the real `gh pr view`
JSON shape matches the parser.

Flips the /recap, /login//logout, /pr_comments rows in BEHAVIOR_PARITY → ✅.
(Overlaps the open #154 audit on those rows — see PR note.)

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* chore(cli): prettier-format parity-commands.test.ts

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

---------

Co-authored-by: t <t@t>
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>
t and others added 2 commits June 4, 2026 15:39
…, not DeepCode-only

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) <[email protected]>
…argulis-24c654

# Conflicts:
#	docs/BEHAVIOR_PARITY.md
@oratis oratis merged commit 86731dc into main Jun 4, 2026
3 checks passed
@oratis oratis deleted the claude/affectionate-margulis-24c654 branch June 4, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant