The Claude Code Starter Kit for New Projects (All Config Files Included)
The average developer spends 2-3 hours configuring Claude Code per project. This kit does it in 5 minutes.
Every new project starts with no CLAUDE.md, no settings.json, no skills, no deny rules. Claude doesn't know your stack, asks permission for every command, and reads your .env without asking.
One folder with 4 config files and 9 slash commands fixes all of this. Drop it into any project and Claude Code is fully configured before your first prompt.
Here's the full kit 👇
Before we dive in, I share daily notes on AI & vibe coding in my Telegram channel: https://t.me/zodchixquant🧠

What's inside
your-project/ ├── CLAUDE.md → project context + rules ├── .gitignore → secrets + AI tool protection ├── .claude/ │ ├── settings.json → permissions + hooks │ ├── settings.local.json → personal overrides (gitignored) │ └── skills/ │ ├── review/SKILL.md → /review │ ├── test/SKILL.md → /test │ ├── commit/SKILL.md → /commit │ ├── pr/SKILL.md → /pr │ ├── debug/SKILL.md → /debug │ ├── refactor/SKILL.md → /refactor │ ├── docs/SKILL.md → /docs │ ├── deploy-check/SKILL.md → /deploy-check │ └── security/SKILL.md → /security
5 minutes to set up. Every session after that starts with full context, proper permissions, and 9 ready-to-use slash commands.
File 1: CLAUDE.md
This is the first file Claude reads. Stack, commands, architecture, rules. Under 60 lines.
CLAUDE.md
Project
[One line: what this project does]
Stack
[Framework, language, database, deployment target]
Commands
- Dev:
pnpm dev - Build:
pnpm build - Test single:
pnpm vitest run src/lib/__tests__/[file] - Test all:
pnpm test - Lint:
pnpm lint --fix - Type check:
npx tsc --noEmit
Architecture
- src/app/ → pages and API routes
- src/components/ → stateless UI components
- src/lib/services/ → business logic and data fetching
- src/lib/hooks/ → custom React hooks
- src/lib/utils/ → shared helpers
- src/lib/types/ → TypeScript types
Rules
- NEVER commit .env files or secrets
- All database queries through src/lib/services/, never in components
- All async calls must use try/catch
- Prefix commits: feat:, fix:, docs:, refactor:, test:, chore:
- IMPORTANT: run type check after every code change
- No console.log in production code
Workflow
- Ask before making architectural decisions
- Make minimal changes, don't refactor unrelated code
- Run tests after every change, fix failures before moving on
- Create separate commits per logical change
- When unsure between two approaches, explain both and let me choose
Out of scope
- migrations/ → managed by ORM CLI, don't create manually
- public/assets/ → static files, don't modify
- .github/workflows/ → CI/CD, don't touch without asking
Replace the brackets with your project's details. Delete sections that don't apply.
File 2: settings.json
Permissions + hooks. Claude stops asking permission for safe commands and stays blocked from dangerous ones.
json { "permissions": { "allow": [ "Read", "Glob", "Grep", "LS", "Edit", "MultiEdit", "Write(src/)", "Write(tests/)", "Write(docs/)", "Bash(npm run )", "Bash(pnpm )", "Bash(npm install )", "Bash(npm test )", "Bash(npx tsc )", "Bash(npx vitest )", "Bash(npx prettier )", "Bash(npx eslint )", "Bash(git status)", "Bash(git diff )", "Bash(git log )", "Bash(git add )", "Bash(git commit )", "Bash(git checkout )", "Bash(git branch )", "Bash(cat )", "Bash(head )", "Bash(tail )", "Bash(wc )", "Bash(find )", "Bash(echo )" ], "deny": [ "Read(/.env)", "Read(/.dev.vars)", "Read(/*.pem)", "Read(/.key)", "Read(/secrets/)", "Read(/credentials/)", "Read(/.aws/)", "Read(/.ssh/)", "Read(/.npmrc)", "Write(/.env)", "Write(/secrets/)", "Write(/.ssh/)", "Write(.github/workflows/)", "Write(package-lock.json)", "Bash(rm -rf )", "Bash(sudo )", "Bash(git push )", "Bash(git merge )", "Bash(git rebase )", "Bash(npm publish )", "Bash(docker )", "Bash(curl * | sh)", "Bash(wget )", "Bash(chmod )" ], "defaultMode": "acceptEdits" }, "hooks": { "PostToolUse": [ { "matcher": "Write(.ts)", "hooks": [ { "type": "command", "command": "npx prettier --write $file" } ] }, { "matcher": "Write(.tsx)", "hooks": [ { "type": "command", "command": "npx prettier --write $file" } ] } ] } }
File 3: .gitignore
Protects secrets, AI tool configs, and build artifacts from ever reaching git.
Dependencies
node_modules/ .pnp.*
Build
dist/ build/ .next/ out/
Environment
.env .env.* !.env.example
AI tools
.claude/settings.local.json .cursor/ .aider* .continue/ .cody/
Secrets & credentials
.pem .key .p12 credentials.json service-account.json .npmrc .aws/ .ssh/ .docker/config.json
IDE
.vscode/settings.json .idea/
OS
.DS_Store Thumbs.db
Logs & coverage
*.log coverage/ .nyc_output/
Terraform
.terraform/ .tfstate .tfstate.backup
Note: .claude/settings.local.json is gitignored (personal overrides), but .claude/settings.json and .claude/skills/ are committed so your team shares them.
File 4: The 9 skills
Each skill is a SKILL.md file inside .claude/skills/[name]/.
Here are the 3 most-used ones.
The other 6 are in the full kit download at the end.
/review
name: review description: Review code for bugs, security issues, and style violations. Use when reviewing PRs, checking code quality, or when user mentions "review", "PR", "code quality". allowed-tools: Read, Grep, Glob, Bash(git diff *)
Review the current diff or specified files for:
- Bugs: logic errors, null handling, race conditions
- Security: hardcoded secrets, SQL injection, XSS
- Performance: N+1 queries, unnecessary re-renders
- Style: naming, dead code, TODOs
Output as checklist grouped by severity: CRITICAL / WARNING / INFO End with summary: "X critical, Y warnings, Z info"
/commit
name: commit description: Create structured git commits from current changes. Use when user says "commit", "save changes", or after finishing a feature. allowed-tools: Read, Bash(git *)
- Run
git statusandgit diffto see all changes - Group related changes into logical units
- For each unit, create a commit:
type(scope): description under 50 chars
- What changed
- Why (if not obvious)
- Stage and commit each unit separately
- Show summary: "Created N commits: [titles]"
Types: feat, fix, refactor, docs, test, chore
/deploy-check
name: deploy-check description: Run pre-deployment checks. Use when user mentions "deploy", "ship", "release", or "production". allowed-tools: Read, Bash(npm ), Bash(npx tsc ), Bash(git *), Grep
Run in order, stop at first failure:
npx tsc --noEmit— types passnpm test— tests passnpm run lint— no lint errorsnpm run build— build succeeds- grep for console.log in src/
- Check for .env references in committed code
- git status — no uncommitted changes
Output: ✅ or ❌ per check Summary: "Ready to deploy" or "N issues to fix first"
How to install
Option A: New project
mkdir my-project && cd my-project git init
Create CLAUDE.md (paste the template above)
Create .claude/settings.json (paste above)
Create .gitignore (paste above)
Copy skills into .claude/skills/
git add -A git commit -m "chore: add Claude Code starter kit"
Option B: Existing project
cd your-project
Add CLAUDE.md to root (fill in your details)
Merge settings.json into existing .claude/settings.json
Update .gitignore with missing rules
Copy skills folder
git add -A git commit -m "chore: add Claude Code config files"
Option C: Global (every project)
Copy settings.json to ~/.claude/settings.json
Copy skills to ~/.claude/skills/
CLAUDE.md stays per-project (different stack each time)
The workflow after setup
Your first session in a new project now looks like this:
Before the kit: 1. Open Claude Code 2. Type your stack, commands, and rules manually 3. Click "Allow" 30 times for basic operations 4. Realize .env was read 5 minutes ago 5. Try to remember your commit format 6. Give up and type prompts from scratch
After the kit: 1. Open Claude Code 2. Claude already knows your stack, commands, and rules 3. Permission prompts: 0-3 per session 4. .env is blocked at system level 5. /commit, /review, /deploy-check ready to go 6. Start working
What to customize first
Don't use these files as-is forever. They're a starting point. After your first week:
-
CLAUDE.md — add rules every time Claude makes a mistake. "Update CLAUDE.md so this doesn't happen again" is the most powerful prompt in Claude Code
-
settings.json — adjust Write scopes for your folder structure, add Bash rules for your specific tools
-
Skills — modify /review to check for patterns specific to your codebase
-
.gitignore — add entries for any new tools or credentials your project uses
The kit compounds over time. By month three, your CLAUDE.md has captured every mistake Claude has made in your project and prevents all of them automatically.
Thanks for reading!
I share daily notes on AI, finance, and vibe coding in my Telegram channel: https://t.me/zodchixquant
