---
name: invocable-development
description: "Create, validate, and audit portable invocable components (commands and skills) for reusable capabilities. Use when building, auditing, or reviewing component quality. Not for agents, hooks, or MCP servers."
---
# Invocable Development
Create portable, self-contained invocable components that work in isolation without external dependencies
Component created with valid frontmatter, clear description, and appropriate organization for complexity level
MANDATORY: Read skills documentation BEFORE creating components:
- Frontmatter fields → https://code.claude.com/docs/en/skills.md
- Frontmatter patterns → references/frontmatter-reference.md
- Progressive disclosure → references/progressive-disclosure.md
- Quality framework → references/quality-framework.md
When creating commands or skills. Not for: agents, hooks, or MCP servers (use agent-development, hook-development, mcp-development).
## The Fundamental Truth
**Commands and Skills are the same system.**
Both use:
- Same frontmatter format
- Same invocation mechanism
- Same auto-invoke behavior
- Same portability requirements
- Same quality standards
**The only difference is organizational choice.**
---
## Command vs Skill: Organizational Choice
Both commands and skills are **auto-invocable tools** - AI and users can invoke either based on description and context.
The difference is **structural and organizational**:
| Aspect | Commands | Skills |
| -------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------- |
| **Structure** | Single `.md` file | Folder with `SKILL.md` + optional `workflows/` + `references/` |
| **Naming** | Folder nesting creates `/category:command` or `/category:subgroup:command` | Flat: `skills/engineering-lifecycle/SKILL.md` |
| **File count** | One file | Multiple files (main + optional workflows/references) |
| **Use case** | Simple operations, categorization, or router patterns | Domain knowledge, progressive disclosure, complex workflows |
### Choose Command When
- Single file is sufficient
- Folder nesting provides useful categorization
- Content fits in one file (~500-1500 words)
- Quick access via `/category:command` naming is valuable
- **Router pattern**: Grouping related operations under a namespace
### Choose Skill When
- Content benefits from multiple files
- SKILL.md contains full philosophy (~500 lines flexible for context)
- Ultra-situational content needs references/ (API specs, code snippets, troubleshooting)
- Multiple workflow files provide better organization
- Examples or scripts should be bundled
- Domain expertise that warrants structured documentation
---
## Command Structure
Commands are single `.md` files. Folder depth determines the invocation name:
### Standard Category Pattern (2 levels)
```
commands/
├── build/
│ └── fix.md → /build:fix
├── analysis/
│ └── diagnose.md → /analysis:diagnose
└── planning/
└── create.md → /planning:create
```
### Router Pattern (3 levels)
**Use deeper nesting when you need a namespace that groups related operations:**
```
commands/
└── toolkit/
├── build/
│ ├── command.md → /toolkit:build:command
│ ├── skill.md → /toolkit:build:skill
│ └── package.md → /toolkit:build:package
├── audit/
│ ├── command.md → /toolkit:audit:command
│ └── skill.md → /toolkit:audit:skill
└── critique/
├── command.md → /toolkit:critique:command
└── skill.md → /toolkit:critique:skill
```
**Router Pattern Characteristics:**
- **3-level structure**: `commands/namespace/action/component.md`
- **Invokes as**: `/namespace:action:component`
- **Purpose**: Group related operations by action type
- **Each command**: Still a single file with self-contained logic
- **Not a skill**: No `SKILL.md`, `workflows/`, or `references/` folders
**When to use Router Pattern:**
- Multiple related operations that share a common namespace
- Toolkit-style organization (e.g., `/toolkit:build:*`, `/toolkit:audit:*`)
- Action-based categorization provides value
- You want to group operations without creating a skill
**Key distinction**: Router commands are still single-file commands. The folder structure is purely organizational - no "router skill" coordinates them.
---
## Skill Structure
```
skill-name/
├── SKILL.md # Full philosophy, patterns, workflows (~400-600 lines)
├── workflows/ # Optional: separate workflow files
│ ├── workflow-1.md
│ └── workflow-2.md
├── references/ # Optional: ultra-situational lookup (2-3 files)
│ ├── api-spec.md # API endpoints, field definitions
│ ├── examples.md # Ready-to-copy code snippets
│ └── troubleshooting.md # Edge cases, debugging
├── templates/ # Optional: reusable output structures
│ └── template.md
├── scripts/ # Optional: executable automation scripts
│ └── script.sh
└── examples/ # Optional: working demonstrations
└── example.md
```
**Folder structure** enables progressive disclosure - SKILL.md contains full philosophy and patterns, references/ contains ultra-situational lookup material only.
---
## Both Are Auto-Invocable
**Commands and skills work the same way:**
- AI invokes based on description keywords
- Users invoke via `/name` or `/category:name`
- Same frontmatter format
- Same portability requirements
- Same quality standards
**The choice is about organization, not capability.**
---
## Universal Frontmatter
Both commands and skills use the same frontmatter:
```yaml
---
name: component-name
description: "What it does. Use when [trigger condition]."
argument-hint: "[arg1] [arg2]"
---
```
### Field Reference
| Field | Required | Description |
| --------------- | ----------- | ------------------------------------------------------------------- |
| `name` | Yes | Unique identifier (max 64 chars, lowercase letters/numbers/hyphens) |
| `description` | Recommended | What the component does and when to use it (What-When-Not format) |
| `argument-hint` | No | Hint shown during autocomplete indicating expected arguments |
### Description Guidelines
- Third person (never "I can" or "You can")
- What-When-Not format
- No references to other commands/skills by name
- Clear and actionable
### Argument Hint Guidelines
**Purpose**: Show users what arguments are expected during autocomplete `/` invocation.
**Format**: Use bracket notation for placeholders: `[arg1] [arg2]`
**Examples**:
```yaml
# Single required argument
argument-hint: "[issue-number]"
# Multiple arguments
argument-hint: "[filename] [format]"
# Optional arguments (use ? suffix)
argument-hint: "[filename] [format?]"
# Variadic arguments (use ...)
argument-hint: "[files...]"
# Combined patterns
argument-hint: "[pattern] [path?]"
```
**Best Practices**:
- Keep hints concise (use short, descriptive placeholder names)
- Use `?` suffix for optional arguments
- Use `...` suffix for variadic arguments (accepts multiple values)
- Align hint with actual `$ARGUMENTS` usage in skill body
- Order hints to match argument position: `$0`, `$1`, `$2`...
**When to Use**:
- Skills/commands that accept specific arguments
- Workflow components with clear expected inputs
- When argument structure isn't obvious from description alone
- Skip for simple boolean flags or context-only operations
### Name Validation Rules
- Maximum 64 characters
- Lowercase letters, numbers, hyphens only
- No XML tags
- Reserved words: "anthropic", "claude" are forbidden
- Must match directory name exactly
### Naming Conventions
Use verb-noun convention:
| Pattern | Purpose | Examples |
| ----------- | -------------------------- | -------------------------------------- |
| `create-*` | Building/authoring tools | `create-agent-skills`, `create-hooks` |
| `manage-*` | Managing external services | `manage-facebook-ads`, `manage-stripe` |
| `setup-*` | Configuration/integration | `setup-stripe-payments`, `setup-meta` |
| `analyze-*` | Analysis and inspection | `analyze-diagnose`, `analyze-security` |
**Avoid**: Vague names (`helper`, `utils`), generic (`documents`, `data`), reserved words (`anthropic-helper`, `claude-tools`).
---
## Universal UHP Structure
For complex components (especially skills), use UHP structure:
### Header (MANDATORY for skills, recommended for complex commands)
```markdown
# Component Name
[What this achieves]
[How to verify success]
When [specific condition]. Not for: [exclusion cases].
[State flow for reasoning tasks]
```
### Footer (MANDATORY for skills, recommended for commands)
```markdown
---
When [specific condition]
MANDATORY: [Non-negotiable rule 1]
MANDATORY: [Non-negotiable rule 2]
No exceptions.
```
---
## Universal Best Practices
### Portability
- Self-contained (no external dependencies)
- Work in isolation
- Carry own philosophy
### Autonomy
- 80-95% autonomy (0-5 AskUserQuestion rounds per session)
- Clear triggering conditions
- Concrete patterns and examples
### Quality
- Imperative form (no "you/your")
- Clear examples (working, not pseudo-code)
- Single source of truth
### Templates Folder
Templates are reusable output structures in `templates/` that Claude copies and fills:
```
skill-name/
└── templates/
├── plan-template.md
├── spec-template.md
└── report-template.md
```
Use templates when output should have consistent structure. Template syntax uses `{{placeholder}}`:
```markdown
# {{PROJECT_NAME}} Implementation Plan
## Overview
{{1-2 sentence summary}}
## Goals
- {{Primary goal}}
```
### Scripts Folder
Scripts are executable code in `scripts/` that Claude runs as-is:
```
skill-name/
└── scripts/
├── deploy.sh
└── validate.py
```
Well-structured scripts include:
- Clear purpose comment at top
- Input validation
- Error handling
- Idempotent operations
- `set -euo pipefail` for bash
**Security**: Never embed secrets; use environment variables.
---
## Command Orchestration Pattern (Optional)
**This is an optional orchestration archetype, not a requirement.**
One component can orchestrate another for workflow automation.
**Pattern:** Component A orchestrates → Component B
- **Component A (typically command):** Orchestrates workflow, manages interaction flow, coordinates multiple steps
- **Component B (typically skill):** Contains detailed knowledge, patterns, or procedures to execute
**Why this works:** Both are auto-invocable. A command can invoke a skill, which can invoke other components, creating flexible workflows.
**Critical constraint:** Component B MUST NOT reference Component A. This ensures portability - Component B works independently.
See `references/command-orchestration.md` for complete pattern documentation.
---
---
## Dynamic Sourcing Protocol
**MANDATORY FETCH**: Before creating commands or skills, fetch the content from:
- https://code.claude.com/docs/en/skills.md (frontmatter reference)
- https://agentskills.io/specification.md (Agent Skills specification)
This skill builds on these standards with Seed System-specific patterns and philosophy.
---
## Navigation
**Official Documentation**:
- Frontmatter reference → https://code.claude.com/docs/en/skills.md
- Agent Skills specification → https://agentskills.io/specification.md
### Toolkit Commands
| If you need... | Command |
| ------------------ | --------------------------- |
| Create a command | `/toolkit:build:command` |
| Create a skill | `/toolkit:build:skill` |
| Create a package | `/toolkit:build:package` |
| Audit a command | `/toolkit:audit:command` |
| Audit a skill | `/toolkit:audit:skill` |
| Critique (command) | `/toolkit:critique:command` |
| Critique (skill) | `/toolkit:critique:skill` |
---
## Absolute Constraints
MANDATORY: All components MUST be self-contained and work in isolation (zero .claude/rules dependency)
MANDATORY: Skills MUST include UHP header (mission_control, trigger, interaction_schema) and footer (critical_constraint)
MANDATORY: Components MUST achieve 80-95% autonomy (0-5 AskUserQuestion rounds per session)
MANDATORY: Description MUST use What-When-Not format in third person
MANDATORY: No component references another component by name in description (portability violation)
MANDATORY: If using Command Orchestration Pattern, skill MUST NOT reference invoking command
MANDATORY: Skills with `context: fork` MUST include `` section carrying essential behavioral rules
**Philosophy Bundle Requirement (context: fork only):**
Forked skills run in isolation and lose access to `.claude/rules/`. To maintain quality standards:
- Identify critical behavioral rules the skill needs
- Include `` section after main content
- Bundle only BEHAVIORAL rules (not style, not tutorials)
- Ensure skill works correctly in project with ZERO .claude/rules
See `references/advanced-execution.md` - "Philosophy Bundles" section for implementation.
---
Every component MUST work with zero .claude/rules dependencies
Would this work in a project with no .claude/rules?
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
Mark every factual claim with VERIFIED/INFERRED/UNCERTAIN
Read actual file before asserting "X exists"
Trace behavior by reading code, not just grep
XML for control, Markdown for data
Place critical constraints at bottom of files
Tier 2 lean, Tier 3 deep
Provide boundaries and invariants; trust the Pilot
Good Component = Expert Knowledge − What Claude Already Knows
Only document knowledge Claude wouldn't already have
No exceptions. Portability invariant must be maintained.