cathrynlavery/diagram-design

▲ 4,809 stars today★ 43,420⑂ 2,803

Editorial diagram design for Claude Code, Codex, GitHub Copilot, Factory Droid, and Pi. 42 diagram types. Self-contained HTML + SVG. No shadows. No Mermaid slop.

About cathrynlavery/diagram-design

cathrynlavery/diagram-design is an open-source project on GitHub, mainly written in HTML. Editorial diagram design for Claude Code, Codex, GitHub Copilot, Factory Droid, and Pi. 42 diagram types. Self-contained HTML + SVG. No shadows. It currently holds 43,420 stars and 2,803 forks with 25 open issues, and was last pushed on 2026-10-05 (repository created 2026-04-16).

Project Overview

Git Homed tracks it on the AI Agent Skills Trending board and on the AI AI Agent Skills Trending list.

GitHub Repository Details

Repository cathrynlavery/diagram-design · default branch main · size 19266 KB · watchers 123 · source: GitHub REST API and repository README

README

https://github.com/cathrynlavery/diagram-design/blob/HEAD/Diagram Design. Editorial diagrams your designer won't hate.

https://github.com/cathrynlavery/diagram-design/blob/HEAD/cathrynlavery%2Fdiagram-design | Trendshift

Content site architecture

The self-improving loop

New in 2.0 — the Loop: flywheels with a shared-memory hub. The dashed lines are the write-backs.

New in 2.3: semantic system patterns and optional accessible motion, while static output stays the default.

New in 2.5.10: ten more layout grammars — Sankey, fishbone, Wardley map, kanban, user journey, deployment, dependency graph, UML class, story map, and database schema.

Editorial diagram types for Claude Code, Codex, Factory Droid, Pi, and Agent Skills-compatible hosts. Self-contained HTML + SVG. No shadows. No Mermaid slop. Semantic patterns describe behavior separately from layout, so a queue, policy trace, or trust boundary can use the nearest existing type without expanding the type count. Static HTML remains the default; optional motion is available for ordered explanations. The skill also redraws draw.io, Mermaid, or Excalidraw sources at a chosen format, size, and detail level.

No Figma. No generic rounded boxes. No 30-minute color-picking sessions.

---

Why I built it

I write at littlemight.com (and run BestSelf.co on the side). Every time I needed a diagram — an architecture sketch, a flowchart, a pyramid of what matters most — I'd ask Claude and get back a generic rounded-box thing that looked nothing like the rest of the site. I'd either fight with Figma for 30 minutes or just skip the diagram.

So I built a Claude Code skill for it. Editorial-quality visual types, matched to your brand in 60 seconds by reading your website.

The highest-quality move is usually deletion. Every node earns its place. The accent color is reserved for the 1–2 things the reader should look at first. Target density: 4/10.

---

What it makes

Every visual type ships in three static variants: minimal light, minimal dark, and full-editorial. Open any of them directly in a browser. There is no build step, JavaScript, or external image dependency.

