cc-os/plugins/cc-architect/workflows/create-command.md

99 lines
2.7 KiB
Markdown

---
status: legacy
note: "For maintenance of existing commands only. Prefer skills for new functionality."
model_tier:
requirements: main
design: main
implementation: haiku
---
# Workflow: Create Command (LEGACY)
> **LEGACY WORKFLOW**: This workflow is for maintaining existing slash commands. For new functionality, prefer creating skills via the `create-skill` workflow instead.
## When to use
- Creating a new slash command (legacy maintenance only)
- Concept is clear and requirements understood
## Before you start
If concept unclear, brainstorm: `references/brainstorming/workflow.md`
## Pattern consideration
See `references/tool-patterns/catalog.md`.
| Question | If Yes |
|----------|--------|
| Is command concept unclear? | Brainstorm first |
| Will command modify files? | Include verification in instructions |
| Will command wrap a skill? | Skill handles patterns; command just invokes |
---
## Inputs
| Input | Example |
|-------|---------|
| `command_name` | `create-backup` (kebab-case) |
| `command_purpose` | "Create a backup of the current project" |
| `target_plugin_path` | `/home/user/my-plugin` |
## Subtasks
### 1. Understand requirements
Subagent: Main with user.
**Do:**
- What should this command do?
- What tools needed? (Read, Write, Bash, etc.)
- Wrap existing skill or standalone?
- What inputs from user?
### 2. Design the command
Subagent: Main.
**Do:**
- Determine command name (kebab-case, descriptive)
- Write one-line description
- List required tools
- Outline instructions
- If modifies files: include verification step
A command file has two parts: YAML frontmatter (`description`, optional
`allowed-tools`) and a body of plain instructions the model follows when the
command is invoked. See `${CLAUDE_PLUGIN_ROOT}/commands/cc-architect.md` for
a minimal real example, and `${CLAUDE_PLUGIN_ROOT}/templates/config-command.tmpl`
for one with input parsing.
### 3. Write the command file
Subagent: haiku.
Read: `${CLAUDE_PLUGIN_ROOT}/references/layout/descriptions.md`
**Do:**
1. Generate the description using the `generate-description` workflow
(`${CLAUDE_PLUGIN_ROOT}/workflows/generate-description.md`)
- Input: type=command, name, purpose, triggers
2. Create: `{target_plugin_path}/commands/{command_name}.md`
3. Write:
- Frontmatter (`description`, `allowed-tools` if the command needs
specific tools)
- Step-by-step instructions in the body
- Any user-request parsing guidance the command needs
## Validation
- [ ] Filename matches command name
- [ ] Description follows formula: "[Action verb] [what] when [trigger]"
- [ ] Only necessary tools listed
- [ ] Instructions clear and actionable
- [ ] Command does one thing well
## Output
`{target_plugin_path}/commands/{command_name}.md`