Bootstrap
Skill damoli1103/claude-code-project-bootstrap/skills/bootstrap
Use when user wants to set up a new project from scratch with Claude Code guardrails, GitHub repo, README, hooks, and git workflow. Triggered by /bootstrap command.From its SKILL.md
npx -y skills add damoli1103/claude-code-project-bootstrap --skill bootstrapAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.3 KB, as published. Nobody here has run it
/bootstrap — Set Up a New Claude Code Project
You are bootstrapping a project for Claude Code development. Follow every step below in order. Do NOT skip steps. Ask the user when input is needed.
REQUIRED REFERENCE: Read the full claude-code-project-bootstrap skill for hook scripts, templates, and patterns. This command is the execution flow — that skill is the knowledge base.
Step 1: Gather Context
Ask the user (use AskUserQuestion with up to 4 questions):
- Project name — What should the repo/directory be called?
- Stack — What language/framework? (Node/TS, Python, Rust, Go, Swift/Xcode, other)
- Visibility — Public or private GitHub repo?
- Description — One-line project description
If $ARGUMENTS is provided, infer what you can and only ask what's missing.
Step 2: Git + GitHub Repo
Check current state and act accordingly:
IF no .git directory:
→ git init
IF no GitHub remote:
→ gh repo create <name> --<visibility> --source=. --push --description "<desc>"
IF already has repo + remote:
→ Skip, confirm to user
Step 3: .gitignore
If no .gitignore exists, create one. Always include:
# Claude Code
.claude/settings.local.json
# Secrets
.env
.env.*
*.key
*.pem
# OS
.DS_Store
Thumbs.db
Add stack-specific entries based on Step 1 answer:
- Node/TS:
node_modules/,dist/,.next/,coverage/ - Python:
__pycache__/,*.pyc,.venv/,*.egg-info/ - Rust:
target/,Cargo.lock(if library) - Go:
bin/,vendor/(if not using modules) - Xcode:
build/,DerivedData/,*.xcuserdata/
Step 4: README.md
If no README.md exists, generate one with:
- Project name and description (from Step 1)
- Getting Started (prerequisites, install, dev, test)
- Project Structure (infer from existing files or use placeholder)
- Contributing section mentioning Claude Code guardrails
- License placeholder
If README exists, skip. Do NOT overwrite an existing README.
Step 5: Hooks
Create .claude/hooks/ with six scripts from the claude-code-project-bootstrap skill:
- validate-bash.sh — blocks destructive operations (forced deletion, force push, hard reset, checkout main, forced clean); validates branch names against convention; gates commits behind build-check.sh; validates commit messages against conventional format; warns on large diffs
- protect-files.sh — blocks writes to .env, credentials, keys, files outside project; uncomment stack-specific blocks based on Step 1
- build-check.sh — auto-detects project stack (Node, Rust, Go, Python, Xcode) and runs appropriate build and test commands
- scan-secrets.sh — scans written files for hardcoded API keys, tokens, private keys, JWTs; non-blocking warning only
- session-check.sh — verifies hooks directory, CLAUDE.md, and all hook scripts exist and are executable on session start
- auto-format.sh — runs available formatters (prettier, ruff/black, rustfmt, swiftformat, gofmt) on written files; non-blocking
Make all executable: chmod +x .claude/hooks/*.sh
Step 6: settings.json
Create .claude/settings.json with:
- PreToolUse hooks: Bash → validate-bash.sh, Write|Edit → protect-files.sh
- PostToolUse hooks: Write|Edit → scan-secrets.sh + auto-format.sh
- SessionStart hooks: session-check.sh
Do NOT create or modify settings.local.json — that's user-specific.
Step 7: CLAUDE.md
Generate a CLAUDE.md tailored to the project:
- Project context (name, stack, description from Step 1)
- Architecture (infer from existing files or create sensible defaults)
- Change Protocol with the correct build/test commands for the stack
- Git Workflow (branch naming, conventional commits with project-relevant scopes)
- Post-Merge Protocol
- Critical Do/Don't rules relevant to the stack
Step 8: Initial Commit + Push
git add .gitignore README.md CLAUDE.md .claude/hooks/ .claude/settings.json
git commit -m "chore(infra): bootstrap project with Claude Code hooks and workflow"
git push -u origin main
Step 9: Permissions Guidance
After setup, explain the three permission levels from the claude-code-project-bootstrap skill:
- Minimal (conservative) — only git and basic commands auto-approved; user prompted for everything else
- Balanced (recommended) — full autonomy within the project +
~/.claude/(memory, plans); reads anywhere; destructive Bash commands and writes outside the project still prompt for approval - Full auto-accept (power user) — broad read/write/bash permissions everywhere with deny rules for
~/.ssh,~/.aws,~/.gnupg
Explain the risks of full auto-accept (unrestricted file access, bash commands run without confirmation, only deny-listed paths are protected). Recommend Balanced for most users.
Let the user choose. Do NOT create settings.local.json — just print the JSON so they can decide.
Step 10: Summary
Print a summary:
- GitHub repo URL
- Files created
- Hooks installed and what they enforce
- Permission level chosen (or "minimal by default")
- Next steps (start a feature branch, install relevant skills, etc.)