| name | project-setup |
| description | Set up new Claude Code projects with CLAUDE.md, slash commands, and proper structure |
Project Setup Skill
When to Use This Skill
Activate this skill when:
- User asks to "set up a new project"
- User asks to "create a CLAUDE.md"
- User asks to "initialize Claude Code" for a project
- User asks to "scaffold" a project
- User wants to add Claude Code support to existing code
Do NOT use for:
- General coding questions
- Editing existing CLAUDE.md (see optimize-claude-md skill)
- Running or testing projects
Prerequisites
- Write access to target directory
- For existing projects: ability to read config files (package.json, pyproject.toml, etc.)
Instructions
Step 1: Determine Project Type
Analyze the target directory:
# Check for Node.js/TypeScript
ls package.json 2>/dev/null && echo "Node.js project"
# Check for Python
ls pyproject.toml requirements.txt setup.py 2>/dev/null && echo "Python project"
# Check for Go
ls go.mod 2>/dev/null && echo "Go project"
# Check for Rust
ls Cargo.toml 2>/dev/null && echo "Rust project"
If no config files exist, ask the user what type of project they want to create.
Step 2: Gather Project Information
For new projects, ask:
- Project name
- Project description
- Primary language/framework
- Any special requirements
For existing projects, extract from:
- README.md (description)
- Package config (dependencies, scripts)
- Existing folder structure
Step 3: Generate CLAUDE.md
Use the appropriate template:
- React/TypeScript →
/templates/claude-md/react-typescript.md - Python API →
/templates/claude-md/python-api.md - Full Stack →
/templates/claude-md/fullstack.md - Other →
/templates/claude-md/minimal.md
Fill in all {{PLACEHOLDER}} values with actual project information.
Step 4: Create Slash Commands
Set up .claude/commands/ with useful commands:
Essential commands:
review.md- Code reviewtest-and-commit.md- Quality check and commit
Copy from /templates/commands/ and customize.
Step 5: Verify Setup
- Ensure CLAUDE.md is valid markdown
- Check that referenced commands/paths exist
- Test that any scripts are executable
Step 6: Provide Next Steps
Tell the user:
- How to use the generated configuration
- How to customize further
- Recommended MCP servers for their stack
Examples
Example 1: New React Project
User says: "Set up a new React TypeScript project called my-app"
Actions:
- Create
my-app/directory - Run
npm create vite@latest . -- --template react-ts - Generate CLAUDE.md from react-typescript template
- Create
.claude/commands/with review.md and test-and-commit.md
Result:
my-app/
├── CLAUDE.md
├── .claude/
│ └── commands/
│ ├── review.md
│ └── test-and-commit.md
├── src/
├── package.json
└── ...
Example 2: Existing Python Project
User says: "Add Claude Code support to my Django project"
Actions:
- Read existing pyproject.toml and requirements.txt
- Analyze project structure
- Generate CLAUDE.md tailored to Django
- Add relevant slash commands
Verification
After setup is complete:
- Read CLAUDE.md - Ensure it's coherent and accurate
- Check commands - Verify slash commands are recognized
- Test a command - Try
/project:reviewor similar - Run verification - Execute any verification commands listed
Reference Files
- Templates:
/templates/claude-md/ - Command templates:
/templates/commands/ - Best practices:
/docs/best-practices.md