Create Claude Code slash commands and OpenCode command files that delegate to subagents. Use when creating new commands or refactoring existing ones to follow the delegation pattern.
npx skills add https://github.com/majiayu000/claude-skill-registry --skill agent-command-authoring
Create commands that delegate to subagents for Claude Code and OpenCode.
Use this skill when:
Commands should be thin wrappers that delegate to subagents (which in turn
delegate to skills):
command → subagent → skill
Claude Code command (.claude/commands/<name>.md):
---
description: Brief description of what the command does
allowed-tools: Task(subagent-name)
---
Use the `<subagent-name>` subagent to accomplish this task.
OpenCode command (.config/opencode/command/<name>.md):
---
description: Brief description of what the command does
agent: <subagent-name>
---
Use the `<subagent-name>` subagent to accomplish this task.
| Field | Required | Description |
|-------|----------|-------------|
| description | Yes | 1-2 sentence description of what the command does |
| allowed-tools | Yes | Task(subagent-name) to invoke the subagent |
| argument-hint | No | Hint for command arguments (e.g., [feature_name [subtask_number]]) |
For commands that delegate to subagents:
Task(subagent-name) - Invoke a subagentExample:
allowed-tools: Task(git-committer)
Command names should use the imperative form of verbs (telling the agent what to do):
commit, stage, lint, test, review, reflectcommitting, git-committer, do-lintingThe imperative form gives commands their characteristic feel:
| Field | Required | Description |
|-------|----------|-------------|
| description | Yes | 1-2 sentence description of what the command does |
| agent | Yes | Name of the subagent to invoke |
Example:
---
description: Create well-formatted commits using conventional commits style
agent: git-committer
---
The command body should be 5-20 lines maximum and contain only:
Use the `<subagent-name>` subagent to accomplish this task.
Do NOT include:
---
description: Create well-formatted commits using conventional commits style
allowed-tools: Task(git-committer)
---
Use the `git-committer` subagent to create a well-formatted commit.
---
description: Create well-formatted commits using conventional commits style
agent: git-committer
---
Use the `git-committer` subagent to create a well-formatted commit.
---
description: Generate a PRP
argument-hint: [feature_name]
allowed-tools: Task(prp-generator)
---
Use the `prp-generator` subagent to create a Product Requirements Prompt.
BAD - Command with full implementation:
---
description: Stage changes
allowed-tools: Bash(git add:*)
---
# Staging Changes
Stage relevant changes via `git add`...
1. Run `git status` to check for already staged changes
2. Verify no staged changes exist...
3. Run `git status` again...
4. Carefully review which files are relevant...
5. Stage only the relevant files...
6. Run `git status` again...
BAD - Command that delegates directly to skill (skipping subagent):
---
description: Stage changes via git add
allowed-tools: Skill(git-staging)
---
Use the `git-staging` skill to stage relevant changes.
GOOD - Command that delegates to subagent:
---
description: Stage changes via git add
allowed-tools: Task(git-stager)
---
Use the `git-stager` subagent to stage relevant changes.
.claude/agents/<name>.md.config/opencode/agent/<name>.mdsubagent-authoring skill to create it firstallowed-tools: Task(subagent-name)agent: subagent-nameBefore creating a command, always verify the target subagent exists:
# Check Claude Code subagent
ls ~/.claude/agents/<subagent-name>.md
# Check OpenCode subagent
ls ~/.config/opencode/agent/<subagent-name>.md
If either file is missing, ask the user:
> "The subagent <subagent-name> doesn't exist yet. Would you like me to
> create it using the subagent-authoring skill before proceeding with
> the command?"
Do NOT create commands that reference non-existent subagents.
subagent-authoring - For creating subagent definitions that delegate to skillsskill-authoring - For creating skills themselvesCreate new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take majiayu000/agent-command-authoring from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.