setup-project

Setup Claude Code Configuration with full RALPH autonomous development integration

16 stars

Best use case

setup-project is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Setup Claude Code Configuration with full RALPH autonomous development integration

Teams using setup-project should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/setup-project/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/setup-project/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/setup-project/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How setup-project Compares

Feature / Agentsetup-projectStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Setup Claude Code Configuration with full RALPH autonomous development integration

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Setup Claude Code Configuration

Analyze the current project and create comprehensive Claude Code configuration including CLAUDE.md, rules, slash commands, agents, skills, hooks, and RALPH autonomous development setup.

## Overview

This skill performs intelligent project setup by:
1. **Deep Project Analysis** - Scans codebase for language, framework, patterns, conventions
2. **Claude Code Configuration** - Creates CLAUDE.md, rules, commands, agents, skills, hooks
3. **RALPH Integration** - Sets up autonomous development with intelligent PRD generation
4. **PROJECT_SPEC.md** - Generates comprehensive project documentation for RALPH context

## Execution Flow

### Phase 1: Project Analysis

First, thoroughly explore the codebase to understand:

```bash
# Check for manifest files to determine tech stack
ls -la package.json tsconfig.json pyproject.toml go.mod Cargo.toml *.csproj 2>/dev/null

# Check for existing Claude configuration
ls -la .claude/ CLAUDE.md 2>/dev/null

# Get project structure overview
find . -maxdepth 2 -type d ! -path './node_modules*' ! -path './.git*' 2>/dev/null | head -30
```

**Analyze:**
- **Language**: TypeScript, JavaScript, Python, Go, Rust, C#
- **Framework**: React, Next.js, Vue, Express, FastAPI, Django, NestJS, etc.
- **Package Manager**: npm, yarn, pnpm, bun, pip, cargo, go mod
- **Test Framework**: Vitest, Jest, Mocha, Pytest, Go test
- **Linting**: ESLint, Biome, Prettier, Ruff
- **Type System**: TypeScript strict mode, Python type hints
- **Build System**: Vite, Webpack, esbuild, Turbopack

### Phase 2: Create Directory Structure

```bash
mkdir -p .claude/rules .claude/commands .claude/agents .claude/skills .claude/hooks
mkdir -p scripts/ralph tasks
```

### Phase 3: Generate CLAUDE.md

Create a comprehensive CLAUDE.md based on analysis:

```markdown
# Project: [Name]

[One-line description from package.json/README]

## Architecture Overview

```
[Directory tree - 3 levels deep]
```

## Tech Stack

| Layer | Technology |
|-------|------------|
| Language | [Detected language] |
| Framework | [Detected framework] |
| Runtime | [Node.js version / Python version] |
| Package Manager | [npm/yarn/pnpm/pip/cargo] |
| Test Framework | [Vitest/Jest/Pytest] |
| Linting | [ESLint/Biome/Ruff] |

## Development Commands

| Command | Description |
|---------|-------------|
| `[dev command]` | Start development server |
| `[build command]` | Build for production |
| `[test command]` | Run tests |
| `[lint command]` | Run linter |
| `[typecheck command]` | Type checking |

## Key Patterns

[Document discovered patterns:]
- Module system (ES modules / CommonJS)
- Naming conventions (camelCase / kebab-case / PascalCase)
- Import order (Node builtins → External → Local)
- Testing patterns (test location, naming)
- Type usage (strict TypeScript, Python type hints)

## Code Style Quick Reference

[Language-specific conventions discovered]

## Important Files

| File | Purpose |
|------|---------|
| [entry point] | Application entry |
| [main config] | Configuration |
| [key modules] | Core functionality |

## Environment Variables

[List from .env.example or detected - NEVER values, only names]

## Files to Avoid Reading

```
node_modules/
dist/
build/
.next/
coverage/
__pycache__/
*.log
.env
.env.*
```

## Summary Instructions

When compacting context, prioritize:
1. Current task progress and remaining steps
2. Recent code changes and their purpose
3. Error messages and their solutions
4. API contracts and data models

Deprioritize:
1. Full file contents after initial read
2. Build output and compiler messages
3. Large dependency listings
```

### Phase 4: Create Style Rules (.claude/rules/)

Based on detected tech stack, create appropriate rule files:

