You MUST use this skill when the user asks you to setup a claude code project. You should also suggest it if there is no CLAUDE.md or when starting work on an empty codebase.
/plugin marketplace add britt/claude-code-skills/plugin install britt-claude-code-skills@britt/claude-code-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Help Claude author a CLAUDE.md file that defines a project's purpose, development practices, and tech stack before writing code.
Core principle: A well-configured project prevents rework and ensures consistency. Establishing guardrails upfront helps Claude Code work reliably, produce high-quality code, and avoid doom loops where code is written, broken, and rewritten repeatedly.
Ask questions to determine:
Then update CLAUDE.md. Document the answers in CLAUDE.md under a ## Project Overview section.
Here's a template:
## Project Overview
**Setting Up a Project Skill**: Helps Claude author a CLAUDE.md file that defines a project's purpose, development practices, and tech stack before writing code.
### Problem
Claude Code often writes unreliable, inconsistent or low quality code.
It can make errors like adding two different unit testing frameworks to a project.
It can also get stuck in doom loops where code is written, broken, and rewritten repeatedly.
### Approach
A well-configured project prevents rework and ensures consistency. Establishing guardrails upfront helps Claude Code work reliably, produce high-quality code, and avoid doom loops where code is written, broken, and rewritten repeatedly.
Ask the user about each of these areas. Suggest sensible defaults based on the language/runtime.
When suggesting defaults, base them on the language:
| Language | Package Manager | Testing | Linting | Build |
|---|---|---|---|---|
| TypeScript/Node.js | pnpm | Vitest | ESLint + Prettier | esbuild or tsc |
| Python | uv | pytest | Ruff | - |
| Go | go modules | go test | golangci-lint | go build |
| Rust | cargo | cargo test | clippy | cargo build |
Adjust suggestions based on deployment target and project needs.
Document the output in CLAUDE.md under a ## Tech Stack section.
Here's a template:
## Tech Stack
- **Language**: [Language and version]
- **Runtime**: [Runtime environment]
- **Package Manager**: [Package manager]
- **Testing**: [Testing framework]
- **Linting**: [Linter and formatter]
- **Build**: [Build tool]
- **Key Libraries**: [List of essential libraries]
After defining the tech stack:
CLAUDE.mdTDD is non-negotiable for all projects set up with this skill.
Read the contents of https://raw.githubusercontent.com/britt/claude-code-skills/refs/heads/main/rules/TDD.rules.md
and copy it verbatim into CLAUDE.md.
Ask the user about their preferred git workflow, then document it in CLAUDE.md:
feature/, fix/, chore/)This rule is non-negotiable. Add the following to CLAUDE.md verbatim:
## Git Commit Rules
**COMMIT EARLY, COMMIT OFTEN** - This is mandatory.
- Commit after every successful TDD cycle (RED-GREEN-REFACTOR)
- Commit after completing any discrete unit of work
- Commit before switching context or taking breaks
- Never have more than 30 minutes of uncommitted work
- Each commit should be atomic: one logical change per commit
Why this matters:
- Small commits are easier to review and revert
- Frequent commits prevent loss of work
- Atomic commits make git history useful for debugging
- Regular commits force you to think in small, testable increments
Use the britt/writing-verification-plans skill to create a verification plan.
This produces a VERIFICATION_PLAN.md file that should be linked in CLAUDE.md as shown below:
## Verification
See @VERIFICATION_PLAN.md for acceptance testing procedures.
CLAUDE.md fileCLAUDE.md to gitobra/brainstorming or obra/writing-plans if they say yes.CALUDE.md in sections, validate eachThis skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.