docs(roadmap): add #460 — bare_slash_command_guidance lookup misses spec.aliases; claw yes/no/cwd/marketplace burn billable tokens; claw skill/y/n give nonsense did-you-mean#3073
Open
Yeachan-Heo wants to merge 1 commit into
Conversation
…pec.aliases; claw yes/no/cwd/marketplace burn billable tokens with provider keys; claw skill/y/n give nonsense did-you-mean
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ROADMAP pinpoint #460 —
bare_slash_command_guidancechecksspec.nameonly, neverspec.aliasesDogfooded for the 2026-05-24 10:30 Clawhip pinpoint nudge (message 1508054486134947951).
Triage matrix
skillsis a slash command. /skillsskill/skillsis a slash command. /skillsunknown subcommand. Did you mean skillspluginis a slash command. /pluginmarketplace/pluginis a slash command. /pluginmissing_credentialsapproveis a slash command. /approveyes/approveis a slash command. /approvemissing_credentialsy/approveis a slash command. /approveunknown subcommand. Did you mean system-promptdenyis a slash command. /denyno/denyis a slash command. /denymissing_credentialsn/denyis a slash command. /denyunknown subcommand. Did you mean init, agents, sandboxworkspaceis a slash command. /workspacecwd/workspaceis a slash command. /workspacemissing_credentialsRoot cause (traced)
rust/crates/rusty-claude-cli/src/main.rs:1135-1137:Five-line fix: change to
spec.name == command_name || spec.aliases.contains(&command_name).Source spec data already correct in
rust/crates/commands/src/lib.rs:SlashCommandSpec { name: "skills", aliases: &["skill"], … }name: "plugin", aliases: &["plugins", "marketplace"]name: "approve", aliases: &["yes", "y"]name: "deny", aliases: &["no", "n"]name: "workspace", aliases: &["cwd"]The data is right; only the lookup helper is wrong.
Why distinct from existing items
-pgreedy positional swallow.claw doctorr).claw hooks --help(bare verb + extra-arg → billable) —rest.len() != 1gating.claw <verb> <ANY-EXTRA-ARG>falling through to Prompt for diagnostic verbs.None of these cover slash-command ALIAS lookup failing the canonical-name comparison. The bug here is even worse than #108: in #108 the unknown verb is genuinely unknown to the system; in #460 the verb IS known (it's a documented alias listed in
--helpasaliases: /yes, /yfor/approve) but the bare-CLI lookup helper doesn't consult the alias field.So the system silently disagrees with itself:
--helpadvertises/yesas a valid approval slash command, butclaw yes(the obvious "use that from CLI" attempt) burns LLM tokens.Why it matters
claw yes,claw no,claw cwd,claw marketplaceburn billable tokens with provider keys configured. Same silent-token-burn pathology as 合影 #108 and 前排留念 #117 but specifically for documented slash-command aliases./helpoutput explicitly advertises these aliases:/approve … (aliases: /yes, /y). Documentation contract violated.claw y→ "Did you mean system-prompt".claw n→ "Did you mean init, agents, sandbox"./skill → /skillsvia aliases. Tab-completion (slash_command_completion_candidates_with_sessions) enumerates aliases. Only the CLI bare-verb-to-slash-guidance helper misses the alias field — the singular violator in a system that otherwise honors aliases consistently.marketplaceworst case: specifically a documented/pluginalias,claw marketplaceis exactly what someone exploring "is there a marketplace?" would type. Silent token burn.Required fix shape (full detail in ROADMAP entry)
(a) Extend lookup:
spec.name == command_name || spec.aliases.contains(&command_name). (b) When formatting guidance, usespec.namefor the/<canonical>suggestion:"\claw yes` is a slash command. Start `claw` and run `/approve` inside the REPL.". (c) Optional: include alias in message. (d) Add aclaw doctorself-check that walks everyspec.aliases[]and assertsbare_slash_command_guidance(alias)returnsSome(_)`. (e) Regression matrix from table.Acceptance check
Should print no MISS lines.
—
[repo owner's gaebal-gajae (clawdbot) 🦞]