From ren-atlas
Takes an atlas connection graph.json (plus manifest.json) and produces clean Mermaid diagrams at multiple zoom levels — a top-level system view, a focused neighbor view per project, and optional domain-grouped views. Optimized for readability over completeness, so it never dumps every edge into one unreadable diagram. Use after detect-connections, or when the user wants Mermaid/architecture diagrams of how their projects connect.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ren-atlas:generate-mermaid-architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Render the connection graph as **readable** Mermaid at several zoom levels. Stage 3 of the atlas pipeline. Readability beats completeness — a diagram nobody can read has failed even if it's "correct".
Render the connection graph as readable Mermaid at several zoom levels. Stage 3 of the atlas pipeline. Readability beats completeness — a diagram nobody can read has failed even if it's "correct".
graph.json (from detect-connections) and the manifest.json it references. Find them under .atlas/; ask if missing.../../references/mermaid-syntax.md — id sanitization, label quoting, the pre-emit checklist. Run that checklist before writing any diagram so it actually renders.../../references/design-system.md — colors by role and the solid/dashed sync convention; keep these identical to the Excalidraw/Canvas outputs.Write each as a .mmd file into <vault>/Architecture/.atlas/diagrams/ (or ./.atlas/diagrams/). These get embedded by write-excalidraw and refresh-vault.
system.mmdThe whole system at a glance. flowchart LR.
externalKind is optional, but always render externals visually distinct (see styling).tags (domains), wrap each domain's projects in a subgraph. No tags ⇒ flat.import-only edges between libs and their consumers (they add clutter); mention in note.project.<id>.mmdOne small diagram per project: the project + its direct (1-hop) neighbors only, edges labeled. This is the view that actually gets read, embedded in each project note. Always include every direct edge here (this is where completeness lives, scoped to one project).
domain.<tag>.mmdOnly if the manifest uses tags. One diagram per domain: projects in that domain + their cross-domain edges (collapse intra-neighbor detail). Skip if there are no tags or only one domain.
Colors come from design-system.md — use the same role→color and sync→style mapping the Excalidraw and Canvas outputs use, so all three views match.
Node shape by kind:
app / website / mobile → id(["Name"]) (stadium/rounded — user-facing)service / function → id["Name"] (rectangle)lib → id[["Name"]] (subroutine)tool → id{{"Name"}} (hexagon)external → id[("Name")] (cylinder) for db/storage, id>("Name") style flag or just a classDef for saas/brokerEdge style by sync:
sync → solid arrow -->async → dashed arrow -.->Edge label = edge.label || edge.protocol (optionally + channel). Keep labels short.
Use a classDef block for color so externals are visually muted and user-facing apps pop. Example:
flowchart LR
classDef ext fill:#f5f5f5,stroke:#bbb,color:#666;
classDef app fill:#e8f0fe,stroke:#4285f4;
web(["web-frontend"]):::app
gw["api-gateway"]
db[("postgres")]:::ext
web -->|HTTP| gw
gw -->|SQL| db
id as the Mermaid node id (sanitize to a valid id; keep a comment mapping if you must rename). This lets refresh-vault diff diagrams meaningfully.%% note: Mermaid comment saying what was omitted and where to find it. Never silently truncate.mermaid-syntax.md (sanitized ids, quoted labels, matched subgraph/end, one direction).List the files written and which view is which. These .mmd files are the source of truth for the visual layer: write-excalidraw embeds them in the notes and converts them to editable Excalidraw drawings via the plugin (dagre handles layout), and write-canvas renders the same graph as native Canvas. Next step is write-excalidraw and/or write-canvas.
npx claudepluginhub brentibanez331/ren-atlas-skills --plugin ren-atlasCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.