diff --git a/README.md b/README.md
index 8e2c9d5..d201871 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,20 @@
# Diagram Design
-**I wanted good-looking diagrams for my blog posts.**
+**Editorial diagrams your designer won't hate.**
-I write at [littlemight.com](https://littlemight.com). 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. 13 types, editorial quality, matches your brand in 60 seconds by reading your website.
+14 types. One Claude Code skill. Your brand in 60 seconds — the skill reads your website and maps colors + fonts to every diagram.
+
+No Figma. No generic rounded boxes. No 30-minute color-picking sessions.
+
+---
+
+## Why I built it
+
+I write at [littlemight.com](https://littlemight.com?utm_source=diagram-design&utm_medium=readme&utm_campaign=github&utm_content=intro) (and run [BestSelf.co](https://bestself.co?utm_source=diagram-design&utm_medium=readme&utm_campaign=github&utm_content=intro) 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. Fourteen types, editorial quality, matches 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.
@@ -12,7 +22,7 @@ So I built a Claude Code skill for it. 13 types, editorial quality, matches your
## What it makes
-All 13 diagrams ship in three variants: minimal light, minimal dark, and full-editorial. Open any of them directly in a browser — no build step, no JS, no external images.
+All 14 diagrams ship in three variants: minimal light, minimal dark, and full-editorial. Open any of them directly in a browser — no build step, no JS, no external images.
@@ -36,11 +46,13 @@ All 13 diagrams ship in three variants: minimal light, minimal dark, and full-ed
Venn Set overlap
-
Pyramid / funnel Ranked hierarchy or conversion drop-off
+
Pyramid / funnel Ranked hierarchy or drop-off
+
Consultant 2×2 Scenario matrix · named cells
+
-**Browse the live gallery:** open [`assets/index.html`](assets/index.html) in your browser to flip through all 13 types with light / dark / full-editorial tabs.
+**Browse the live gallery:** open [`assets/index.html`](assets/index.html) in your browser to flip through all 14 diagrams with light / dark / full-editorial tabs.
---
@@ -75,7 +87,7 @@ Quicker to install — but the skill lives in the plugin cache, so edits to `ref
The whole point: ship editorial-quality diagrams in **your** colors and typography, not a generic template.
-Out of the box, diagrams render in a neutral **stone + rust** palette (warm off-white paper, deep charcoal ink, rust-orange accent). 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.
+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
@@ -111,7 +123,7 @@ Before writing tokens, the skill verifies WCAG AA contrast on `ink` over `paper`
### Manual override
-Prefer to set tokens by hand? Open [`references/style-guide.md`](references/style-guide.md) and edit the table. Everything downstream reads from there — the 13 types, the annotation primitive, and the gallery all inherit semantic role names (`accent`, not `#b5523a`).
+Prefer to set tokens by hand? Open [`references/style-guide.md`](references/style-guide.md) and edit the table. Everything downstream reads from there — all 14 diagrams, the annotation primitive, and the gallery all inherit semantic role names (`accent`, not `#eb6c36`).
### First-run gate
@@ -126,7 +138,7 @@ See [`references/onboarding.md`](references/onboarding.md) for the full spec.
## Quickstart
```bash
-# Open the gallery to see all 13 types
+# Open the gallery to see all 14 diagrams
open ~/.claude/skills/diagram-design/assets/index.html
# In Claude Code, just ask:
@@ -172,7 +184,8 @@ diagram-design/
├── assets/
│ ├── index.html — live gallery, tabbed
│ ├── template*.html — scaffolds for new diagrams
-│ └── example-.html — 3 variants × 13 types
+│ ├── example-.html — 3 variants × 13 types
+│ └── example-quadrant-consultant.html — consultant-special 2×2 scenario matrix
└── docs/screenshots/ — the images in this README
```
@@ -189,7 +202,7 @@ The top-level `SKILL.md` is always in context. Everything else is pulled in only
| "Onboard this skill to my site" | `SKILL.md` + `references/onboarding.md` + `references/style-guide.md` |
| "Add an editorial callout to this diagram" | `SKILL.md` + `references/primitive-annotation.md` |
| "Give me a hand-drawn version" | `SKILL.md` + `references/primitive-sketchy.md` |
-| Routine diagram-making (any of the 13 types) | Only `SKILL.md` + that one type's reference |
+| Routine diagram-making (any of the 14 diagrams) | Only `SKILL.md` + that one type's reference |
No matter how many types exist, Claude only reads the one you need. Add a new type tomorrow and nothing else changes.
diff --git a/SKILL.md b/SKILL.md
index cc989ea..9586bbb 100644
--- a/SKILL.md
+++ b/SKILL.md
@@ -20,7 +20,7 @@ Thirteen diagram types. One shared design system, complexity budget, and taste g
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 diagram 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."*
+> *"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`.
@@ -39,11 +39,11 @@ Don't silently ship default-skinned diagrams into a branded project — that's t
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 diagrams:
+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 diagram isn't done when everything is added. It's done when nothing can be removed.
+- 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.
@@ -94,7 +94,7 @@ Rules of thumb:
## 4. Universal Anti-patterns
-These mark "AI slop" diagrams of any type:
+These mark "AI slop" schematics of any type:
| Anti-pattern | Why it fails |
|---|---|
@@ -115,7 +115,7 @@ 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 littlemight.com (warm paper, ink, coral); 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).
+**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`.
@@ -169,35 +169,45 @@ Universal building blocks. Type-specialized primitives (lifeline, activation bar
### Background
+**Default: clean paper, no dot pattern.** Single `` filled with `paper`. Don't wrap the diagram in a secondary container background — the diagram sits directly on the page.
+
+```svg
+
+```
+
+**Optional: dotted paper variant.** When a long-form editorial diagram benefits from textured ground (essays, hero diagrams on a dedicated page), opt in by adding the `dots` pattern and a second rect:
+
```svg
-
+
-
+
```
+Don't use the dot pattern when the diagram sits inside a product page, slide, or card — the texture compounds with surrounding chrome and reads as noise.
+
### Arrow markers (define all three, always)
```svg
-
+
-
+
-
+
```
| Arrow | Stroke | When |
|---|---|---|
-| Default | muted `#52534e` | Internal, generic |
-| Accent | coral `#f7591f` | Primary / highlighted / headline |
-| Link-blue | `#1a70c7` | HTTP/API calls, external systems |
+| Default | muted `#4f5d75` | Internal, generic |
+| Accent | coral `#eb6c36` | Primary / highlighted / headline |
+| Link-blue | `#2e5aa8` | HTTP/API calls, external systems |
| Dashed | `stroke-dasharray="5,4"` + any color | Optional, passive, return, async |
**Draw arrows before boxes** so z-order puts lines behind nodes.
@@ -206,7 +216,7 @@ Universal building blocks. Type-specialized primitives (lifeline, activation bar
```svg
-
+
@@ -214,10 +224,10 @@ Universal building blocks. Type-specialized primitives (lifeline, activation bar
API
-Node Name
-tech:port
```
@@ -226,8 +236,8 @@ Universal building blocks. Type-specialized primitives (lifeline, activation bar
Every arrow label needs an opaque rect behind it. Without one it bleeds through the line.
```svg
-
-
+WRITE
```
@@ -239,8 +249,8 @@ Rules: ≤14 characters, all-caps, centered on segment midpoint, 8–10px above
```svg
-
+LEGEND
```
@@ -291,7 +301,7 @@ If you exceed, split into two diagrams (overview + detail).
### Page layout
1. **Header** — eyebrow (Geist Mono), title (Instrument Serif), optional subtitle (Geist muted).
-2. **Diagram container** — `#efeee5` bg, 1px `rgba(11,13,11,0.12)` border, 8px radius, `overflow-x: auto`.
+2. **Diagram container** — default: **clean, borderless**, no background — the SVG sits directly on the page paper. Optional *framed* variant (for card-heavy layouts or hero placements): `paper-2` bg + 1px `rule` border + 8px radius + `1.5rem` padding + `overflow-x: auto`.
3. **Summary cards** — 2–3 col grid with *varied* widths (e.g., `1.1fr 1fr 0.9fr`).
4. **Footer** — colophon in Geist Mono, muted, hairline top border.
@@ -314,7 +324,7 @@ Don't use 3 identical generic cards. Vary the treatment:
Rules:
- `background: #ffffff` (not paper — slight lift without shadow)
-- `border: 1px solid rgba(11,13,11,0.12)`
+- `border: 1px solid rgba(45,49,66,0.12)`
- `border-radius: 6px`, `padding: 1.25rem`
- **No `box-shadow`**
- Card dots: 7px, `border-radius: 50%` — ink / muted / coral / link / soft variants
@@ -343,7 +353,7 @@ Run before producing any diagram.
**Technical:**
- [ ] Arrows drawn before boxes?
-- [ ] Every arrow label has an opaque `fill="#f5f4ed"` rect behind it?
+- [ ] Every arrow label has an opaque `fill="#f5f5f5"` rect behind it?
- [ ] Legend is a horizontal bottom strip, not floating?
- [ ] No vertical `writing-mode` text?
- [ ] `viewBox` expanded for the legend strip (~60px)?
@@ -367,6 +377,7 @@ Every diagram ships in three variants (see `assets/`):
| **Minimal light** (default) | `template.html`, `example-.html` | Screenshot-ready. Diagram + title. Warm paper. |
| **Minimal dark** | `template-dark.html`, `example--dark.html` | Dark mode sites, slides, high-contrast posts. |
| **Full editorial** | `template-full.html`, `example--full.html` | Long-form posts where the diagram is the hero. |
+| **Consultant special** (quadrant only) | `example-quadrant-consultant.html` | BCG/McKinsey-style 2×2 scenario matrix. Clinical sans-serif, white bg, bold blue double-ended axes, named scenario cells. See [type-quadrant.md](references/type-quadrant.md#consultant-special-2x2-scenario-matrix). |
**Sketchy variant** (optional, applied to any of the above) — see [primitive-sketchy.md](references/primitive-sketchy.md). SVG turbulence filter wobbles strokes for a hand-drawn feel. Good for essays, not for technical docs.
diff --git a/assets/example-architecture-dark.html b/assets/example-architecture-dark.html
index 03bcd71..f82abf3 100644
--- a/assets/example-architecture-dark.html
+++ b/assets/example-architecture-dark.html
@@ -3,15 +3,15 @@
- littlemight.com · Architecture
+ Content site · Architecture
Architecture · Diagram Design
-
littlemight.com in production
+
Content site in production
The static-first stack: Cloudflare's edge absorbs most reads, Astro renders MDX on misses, content is checked into the repo.
The four entities behind the site. Article is the aggregate root — everything else exists to describe or classify it. `#` marks primary keys, `→` marks foreign keys.
Four named futures, one matrix. Scenario planning in the consultant 2×2 form — two independent drivers, four equal-weight cells, one quadrant carrying the coral bet.
+
+
+
+
+
+
+
+
+
THE HEADLINE
+
Name every future
+
Scenario planning fails when three of the four cells are placeholders. Forcing a name on each future — even the "won't happen" ones — surfaces the assumptions hiding in the axes.
+
+
+
Variant rules
+
+
Double-ended arrows on both axes (spectrum, not flow)
+
Named cells, not plotted items
+
Driver name + range on each arrow tip
+
Coral on one focal quadrant max
+
+
+
+
When to use
+
Reach for the consultant 2×2 for scenario planning, positioning frames, or strategy sessions where four named archetypes beat a plotted point cloud. If you're prioritising, use the standard quadrant instead.