Bleu - a Claude Code plugin for living blueprints

May 22, 2026 · View on GitHub

Turn an idea into a deeply structured, file-backed system plan before writing any code.

Claude Code plugin Install Spec-driven License: MIT

Bleu is a planning plugin for Anthropic's Claude Code. It grows your idea into a navigable markdown wiki - vision, architecture, components, action points, research, citations, ADRs - with a session-persistence layer that survives /clear. The blueprint is the source of truth; the Claude Code plugin hands it off cleanly to GSD, Superpowers, or raw Claude Code when it's time to execute.

flowchart LR
    A[Your idea] --> B[Bleu]
    B --> C[blueprint/<br/>workspace on disk]
    C --> D[Handoff to executor<br/>GSD / Superpowers / Claude Code]
    D --> E[Code, written from a real plan]

    style B fill:#cfe8ff,stroke:#0066cc,color:#000
    style C fill:#fff4cf,stroke:#cc9900,color:#000
    style E fill:#d4f5d4,stroke:#2d8f2d,color:#000

Install

/plugin marketplace add Nirvaan05/Bleu-plugin
/plugin install bleu@bleu

Restart your Claude Code session.

Trigger phrases

IntentSay something like
Start a new blueprinthelp me blueprint this system, plan before coding, design the architecture for X, break this idea into components, expand into action points, full implementation plan
Resume an existing blueprintwhere did we leave off, continue this plan, resume my blueprint

At a glance

PropertyValue
OutputA blueprint/ directory of markdown files in your working dir
StoragePlain markdown. No vector DB, no embeddings, no chunking
Survives/clear, terminal crashes, context-window resets
Hands off toGSD, Superpowers, raw Claude Code, or a flat AP list
Granularity3 to 5 APs (tiny task) up to ~38 APs (greenfield system)
ResearchContinuous, web-based, primary sources, every claim cited
LintRuns after every phase, not only at the end

The phased workflow

Eight phases. Sequential by default, lint after each one, free to loop back.

flowchart TD
    P0[Phase 0<br/>Intake & framing] --> P1[Phase 1<br/>Research pass<br/>web + code]
    P1 --> P2[Phase 2<br/>Vision · Architecture · Pipelines]
    P2 --> P3[Phase 3<br/>Component breakdown]
    P3 --> P4[Phase 4<br/>Data · Integrations · Non-functional]
    P4 --> P5[Phase 5<br/>Action point expansion]
    P5 --> P6[Phase 6<br/>Lint · Challenge · Iterate]
    P6 -->|gaps found| P2
    P6 --> P7[Phase 7<br/>Sign-off & handoff]

    PR[Phase R<br/>Resume / Persist]
    PR -.->|runs at session start| P0
    PR -.->|runs at session end| P7

    style P0 fill:#e8f4ff,color:#000
    style P1 fill:#e8f4ff,color:#000
    style P2 fill:#fff4cf,color:#000
    style P3 fill:#fff4cf,color:#000
    style P4 fill:#fff4cf,color:#000
    style P5 fill:#ffe0cc,color:#000
    style P6 fill:#ffd4d4,color:#000
    style P7 fill:#d4f5d4,color:#000
    style PR fill:#e8d4ff,color:#000
#PhaseGoalOutput
0Intake & framingRestate the idea, surface unknowns, confirm scoperaw/intake.md
1Research passGround in primary sources before drafting anythingresearch/<topic>.md, raw/codebase-notes.md
2Vision · Architecture · PipelinesThree opinionated documents with cited decisionsplan/00-vision.md, 01-architecture.md, 02-pipelines.md
3Component breakdownOne page per component, clear ownershipplan/03-components/<name>.md
4Data · Integrations · Non-functionalSchemas, APIs, performance, security, scalingplan/04, 05, 06.md
5Action point expansionDecompose to executable units with depsaction-points/AP-NN-<slug>.md + dep graph
6Lint · Challenge · IterateFind gaps, contradictions, edge cases, flawsplan/07-risks-open-questions.md
7Sign-off & handoffLock in, generate handoff artifact for executorhandoff/<target>.md
RResume / PersistSurvive context resetsSESSION.md, NEXT.md, journal entry, ADRs

The workspace anatomy

