plugins/meta/skills/validate-frontmatter/SKILL.md
Validate and fix frontmatter consistency across all workflows
npx skillsauth add coalesce-labs/catalyst validate-frontmatterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are tasked with validating frontmatter consistency across all agents and skills in the workspace, and fixing any issues found.
This command ensures all workflows follow the workspace frontmatter standard, making them easier to maintain, discover, and integrate.
When invoked:
I'll validate frontmatter across all workflows.
Checking:
- agents/ directory
- skills/ directory
What would you like to do?
1. Validate all workflows (report issues only)
2. Validate and auto-fix issues
3. Validate specific workflow
4. Generate frontmatter standard document
Get user selection:
IMPORTANT: Spawn parallel validation tasks for efficiency.
Use TodoWrite to track parallel validation tasks.
For "Validate All" mode:
Task 1 - Validate Agents:
Use codebase-analyzer agent:
"Validate frontmatter in all files matching agents/*.md. For each file, check:
1. Required fields present (name, description, tools, model, version)
2. Name field matches filename (kebab-case)
3. Tools list contains valid Claude Code tools
4. Category is one of: research, analysis, search, execution, validation, general
5. Version follows semver (e.g., 1.0.0)
6. Description is clear and informative
Return: List of all validation issues found with file:line references"
Tools: Glob, Grep, Read
Path: $(git rev-parse --show-toplevel)/plugins/*/agents/
Return: Validation report for all agents
Task 2 - Validate Skills:
Use codebase-analyzer agent:
"Validate frontmatter in all files matching skills/*/SKILL.md. For each file, check:
1. Required fields present (name, description)
2. User-invoked skills have disable-model-invocation: false
3. CI/background skills have user-invocable: false
4. Uses allowed-tools (not tools) for tool restrictions
5. Does NOT include model or category in frontmatter
6. Description is clear and concise
Return: List of all validation issues found with file:line references"
Tools: Glob, Grep, Read
Path: $(git rev-parse --show-toplevel)/plugins/*/skills/
Return: Validation report for all skills
Task 3 - Extract Tool References:
Use codebase-pattern-finder agent:
"Extract all unique tool names referenced in frontmatter across plugins/*/agents/*.md and plugins/*/skills/*/SKILL.md. Return a sorted list of all tools used."
Tools: Glob, Grep
Path: $(git rev-parse --show-toplevel)/plugins/
Return: Complete list of tools referenced
WAIT for all 3 tasks to complete.
Combine results from parallel tasks:
Mark all tasks complete in TodoWrite.
Analyze:
Show comprehensive report:
# Frontmatter Validation Report
**Validated**: {date} **Scope**: {agents-count} agents, {skills-count} skills **Status**:
{PASS/FAIL}
## Summary
- ✅ **Passed**: {pass-count} workflows
- ⚠️ **Warnings**: {warning-count} workflows
- ❌ **Failed**: {fail-count} workflows
## Critical Issues
### {workflow-name}.md
- ❌ Missing required field: `version`
- ❌ Invalid category: "misc" (should be one of: general, research, analysis...)
### {workflow-name}.md
- ❌ Name field "{name}" doesn't match filename "{filename}"
- ❌ Invalid tool reference: "SearchFiles" (not a valid Claude Code tool)
## Warnings
### {workflow-name}.md
- ⚠️ Description is very short (< 20 chars)
- ⚠️ No category specified (defaulting to "general")
### {workflow-name}.md
- ⚠️ Using old version format: "v1.0" (should be "1.0.0")
## Tool Inventory
**Total unique tools**: {tool-count} **Valid tools**: {valid-count} **Invalid references**:
{invalid-count}
### Used Tools:
- Read ({usage-count} workflows)
- Write ({usage-count} workflows)
- Edit ({usage-count} workflows)
- Grep ({usage-count} workflows)
- Glob ({usage-count} workflows) [... more tools ...]
### Invalid References:
- SearchFiles (used in {workflow-name}.md) → Should be: Grep or Glob
- FindFile (used in {workflow-name}.md) → Should be: Glob
## Category Distribution
### Agents:
- research: {count}
- analysis: {count}
- search: {count}
- execution: {count}
- validation: {count}
- general: {count}
### Commands:
- workflow: {count}
- planning: {count}
- implementation: {count}
- validation: {count}
- linear: {count}
- git: {count}
- workflow-discovery: {count}
- general: {count}
## Recommendations
1. **Fix critical issues first**: {count} workflows need immediate attention
2. **Standardize versions**: {count} workflows use non-semver format
3. **Update tool references**: {count} invalid tool names found
4. **Add descriptions**: {count} workflows have minimal descriptions
---
Next steps:
- Run with `--fix` to auto-correct issues
- Review and approve fixes before applying
- Re-validate after fixes
If user chose auto-fix:
Create fix plan:
Present fix plan:
# Auto-Fix Plan
I can automatically fix {fixable-count} issues:
## {workflow-name}.md
- Add missing `version: 1.0.0`
- Fix category: "misc" → "general"
- Standardize tool name: "SearchFiles" → "Grep"
## {workflow-name}.md
- Fix version format: "v1.0" → "1.0.0"
- Add missing `model: inherit`
**Cannot auto-fix** ({manual-count} issues):
- {workflow-name}.md: Description too short (needs human review)
- {workflow-name}.md: Unclear category (analysis vs research?)
Proceed with auto-fix? (Y/n)
Apply fixes (after confirmation):
Report results:
✅ Auto-fix complete!
**Fixed**: {fixed-count} issues across {file-count} files
### Changes Made:
#### agents/codebase-locator.md
- Added `version: 1.0.0`
- Standardized category: "search"
#### skills/create_plan/SKILL.md
- Fixed version: "v1.0" → "1.0.0"
- Updated tool reference: "SearchFiles" → "Grep"
[... more changes ...]
**Still needs manual review**:
- {workflow-name}.md: {issue description}
Re-run validation to verify: `/catalyst-meta:validate-frontmatter`
If user chose to generate standard:
Create docs/frontmatter-standard.md:
# Frontmatter Standard
This document defines the frontmatter standard for all agents and commands in this workspace.
## Agent Frontmatter
### Required Fields
```yaml
---
name: { agent-name } # Agent identifier (kebab-case, must match filename)
description: | # Multi-line description
{What this agent does}
Use this agent when:
- {Use case 1}
- {Use case 2}
tools: { tool-list } # Array of Claude Code tools
model: inherit # Always "inherit"
category: { category } # One of: research, analysis, search, execution, validation, general
version: 1.0.0 # Semantic version
---
```
source: { repo-url } # If imported/adapted
adapted: { date } # Date of adaptation
original-author: { name } # Original creator
---
name: codebase-analyzer
description: |
Analyzes codebases to understand implementation details and patterns.
Use this agent when:
- You need to understand how a feature is implemented
- You want to trace data flow through the system
- You need to find patterns and conventions
tools: Read, Grep, Glob
model: inherit
category: analysis
version: 1.0.0
---
---
description: { one-line-summary } # Brief description (no name field!)
category: { category } # Command category
tools: { tool-list } # Array of Claude Code tools
model: inherit # Always "inherit"
version: 1.0.0 # Semantic version
---
argument-hint: { hint } # Hint for command arguments
source: { repo-url } # If imported/adapted
adapted: { date } # Date of adaptation
original-author: { name } # Original creator
---
description: Create detailed implementation plans through interactive process
category: planning
argument-hint: [ticket-file | ticket-reference]
tools: Read, Write, Edit, Grep, Glob, Task, TodoWrite
model: inherit
version: 1.0.0
---
Claude Code provides these tools:
Read - Read file contentsWrite - Write filesEdit - Edit existing filesGrep - Search file contents (regex)Glob - Find files by patternBash - Run shell commandsTask - Spawn sub-agentsTodoWrite - Manage todo listsWebFetch - Fetch web contentWebSearch - Search the webmcp__deepwiki__ask_question - Query external reposmcp__deepwiki__read_wiki_structure - Get repo structuremcp__deepwiki__read_wiki_contents - Read repo docslinear_get_ticket - Get Linear ticket detailslinear_create_ticket - Create Linear ticketslinear_update_ticket - Update Linear tickets(Check official Claude Code docs for complete list)
X.Y.Z (not vX.Y)name field matching filenamename field (use filename)argument-hint if command takes arguments---
name: create-plan # Commands don't have name field
description: Create plans
---
---
description: Create detailed implementation plans
category: planning
---
tools: SearchFiles, FindFile # These aren't real tools
tools: Grep, Glob # Correct tool names
version: v1.0 # Should be semver
version: 1.0.0 # Proper semver
When adding new categories or patterns:
/catalyst-meta:validate-frontmatter - Validate workflows against this standard/catalyst-meta:create-workflow - Create new workflows with correct frontmatter/catalyst-meta:import-workflow - Import external workflows and adapt frontmatter
Save and report:
✅ Frontmatter standard documented!
Saved to: docs/frontmatter-standard.md
This document now serves as the canonical reference for all frontmatter in this workspace.
Next steps:
/catalyst-meta:validate-frontmatter to check compliance
## Advanced Usage
### Validate Specific Workflow
/catalyst-meta:validate-frontmatter agents/codebase-analyzer.md
Validates just one file.
### Auto-Fix Everything
/catalyst-meta:validate-frontmatter --fix
Automatically fixes all issues without prompting.
### Generate Report Only
/catalyst-meta:validate-frontmatter --report-only > frontmatter-report.md
Saves report to file for review.
### Validate by Category
/catalyst-meta:validate-frontmatter --category research
Only validates workflows in "research" category.
## Validation Categories
### Critical Issues (Must Fix)
- Missing required fields
- Invalid field values
- Name/filename mismatch (agents)
- Invalid tool references
- Malformed YAML
### Warnings (Should Fix)
- Short descriptions (< 20 chars)
- Missing optional but recommended fields
- Unusual category choices
- Non-standard patterns
### Info (Nice to Have)
- Could add more detail
- Could specify argument-hint
- Could add source attribution
- Could improve formatting
## Auto-Fix Capabilities
### What Can Be Auto-Fixed
✅ Missing version field → Add `version: 1.0.0`
✅ Wrong version format → Convert to semver
✅ Missing model field → Add `model: inherit`
✅ Common tool typos → Fix to correct names
✅ Category typos → Fix to valid category
✅ YAML formatting → Standardize indentation
### What Requires Manual Review
❌ Ambiguous categories → Needs human judgment
❌ Short descriptions → Needs content creation
❌ Complex tool issues → May need workflow redesign
❌ Missing description → Needs understanding of purpose
## Important Notes
- **Non-destructive**: Auto-fix preserves content, only fixes frontmatter
- **Safe**: Always shows plan before applying fixes
- **Trackable**: Reports all changes made
- **Reversible**: Changes are standard edits, can be reverted via git
- **Standard-based**: Uses workspace-specific conventions
## Integration with Other Commands
- **Discover**: `/catalyst-meta:discover-workflows` → uses this for validation
- **Import**: `/catalyst-meta:import-workflow` → validates imported workflows
- **Create**: `/catalyst-meta:create-workflow` → ensures new workflows are valid
- **Validate**: `/catalyst-meta:validate-frontmatter` (this command) → checks everything
## Error Handling
### Malformed YAML
- Report syntax errors
- Show line number
- Suggest fixes
- Cannot auto-fix (manual correction needed)
### Unknown Fields
- Report unexpected fields
- Ask: Keep / Remove?
- Could be custom extensions
### Missing Files
- Skip files that don't exist
- Report which files were skipped
- Continue validation
### Permission Errors
- Report read/write issues
- Skip files that can't be accessed
- Provide error details
This command ensures workspace consistency and quality!
testing
Phase-agent that fixes a failing verify verdict so the pipeline self-heals instead of stalling to needs-human (CTL-653). Reads `${ORCH_DIR}/workers/<ticket>/verify.json`, fixes the `findings[]` (every severity:"high" plus the regression_risk drivers) directly via Edit/Write, commits the remediation, and emits `phase.remediate.complete.<ticket>`. The scheduler's router then re-dispatches `verify` to re-check (the verify⇄remediate cycle, cap 3). Dispatched as a `claude --bg` job by `phase-agent-dispatch`, which invokes it via slash command — hence `user-invocable: true`.
development
Phase agent for the verify step of the 9-phase orchestrator pipeline (CTL-450). NEW skill — has no canonical wrapper. Runs read-only adversarial verification against the implement-phase diff: tsc, tests, lint, security scan, reward-hacking scan, code review, test coverage, silent-failure hunt. Writes ${ORCH_DIR}/workers/<TICKET>/verify.json then emits phase.verify.complete.<ticket>. Reads phase-implement.json as its prior-phase artifact. NEVER writes application code — only test files allowed. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.
tools
--- name: phase-triage description: Phase agent that triages a Linear ticket — expands acronyms, classifies (feature/bug/docs/refactor/chore), identifies dependencies, estimates scope, writes triage.json, and posts a triage analysis comment to Linear. Triage completion is signaled by that comment plus the local triage.json — there is no `triaged` label. Emits phase.triage.complete.<TICKET> on success and phase.triage.failed.<TICKET> on error. Dispatched by the phase-agent orchestrator (CTL-452)
testing
Phase agent for the review step of the 9-phase orchestrator pipeline (CTL-450). Wraps the /review skill (gstack) — explicitly skips /ultrareview per user decision. Reads verify.json from the prior phase, runs /review against the diff, writes ${ORCH_DIR}/workers/<TICKET>/review.json, and creates a remediation commit for any HIGH-severity finding that has a deterministic fix. Emits phase.review.complete.<ticket>. Spawned via phase-agent-dispatch via slash command — hence `user-invocable: true`.