| name | mermaid-validate |
| description | Validate Mermaid syntax in .md files or directories |
| argument-hint | ["path"] |
| allowed-tools | Read, Bash |
/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 -1
If empty, run fallback (for dev/repo usage):
find "$HOME" -maxdepth 8 -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
Use the returned path as PLUGIN_DIR in all steps below.
-
Ensure Dependencies:
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"
If .claude/mermaid.json does not exist, display a one-time nudge before continuing:
First time using the mermaid plugin? Run /mermaid-config to 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
.md files containing Mermaid blocks.
-
Optional Config:
- If
.claude/mermaid.json exists, read defaults:
output_directory (default: ./diagrams)
Resolve output path:
- If
output_directory is "same" AND an input file path is known:
OUTPUT_DIR=$(dirname {input_file}) (for a directory argument, use the directory itself)
- If
output_directory is "same" AND no argument was provided:
OUTPUT_DIR=./diagrams
- Otherwise:
OUTPUT_DIR={output_directory}
-
Validate:
- For each markdown file:
node "$PLUGIN_DIR/scripts/extract_mermaid.js" <file> --validate
-
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