blueprint/
├── README.md                    entry point + navigation
├── SESSION.md                   current snapshot, read FIRST on resume
├── NEXT.md                      imperative next actions, read SECOND
├── journal.md                   append-only session history
├── index.md                     compact summary of every file
├── decisions/                   MADR-style ADR log
│   ├── README.md                ADR index with status table
│   └── ADR-NNN-<slug>.md
├── raw/                         raw inputs: transcripts, dumps, code excerpts
├── plan/
│   ├── 00-vision.md             problem, goals, non-goals, success criteria
│   ├── 01-architecture.md       diagram, layers, data flow, key decisions
│   ├── 02-pipelines.md          every flow end to end
│   ├── 03-components/           one file per component
│   ├── 04-data-model.md
│   ├── 05-integrations.md
│   ├── 06-non-functional.md
│   └── 07-risks-open-questions.md
├── action-points/               one file per AP + dep graph in README
├── research/                    web research notes with citations
└── outputs/                     answers to your queries, persisted

Read order on resume

OrderFileTokens (approx)Why
1SESSION.md~300Current snapshot
2NEXT.md~200Imperative next actions
3index.md~500File map with coverage tags
4decisions/README.md~200Status of every ADR
5journal.md (last 1-2 entries)~800Recent context

Total: ~2k tokens to fully orient. Then and only then does Bleu load specific plan/ or research/ files for the next action. Progressive disclosure all the way down.

Session persistence

Five files keep the workspace alive across context resets. SESSION.md and NEXT.md are rewritten every session. journal.md and decisions/ are append-only.

sequenceDiagram
    actor You
    participant Bleu
    participant Disk as blueprint/

    Note over Bleu,Disk: Session start
    You->>Bleu: "where did we leave off"
    Bleu->>Disk: read SESSION.md, NEXT.md, index.md, ADR index, journal tail
    Bleu->>You: "You are in Phase N. Last did X. Next is Y. OK?"
    You->>Bleu: confirm

    Note over Bleu,Disk: Working
    Bleu->>Disk: write plan/, action-points/, research/
    Bleu->>Disk: mini-persistence at end of each phase

    Note over Bleu,Disk: Session end (before /clear)
    Bleu->>Disk: append journal entry
    Bleu->>Disk: write any new ADRs
    Bleu->>Disk: rewrite SESSION.md + NEXT.md
    Bleu->>Disk: update index.md coverage tags
    Bleu->>You: "Workspace persisted. Safe to /clear."
FileLifecyclePurpose
SESSION.mdRewritten every sessionCurrent phase, status, blockers, where to read first on resume
NEXT.mdRewritten every sessionImperative next steps + "Already done, do not redo" list
journal.mdAppend-onlyOne entry per session: goal, outcome, decisions, deferrals, blockers
decisions/ADR-NNN.mdAppend-only, MADR formatOne file per architectural decision with status lifecycle
decisions/README.mdUpdated when ADR addedStatus table for fast scanning

Action points

flowchart LR
    AP01[AP-01<br/>Foundation] --> AP02[AP-02]
    AP01 --> AP03[AP-03]
    AP01 --> AP04[AP-04]
    AP02 --> AP05[AP-05]
    AP03 --> AP05
    AP04 --> AP06[AP-06]
    AP05 --> AP07[AP-07<br/>Integrate]
    AP06 --> AP07

    classDef parallel fill:#cfe8ff,stroke:#0066cc,color:#000
    class AP02,AP03,AP04 parallel

Bleu builds a dependency graph at the bottom of action-points/README.md showing execution order and parallelizable groups (highlighted above).

AP file template

FieldContent
TitleOne-sentence summary
Depends onOther AP IDs that must complete first
Files involvedExact paths, tagged create / modify / delete
Code flowWhat happens, function by function, in prose
Interfaces touchedFunction signatures, API contracts, schema changes
InteractionsHow it talks to other components (named refs)
VerificationHow you know this AP is done correctly
ComplexityS / M / L / XL with reasoning
Open questions / risksAnything unresolved

Granularity scales to project size

Project typeAP countWhy
Tiny task (bugfix, doc tweak)0Skip Bleu, just do it
Small task (new feature in existing code)3 to 5Coarse decomposition is enough
Medium project (subsystem rewrite)10 to 20Need explicit deps, no need for full vision
Greenfield system~38Full Phase 0 to 7, fine-grained APs, all integrations

Augment Code's research: multi-file tasks succeed at ~19% versus single-function tasks at ~87%. Smaller scope dramatically improves agent success rate. Anthropic's harness research adds: doubling task duration quadruples failure rate. Every agent degrades after ~35 minutes of human time.

Adversarial linting (proposer-validator separation)

Bleu enforces this strictly: the same agent never both proposes and approves a change.

