skills/diagramming-expert/SKILL.md
Master of text-based visual communication using ASCII art, Unicode box-drawing, and structured diagram notation. Creates clear, maintainable diagrams for systems, processes, hierarchies, relationships, and psychological structures. Proactively generates diagrams to enhance understanding. Activate on visualization needs, system architecture, process flows, psychological mapping, or when complex concepts would benefit from visual representation. NOT for photo editing, vector graphics, or GUI-based design tools.
npx skillsauth add curiositech/windags-skills diagramming-expertInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Master of text-based visual communication. Creates clear, maintainable diagrams that reduce cognitive load and enhance understanding.
Problem Size Analysis:
├── Small (≤5 elements)
│ ├── If showing relationships → Simple network diagram
│ ├── If showing sequence → Linear flowchart
│ └── If showing hierarchy → Tree diagram
├── Medium (6-15 elements)
│ ├── If showing process → Multi-lane flowchart with decision points
│ ├── If showing architecture → Layered architecture diagram
│ └── If showing relationships → Clustered network with grouping
└── Large (>15 elements)
├── If stakeholders = technical → Break into multiple detailed diagrams
├── If stakeholders = business → Create overview + drill-down diagrams
└── If medium = presentation → Create progression slides
Complexity Threshold Heuristics:
- If >10 arrows cross each other → Break into multiple diagrams
- If labels don't fit in 80-character width → Simplify or split
- If >7 decision points in one flow → Create decision matrix instead
- If >5 hierarchical levels → Consider nested zoom-in approach
Content Type:
├── Static structure
│ ├── Top-down hierarchy → Use tree layout
│ ├── Peer relationships → Use horizontal layout
│ └── Layered system → Use vertical stack
├── Dynamic process
│ ├── Linear sequence → Left-to-right flow
│ ├── Branching logic → Decision tree format
│ └── Cyclical process → Circular or loop layout
└── Mixed content
├── Structure + process → Swimlane diagram
├── Multiple viewpoints → Side-by-side comparison
└── Temporal changes → Before/after layout
Information Density:
├── High detail required
│ ├── Use numbered callouts with legend below
│ ├── Create detail boxes connected by dotted lines
│ └── Split into overview + detail diagrams
├── Medium detail
│ ├── Inline labels within boxes
│ ├── Short descriptive text near elements
│ └── Color coding with simple legend
└── Low detail (overview)
├── Single-word labels only
├── Focus on structure, not content
└── Use size/weight to show importance
Symptoms: Crossed arrows everywhere, unclear information flow, reader can't follow path
Detection Rule: If you count >5 line crossings or can't trace any path without confusion
Fix: Reorganize layout to minimize crossings, use hierarchical structure, break into multiple focused diagrams
Symptoms: Everything in one diagram, tiny unreadable text, cramped elements
Detection Rule: If diagram requires >120 character width or elements are <3 characters apart
Fix: Apply "One Main Idea" rule - create overview + detail breakouts, use progressive disclosure
Symptoms: Excessive decoration, multiple border styles, unnecessary graphical elements
Detection Rule: If more than 2 different line styles or decorative elements not carrying information
Fix: Apply Tufte's data-ink ratio - remove all non-essential visual elements, use consistent minimal styling
Symptoms: Boxes without labels, arrows without direction indicators, unclear relationships
Detection Rule: If any element requires more than 5 seconds to understand its purpose
Fix: Label everything clearly, add directional indicators, include legend for symbols
Symptoms: Wrong diagram type for audience, too technical for business users, too simplistic for developers
Detection Rule: If stakeholders ask "what does this mean" or "where's the detail"
Fix: Match diagram complexity to audience expertise, create multiple views for different stakeholders
Initial Problem: 15-microservice system crammed into one diagram
# BEFORE (Failure Mode: Information Overload)
[Cramped diagram with 15 services, 30+ arrows, unreadable labels]
# ANALYSIS: Too much complexity for single view
- Stakeholder: Engineering team (technical)
- Purpose: Understanding service dependencies
- Current issues: Can't trace request flows, unclear boundaries
# DECISION PROCESS:
1. Problem size = Large (15 elements) → Multiple diagrams needed
2. Audience = Technical → Detailed views acceptable
3. Main concerns = Dependencies → Focus on interaction patterns
# SOLUTION: 3-tier approach
Overview Diagram:
┌─────────────────────────────────────────┐
│ API Gateway │
└──────────────┬──────────────────────────┘
│
┌──────────────┴──────────────────────────┐
│ Core Services (6) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Auth │ │ User │ │ Order │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└──────────────┬──────────────────────────┘
│
┌──────────────┴──────────────────────────┐
│ Support Services (9) │
│ Logging, Metrics, Storage... │
└─────────────────────────────────────────┘
Detail Diagram (Core Services):
┌─────────┐
│ Auth │◄─────────────┐
└────┬────┘ │
│ validates │ requests
▼ │ auth
┌─────────┐ ┌────┴────┐
│ User │◄────────┤ Order │
│ Service │ lookup │ Service │
└─────────┘ └─────────┘
Key Decisions Made:
Scenario: Need to show employee feedback process to different audiences
Decision Analysis:
Audience 1: HR Policy Team (non-technical)
→ Need: Understand policy compliance checkpoints
→ Choice: Process flowchart with decision diamonds
Audience 2: Engineering Team
→ Need: Understand system integration points
→ Choice: Sequence diagram with API calls
Audience 3: Employees
→ Need: Understand what to expect
→ Choice: Simple linear timeline
HR Policy View (Process focus):
┌─────────────┐
│ Employee │
│ Submits │
│ Feedback │
└──────┬──────┘
│
▼
┌───────┐ No ┌─────────────┐
│Anonymous? ├──────►│ Route to │
│ │ │ Manager │
└───┬─────┘ └─────────────┘
│ Yes
▼
┌─────────────┐
│ Route to │
│ HR Only │
└─────────────┘
Engineering View (System focus):
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Web App │─────►│ API │─────►│ Queue │
└─────────┘ POST └─────────┘ pub └─────────┘
│ │
│ auth │ consume
▼ ▼
┌─────────┐ ┌─────────┐
│ Auth │ │ Process │
│ Service │ │ Worker │
└─────────┘ └─────────┘
Trade-off Analysis:
Diagram Readability Test:
Content Coverage Checklist:
Layout Balance Verification:
Maintenance Acceptance Criteria:
Stakeholder Validation Gates:
Do NOT use this skill for:
Delegation Guidelines:
ux-designer skill insteaddata-analyst skillpresentation-designer skillComplexity Boundaries:
Medium Limitations:
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.