ascii-diagram-validator
Validate ASCII diagram alignment in markdown. TRIGGERS - diagram alignment, ASCII art, box-drawing diagrams.
Best use case
ascii-diagram-validator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Validate ASCII diagram alignment in markdown. TRIGGERS - diagram alignment, ASCII art, box-drawing diagrams.
Teams using ascii-diagram-validator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ascii-diagram-validator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ascii-diagram-validator Compares
| Feature / Agent | ascii-diagram-validator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Validate ASCII diagram alignment in markdown. TRIGGERS - diagram alignment, ASCII art, box-drawing diagrams.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# ASCII Diagram Validator
Validate and fix alignment issues in ASCII box-drawing diagrams commonly used in architecture documentation, README files, and code comments.
> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
## Overview
ASCII diagrams using box-drawing characters (─│┌┐└┘├┤┬┴┼ and double-line variants ═║╔╗╚╝╠╣╦╩╬) require precise column alignment. This skill provides:
1. **Validation script** - Detects misaligned characters with file:line:column locations
2. **Actionable fixes** - Specific suggestions for correcting each issue
3. **Multi-file support** - Validate individual files or entire directories
## When to Use This Skill
Invoke when:
- Creating or editing ASCII architecture diagrams in markdown
- Reviewing documentation with box-drawing diagrams
- Fixing "diagram looks wrong" complaints
- Before committing docs/ARCHITECTURE.md or similar files
- When user mentions "ASCII alignment", "diagram alignment", or "box drawing"
## Supported Characters
### Single-Line Box Drawing
```
Corners: ┌ ┐ └ ┘
Lines: ─ │
T-joins: ├ ┤ ┬ ┴
Cross: ┼
```
### Double-Line Box Drawing
```
Corners: ╔ ╗ ╚ ╝
Lines: ═ ║
T-joins: ╠ ╣ ╦ ╩
Cross: ╬
```
### Mixed (Double-Single)
```
╞ ╟ ╤ ╧ ╪ ╫
```
## Quick Start
### Validate a Single File
```bash
/usr/bin/env bash << 'PREFLIGHT_EOF'
uv run ${CLAUDE_PLUGIN_ROOT}/skills/ascii-diagram-validator/scripts/check_ascii_alignment.py docs/ARCHITECTURE.md
PREFLIGHT_EOF
```
### Validate Multiple Files
```bash
/usr/bin/env bash << 'PREFLIGHT_EOF_2'
uv run ${CLAUDE_PLUGIN_ROOT}/skills/ascii-diagram-validator/scripts/check_ascii_alignment.py docs/*.md
PREFLIGHT_EOF_2
```
### Validate Directory
```bash
/usr/bin/env bash << 'PREFLIGHT_EOF_3'
uv run ${CLAUDE_PLUGIN_ROOT}/skills/ascii-diagram-validator/scripts/check_ascii_alignment.py docs/
PREFLIGHT_EOF_3
```
## Output Format
The script outputs issues in a compiler-like format for easy navigation:
```
docs/ARCHITECTURE.md:45:12: error: vertical connector '│' at column 12 has no matching character above
→ Suggestion: Add '│', '├', '┤', '┬', or '┼' at line 44, column 12
docs/ARCHITECTURE.md:67:8: warning: horizontal line '─' at column 8 has no terminator
→ Suggestion: Add '┐', '┘', '┤', '┴', or '┼' to close the line
```
### Severity Levels
| Level | Description |
| ------- | ---------------------------------------- |
| error | Broken connections, misaligned verticals |
| warning | Unterminated lines, potential issues |
| info | Style suggestions (optional cleanup) |
## Validation Rules
The script checks for:
1. **Vertical Alignment** - Vertical connectors (│║) must align with characters above/below
2. **Corner Connections** - Corners (┌┐└┘╔╗╚╝) must connect properly to adjacent lines
3. **Junction Validity** - T-joins and crosses must have correct incoming/outgoing connections
4. **Line Continuity** - Horizontal lines (─═) should terminate at valid endpoints
5. **Box Closure** - Boxes should be properly closed (no dangling edges)
## Exit Codes
| Code | Meaning |
| ---- | ----------------------------------------------- |
| 0 | No issues found |
| 1 | Errors detected |
| 2 | Warnings only (errors ignored with --warn-only) |
## Integration with Claude Code
When Claude Code creates or edits ASCII diagrams:
1. Run the validator script on the file
2. Review any errors in the output
3. Apply suggested fixes
4. Re-run until clean
### Example Workflow
```bash
/usr/bin/env bash << 'PREFLIGHT_EOF_4'
# After editing docs/ARCHITECTURE.md
uv run ${CLAUDE_PLUGIN_ROOT}/skills/ascii-diagram-validator/scripts/check_ascii_alignment.py docs/ARCHITECTURE.md
# If errors found, Claude Code can read the output and fix:
# docs/ARCHITECTURE.md:45:12: error: vertical connector '│' at column 12 has no matching character above
# → Edit line 44, column 12 to add the missing connector
PREFLIGHT_EOF_4
```
## Limitations
- Detects structural alignment issues, not aesthetic spacing
- Requires consistent use of box-drawing characters (no mixed ASCII like +---+)
- Tab characters may cause false positives (convert to spaces first)
- Unicode normalization not performed (use pre-composed characters)
## Bundled Scripts
| Script | Purpose |
| ---------------------------------- | ---------------------- |
| `scripts/check_ascii_alignment.py` | Main validation script |
## Related
- [ARCHITECTURE.md best practices](https://github.com/joelparkerhenderson/architecture-decision-record)
- [Unicode Box Drawing block](https://www.unicode.org/charts/PDF/U2500.pdf)
---
## Troubleshooting
| Issue | Cause | Solution |
| --------------------------- | ----------------------------- | --------------------------------------------------- |
| Script not found | Plugin not installed | Verify plugin installed with `claude plugin list` |
| False positives with tabs | Tab characters misalign | Convert tabs to spaces before validation |
| Mixed ASCII not detected | Using `+---+` style | Script only validates Unicode box-drawing chars |
| Column numbers off | Unicode width calculation | Use pre-composed characters, avoid combining marks |
| No issues but looks wrong | Aesthetic spacing not checked | Validator checks structure, not visual spacing |
| Exit code 2 unexpected | warnings only mode | Use --warn-only flag to treat warnings as success |
| Can't find validation error | Complex nested diagram | Check line numbers in output, validate section only |
| Unicode chars not rendering | Terminal font missing glyphs | Use font with full Unicode box-drawing support |
## Post-Execution Reflection
After this skill completes, check before closing:
1. **Did the command succeed?** — If not, fix the instruction or error table that caused the failure.
2. **Did parameters or output change?** — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
3. **Was a workaround needed?** — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.Related Skills
plugin-validator
Validate plugin structure and silent failures. TRIGGERS - plugin validation, check plugin, hook audit.
link-validator
Validate markdown link portability in skills. TRIGGERS - check links, validate portability, fix broken links, relative paths.
pr-gfm-validator
Validate and fix GFM links in PR descriptions. TRIGGERS - PR links, gh pr create, GFM validation, broken PR links.
asciinema-streaming-backup
Real-time asciinema backup to GitHub orphan branch. TRIGGERS - streaming backup, asciinema backup, session backup, recording backup.
asciinema-recorder
Record Claude Code sessions with asciinema. TRIGGERS - record session, asciinema record, capture terminal, demo recording.
asciinema-player
Play .cast terminal recordings in iTerm2. TRIGGERS - asciinema play, .cast file, play recording, recording playback.
asciinema-converter
Convert .cast recordings to .txt for analysis. TRIGGERS - convert cast, cast to txt, strip ANSI, batch convert.
asciinema-cast-format
Asciinema v3 .cast file format reference. TRIGGERS - cast format, asciicast spec, event codes, parse cast file.
asciinema-analyzer
Semantic analysis of asciinema recordings. TRIGGERS - analyze cast, keyword extraction, find patterns in recordings.
voice-quality-audition
Audition Kokoro TTS voices to compare quality and grade. TRIGGERS - audition voices, kokoro voices, voice comparison, tts voice, voice quality, compare voices.
settings-and-tuning
Configure TTS voices, speed, timeouts, queue depth, and bot settings. TRIGGERS - configure tts, change voice, tts speed, queue depth, tts timeout, bot config, tune settings, adjust parameters.
full-stack-bootstrap
One-time bootstrap for Kokoro TTS engine, Telegram bot, and BotFather setup. TRIGGERS - setup tts, install kokoro, botfather, bootstrap tts-tg-sync, configure telegram bot, full stack setup.