#### For TypeScript/JavaScript:
**typescript-style.md** or **javascript-style.md**:
- Import/export conventions
- Async/await patterns
- Error handling approach
- File operation libraries (fs-extra vs native fs)
- Path handling (path.join vs string concatenation)

#### For Python:
**python-style.md**:
- Type hints requirements
- Async patterns (asyncio)
- Virtual environment expectations
- Import organization

#### For Go:
**go-style.md**:
- Error handling (explicit returns)
- Package organization
- Interface usage
- Concurrency patterns

#### Always create:
**security.md**:
- Sensitive file patterns to avoid
- Environment variable handling
- Input validation requirements
- Authentication patterns

**code-style.md**:
- Naming conventions
- Indentation (2 spaces / 4 spaces / tabs)
- Line length limits
- Comment expectations

### Phase 5: Create Slash Commands (.claude/commands/)

Create commands based on project needs:

**commit.md** - Git commit helper
**review.md** - Code review checklist
**test.md** - Run tests with coverage
**deploy.md** - Deployment automation (if applicable)
**ralph.md** - RALPH status and control
**ralph-run.md** - Run RALPH autonomous agent

### Phase 6: Create Custom Agents (.claude/agents/)

**code-reviewer.md** - Expert code review
**debugger.md** - Debugging specialist
**researcher.md** - Codebase exploration

### Phase 7: Create Skills (.claude/skills/)

**code-review/SKILL.md** - Code review skill
**prd/SKILL.md** - PRD generation skill
**ralph/SKILL.md** - PRD to JSON conversion
**ralph-run/SKILL.md** - RALPH execution

### Phase 8: Configure Hooks (.claude/hooks/)

**hooks.json**:
```json
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "[lint command]",
        "timeout": 30000
      }]
    }],
    "Stop": [{
      "matcher": ".*",
      "hooks": [{
        "type": "command",
        "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/auto-compact.sh",
        "timeout": 5000
      }]
    }]
  }
}
```

**auto-compact.sh** - Context usage monitoring (warns at 70%)

### Phase 9: Configure Settings (.claude/settings.json)

```json
{
  "permissions": {
    "allow": [
      "Bash(npm:*)",
      "Bash(npx:*)",
      "Bash(node:*)",
      "Bash(git:*)",
      "Bash([test runner]:*)",
      "Bash(mkdir:*)",
      "Bash(chmod:*)",
      "Bash(ls:*)",
      "Bash(rm:*)",
      "Bash(cp:*)",
      "Bash(mv:*)"
    ],
    "deny": [
      "Read(.env)",
      "Read(.env.*)",
      "Read(./secrets/**)",
      "Read(**/*.pem)",
      "Read(**/*.key)",
      "Read(**/credentials*)",
      "Read(node_modules/**)",
      "Read(coverage/**)"
    ]
  }
}
```

### Phase 10: RALPH Autonomous Development Setup

#### 10a: Generate PROJECT_SPEC.md

Create comprehensive project specification:

```markdown
# Project Specification: [Name]

> Generated: [Date]
> Analyzed by: claude-init

## Overview
[From README/package.json]

## Tech Stack
[Full technology breakdown]

## Directory Structure
[3-level tree]

## Dependencies
### Production
[Top 15 with purposes]

### Development
[Top 10 with purposes]

## Available Scripts
[All npm scripts / Makefile targets]

## Code Patterns & Conventions
### Testing
- Framework, location, coverage config

### Type System
- Language, strict mode

### Code Style
- Naming, module system, linting, formatting, import order

## Codebase Patterns for RALPH
[Discovered patterns as bullet list]

## Quality Gates
```bash
# Commands RALPH must run before marking stories complete
[typecheck command]
[lint command]
[test command]
```
```

#### 10b: Create scripts/ralph/

**ralph.sh** - Bash loop that runs Claude iterations:
```bash
#!/bin/bash
MAX_ITERATIONS="${1:-10}"
ITERATION=0
while [ $ITERATION -lt $MAX_ITERATIONS ]; do
  ITERATION=$((ITERATION + 1))
  echo "=== RALPH Iteration $ITERATION/$MAX_ITERATIONS ==="

  # Run Claude with RALPH prompt
  claude --dangerously-skip-permissions \
    -p "$(cat scripts/ralph/CLAUDE.md)" \
    --allowedTools 'Bash(git:*),Bash(npm:*),Read,Write,Edit,Grep,Glob'

  # Check for completion signal
  if grep -q "COMPLETE" progress.txt 2>/dev/null; then
    echo "✓ All stories complete!"
    break
  fi
done
```

