From blueprint
Scan project and generate/audit CLAUDE.md files with stack auto-detection and Context7 docs. Triggers on "/bp-context", "/context", "generate context", "audit CLAUDE.md", "scan project", or any request to create or update CLAUDE.md documentation files. Also triggers on "brownfield", "onboard project", "onboard this project", "onboard existing project", "scan existing project", "update context docs", "context scan", "check CLAUDE.md", "stale documentation", or "refresh project docs". Runs parallel workers per directory. Also audits README.md for staleness.
npx claudepluginhub skaisser/blueprint-pluginThis skill uses the workspace's default tool permissions.
Read `blueprint/.config.yml` → `language`. If `auto`, detect from the user's messages. All generated content MUST be in the detected language. Skill instructions stay in English — only output changes.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes competition with Porter's Five Forces, Blue Ocean Strategy, and positioning maps to identify differentiation opportunities and market positioning for startups and pitches.
Share bugs, ideas, or general feedback.
Read blueprint/.config.yml → language. If auto, detect from the user's messages. All generated content MUST be in the detected language. Skill instructions stay in English — only output changes.
Scan the project, auto-detect the tech stack, query framework documentation via Context7, and generate a tree of lean, focused CLAUDE.md files. Runs multiple subagents in parallel — one per directory cluster.
/start on an existing codebase (brownfield onboarding)--force — but ALWAYS audit for stalenessAskUserQuestion for ALL user interactions — never ask questions in plain textRun: echo "[context:1] detecting project stack"
Read references/stack-detection.md (bundled with this skill) before starting. It contains the full detection tables for languages, frameworks, test runners, asset pipelines, and databases (sections 1a–1f).
Follow sections 1a–1f from that reference, then echo the output summary as shown in section 1f.
Run: echo "[context:2] reading blueprint config"
Read blueprint/.config.yml for:
staging_branch — used in root CLAUDE.md branch flowlanguage — content languagestack — compare against auto-detected values; flag discrepanciesRun: echo "[context:3] querying Context7 for framework documentation"
For the primary detected framework, use Context7 MCP tools:
Call mcp__context7__resolve-library-id with the framework name:
"laravel""nextjs""django""ruby on rails""react""vue""fastapi""gin golang"Using the resolved library ID, call mcp__context7__query-docs for:
"project directory structure conventions""best practices and common patterns""testing conventions and patterns"Use these results to inform:
If Context7 MCP tools are not available (tools not found, server not running):
echo "[context:3] Context7 unavailable — using built-in conventions"Run: echo "[context:4] scanning project structure"
find . -name "CLAUDE.md" -not -path "*/vendor/*" -not -path "*/node_modules/*" -not -path "*/.git/*" 2>/dev/null
Identify directories that exist and would benefit from a CLAUDE.md:
Run: echo "[context:5] generating root CLAUDE.md"
The root CLAUDE.md should be customized with detected stack info. Structure:
# {Project Name}
## Tech Stack
{Auto-detected: language, framework + version, test runner, assets, database}
## BLUEPRINT Workflow
This project uses BLUEPRINT SDLC. Run `blueprint update` to update skills.
### Pipeline
/plan → /plan-review → /code → /test → /tdd-review → /commit → /push → /ship → /finish
### Branch Flow
feature branch → {staging_branch} → main
### Commit Format
<emoji> <type>: <description>
## Testing
- Runner: {detected test runner}
- NEVER mock what you can test — use real implementations
- {framework-specific testing notes}
## Key Conventions
{Framework-specific conventions from Context7 or built-in knowledge}
## Workspace
Plans, tasks, and context live in `blueprint/` — see README there.
Keep it concise — under 60 lines. The root file is a MAP, not an encyclopedia.
Run: echo "[context:6] generating subdirectory CLAUDE.md files"
Dispatch ALL workers in ONE message. Each worker generates CLAUDE.md files for its directory cluster. Workers use general-purpose subagent type.
Generate CLAUDE.md files based on the detected framework. Only create files for directories that actually exist in the project.
| Directory | Key Content |
|---|---|
app/Models/ | Relationships, factories, casts, scopes, never raw SQL |
app/Http/Controllers/ | Single responsibility, use Form Requests, resource controllers |
app/Http/Requests/ | Validation rules, authorize method, custom messages |
app/Services/ | Business logic lives here, not in controllers |
app/Livewire/ | Component patterns, wire:model, events, lifecycle |
database/migrations/ | Never migrate:fresh, always add new migrations, never modify existing |
database/factories/ | Factory patterns, states, relationships |
tests/ | Pest patterns, factories over fixtures, no mocking DB |
resources/views/ | Blade/Livewire patterns, component library (DaisyUI if detected) |
routes/ | Route naming, middleware, group patterns |
config/ | Never hardcode — use env(), config caching |
| Directory | Key Content |
|---|---|
app/ | App Router conventions, server vs client components, layouts, loading/error |
components/ | Component naming, props patterns, composition |
lib/ | Utility functions, API clients, shared logic |
public/ | Static assets only, no sensitive files |
tests/ or __tests__/ | Testing framework, component testing patterns |
styles/ | CSS modules or Tailwind patterns |
types/ | TypeScript interfaces, shared types |
| Directory | Key Content |
|---|---|
apps/ or app directories | App structure, models, views, serializers |
templates/ | Template inheritance, block patterns |
static/ | Static file handling, collectstatic |
tests/ | pytest fixtures, factory_boy, API test patterns |
core/ or config/ | Settings structure, URL configuration |
| Directory | Key Content |
|---|---|
cmd/ | Entry points, CLI structure, flag parsing |
internal/ | Package patterns, interfaces, dependency injection |
pkg/ | Public packages, API stability |
api/ | API definitions, proto files, OpenAPI specs |
tests/ or *_test.go | Table-driven tests, test helpers, testify patterns |
| Directory | Key Content |
|---|---|
app/ | Expo Router, screen patterns, layouts |
components/ | Component patterns, StyleSheet conventions |
hooks/ | Custom hooks, state management |
services/ or lib/ | API clients, storage, utilities |
__tests__/ | Jest + React Native Testing Library patterns |
| Directory | Key Content |
|---|---|
app/models/ | ActiveRecord patterns, validations, scopes |
app/controllers/ | Strong params, before_actions, REST conventions |
app/views/ | Partials, helpers, Turbo/Hotwire if detected |
spec/ or test/ | RSpec/Minitest patterns, FactoryBot |
db/migrations/ | Migration safety, never modify existing |
For unrecognized frameworks, generate CLAUDE.md only for directories with:
Run: echo "[context:7] auditing existing CLAUDE.md files"
If CLAUDE.md files already exist, run in audit mode:
Use AskUserQuestion to present findings:
If new directories exist that should have CLAUDE.md but don't:
Run: echo "[context:8] auditing README.md"
Cross-reference README.md against what was learned during the scan:
Use AskUserQuestion to offer README.md updates if staleness is found.
Run: echo "[context:9] generation complete"
Show summary:
Remind the user: "Review the generated files. Run /bp-commit when satisfied."
--force / -f — Regenerate all CLAUDE.md files (overwrite existing)--dry-run / -d — Show what would be created/updated without writing--root / -r — Root CLAUDE.md only--audit / -a — Audit only, no new generation--no-context7 — Skip Context7 queries, use built-in conventions onlyUse $ARGUMENTS as a specific directory path or flag.