Skip to content
Back to skills

Ascii Diagram Validator

ASecurity

Validate ASCII diagram alignment in markdown. TRIGGERS - diagram alignment, ASCII art, box-drawing diagrams.

  • 75 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
toolsgobashgitdocumentation

Works with

  • claude code
  • terminal

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add terrylica/cc-skills --skill ascii-diagram-validator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ascii Diagram Validator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ascii Diagram Validator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/terrylica-ascii-diagram-validator/badge)](https://www.skillsdirectory.com/skills/terrylica-ascii-diagram-validator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ascii-diagram-validator
description: Validate ASCII diagram alignment in markdown. TRIGGERS - diagram alignment, ASCII art, box-drawing diagrams.
---

# ASCII Diagram Validator

Validate and fix alignment issues in ASCII box-drawing diagrams commonly used in architecture documentation, README files, and code comments.

## 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      |

Files in this skill

  • SKILL.md6 KB
  • references/DELIVERABLES_SUMMARY.md11 KB
  • references/INTEGRATION_GUIDE.md14.6 KB
  • references/SCRIPT_DESIGN_REPORT.md15.3 KB
  • scripts/check_ascii_alignment.py21.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.