flowchart LR
    User[You] -->|asks for plan| Curator[Curator agent<br/>writes plan files]
    Curator -->|drops proposals| Proposals[.reflection/proposals/]
    Proposals --> Auditor[Auditor agent<br/>different from Curator]
    Auditor -->|approves| Schema[blueprint/ canonical state]
    Auditor -.->|rejects| Curator

    style Curator fill:#cfe8ff,stroke:#0066cc,color:#000
    style Auditor fill:#ffd4d4,stroke:#cc0000,color:#000
    style Schema fill:#d4f5d4,stroke:#2d8f2d,color:#000

Why: Anthropic's harness research found that agents tend to confidently praise mediocre work when reviewing themselves. Different agent = honest review.

Continuous research with citations

flowchart LR
    Decision[Architectural<br/>claim] -->|search web<br/>before drafting| Sources[Primary sources<br/>docs · RFCs · repos]
    Sources --> ResearchFile[research/topic.md<br/>+ citation block]
    ResearchFile --> PlanFile[plan/01-architecture.md<br/>links to research file]
    PlanFile -->|Phase 6 lint| Density[Citation density<br/>check]
    Density -->|gap found| Decision

    style Sources fill:#fff4cf,color:#000
    style Density fill:#ffd4d4,color:#000
What countsWhat does not
Official docs (anthropic.com, mdn, rfc-editor.org)Random Medium articles
Primary repos (github.com/owner/repo source)SEO blog farms
Well-known engineering blogsLLM training memory
RFCs and standardsParaphrased recall
Conference talks with slides or transcripts"I think" claims

If Bleu catches itself thinking "I just knew that," the lint pass forces it to stop and search instead. Training knowledge is stale on tooling.

Operating principles

The 14 constraints Bleu holds for the entire session.

#PrincipleThe bet
1Plan, do not codeNo implementation before sign-off
2Be proactively suggestiveChallenge weak assumptions, propose alternatives
3Continuous research is mandatoryCite the source, never paraphrase from memory
4Files outlast contextThe conversation is ephemeral; the workspace is the deliverable
5Treat chat as stateless, workspace as statefulAnthropic Agent SDK's own guidance
6Lint relentlesslyDone = you say it is near perfect
7Adversarial evaluationDifferent agent for proposing and validating
8Write for the gap, not the overviewEvery line earns its place
9Audit the harness as models improveYesterday's workarounds are today's dead weight
10Contamination controlHuman-curated artifacts stay outside blueprint/
11Start simpler than you think you needMost blueprints do not need advanced features
12Match granularity to scope3 APs for small, ~38 for greenfield
13Ground truth beats LLM opinionTests, compilers, linters, the filesystem
14The Curator owns the wikiYou source inputs, the agent does the bookkeeping

Handoff to your executor

flowchart TD
    Locked[Phase 7<br/>Blueprint locked] --> Choose{Pick executor}
    Choose -->|1| GSD["/gsd:new-milestone<br/>Get Stuff Done"]
    Choose -->|2| SP["/superpowers<br/>plans + checkpoints"]
    Choose -->|3| CC[Raw Claude Code<br/>direct execution]
    Choose -->|4| List[Just the AP list<br/>drive yourself]

    GSD --> Artifact[handoff/gsd.md<br/>references blueprint files]
    SP --> Artifact2[handoff/superpowers.md]
    CC --> Artifact3[handoff/claude-code.md]
    List --> Artifact4[handoff/ap-list.md]

    Artifact --> Auto{Slash command<br/>available?}
    Artifact2 --> Auto
    Artifact3 --> Auto
    Auto -->|yes| Invoke[Bleu offers<br/>to invoke directly]
    Auto -->|no| Manual[You run it yourself]

The handoff artifact references blueprint files by relative path (e.g. @blueprint/plan/01-architecture.md) instead of paraphrasing the whole blueprint into one giant prompt. The blueprint is the source of truth.

Claude Code integration (optional)

When Bleu detects it is running inside Claude Code, it offers four integrations as a menu (never silently).

IntegrationWhat it doesTriggerCost
HooksSessionStart loads index + health into context. FileChanged queues raw inputs for the Curator. PreCompact backs up the transcript. Stop runs git auto-commitConfigured in .claude/settings.jsonNegligible
KB Curator subagentThree modes (compile, lint, index). Hooks scoped to its own lifecycle. Tools whitelisted. memory: project for persistent learnings. Optional isolation: worktree for destructive lint passes.claude/agents/kb-curator.mdOne file
Git auto-commitsStop and SubagentStop hooks stage blueprint/ and commit asynchronously. Loop-protected. Distinct author. git log -- blueprint/ recovers any phase.claude/hooks/git-autocommit.shOne shell script
MCP serversFilesystem scoped to blueprint/, git, docs-fetch (e.g. context7), domain MCPs. Inline-scoped to the Curator so tool descriptions do not pollute the parent context.claude/.mcp.json or inline in Curator frontmatterOptional

