/mermaid-validate
User request: "$ARGUMENTS"
Task
Check Mermaid syntax for all diagrams found in a given file or directory.
Process
Resolve Plugin Path: Run once before executing any scripts:
find "$HOME/.claude/plugins/cache" -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1If empty, run fallback (for dev/repo usage):
find "$HOME" -maxdepth 8 -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1Use the returned path as
PLUGIN_DIRin all steps below.Ensure Dependencies:
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"If
.claude/mermaid.jsondoes not exist, display a one-time nudge before continuing:First time using the mermaid plugin? Run
/mermaid-configto pick a theme and output settings. Using defaults for now (zinc-light,./diagrams).Resolve Target Path:
- If no path is provided, use the current directory.
- If the path is a file, validate that single file.
- If the path is a directory, find all
.mdfiles containing Mermaid blocks.
Optional Config:
- If
.claude/mermaid.jsonexists, read defaults:output_directory(default: ./diagrams)
Resolve output path:
- If
output_directoryis"same"AND an input file path is known:OUTPUT_DIR=$(dirname {input_file})(for a directory argument, use the directory itself) - If
output_directoryis"same"AND no argument was provided:OUTPUT_DIR=./diagrams - Otherwise:
OUTPUT_DIR={output_directory}
- If
Validate:
- For each markdown file:
node "$PLUGIN_DIR/scripts/extract_mermaid.js" <file> --validate
- For each markdown file:
Report:
- Summarize pass/fail per file.
- If a file fails, point to
$PLUGIN_DIR/references/guides/troubleshooting.md.
Output
- ✅ Summary of files validated
- ❌ List of failures with errors
Reference
- Troubleshooting:
$PLUGIN_DIR/references/guides/troubleshooting.md