https://github.com/cathrynlavery/diagram-design/blob/HEAD/Architecture
Architecture
Components + connections
https://github.com/cathrynlavery/diagram-design/blob/HEAD/IT current-state
IT current-state
Legacy landscape + modernization
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Flowchart
Flowchart
Decision logic
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Sequence
Sequence
Messages over time
https://github.com/cathrynlavery/diagram-design/blob/HEAD/State machine
State machine
States + transitions
https://github.com/cathrynlavery/diagram-design/blob/HEAD/ER
ER / data model
Entities + fields
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Timeline
Timeline
Events on an axis
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Swimlane
Swimlane
Cross-functional flow
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Quadrant
Quadrant
Two-axis positioning
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Radar chart
Radar / spider
Multi-axis comparison
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Loop
Loop / flywheel
Reinforcing cycle + shared hub
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Nested
Nested
Hierarchy by containment
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Tree
Tree
Parent → children
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Org chart
Org chart
Ownership + routing
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Layer stack
Layer stack
Stacked abstractions
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Venn
Venn
Set overlap
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Pyramid
Pyramid / funnel
Ranked hierarchy or drop-off
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Bar chart
Bar chart
Categorical comparison
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Treemap
Treemap
Part-of-whole by area
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Line chart
Line chart
Trends over time
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Gantt
Gantt
Tasks + phases on a timeline
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Scatter plot
Scatter plot
Distribution + correlation
https://github.com/cathrynlavery/diagram-design/blob/HEAD/High-Level
High-Level
End-to-end stack on a cluster
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Process
Process
Multi-actor sequential workflow
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Medallion
Medallion
Multi-tier data storage
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Data flow
Data flow
Role-scoped pipeline steps
https://github.com/cathrynlavery/diagram-design/blob/HEAD/DP integration
DP integration
Sources → core → consumers
https://github.com/cathrynlavery/diagram-design/blob/HEAD/DP security matrix
DP security matrix
Per-role access permissions
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Sankey
Sankey
Quantities that split + merge
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Fishbone
Fishbone
Grouped causes → one effect
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Wardley map
Wardley map
Value chain × evolution
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Kanban
Kanban
Work in progress by state
https://github.com/cathrynlavery/diagram-design/blob/HEAD/User journey
User journey
Stages, actions + sentiment
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Deployment
Deployment
Zones, hosts + artifacts
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Dependency graph
Dependency graph
Fan-in, ranks + cycles
https://github.com/cathrynlavery/diagram-design/blob/HEAD/UML class
UML class
Classes, operations + typed relations
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Story map
Story map
Backbone × release slices
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Database schema
Database schema
Physical tables + column FKs
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Polar chart
Polar chart
Cyclic magnitude · linear radius
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Waterfall
Waterfall
Running total + signed bridges
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Architecture delta
Architecture delta
Before · Changes · After topology
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Exploded axonometric
Exploded axonometric
Parts pulled apart on one axis
https://github.com/cathrynlavery/diagram-design/blob/HEAD/Axonometric plan
Axonometric plan
Rooms and buildings on one plate

Architecture delta compares synchronized topologies through a Before · Changes · After ledger of added, removed, changed, moved, and rewired objects. See its reference and order-fulfilment example. Attribute-only comparisons remain tables; a single snapshot uses Architecture.

Exploded axonometric draws one object in 2:1 dimetric projection with its parts lifted apart at equal gaps: a phone teardown, an unboxing, or an app stack. Every coordinate comes from one projection function, and the animated phone opens assembled and explodes once. See its reference.

Axonometric plan uses the same projection for one floor or one site: walls cut at desk height so every room reads from a single view, or buildings on a campus tagged by build phase. See the office floor, the campus, the phased campus animation, and the reference.

The v2.5.10 release added ten layout grammars. Compare their light, dark, and full-editorial variants in the 30-variant contact sheet.

Browse the live gallery: cathrynlavery.github.io/diagram-design — or open skills/diagram-design/assets/index.html locally to flip through every diagram with light / dark / full-editorial tabs.

---

Install

Official builds come only from this repository. LittleMight, Cathryn Lavery's company, publishes the plugin directory listings; a listing under any other name is an unofficial copy. PRIVACY.md lists what the skill sends over the network.

Claude Code:

/plugin marketplace add cathrynlavery/diagram-design
/plugin install diagram-design@diagram-design

Then enable updates once: run /plugin, open Marketplaces, select diagram-design, and choose Enable auto-update. Claude Code disables auto-update by default for third-party marketplaces; after this toggle, it refreshes the marketplace and installed plugin in the background after startup. Run /reload-plugins when prompted, or let the next session load the update.

Codex:

codex plugin marketplace add cathrynlavery/diagram-design
codex plugin add diagram-design@diagram-design

Codex refreshes configured Git marketplaces at startup. To fetch immediately, run codex plugin marketplace upgrade diagram-design and start a new session.

GitHub Copilot:

copilot plugin marketplace add cathrynlavery/diagram-design
copilot plugin install diagram-design@diagram-design

