From dev-kit
Use when the user wants to set up Claude Code on a new project, asks to "create a CLAUDE.md", "bootstrap claude", "initialize claude for this repo", or when there is no CLAUDE.md in the current project root yet and the user is starting work. This skill drops in a small, project-specific CLAUDE.md based on what's actually in the repo, and creates a `.claude/memory/decisions.md` for architectural decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-kit:project-bootstrapThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up Claude Code for the current project. The output is intentionally small — a CLAUDE.md under ~500 tokens is better than one that drifts and goes stale.
Set up Claude Code for the current project. The output is intentionally small — a CLAUDE.md under ~500 tokens is better than one that drifts and goes stale.
Detect the stack. Read the repo root and look at:
package.json → Node/JS/TSpyproject.toml / requirements.txt / setup.py → PythonCargo.toml → Rustgo.mod → GoGemfile → Rubypom.xml / build.gradle → JVMcomposer.json → PHP
List the top 3 languages by file count if it's a polyglot.Find the canonical commands.
package.json scripts, Makefile, pyproject.toml, etc.Identify obvious conventions by reading 2-3 representative source files: indentation, naming, test layout, where types live, where utilities live. Keep this to 3-5 bullet points.
Write CLAUDE.md at the project root. Use this template, filling in only what you can verify. Delete sections that don't apply.
# CLAUDE.md — <project name>
## What this is
<one sentence>
## Commands
- Install: <cmd>
- Dev: <cmd>
- Test: <cmd>
- Lint / format: <cmd>
## Conventions
- <bullet 1>
- <bullet 2>
- <bullet 3>
## Architecture pointers
- Entry point: `<path>`
- Tests live in: `<path>`
- Shared utilities: `<path>`
- Architectural decisions: see `.claude/memory/decisions.md`
## Working agreements
- Plan before implementing for any change touching more than one file.
- Run tests via the `test-runner` subagent rather than dumping output here.
- For library APIs, prefer Context7 over guessing from memory.
Create .claude/memory/decisions.md if it doesn't exist, with a header and one example entry so the format is clear:
# Architectural decisions
## YYYY-MM-DD — <decision title>
**Context:** what forced the decision
**Decision:** what we chose
**Rejected alternatives:** with one-line reason each
**Consequences:** what this locks us into
Report back in chat:
Test: <TODO: add command> and move on.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub atalias-mkyle/claude-dev-kit --plugin dev-kit