The user wants to take their previous message — the most recent user turn in this conversation before this invocation — improve it into a stronger prompt, and save the improved version as a reusable custom slash command.
Raw arguments: $ARGUMENTS
Do this:
- Parse
$ARGUMENTSinto a name and an optional scope flag:--global/-g/global-> save system-wide.--project/-p/project-> save to the current project.- Everything else is the command name.
- If no name is given, STOP and ask for one. A name is required.
- Determine where to save (scope):
- If a scope flag was given, use it.
- Otherwise, ASK the user with AskUserQuestion: "Where should
/<name>be saved?" with options Global (all projects) and Project (this repo only). - Global path:
~/.claude/commands/ - Project path:
<current working directory>/.claude/commands/— create it if missing. If not in a project, fall back to Global and say so.
- Normalize the name: lowercase, kebab-case, strip any leading
/and.md. - Find the user's previous prompt (the message right before this call).
- Rewrite it into a clear, well-structured, high-quality prompt while preserving the original
intent. Apply prompt-engineering best practices:
- Make the goal explicit and unambiguous.
- Add useful structure (numbered steps, expected output format) where it helps.
- Fix grammar/spelling and tighten vague wording.
- Where the prompt clearly takes input, parameterize it with
$ARGUMENTS(or$1,$2). - Do NOT add scope the user never asked for.
- Briefly show the user a before/after diff of the prompt (1-3 lines is fine).
- Add YAML frontmatter with a one-line
descriptionand, if you added parameters, anargument-hint. - Write the file to
<chosen path>/<name>.md. - If that file already exists, show its current contents and ask before overwriting.
- Confirm: print the saved file path, the scope, and that
/<name>is now available.