Copilot installs the shared Diagram Design skill plus its doctor, export, import, and profile capabilities from the existing repository marketplace. Confirm discovery with copilot skill list (or /skills in an interactive session), then ask for a diagram in natural language. To fetch a merged update, run copilot plugin marketplace update diagram-design, then copilot plugin update diagram-design@diagram-design.

Factory Droid:

droid plugin marketplace add https://github.com/cathrynlavery/diagram-design
droid plugin install diagram-design@diagram-design --scope user

Droid tracks Git plugins by commit rather than the manifest's display version. To fetch a merged update, run droid plugin marketplace update diagram-design, then droid plugin update diagram-design@diagram-design --scope user, and start a new session.

Claude Cowork (organization marketplace): Organization GitHub marketplaces currently require a private or internal repository, so first mirror this public repository into one owned by your organization. In Organization settings → Plugins, choose Add plugin → GitHub, connect that mirror, and enable Sync automatically from the marketplace menu. Automatic sync runs when a pull request containing a plugin version bump is merged to the mirror's default branch; direct pushes do not trigger the webhook. Install Diagram Design from the resulting organization marketplace.

Pi:

pi install https://github.com/cathrynlavery/diagram-design

Run /reload in an open Pi session. Pi makes the skill available for matching diagram requests; use /skill:diagram-design to invoke it explicitly. Pi also loads the /export-diagram, /import-mermaid, /import-excalidraw, /profile, and /doctor prompt templates. The unpinned Git install is intentional: Pi has no automatic package refresh, so run pi update --extensions to pull merged updates.

Kiro: Import the Agent Skill from the repository subdirectory URL:

https://github.com/cathrynlavery/diagram-design/tree/main/skills/diagram-design

Kiro copies imported skills into .kiro/skills/ for a workspace or ~/.kiro/skills/ globally, so re-import the URL to pick up updates. Custom agents that declare resources should include skill://diagram-design//SKILL.md.

OpenCode: Copy or symlink skills/diagram-design/ to .opencode/skills/diagram-design in a project or ~/.config/opencode/skills/diagram-design globally. OpenCode has no Diagram Design marketplace package; copied installs update only when you replace the directory from a newer checkout.

One-time migration:** an existing standalone npx skills add copy will not start following the Codex marketplace automatically. Remove that standalone copy, then use the Codex marketplace commands above. Likewise, uninstall a personal Cowork copy and reinstall Diagram Design from your organization's marketplace. Future marketplace version bumps then flow through each client's native update path.

Editable install

Managed installs are convenient, but changes to references/style-guide.md may be replaced by package updates. Saved profiles in ~/.diagram-design/profiles/ survive updates, and projects with a .diagram-design marker are unaffected. Clone the repo and install the local path if you plan to customize the working style guide directly:

git clone [email protected]:cathrynlavery/diagram-design.git ~/code/diagram-design

Pi: register the checkout as a local package

pi install ~/code/diagram-design

Claude Code: symlink the inner skill

ln -s ~/code/diagram-design/skills/diagram-design ~/.claude/skills/diagram-design

Other Agent Skills hosts: create only the roots you use

mkdir -p ~/.agents/skills ~/.cursor/skills ~/.cline/skills ~/.kiro/skills ~/.config/opencode/skills ~/.copilot/skills ln -s ~/code/diagram-design/skills/diagram-design ~/.agents/skills/diagram-design ln -s ~/code/diagram-design/skills/diagram-design ~/.cursor/skills/diagram-design ln -s ~/code/diagram-design/skills/diagram-design ~/.cline/skills/diagram-design ln -s ~/code/diagram-design/skills/diagram-design ~/.kiro/skills/diagram-design ln -s ~/code/diagram-design/skills/diagram-design ~/.config/opencode/skills/diagram-design ln -s ~/code/diagram-design/skills/diagram-design ~/.copilot/skills/diagram-design

The shared skill lives at skills/diagram-design/. Pi discovers it through the repo's standard skills/ package directory; Claude Code, GitHub Copilot, Codex, Factory Droid, and other Agent Skills-compatible tools use the same files.