**CLAUDE.md** - RALPH system prompt with:
- Mission: One story per iteration
- Context sources: prd.json, PROJECT_SPEC.md, progress.txt, git history
- Quality gates: typecheck, lint, test
- Commit format: `feat: [Story-ID] - [Story Title]`
- Exit signal: `<promise>COMPLETE</promise>`
- Project-specific context from analysis

#### 10c: Create Initial PRD (if feature provided)

If user provides `--feature "description"`:

1. Generate intelligent prd.json based on:
   - Feature description
   - Tech stack (React UI, Backend API, etc.)
   - Existing patterns (TypeScript, test framework, linting)

2. Create appropriately-sized user stories:
   - Priority 1: Data models/types
   - Priority 2: Core logic/services
   - Priority 3: API/routes
   - Priority 4: UI components
   - Priority 5: Polish/tests

3. Initialize progress.txt with discovered patterns

4. Create tasks/prd-[feature].md markdown version

### Phase 11: Output Summary

After completion, display:

```
## Claude Code Configuration Complete

### Created Files:
- CLAUDE.md (comprehensive project documentation)
- PROJECT_SPEC.md (RALPH context document)
- .claude/settings.json
- .claude/rules/*.md ([count] rules)
- .claude/commands/*.md ([count] commands)
- .claude/agents/*.md ([count] agents)
- .claude/skills/*/SKILL.md ([count] skills)
- .claude/hooks/hooks.json
- .claude/hooks/auto-compact.sh
- scripts/ralph/ralph.sh
- scripts/ralph/CLAUDE.md

[If PRD created:]
- prd.json ([count] user stories)
- progress.txt (initialized with patterns)
- tasks/prd-[feature].md

### Available Commands:
- /commit - Git commit with formatted message
- /review - Code review checklist
- /test - Run tests
- /ralph - RALPH status
- /ralph-run - Start RALPH

### RALPH Status:
[If PRD created:]
- Feature: "[feature description]"
- Stories: [count] total
- Branch: ralph/[feature-slug]
- Ready to run: ./scripts/ralph/ralph.sh 20

[If no PRD:]
- No PRD configured
- Create one: /prd [feature description]

### Next Steps:
1. Review CLAUDE.md for accuracy
2. Customize rules for team conventions
3. [If PRD] Run: ./scripts/ralph/ralph.sh 20
4. [If no PRD] Create PRD: /prd [feature]
```

---

## Tech Stack Detection Reference

| File | Stack |
|------|-------|
| `package.json` | Node.js ecosystem |
| `tsconfig.json` | TypeScript |
| `vite.config.*` | Vite bundler |
| `next.config.*` | Next.js framework |
| `nuxt.config.*` | Nuxt framework |
| `svelte.config.*` | SvelteKit |
| `angular.json` | Angular |
| `*.xcodeproj` | iOS/macOS |
| `build.gradle*` | Android/JVM |
| `Cargo.toml` | Rust |
| `go.mod` | Go |
| `pyproject.toml` | Python (modern) |
| `requirements.txt` | Python (legacy) |

## Files to Always Exclude

```
node_modules/
dist/
build/
.next/
.nuxt/
target/          # Rust
bin/             # Go compiled
__pycache__/
*.pyc
.venv/
venv/
.git/objects/
coverage/
*.log
```

---

## RALPH Workflow After Setup

```bash
# 1. Run setup (with optional feature)
/setup-project
# or
/setup-project --feature "User authentication system"

# 2. If PRD created, review it
cat prd.json
cat PROJECT_SPEC.md

# 3. Start RALPH autonomous development
./scripts/ralph/ralph.sh 20

# 4. Monitor progress
tail -f progress.txt
cat prd.json | jq '.userStories[] | {id, title, passes}'

# 5. When complete, review and merge
git log --oneline -20
git diff main...HEAD
```

## Interactive Mode

When run without `--yes`, prompt for:
1. Project name confirmation
2. Language/framework verification
3. Commands to enable (hooks, agents, commands, rules, skills)
4. RALPH setup preference
5. Initial feature description (optional)

## Command Line Options