Bleu always shows you the files it would create before writing them.

Advanced architecture (opt in, layered on top)

Beyond the base wiki and Claude Code integration, the workspace can become a self-improving system. Each capability is independent. Pick any subset.

#CapabilityWhat it gives you
1Reflection loopLinter agent nominates new rules. Auditor agent (different agent) validates before they enter the schema. Self-improving wiki, human steers the rules
2Structure layersKnowledge graph at .graph/graph.json overlaid on markdown for backlinks. Episodic memory (raw/) split from semantic memory (plan/, research/) with bidirectional links
3Agent teamFour locked-tool subagents: Researcher, Curator, Linter, Auditor. Hand off through files via hook-driven transitions. Proposer-validator enforced
4Schema as codeRules in .claude/rules/blueprint-schema.md, auto-loaded when any blueprint/ file is accessed. ERROR violations block sign-off. Co-evolves via reflection loop
5Multimodal ingestPDFs, images, screenshots dropped in raw/ get described and compiled. Generated diagrams live in derived/ (regenerable, gitignored)
6Observability.telemetry/events.jsonl + wiki health score (0 to 100) in .telemetry/health.md. Computed from coverage, linkage, citation density, lint debt, reflection freshness. Surfaced on every SessionStart
7External integrationsMCP servers ingest GitHub PRs/issues, Linear/Jira tickets, meeting transcripts, web search results into raw/ automatically
flowchart LR
    A[Base workflow] --> B[Reflection loop<br/>+ schema-as-code]
    B --> C[Observability]
    C --> D[Agent team]
    D --> E[Graph + memory split]
    E --> F[Multimodal]
    F --> G[External<br/>integrations]

    style A fill:#d4f5d4,color:#000
    style G fill:#e8d4ff,color:#000

Do not take all seven on day one.

Reference files

Eight reference files at references/. Loaded lazily, only when relevant.

FileWhen Bleu reads it
knowledge-base-pattern.mdPhase 0/1, before creating workspace files
session-persistence.mdFirst session of any new blueprint, every resume
action-point-template.mdPhase 5, before writing APs
research-and-citations.mdPhase 1, every research pass
handoff-formats.mdPhase 7, when packaging for executor
claude-code-integration.mdWhen inside Claude Code and user wants automation
advanced-architecture.mdWhen user asks for any of the 7 capabilities
landscape-research.mdWhen justifying design choices, citing frontliner teams (PubNub, Effloow, EPAM, Anthropic Labs, ETH Zurich)

When to use Bleu

Use it whenSkip it when
Starting a substantial systemOne-off bugfix or 5-line tweak
Long project across multiple sessionsYou already have a complete spec, just want to execute
Want every decision cited and ADR'dThrowaway prototype where plan = code
Need a clean handoff to GSD/Superpowers/CCSingle afternoon of pair programming
Want to survive /clear and crashesThe whole task fits in one chat turn

Why Bleu makes long-running autonomous work safe

Frontliner teams that adopted spec-driven workflows (PubNub, Effloow, EPAM) report:

The safe delegation window expands from 10 to 20 minute tasks to multi-hour feature delivery once a real plan exists in files the agent can re-read.

Plan in files, not chat. Cite primary sources. Lint relentlessly. Survive context resets. Hand off cleanly.

Repository layout

Bleu-plugin/
├── .claude-plugin/
│   └── marketplace.json              marketplace catalog
├── plugins/
│   └── bleu/                         the distributed plugin (this is what installs)
│       ├── .claude-plugin/
│       │   └── plugin.json           plugin manifest
│       └── skills/
│           └── bleu/
│               ├── SKILL.md          the skill itself
│               └── references/       eight reference files
├── scripts/bleu/                     dogfood: deterministic Python core + tests
├── .claude/                          dogfood: hook adapters + example settings (not active)
├── blueprint/                        dogfood: the workspace Bleu built for itself
├── README.md
├── LICENSE                           MIT
└── .gitignore

Only plugins/bleu/ ships when someone installs Bleu. The scripts/, .claude/, and blueprint/ trees are this repo dogfooding the skill (Bleu used to plan and build its own advanced architecture); they are not part of the installed plugin.

License

MIT. See LICENSE.

Author

Nirvaan Lagishetty (@Nirvaan05)

Core Contributors & Maintainers

  • Nirvaan Lagishetty (@Nirvaan05) - creator, maintainer
  • Hill Patel (@STiFLeR7) - core contributor, maintainer

Contributing

Open an issue or PR. Version bumps go in both marketplace.json and plugin.json and must agree.