Complete metadata specification for all templates in examples/.
Template metadata enables:
- Discovery: Find templates by complexity, time, domain
- Automation: Generate catalogs, indexes, and documentation
- Quality: Validate consistency across 181+ templates
- Learning: Help users find appropriate templates for their skill level
All templates (agents/, commands/, skills/, hooks/, workflows/, scripts/) should include metadata in YAML frontmatter:
---
name: template-name
description: One-line description of what this template does
complexity: beginner|intermediate|advanced
time: 5 min|15 min|30 min|1 hour|2 hours|4+ hours|varies
domain: security|testing|deployment|performance|architecture|automation|general
prerequisites: []
status: stable|experimental|deprecated
keywords: [tag1, tag2, tag3]
---Markdown (.md):
---
name: code-reviewer
description: Code review agent with security and quality checks
...
---
# Code Reviewer Agent
Content starts here...Bash/PowerShell (.sh, .ps1):
#!/bin/bash
# ---
# name: pre-commit-validator
# description: Validates code before commit
# ...
# ---
# Script content starts hereUnique identifier for the template. Must be URL-safe and kebab-cased.
Rules:
- Use only lowercase letters, numbers, hyphens
- No spaces or special characters
- Should match filename (without extension)
- Examples:
code-reviewer,unit-test-generator,security-auditor
Usage:
- Becomes the catalog link text
- Used in
/agent code-reviewercommands - Referenced in documentation
One-line summary of what the template does.
Rules:
- Keep under 100 characters
- Be specific, not vague
- Start with a verb when possible
- Focus on the outcome, not implementation details
Examples:
# ✅ Good
description: Automated code review for security and performance issues
# ❌ Bad
description: A tool for reviewing code
description: Code analyzer that checks thingsSkill level required to use the template effectively.
Valid values:
beginner: No prerequisite knowledge neededintermediate: Basic Claude Code experience requiredadvanced: Deep Claude Code knowledge or specialized domain expertise
Guidelines:
- Beginner: Straightforward agents/skills that don't require customization
- Examples: Simple testing agents, basic documentation generators
- Intermediate: Templates that require some customization or domain knowledge
- Examples: Code review agents, CI/CD command templates, common workflows
- Advanced: Complex orchestration, specialized domains, or multi-component systems
- Examples: Multi-agent systems, security auditing, performance optimization, cyber defense
Usage:
- Helps users filter in learning path and
/self-assessment - Guides documentation complexity level
- Informs prerequisite suggestions
Estimated time to understand and adapt the template to your project.
Valid values:
5 min: Quick reference, minimal setup15 min: Simple template, light adaptation30 min: Standard template, some customization needed1 hour: Moderate complexity or significant learning2 hours: Complex template or steep learning curve4+ hours: Very complex systems or multiple componentsvaries: Depends heavily on context (e.g., domain-specific)
What "time" includes:
- Reading/understanding the template
- Adapting to your project
- Testing the template
- Verifying it works
What "time" does NOT include:
- Learning Claude Code fundamentals (covered by Module 01-02)
- Domain-specific knowledge (e.g., learning Kubernetes before using DevOps template)
Examples:
code-revieweragent:30 min(understand checklist, adapt rules)test-writercommand:15 min(pick test framework, light customization)- Multi-agent cyber defense:
4+ hours(multiple agents, event schema, pipeline)
Category/domain the template belongs to.
Common domains:
security: Vulnerability scanning, threat detection, security auditstesting: Test generation, test validation, coverage analysisdeployment: CI/CD, release automation, infrastructureperformance: Optimization, profiling, bottleneck detectionarchitecture: Design review, refactoring, pattern analysisautomation: Workflow orchestration, repetitive task automationgeneral: No specific domain, broadly applicable
Rules:
- Use a single domain (prefer the primary one)
- If template spans multiple domains, pick the strongest fit
- When in doubt, use
general
Usage:
- Enables domain-based filtering in catalogs
- Helps users find expertise-specific tools
- Organizes documentation sections
What knowledge or setup is required before using the template.
Format:
prerequisites: [skill-name, agent-name, module-number]Examples:
# Security auditor requires understanding Module 02 (context)
prerequisites: [Module-02-Core-Loop]
# This agent is built on top of code-reviewer
prerequisites: [code-reviewer agent]
# Requires familiarity with testing concepts
prerequisites: [testing-patterns skill]Rules:
- List specific modules, skills, or other agents
- Keep it short (max 3 prerequisites)
- If more than 3, consider if template is too advanced
- Should map to actual learning path items
Usage:
- Auto-generated prerequisite chains in catalog
- Validation in
/self-assessment(suggest prereqs) - Documentation can surface prerequisites
Lifecycle status of the template.
Valid values:
stable(default): Tested, documented, ready for productionexperimental: New, not yet fully tested, may changedeprecated: No longer recommended, consider alternatives
Rules:
- Omit if
stable(default) - Mark clearly with warning icon in catalog if
experimentalordeprecated - Experimental templates should include migration path notes
Examples:
# Experimental new feature
status: experimental
# Consider alternatives: code-reviewer agent
# Deprecated, replaced by newer version
status: deprecated
# Use instead: security-auditor-v2 agentSearch tags for discoverability.
Format:
keywords: [keyword1, keyword2, keyword3, ...]Examples:
# Code reviewer keywords
keywords: [review, quality, security, performance, linting]
# Test generator keywords
keywords: [testing, jest, unit-test, tdd, bdd, coverage]Rules:
- Use 3-5 keywords maximum
- Keep keywords short (1-2 words)
- Include common search terms (frameworks, patterns, practices)
- Include domain-specific vocabulary
Usage:
- Enables full-text search in extended catalog
- Improves discoverability through tags
- Supports alias mapping (e.g., "reviews" → "code-reviewer")
The scripts/generate-template-catalog.py --validate tool enforces:
- Required fields exist:
name,description,complexity,time - Valid values for enums:
complexity,time,status - Format rules:
nameis kebab-case, description under 100 chars - File consistency: Filename matches
namefield - Reference validity: Prerequisites, domains, keywords are well-formed
Every template MUST include at minimum:
---
name: my-template
description: Brief description of what this does
complexity: intermediate
time: 30 min
------
name: security-auditor
description: Comprehensive security scan with OWASP Top 10 checks
complexity: advanced
time: 2 hours
domain: security
prerequisites: [Module-02-Core-Loop, code-reviewer agent]
status: stable
keywords: [security, audit, vulnerability, owasp, injection, xss, sqlinjection]
---
# Security Auditor Agent
Agent definition and content follows...The catalog is auto-generated from metadata:
# Generate CATALOG.md from all template metadata
python3 scripts/generate-template-catalog.py
# Validate all templates have correct metadata
python3 scripts/generate-template-catalog.py --validate
# Generate and save to specific file
python3 scripts/generate-template-catalog.py --output examples/CATALOG.mdIntegration points:
- Pre-commit hook: Validates metadata before commit
- Release workflow: Auto-generates catalog during
/release - CI/CD: Validates metadata on each push
If updating an existing template:
- Add frontmatter to the top of the file
- Run validation:
python3 scripts/generate-template-catalog.py --validate - Commit with message:
docs: add metadata to [template-name]
Update multiple templates at once:
# Find all templates without metadata
find examples -name "*.md" -exec grep -L "^---" {} \;
# Add minimal metadata to all
find examples -name "*.md" | xargs -I {} \
python3 scripts/add-default-metadata.py {}Q: Should every template have all fields?
A: No. Required: name, description, complexity, time. Optional fields can be omitted if not applicable.
Q: Can I add custom fields?
A: Yes, but they won't be indexed by the catalog tool. Useful for internal tracking (e.g., author, date_added).
Q: How often should metadata be updated?
A: Update when: template is significantly modified, status changes, prerequisites change, or domain shifts.
Q: What if a template covers multiple domains?
A: Choose the primary/strongest domain. If truly multi-domain, consider splitting into separate templates or use general.
examples/CATALOG.md— Auto-generated template indexscripts/generate-template-catalog.py— Catalog generation tool.claude/hooks/validate-template-metadata.sh— Pre-commit validationguide/learning-path/— Learning path references specific templates
Last updated: 2026-04-21
Version: 1.0.0