diagram-design
Create technical and product diagrams — architecture, flowchart, sequence, state machine, ER / data model, timeline, swimlane, quadrant, nested, tree, org chart, layer stack, venn, pyramid — as standalone HTML files with inline SVG. Ships with a neutral editorial skin and a first-run gate that prompts users to customize the style guide (colors, fonts) from their own website before generating. Includes annotation-callout primitive and optional sketchy variant.
What this skill does
# Diagram Design Create visual diagrams as self-contained HTML files with inline SVG and CSS, following an opinionated editorial design system. Fourteen diagram types. One shared design system, complexity budget, and taste gate. Type-specific conventions live in `references/` and are loaded only when you pick a type. --- ## 0. First-time setup — style guide gate **Before generating your first diagram in a new project, verify the style guide has been customized.** Open [`references/style-guide.md`](references/style-guide.md) and check the default tokens. If they're still the shipped defaults (paper `#faf7f2`, ink `#1c1917`, accent `#b5523a` rust), **pause and ask the user**: > *"This is your first Schematic in this project. The style guide is still at the default (neutral stone + rust). Do you want to customize it to match your brand first? Options: (a) run onboarding — I'll pull colors and fonts from your website, (b) paste your tokens manually, (c) proceed with the default for now."* Then branch: - **(a)** → follow [`references/onboarding.md`](references/onboarding.md) to fetch the site, extract palette + fonts, propose a diff, and write `style-guide.md`. - **(b)** → accept the user's tokens and write them into `style-guide.md` under a new "Custom tokens" section. - **(c)** → proceed; optionally remind the user they can run onboarding later. **Once the style guide has been customized** (or the user explicitly opted for default), skip this gate on subsequent runs. A simple way to detect customization: if the `accent` value in `style-guide.md` differs from `#b5523a`, assume custom. Don't silently ship default-skinned diagrams into a branded project — that's the failure mode this gate exists to prevent. --- ## 1. Philosophy **The highest-quality move is usually deletion.** From `.impeccable.md`: *"Confident restraint. Earn every element. One color accent, two families, a small spacing vocabulary. If removing it wouldn't hurt the page, remove it."* Applied to schematics: - Every node represents a distinct idea. Two nodes that always travel together are one node. - Every connection carries information. If the relationship is obvious from layout, remove the line. - Coral is **editorial, not a flag.** 1–2 focal nodes per diagram. Using it on 5 nodes erases the signal. - The schematic isn't done when everything is added. It's done when nothing can be removed. **Target density: 4/10.** Enough to be technically complete. Not so dense it needs a guide. Above 9 nodes, it's probably two diagrams. --- ## 2. When to Use Use for any of the 14 diagram types (§3) when a reader will learn more from a visual than from prose, a table, or a bulleted list. **Don't use for:** - Quick unicode diagrams → use **wiretext**. - Lists of things → table or bullets. - Simple before/after → table. - One-shape "diagrams" → just write the sentence. Before drawing, ask: *Would the reader learn more from this than from a well-written paragraph?* If no, don't draw. --- ## 3. Diagram Types ### Selection guide | If you're showing… | Use | Reference | |---|---|---| | Components + connections in a system | **Architecture** | [type-architecture.md](references/type-architecture.md) | | Decision logic with branches | **Flowchart** | [type-flowchart.md](references/type-flowchart.md) | | Time-ordered messages between actors | **Sequence** | [type-sequence.md](references/type-sequence.md) | | States + transitions + guards | **State machine** | [type-state.md](references/type-state.md) | | Entities + fields + relationships | **ER / data model** | [type-er.md](references/type-er.md) | | Events positioned in time | **Timeline** | [type-timeline.md](references/type-timeline.md) | | Cross-functional process with handoffs | **Swimlane** | [type-swimlane.md](references/type-swimlane.md) | | Two-axis positioning / prioritization | **Quadrant** | [type-quadrant.md](references/type-quadrant.md) | | Hierarchy through containment / scope | **Nested** | [type-nested.md](references/type-nested.md) | | Parent → children relationships | **Tree** | [type-tree.md](references/type-tree.md) | | Human/agent/team ownership, reporting, routing, escalation | **Org chart** | [type-org-chart.md](references/type-org-chart.md) | | Stacked abstraction levels | **Layer stack** | [type-layers.md](references/type-layers.md) | | Overlap between sets | **Venn** | [type-venn.md](references/type-venn.md) | | Ranked hierarchy or conversion drop-off | **Pyramid / funnel** | [type-pyramid.md](references/type-pyramid.md) | Rules of thumb: - If a 3-column table communicates the same thing, pick the table. - If you're combining two types, pick the dominant axis — don't hybridize grammars. - If you're past the complexity budget (§7), split into an overview + detail. **Always load the relevant `references/type-*.md` before drawing** — it contains layout conventions, anti-patterns, and example files for that type. --- ## 4. Universal Anti-patterns These mark "AI slop" schematics of any type: | Anti-pattern | Why it fails | |---|---| | Dark mode + cyan/purple glow | Looks "technical" without design decisions | | JetBrains Mono as blanket "dev" font | Mono is for *technical* content — ports, commands, URLs. Names go in Geist sans. | | Identical boxes for every node | Erases hierarchy | | Legend floating inside the diagram area | Collides with nodes | | Arrow labels with no masking rect | Bleeds through the line | | Vertical `writing-mode` text on arrows | Unreadable | | 3 equal-width summary cards as default | Generic grid — vary widths | | Shadow on any element | Shadows are out. Borders are in. | | `rounded-2xl` on boxes | Max radius 6–10px or none | | Coral on every "important" node | Coral is 1–2 editorial accents, not a signaling system | Type-specific anti-patterns live in each `references/type-*.md`. --- ## 5. Design System **The design system is skinnable.** All colors, typography, and tokens live in a single source of truth — [`references/style-guide.md`](references/style-guide.md). This file describes semantic roles (`paper`, `ink`, `muted`, `accent`, `link`, …). The default skin is a cool editorial palette (white-smoke paper, jet-black ink, atomic-tangerine accent, blue-slate muted, silver hairlines); to apply your own brand, either edit `style-guide.md` directly or run the URL-based flow described in [`references/onboarding.md`](references/onboarding.md). > When specs below or in type references mention "ink", "accent", "muted", etc., look up the current hex value in `style-guide.md`. ### Semantic roles (at a glance) | Role | Purpose | |---|---| | `paper`, `paper-2` | Page bg and container bg | | `ink` | Primary text / stroke | | `muted`, `soft` | Secondary text, default arrows, sublabels | | `rule`, `rule-solid` | Hairline borders | | `accent`, `accent-tint` | 1–2 focal elements per diagram | | `link` | HTTP/API calls, external arrows | **Focal rule:** `accent` goes on 1–2 elements max. Everything else is `ink` / `muted` / `soft`. If you're tempted to accent 4 things, you haven't decided what's focal yet. ### Node type → treatment | Type | Fill | Stroke | |---|---|---| | **Focal** (1–2 max) | `accent-tint` | `accent` | | **Backend / API / Step** | white | `ink` | | **Store / State** | `ink @ 0.05` | `muted` | | **External / Cloud** | `ink @ 0.03` | `ink @ 0.30` | | **Input / User** | `muted @ 0.10` | `soft` | | **Optional / Async** | `ink @ 0.02` | `ink @ 0.20` dashed `4,3` | | **Security / Boundary** | `accent @ 0.05` | `accent @ 0.50` dashed `4,4` | ### Typography (summary — full spec in style-guide.md) - **Title** — Instrument Serif, 1.75rem, 400 — H1 only - **Node name** — Geist (sans), 12px, 600 — human-readable labels - **Sublabel** — Geist Mono, 9px — ports, URLs, field types - **Eyebrow / tag** — Geist Mono, 7–8px, uppercase, tracked — type tags, axis labels - **Arrow label** — Geist Mono, 8px — annotation on arrows - **Editorial aside** — Instrument Serif *italic*, 14px — call
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.