Validate and fix frontmatter consistency across all workflows
Validates and fixes frontmatter consistency across all workflows in the workspace.
/plugin marketplace add coalesce-labs/catalyst/plugin install catalyst-meta@catalystinheritYou are tasked with validating frontmatter consistency across all agents and commands 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
- commands/ 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: /Users/ryan/code-repos/ryan-claude-workspace/agents/
Return: Validation report for all agents
Task 2 - Validate Commands:
Use codebase-analyzer agent:
"Validate frontmatter in all files matching commands/*.md. For each file, check:
1. Required fields present (description, category, tools, model, version)
2. No 'name' field (commands use filename)
3. Tools list contains valid Claude Code tools
4. Category is one of: workflow, planning, implementation, validation, linear, git, workflow-discovery, general
5. Version follows semver (e.g., 1.0.0)
6. Description is clear and concise
7. argument-hint present if command takes arguments
Return: List of all validation issues found with file:line references"
Tools: Glob, Grep, Read
Path: /Users/ryan/code-repos/ryan-claude-workspace/commands/
Return: Validation report for all commands
Task 3 - Extract Tool References:
Use codebase-pattern-finder agent:
"Extract all unique tool names referenced in frontmatter across agents/*.md and commands/*.md. Return a sorted list of all tools used."
Tools: Glob, Grep
Path: /Users/ryan/code-repos/ryan-claude-workspace/
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, {commands-count} commands **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"
#### commands/create_plan.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: `/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:
/validate-frontmatter - Validate workflows against this standard/create-workflow - Create new workflows with correct frontmatter/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:
/validate-frontmatter to check compliance
## Advanced Usage
### Validate Specific Workflow
/validate-frontmatter agents/codebase-analyzer.md
Validates just one file.
### Auto-Fix Everything
/validate-frontmatter --fix
Automatically fixes all issues without prompting.
### Generate Report Only
/validate-frontmatter --report-only > frontmatter-report.md
Saves report to file for review.
### Validate by Category
/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**: `/discover-workflows` → uses this for validation
- **Import**: `/import-workflow` → validates imported workflows
- **Create**: `/create-workflow` → ensures new workflows are valid
- **Validate**: `/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!