← ClaudeAtlas

command-writinglisted

Use when creating or editing a slash command in .agent-src.uncondensed/commands/ — frontmatter, numbered steps, safety gates — even when the user just says 'add a /command for X'.
event4u-app/agent-config · ★ 7 · AI & Automation · score 84
Install: claude install-skill event4u-app/agent-config
<!-- cloud_safe: degrade --> # command-writing ## When to use * Creating a new slash command in `.agent-src.uncondensed/commands/{name}.md` * Rewriting an existing command (not a typo fix) * Deciding whether a request should be a command at all * Splitting an oversized command into smaller ones Do NOT use this skill when: * The content is a constraint the agent must always honor → use `rule-writing` * The content is reference knowledge agents cite → use `guideline-writing` * The content is a triggered workflow invoked by the model → use `skill-writing` ## Command vs skill — critical test | Intent | Artifact | |---|---| | "User types `/foo` to explicitly run this" | **Command** | | "Agent picks this up from description match" | **Skill** | A command is **user-invoked** and carries `disable-model-invocation: true`. A skill is model-invoked via description routing. If both audiences apply, author as a skill and add a thin command that delegates to it. ## Commands ARE Claude skills (projection reality) Every `.agent-src.uncondensed/commands/{name}.md` projects to `.claude/skills/{slug}/SKILL.md` via `scripts/condense.py` (`generate_claude_commands`). Nested commands flatten with `-` (`council/default.md` → `council-default`). Skills + commands share the **same `.claude/skills/` namespace** — Claude does not distinguish them. Authoring consequences: * Frontmatter `description` is Claude's **routing surface**. Generic phrasing → undertriggering even with `disable-mode