--- 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: ```bash # 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: 1. Project name 2. Project description 3. Primary language/framework 4. 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 review - `test-and-commit.md` - Quality check and commit Copy from `/templates/commands/` and customize. ### Step 5: Verify Setup 1. Ensure CLAUDE.md is valid markdown 2. Check that referenced commands/paths exist 3. Test that any scripts are executable ### Step 6: Provide Next Steps Tell the user: 1. How to use the generated configuration 2. How to customize further 3. 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:** 1. Create `my-app/` directory 2. Run `npm create vite@latest . -- --template react-ts` 3. Generate CLAUDE.md from react-typescript template 4. 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:** 1. Read existing pyproject.toml and requirements.txt 2. Analyze project structure 3. Generate CLAUDE.md tailored to Django 4. Add relevant slash commands ## Verification After setup is complete: 1. **Read CLAUDE.md** - Ensure it's coherent and accurate 2. **Check commands** - Verify slash commands are recognized 3. **Test a command** - Try `/project:review` or similar 4. **Run verification** - Execute any verification commands listed ## Reference Files - Templates: `/templates/claude-md/` - Command templates: `/templates/commands/` - Best practices: `/docs/best-practices.md`