Skip to content
Productivity
Skill

/blueprint

Human-facing documentation, architecture docs, and mermaid diagrams for a codebase, a module, or a feature — "draw me the architecture, with receipts." Fans out read-only sub-agents to build a grounded component graph first: every node is a real path, every edge backed by a

From plugin
skillhub
921 skills

Claude Code

$ npx -y skills add duthaho/skillhub --skill blueprint --agent claude-code

SKILL.md

blueprint.SKILL.md
name: blueprint
description: >-
  Human-facing documentation, architecture docs, and mermaid diagrams for a
  codebase, a module, or a feature — "draw me the architecture, with
  receipts." Fans out read-only sub-agents to build a grounded component
  graph first: every node is a real path, every edge backed by a
  grep-verified import or call — unverifiable edges are dropped, not drawn.
  Diagrams render from that verified table per a fixed checklist (never
  freehand mermaid), capped at 5–8 top-level components with drill-down
  pages; every doc section cites its sources as file:line. Drafts in chat,
  writes docs/blueprint/ only on your yes, and stamps a manifest with date +
  commit so /blueprint refresh regenerates only what the diff touched. Use
  for "generate an architecture diagram", "document this codebase or module
  for people", "create a mermaid diagram of this feature" — e.g.
  "/blueprint", "/blueprint the payment flow", "/blueprint refresh". For
  agent-facing orientation (AGENTS.md) use map; blueprint is the
  human-facing sibling.

blueprint — architecture the team can read, with receipts

`/blueprint` — whole-repo architecture doc + top-level mermaid diagram `/blueprint <module|feature>` — scoped doc + diagram for one area `/blueprint refresh` — regenerate only what the diff since the stamp touched

Answer one question: **what does a person need to see to understand how this code is put together — and can every box and arrow be defended?** The documented failure mode of AI-generated architecture docs is confident fiction: diagrams with components that don't exist and arrows nobody can trace. The countermeasure is structural, not stylistic — no edge without a locator, no mermaid the checklist didn't render, no write without a yes.

Step 0 — Scope, and respect what exists

Look before generating:

  • **Existing output?** Check for `docs/blueprint/` and its `manifest.md`.

**The explicit command wins:** a scope argument runs SCOPED and `/blueprint refresh` runs REFRESH regardless. A bare `/blueprint` with existing output defaults to REFRESH — read the manifest first and jump to the refresh path in Step 5; offer a full regenerate only if the user asks or the manifest looks obsolete. An existing hand-written `docs/architecture*` file is context to read and link, never to overwrite. Whichever mode wins, if the manifest's stamp trails HEAD, state the drift in one line — "blueprint is N commits behind (touched: X, Y)" via `git rev-list --count` + `git diff --stat` over `<stamped-commit>..HEAD` — and offer the refresh unless this run already is one. A stamp that no longer resolves (rebase, shallow clone) is itself the staleness signal: report it and offer a full regenerate. Staleness surfaces at every touch, not only on a remembered refresh.

  • **Orient cheaply first.** Read `AGENTS.md`/`CLAUDE.md`/`README` if present

(the map skill writes the first) — they answer in seconds what fan-out answers in minutes. No AGENTS.md in a large repo? Offer `/map` first; its output makes this run better and the repo better oriented for every later agent.

  • **Size the repo** (`git ls-files | wc -l`, top-level layout) to scale the

fan-out: a small repo graphs in one pass inline; a large or polyglot one gets one Explore agent per area.

  • **A scope argument** (`/blueprint the payment flow`) narrows everything to

that module or feature: the graph, the doc, and the diagram cover that area and its direct boundaries — not the whole repo.

State the mode picked (FULL / SCOPED / REFRESH) and why.

Step 1 — Fan out, gather the raw graph

Dispatch read-only **Explore** sub-agents — grep/glob/read, keyless, no index to go stale — one per area (FULL) or one per boundary (SCOPED). Each agent returns, for its area:

1. **Candidate components** — the directories/modules that act as units, each with its entry file and one line on its job. 2. **Candidate edges** — imports, calls, route registrations, queue producers/consumers, config wiring — **each with the file:line where it was seen**. An edge the agent "believes" but didn't see is reported as a question, not an edge. 3. **The story** — how execution flows through the area, as prose pointing at files.

**Lossless hand-off:** each agent writes full findings to `out/blueprint/.work/<area>.md` and returns a summary; synthesize from the files, not the relay.

Step 2 — The verified graph (before any diagram)

Distill the findings into a **node/edge table** — the single source of truth everything downstream renders from:

  • **Nodes:** 5–8 top-level components (≤30 nodes total including

sub-nodes). Required fields per row: `id` (`comp-<slug>`, alphanumeric + hyphens, survives renames), `name` (display name), `path` (the real file or directory — must exist), `job` (one line). A node whose path doesn't exist doesn't enter the table. Utilities/logging don't get boxes — they're noise at this altitude.

  • **Edges:** each row: from-ID, to-ID, verb ("calls", "imports", "publishes

to"), and the **locator** — the file:line of the import/call/route that proves it. Before an edge enters the table, grep the claimed locator: the cited line must actually contain the relation. **Unverifiable edge → dropped and listed under "unverified candidates"** in the work notes — never softened into the diagram.

  • **Collapse first.** When the table exceeds the caps, roll nodes up to

their parent component rather than shrinking the boxes — a hairball communicates nothing (the decade-long lesson of every dependency-graph tool). Scoped runs may drill one level deeper per component page.

Step 3 — Render the diagram (never freehand)

Read `references/mermaid-checklist.md` now and follow it exactly. The rules in brief: the mermaid is **rendered mechanically from the table** — short IDs from the node rows, quoted labels, no raw parentheses/brackets in label text, `click` links to each node's real p

Read more
@duthaho
Ships withskillhub

Give Claude Code a memory and make it cite its sources — skills for research, daily work, and shipping code. They started as prompts I kept retyping, so I wrote each one down once. Keyless: no API keys, no signups.

Stars on GitHub

Momentum

stars in total
9
Star history of duthaho/skillhub on GitHub, a chart by star-history.com

Other skills on skillhub.

archdeck

archdeck

Animated explainer slides for programming videos — turns one technical problem (backend, database, system design, frontend,…

@duthaho@duthahoInstall Skill
autopilot

autopilot

The whole coding loop on one deliberate yes: map, spec, critic-hardened plan, GitHub issues, parallel worktree implementers,…

@duthaho@duthahoInstall Skill
bugfix

bugfix

Lightweight bug-fixing loop — reproduce → root-cause → fix test-first → verify — deliberately separate from the heavyweight…

@duthaho@duthahoInstall Skill
cachewise

cachewise

Prompt-cache economics forensics — why your Claude Code tokens burn so fast, with the numbers to prove it. Parses local ~/.claude…

@duthaho@duthahoInstall Skill
daybrief

daybrief

Morning work briefing — "what does my day look like, in one scan?" Gathers today's calendar and emails needing attention (via…

@duthaho@duthahoInstall Skill
done

done

End-of-session shipping gate — "prove it works, then ship it." Runs an evidence checklist (full test suite, lint/typecheck,…

@duthaho@duthahoInstall Skill

More skills from other plugins.

i-have-adhd

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…

@ayghri@ayghriInstall Skill
ab-test-analysis

ab-test-analysis

Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop…

@phuryn@phurynInstall Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

Questions about blueprint.

Which coding agents can use blueprint?
blueprint installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.