Agent skill
invocable-development
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.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/invocable-development
SKILL.md
Invocable Development
<mission_control> Create portable, self-contained invocable components that work in isolation without external dependencies <success_criteria>Component created with valid frontmatter, clear description, and appropriate organization for complexity level</success_criteria> <standards_gate> 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 </standards_gate> </mission_control>
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:commandnaming 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/, orreferences/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
/nameor/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:
---
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:
# 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
$ARGUMENTSusage 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)
# Component Name
<mission_control>
<objective>[What this achieves]</objective>
<success_criteria>[How to verify success]</success_criteria>
</mission_control>
<trigger>When [specific condition]. Not for: [exclusion cases].</trigger>
<interaction_schema>
[State flow for reasoning tasks]
</interaction_schema>
Footer (MANDATORY for skills, recommended for commands)
---
<trigger>When [specific condition]</trigger>
<critical_constraint>
MANDATORY: [Non-negotiable rule 1]
MANDATORY: [Non-negotiable rule 2]
No exceptions.
</critical_constraint>
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}}:
# {{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 pipefailfor 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
<fetch_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. </fetch_protocol>
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
<critical_constraint> 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 <philosophy_bundle> 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
<philosophy_bundle>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.
<philosophy_bundle> <portability_invariant> <mandatory_rule>Every component MUST work with zero .claude/rules dependencies</mandatory_rule> <recognition_question>Would this work in a project with no .claude/rules?</recognition_question> </portability_invariant>
<quality_invariant> <iron_law>NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE</iron_law> <verification_protocol> Mark every factual claim with VERIFIED/INFERRED/UNCERTAIN Read actual file before asserting "X exists" Trace behavior by reading code, not just grep </verification_protocol> </quality_invariant>
<architecture_invariant> XML for control, Markdown for data <recency_bias>Place critical constraints at bottom of files</recency_bias> <progressive_disclosure>Tier 2 lean, Tier 3 deep</progressive_disclosure> </architecture_invariant>
<principles_invariant> <map_not_script>Provide boundaries and invariants; trust the Pilot</map_not_script> <delta_standard>Good Component = Expert Knowledge − What Claude Already Knows</delta_standard> <positive_delta>Only document knowledge Claude wouldn't already have</positive_delta> </principles_invariant> </philosophy_bundle>
No exceptions. Portability invariant must be maintained. </critical_constraint>
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?