Skip to content
adr-graph-easy-architect logo

ADR Graph-Easy Architect

adr-graph-easy-architect

ASCII architecture diagrams for ADRs via graph-easy. TRIGGERS - ADR diagram, architecture diagram, ASCII diagram.

SKILL.md

Full skill instructions

ADR Graph-Easy Architect

Create comprehensive ASCII architecture diagrams for Architecture Decision Records (ADRs) using graph-easy. Pure text output with automatic layout - no image rendering required.

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.

When to Use This Skill

  • Writing new ADR that involves architectural changes
  • ADR describes migration, integration, or system changes
  • User asks for visual representation of a decision
  • Existing ADR diagram needs review or update

Preflight Check

Ensure graph-easy is installed and functional before rendering diagrams.

Full setup instructions: Preflight Setup

Quick verify:

echo "[Test] -> [OK]" | graph-easy --as=boxart &>/​dev/​null && echo "✓ graph-easy ready"

DSL Quick Reference

Full syntax with examples, node styling, edge styles, and emoji rules: DSL Syntax Reference

Essential Syntax

[Node]                          # Node
[A] -> [B]                      # Edge
[A] -- label --> [B]            # Labeled edge
[A] <-> [B]                     # Bidirectional
( Group: [Node A] [Node B] )    # Group/​container
[id] { label: "Display"; }     # Custom label

Flow Direction (MANDATORY)

graph { flow: south; }   # Top-to-bottom (architecture, decisions)
graph { flow: east; }    # Left-to-right (pipelines, sequences)

Graph Label (MANDATORY: EVERY diagram MUST have emoji + title)

WARNING: This is the most commonly forgotten requirement. Diagrams without labels are invalid.

Correct:

graph { label: "🔄 Database Migration"; flow: south; }
[Old DB] -> [New DB]

Anti-Pattern (INVALID):

graph { flow: south; }
[Old DB] -> [New DB]

Missing label: with emoji. The preflight validator will BLOCK any ADR containing diagrams without graph { label: "emoji ..."; }.

Emoji Selection (for graph labels ONLY - never inside nodes)

Diagram TypeEmojiDiagram TypeEmoji
Migration/​Change🔄Architecture🏗️
Deployment/​Release🚀Network/​API🌐
Data Flow📊Storage/​Database💾
Security/​Auth🔐Monitoring📡
Error/​Failure⚠️Hook/​Event🪝
Decision/​Branch🔀Before/​After⏮️/⏭️

Node & Edge Styling Summary

StyleSyntaxUse For
Rounded corners{ shape: rounded; }Start/​end nodes
Double border{ border: double; }Critical/​emphasis
Bold border{ border: bold; }Important nodes
Dotted border{ border: dotted; }Optional/​skippable
Solid arrow->Main/​happy path
Dotted arrow..>Conditional/​alternate
Bold arrow==>Emphasized/​critical
Labeled edge-- label -->Annotated connections

Character Safety

  • Graphical emojis INSIDE nodes: NEVER (breaks box alignment)
  • Unicode symbols inside nodes (checkmark, cross, warning): OK (single-width)
  • ASCII markers inside nodes ([x] [+] [!]): ALWAYS safe
  • Graphical emojis in graph { label: }: OK

Full symbol reference: Monospace-Safe Symbols


Common Diagram Patterns

Migration (Before -> After)

graph { flow: south; }
[Before] -- migrate --> [After]

Multi-Component System

graph { flow: south; }
[A] -> [B] -> [C]
[B] -> [D]

Pipeline (Left-to-Right)

graph { flow: east; }
[Input] -> [Process] -> [Output]

Decision with Options

graph { flow: south; }
[Decision] -> [Option A]
[Decision] -> [Option B]

Grouped Components

( Group:
  [Component 1]
  [Component 2]
)
[External] -> [Component 1]

Bidirectional Flow

[Client] <-> [Server]
[Server] -> [Database]

More patterns by ADR type: Diagram Examples


Rendering

Command (MANDATORY: Always use boxart)

graph-easy --as=boxart << 'EOF'
graph { flow: south; }
[A] -> [B] -> [C]
EOF

Never use --as=ascii - it produces ugly +--+ boxes instead of clean ┌──┐ lines.

Validation Workflow

# 1. Write DSL to heredoc
# 2. Render with boxart
# 3. Review output
# 4. Iterate if needed
# 5. Copy final ASCII to ADR

Embedding in ADR

Every rendered diagram MUST include a collapsible <details> block with graph-easy source. Full format guide and GFM syntax rules: ADR Embedding Guide

Required format:

```
┌───────┐     ┌──────┐
│ Build │ --> │ Test │
└───────┘     └──────┘
```

<details>
<summary>graph-easy source</​summary>

