blueprint-plugin/skills/blueprint-claude-md/SKILL.md
Generate or update CLAUDE.md from blueprint artifacts. Use when adding team instructions, converting inline content to @imports, or setting up CLAUDE.local.md.
npx skillsauth add laurigates/claude-plugins blueprint-claude-mdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate or update the project's CLAUDE.md file based on blueprint artifacts, PRDs, and project structure.
| Use this skill when... | Use alternative when... |
|------------------------|-------------------------|
| Need to create/update CLAUDE.md for team instructions | Use /blueprint:rules for path-specific rules |
| Want to add @imports to existing CLAUDE.md | Use /blueprint:generate-rules to create rules from PRDs |
| Need to create CLAUDE.local.md for personal preferences | Editing individual rule files directly |
| Converting inline content to lean @import structure | Just need to view current memory configuration |
Claude Code has two complementary systems for project context. CLAUDE.md should contain team-shared instructions — not patterns Claude learns on its own.
| Belongs in CLAUDE.md | Belongs in Auto Memory (managed by Claude) | |----------------------|---------------------------------------------| | Team coding standards | Debugging insights and workarounds | | Build/test/lint commands | Personal workflow preferences | | Architecture decisions | Project-specific patterns learned over time | | Required conventions | File relationships and navigation shortcuts | | CI/CD workflows | Common mistakes and how to fix them |
Auto memory lives at ~/.claude/projects/<project>/memory/ and is managed automatically. Do not duplicate auto memory concerns into CLAUDE.md.
~/.claude/rules/ — personal rules across all projects~/.claude/projects/<project>/memory/)CLAUDE.md files support importing other markdown files to stay lean:
# Project: MyApp
@docs/architecture.md
@docs/conventions.md
@.claude/rules/testing.md
Use @import to reference existing documentation rather than duplicating content into CLAUDE.md.
Steps:
Check current state:
CLAUDE.md in project rootCLAUDE.local.md (personal preferences, gitignored)docs/blueprint/manifest.json for configuration~/.claude/rules/ (user-level rules)claude_md_mode (single, modular, or both)Determine action (use AskUserQuestion):
{If CLAUDE.md exists:}
question: "CLAUDE.md already exists. What would you like to do?"
options:
- "Update with latest project info" → merge updates
- "Regenerate completely" → overwrite (backup first)
- "Add missing sections only" → append new content
- "Add @imports for existing docs" → replace inline content with imports
- "Convert to modular rules" → split into .claude/rules/
- "Create CLAUDE.local.md" → personal preferences (gitignored)
- "View current structure" → analyze and display
{If CLAUDE.md doesn't exist:}
question: "No CLAUDE.md found. How would you like to create it?"
options:
- "Generate from project analysis" → auto-generate
- "Generate from PRDs" → use blueprint PRDs
- "Generate with @imports (lean)" → auto-generate using imports for existing docs
- "Start with template" → use starter template
- "Use modular rules instead" → skip CLAUDE.md, use rules/
Gather project context:
docs/prds/*.md for requirements.claude/rules/ if presentGenerate CLAUDE.md sections:
Standard sections (focused on team-shared instructions):
# Project: {name}
## Overview
{Brief project description from PRDs or detection}
## Tech Stack
- Language: {detected}
- Framework: {detected}
- Build: {detected}
- Test: {detected}
## Development Workflow
### Getting Started
{Setup commands}
### Running Tests
{Test commands}
### Building
{Build commands}
## Architecture
{Key architectural decisions from PRDs — or use @import:}
@docs/prds/architecture-prd.md
## Conventions
### Code Style
{Detected or from PRDs}
### Commit Messages
{Conventional commits if detected}
### Testing Requirements
{From PRDs or rules}
## See Also
{If modular rules enabled:}
- `.claude/rules/` - Detailed rules by domain
- `docs/prds/` - Product requirements
Sections to omit (auto memory handles these automatically):
If modular rules mode = "both":
.claude/rules/ for details:
## Detailed Rules
See `.claude/rules/` for domain-specific guidelines:
- `development.md` - Development workflow
- `testing.md` - Testing requirements
- `frontend/` - Frontend-specific rules
- `backend/` - Backend-specific rules
If modular rules mode = "modular":
@import references.claude/rules/# Project: {name}
## Overview
{One-paragraph description}
@docs/prds/main.md
## Development
{Build, test, lint commands}
## Rules
See `.claude/rules/` for detailed guidelines.
6b. If "Create CLAUDE.local.md" selected:
CLAUDE.local.md in project root for personal preferencesCLAUDE.local.md to .gitignore if not already present# Personal Preferences
## My Environment
- IDE: {detected or ask}
- Terminal: {detected or ask}
## My Workflow Preferences
- {Personal conventions not shared with team}
6c. If "Add @imports" selected:
@path/to/source.md importsSmart update (for existing CLAUDE.md):
question: "Found outdated sections. Which would you like to update?"
options: [list of sections]
allowMultiSelect: true
Sync with modular rules:
.claude/rules/question: "Found duplicate content between CLAUDE.md and rules/. How to resolve?"
options:
- "Keep in CLAUDE.md, remove from rules"
- "Keep in rules, reference from CLAUDE.md"
- "Keep both (may cause confusion)"
Update manifest:
Update task registry:
Update the task registry entry in docs/blueprint/manifest.json:
jq --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
'.task_registry["claude-md"].last_completed_at = $now |
.task_registry["claude-md"].last_result = "success" |
.task_registry["claude-md"].stats.runs_total = ((.task_registry["claude-md"].stats.runs_total // 0) + 1)' \
docs/blueprint/manifest.json > tmp.json && mv tmp.json docs/blueprint/manifest.json
Report:
✅ CLAUDE.md updated!
{Created | Updated}: CLAUDE.md
{If created:} CLAUDE.local.md (personal preferences, gitignored)
Sections:
- Overview ✅
- Tech Stack ✅
- Development Workflow ✅
- Architecture ✅
- Conventions ✅
@imports used: {count, if any}
- @docs/prds/architecture.md
- @.claude/rules/testing.md
Sources used:
- PRDs: {list}
- Rules: {list}
- Project detection: {what was detected}
{If modular mode:}
Note: Detailed rules are in .claude/rules/
CLAUDE.md serves as overview and quick reference.
Note: "Current Focus" and "Key Files" are managed by Claude's
auto memory — no need to maintain these in CLAUDE.md.
Run `/blueprint:status` to see full configuration.
CLAUDE.md Best Practices:
@import to reference existing docs instead of duplicating contentCLAUDE.local.md for personal preferences (auto-gitignored).claude/rules/ for detailed, path-specific rulesPrompt for next action (use AskUserQuestion):
question: "CLAUDE.md updated. What would you like to do next?"
options:
- label: "Check blueprint status (Recommended)"
description: "Run /blueprint:status to verify configuration"
- label: "Manage modular rules"
description: "Add or edit rules in .claude/rules/"
- label: "Continue development"
description: "Run /project:continue to work on next task"
- label: "I'm done for now"
description: "Exit - CLAUDE.md is saved"
Based on selection:
/blueprint:status/blueprint:rules/project:continueTemplate Sections (customize per project type):
| Project Type | Key Sections | |--------------|--------------| | Python | Virtual env, pytest, type hints | | Node.js | Package manager, test runner, build | | Rust | Cargo, clippy, unsafe usage rules | | Monorepo | Workspace structure, shared deps | | API | Endpoints, auth, error handling | | Frontend | Components, state, styling |
tools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.