Add "lessons/patterns/plugin-load-failure---check-command-frontmatter-first"
@@ -0,0 +1,59 @@
|
||||
## Context
|
||||
|
||||
When Claude Code plugins show "failed to load · 1 error" in `/plugin` output, multiple plugins may fail simultaneously.
|
||||
|
||||
## Problem
|
||||
|
||||
Wasted significant debugging time checking:
|
||||
- MCP server venvs
|
||||
- run.sh scripts
|
||||
- hooks.json configuration
|
||||
- plugin.json structure
|
||||
- Agent files
|
||||
|
||||
When the actual issue was **missing YAML frontmatter** on command markdown files.
|
||||
|
||||
## Root Cause
|
||||
|
||||
Command files in `plugins/{name}/commands/*.md` MUST start with YAML frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: command-name
|
||||
description: What the command does
|
||||
agent: agent-name # optional
|
||||
---
|
||||
```
|
||||
|
||||
Files that start directly with `# Title` instead of `---` will cause the plugin to fail to load.
|
||||
|
||||
## Solution
|
||||
|
||||
**FIRST CHECK when any plugin fails to load:**
|
||||
|
||||
```bash
|
||||
for f in ~/.claude/plugins/marketplaces/leo-claude-mktplace/plugins/{plugin}/commands/*.md; do
|
||||
first=$(head -1 "$f")
|
||||
if [[ "$first" != "---" ]]; then
|
||||
echo "MISSING FRONTMATTER: $(basename $f)"
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
## Files Fixed This Session
|
||||
|
||||
- pr-review: pr-review.md, pr-diff.md, pr-findings.md, pr-summary.md
|
||||
- data-platform: ALL 10 command files (data-quality.md, dbt-test.md, explain.md, ingest.md, initial-setup.md, lineage.md, lineage-viz.md, profile.md, run.md, schema.md)
|
||||
|
||||
## Prevention
|
||||
|
||||
1. **When creating new commands**: Always start with frontmatter template
|
||||
2. **Validation script**: Add frontmatter check to `validate-marketplace.sh`
|
||||
3. **PR review**: Check command files have frontmatter before merge
|
||||
|
||||
## Key Lesson
|
||||
|
||||
**Plugin load errors = check command frontmatter BEFORE anything else.** Don't waste time on venvs, MCP servers, or hooks until frontmatter is verified.
|
||||
|
||||
---
|
||||
**Tags:** plugin-debugging, frontmatter, command-files, validation, time-waster
|
||||
Reference in New Issue
Block a user