---

Onboarding — make it look like your brand

The whole point: ship editorial-quality diagrams in your colors and typography, not a generic template.

Out of the box, diagrams render in a clean jet-black + atomic-tangerine palette (white-smoke paper, jet-black ink, atomic-tangerine accent, blue-slate muted, silver hairlines). Good enough to screenshot straight away. But 60 seconds of onboarding is better — the skill will pull your brand from your website and apply it across every diagram.

The flow

You:     "onboard diagram-design to https://yoursite.com"
Agent:   → fetches the homepage
         → extracts the dominant palette + font stack
         → maps detected values to semantic roles:
             paper, ink, muted, accent, link
         → shows a proposed diff
         → writes your tokens to references/style-guide.md
You:     "yes, apply it"

Every new diagram now uses your colors. Your website's paper color becomes the diagram background. Your CTA color becomes the focal accent. Your body font stack becomes the node label family.

Brand matching also emits a fidelity receipt: sampled URLs, exact color roles, font families and weights, font source URLs, and any fallback. Public site fonts are used directly and verified after rendering rather than silently replaced with generic system fonts.

What gets extracted

| Detected from your site | Becomes | |---|---| | ` background | paper` token | | Primary text color | ink token | | Secondary / caption text | muted token | | Cards or containers | paper-2 token | | Most-used brand color (CTA, link, heading) | accent token | |

font family | title font | | ` font family | node-name` font | | /
 font | sublabel font |

Contrast checks happen automatically

Before writing tokens, the skill verifies WCAG AA contrast on ink over paper. If your site has a color that fails contrast at diagram sizes (9–12px), it proposes an adjusted value and explains why.

Accessible by default

Every diagram template gives the inline SVG an accessible name and description: role="img", a resolving aria-labelledby, and first-child ` / ` slots. IDs are prefixed per diagram and variant, so multiple SVG exports can be safely inlined on one page without duplicate accessible-name IDs. Decorative specimen icons are hidden from assistive technology instead.

Manual override

Prefer to set tokens by hand? Open skills/diagram-design/references/style-guide.md and edit the table. Everything downstream reads from there — every diagram, the annotation primitive, and the gallery all inherit semantic role names (accent, not #eb6c36).

First-run gate

The skill won't silently ship default-skinned diagrams into a branded project. On first use in a new project, it checks if style-guide.md has been customized. If not, it pauses and asks:

"This is your first diagram in this project. The style guide is still at the default. Want to run onboarding, paste tokens manually, or proceed with default?"

See skills/diagram-design/references/onboarding.md for the full spec.

Working with multiple clients

Onboard a brand once, save the result as a named profile, then add a .diagram-design marker containing profile: to each client project. Marker projects read ~/.diagram-design/profiles/.md directly, so parallel workspaces can use different brands without overwriting a shared installed style-guide.md.

The profile library is shared across Claude Code, Codex, Factory Droid, and Pi. Use /diagram-design:profile in Claude Code, /profile in Factory Droid or Pi, or ask in natural language in any host. See profiles.md for the storage, marker, and recovery contract.

---

Quickstart

```bash

From a cloned checkout, open the gallery to see every diagram

open skills/diagram-design/assets/index.html # macOS xdg-open skills/diagram-design/assets/index.html # Linux

In Claude Code, Codex, Factory Droid, or Pi, ask:

"Make me an architecture diagram of my app: frontend, backend, database, Redis cache."

"I need a quadrant showing Q2 projects by impact vs effort."

"Give me a sequence of a bearer call with token refresh on 401."

(branching refresh uses the ALT combined-fr

GitHub Stars & Activity

43,420Stars
2,803Forks
25Open issues
HTMLLanguage

GitHub Popularity

GitHub stars43,420
Forks2,803
Open issues25
Primary languageHTML
LicenseMIT
Stars gained today4,809
Created2026-04-16
Last pushed2026-10-05

Trending History

Weekly boardrank #5 · ▲ 4,809 stars

Related GitHub Projects

More Trending Repositories