```bash
/setup-project [options]
  -t, --target <path>     Target directory (default: current)
  -y, --yes               Skip prompts, use defaults
  -m, --merge             Merge with existing config
  -f, --feature <desc>    Create initial PRD for feature
  --no-hooks              Skip hooks setup
  --no-agents             Skip agents setup
  --no-commands           Skip commands setup
  --no-rules              Skip rules setup
  --no-skills             Skip skills setup
  --no-ralph              Skip RALPH setup
```

## Quality Assurance

Before completing setup, verify:
- [ ] CLAUDE.md accurately describes the project
- [ ] PROJECT_SPEC.md has correct tech stack
- [ ] Rules match detected language/framework
- [ ] Commands use correct package manager
- [ ] Hooks reference correct lint/test commands
- [ ] Settings.json has appropriate permissions
- [ ] RALPH scripts are executable (chmod +x)
- [ ] PRD stories (if created) are appropriately sized

Related Skills

sovereign-project-guardian

16
from diegosouzapw/awesome-omni-skill

Project health and best practices enforcer. Checks security, quality, documentation, CI/CD, and dependencies. Produces a letter grade (A-F) with actionable fixes.

setup-tanstack-start

16
from diegosouzapw/awesome-omni-skill

Bootstrap a new web project with TanStack Start, React, Tailwind CSS v4, and shadcn/ui on top of the base tooling stack. Consult this skill whenever creating a web app, setting up a frontend project, starting a React application, or initializing anything involving TanStack Start, TanStack Router, TanStack Query, Tailwind, shadcn, or Vite.

setup-node

16
from diegosouzapw/awesome-omni-skill

Sets up Node.js/TypeScript development environment with npm/yarn, dependencies, ESLint, Prettier, testing (Jest/Vitest), and TypeScript type checking. Ensures consistent tooling configuration. Use when starting work on Node.js/TypeScript projects, after cloning repositories, setting up CI/CD, or troubleshooting environment issues.

setup-earl

16
from diegosouzapw/awesome-omni-skill

Installs Earl, configures MCP integration for your agent platform, writes CLAUDE.md instructions, and routes to template creation or migration. Use when setting up Earl for the first time, when a new developer is onboarding to a project that uses Earl, or when Earl needs to be connected to an agent platform.

setup-claude-code

16
from diegosouzapw/awesome-omni-skill

Claude Code 프로젝트 설정 생성

setup-cdk-templates

16
from diegosouzapw/awesome-omni-skill

Use when creating CLAUDE.md files or .claude/ directories - detects project type, generates appropriate templates, and scaffolds Claude configuration with commands and hooks

setup-api-key

16
from diegosouzapw/awesome-omni-skill

Guide users through obtaining and configuring a Vapi API key. Use when the user needs to set up Vapi, when API calls fail due to missing keys, or when the user mentions needing access to Vapi's voice AI platform.

sentry-setup-tracing

16
from diegosouzapw/awesome-omni-skill

Setup Sentry Tracing (Performance Monitoring) in any project. Use this when asked to add performance monitoring, enable tracing, track transactions/spans, or instrument application performance. Supports JavaScript, TypeScript, Python, Ruby, React, Next.js, and Node.js.

sentry-setup-metrics

16
from diegosouzapw/awesome-omni-skill

Setup Sentry Metrics in any project. Use this when asked to add Sentry metrics, track custom metrics, setup counters/gauges/distributions, or instrument application performance metrics. Supports JavaScript, TypeScript, Python, React, Next.js, and Node.js.

sentry-setup-logging

16
from diegosouzapw/awesome-omni-skill

Setup Sentry Logging in any project. Use this when asked to add Sentry logs, enable structured logging, setup console log capture, or integrate logging with Sentry. Supports JavaScript, TypeScript, Python, Ruby, React, Next.js, and other frameworks.

sentry-python-setup

16
from diegosouzapw/awesome-omni-skill

Setup Sentry in Python apps. Use when asked to add Sentry to Python, install sentry-sdk, or configure error monitoring for Python applications, Django, Flask, FastAPI.

rdc-setup

16
from diegosouzapw/awesome-omni-skill

Install and set up @data-client/react or @data-client/vue in a project. Detects project type (NextJS, Expo, React Native, Vue, plain React) and protocol (REST, GraphQL, custom), then hands off to protocol-specific setup skills.