```
graph { label: "🚀 Pipeline"; flow: east; }
[Build] -> [Test]
```

</​details>

The <details> block is MANDATORY - never embed a diagram without its source.


Mandatory Checklist (Before Rendering)

Graph-Level (MUST have)

  • graph { label: "🚀 Title"; } - semantic emoji + title (MOST FORGOTTEN - check first!)
  • graph { flow: south; } or graph { flow: east; } - explicit direction
  • Command uses --as=boxart - NEVER --as=ascii

Embedding (MUST have - non-negotiable)

  • <details> block with source - EVERY diagram MUST have collapsible source code block
  • Format: rendered diagram in ``` block, followed by <details><summary>graph-easy source</​summary> with source
  • Never commit a diagram without its reproducible source

Node Styling (Visual hierarchy)

  • Start/​end nodes: { shape: rounded; } - entry/​exit points
  • Critical/​important nodes: { border: double; } or { border: bold; }
  • Optional/​skippable nodes: { border: dotted; }
  • Long labels use \n for multiline - max ~15 chars per line

Edge Styling (Semantic meaning)

  • Main/​happy path: -> solid arrow
  • Conditional/​alternate: ..> dotted arrow
  • Emphasized/​critical: ==> bold arrow
  • Edge labels are SHORT (1-3 words): -- YES -->, -- error -->

Character Safety (Alignment)

  • NO graphical emojis inside nodes (break alignment)
  • Unicode symbols OK inside nodes (single-width)
  • ASCII markers ALWAYS safe ([x] [+] [!] [OK])
  • Graphical emojis ONLY in graph { label: "..."; } title

Structure (Organization)

  • Groups ( Name: ... ) used for logical clustering when 4+ related nodes
  • Node IDs short, labels descriptive: [db] { label: "PostgreSQL"; }
  • No more than 7-10 nodes per diagram (split if larger)

Success Criteria

Correctness

  1. Parses without error - graph-easy accepts the DSL
  2. Renders cleanly - no misaligned boxes or broken lines
  3. Matches content - all key elements from description represented
  4. Source preserved (MANDATORY) - EVERY diagram has <details> block with source

Aesthetics

  1. Uses boxart - clean Unicode lines, not ASCII +--+
  2. Visual hierarchy - start/​end rounded, important bold/​double, optional dotted
  3. Consistent styling - same border style = same semantic meaning throughout
  4. Readable labels - multiline with \n, no truncation
  5. Clear flow - direction matches natural reading (top-down or left-right)

Comprehensiveness

  1. Semantic emoji in title - emoji chosen to match diagram purpose
  2. Legend if needed - multiline title with \n for complex diagrams
  3. Edge semantics - solid=normal, dotted=conditional, bold=critical
  4. Logical grouping - related nodes in ( Group: ... ) containers

Troubleshooting

IssueCauseSolution
command not foundgraph-easy not installedRun preflight check
Misaligned boxesUsed --as=asciiAlways use --as=boxart
Box border brokenGraphical emoji in nodeRemove emojis from nodes, use ASCII markers
Nodes overlapToo complexSplit into multiple diagrams (max 7-10 nodes)
Edge labels cut offLabel too longShorten to 1-3 words
No title showingWrong syntaxUse graph { label: "Title"; flow: south; }
Weird layoutNo flow directionAdd graph { flow: south; } or flow: east
Parse errorSpecial chars in nodeEscape or simplify node names

Resources

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.

More DevOps & CI/CD skills

Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.

6K 472.6K
View

Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.

6K 472.6K
View

Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.

1.5K 454.3K
View
azure-kubernetes logo
DevOps & CI/CD

azure-kubernetes

Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.

1.5K 447.1K
View

Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.

92.7K 354.9K
View
just-scrape logo
DevOps & CI/CD

just-scrape

Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.

69 245K
View

Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.

462 159.7K
View

Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.

462 159.1K
View
deploy-to-vercel logo
DevOps & CI/CD

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

31.9K 146.6K
View
programmatic-seo logo
DevOps & CI/CD

programmatic-seo

Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.

53.3K 140.1K
View

Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.

63 123.5K
View

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".

31.9K 116.1K
View

Coding & apps AI tools

Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View
I
Coding & apps

Imagica

Build a no-code AI app in minutes.

Freemium
View
E
Coding & apps

Emergent.sh

An IDE for code migration from legacy to modern frameworks through coding agents.

Freemium
View
Wonder Dynamics logo
Coding & apps

Wonder Dynamics

Automate CGI animation in live-action scenes

Paid
View
M
Coding & apps

Mixo

Launch a website in seconds with AI.

Paid
View
AI Code Convert logo
Coding & apps

AI Code Convert

Streamline Your Coding Experience with AI Code Helper

Free
View