A framework for going from "I have a project idea" to autonomous implementation using the Ralph loop pattern.
Kickoff guides you through a series of phases to take a greenfield project from idea to working code:
- Interview - Structured conversation to define your project's vision, users, and scope
- Infra (optional) - Design AWS SAM serverless infrastructure from your project overview
- Design Sync (optional) - Import UI mockups from Stitch to generate design-driven feature specs
- Discover - Automatically generate detailed feature specs from your project overview
- Plan - Create an implementation plan with atomic, prioritized tasks
- Build - Autonomous loop that implements one task per iteration until done
Required:
- Claude Code - the CLI that powers the Ralph loop
bash- ralph.sh requires Bash (not sh/zsh/fish)git- version controljq- JSON processing (used by ralph.sh to track story progress)bc- arithmetic (used by ralph.sh for cost tracking)curl- for the one-liner install andupdatecommand
Recommended:
- obra/superpowers skills - TDD, debugging, brainstorming, and other structured workflows that improve build quality
- agent-browser skill - used by the build phase to verify UI changes in a real browser
Optional:
- AWS MCP server +
awsCLI +samCLI - enables the/infraskill and SAM deployments during build. The MCP server requiresuvxto run. - Stitch MCP server - enables the
/design-syncskill for importing UI mockups (see step 4 below)
Option A: One-liner (no clone needed)
curl -sfL https://raw.githubusercontent.com/kifbv/kickoff/main/scripts/install.sh | bash -s ~/Projects/my-app "My App"
cd ~/Projects/my-appOption B: From a local clone
git clone git@github.com:kifbv/kickoff.git
./kickoff/scripts/scaffold.sh ~/Projects/my-app "My App"
cd ~/Projects/my-app./ralph/ralph.sh interviewThis starts an interactive session that asks about your project idea, identifies Jobs to Be Done, scopes v1, and writes specs/project-overview.md.
If your project needs AWS infrastructure:
./ralph/ralph.sh infraThis analyzes your project overview and designs a serverless architecture using AWS SAM, producing specs/infrastructure.md, infra/template.yaml, and infra/samconfig.toml.
If you have mockups in a Stitch project, you can import them before generating specs:
/design-syncThis connects to your Stitch project, maps screens to the JTBD from the interview, generates feature specs with design references, synthesizes a design system (designs/DESIGN.md), and saves screen HTML to designs/ as layout/styling references for the build phase. Any JTBD covered by designs will be skipped during the next step.
Note: This is a Claude Code skill, not a ralph.sh command. Run it interactively in Claude Code.
./ralph/ralph.sh discoverCreates a detailed feature spec (specs/[topic].md) for each JTBD identified in the interview. JTBD already covered by design sync are skipped.
./ralph/ralph.sh planProduces IMPLEMENTATION_PLAN.md and prd.json with atomic, dependency-ordered user stories.
./ralph/ralph.sh buildStarts the Ralph loop. Each iteration picks one story, implements it, runs quality checks, commits, and updates progress. Continues until all stories pass.
To pull the latest ralph.sh and prompt files into a scaffolded project:
cd ~/Projects/my-app
./ralph/ralph.sh updateThis fetches the current versions of ralph.sh and all PROMPT_*.md files from upstream. Your specs, prd.json, progress, and source code are untouched.
./ralph/ralph.sh interview # Interactive project interview
./ralph/ralph.sh infra # AWS SAM infrastructure design
./ralph/ralph.sh discover [max] # Feature spec generation
./ralph/ralph.sh plan [max] # Gap analysis + task list
./ralph/ralph.sh plan-work "desc" [max] # Scoped planning
./ralph/ralph.sh build [max] # Implementation (default)
./ralph/ralph.sh update # Update ralph files from upstream
./ralph/ralph.sh [max] # Shorthand for build| Environment Variable | Default | Description |
|---|---|---|
RALPH_MODEL |
opus (plan) / sonnet (build) | Claude model to use |
RALPH_DELAY |
3 | Seconds between iterations |
PUSH_AFTER_ITERATION |
false | Git push after each iteration |
RALPH_UPSTREAM |
auto-detected | Override upstream URL for update command |
After scaffolding, your project looks like:
my-app/
├── .claude/skills/ # Claude Code skills (design-sync, interview, etc.)
├── CLAUDE.md # Build/test/lint commands + operational notes
├── IMPLEMENTATION_PLAN.md # Living task list
├── progress.txt # Append-only learning log
├── prd.json # User stories with pass/fail tracking
├── specs/ # Requirement specs (one per feature)
│ └── project-overview.md # From interview phase
├── ralph/ # Loop files
│ ├── ralph.sh
│ └── PROMPT_*.md
├── designs/ # UI design references (from Stitch)
│ ├── DESIGN.md # Synthesized design system tokens
│ └── prompts/ # Stitch-optimized prompts for missing screens
├── infra/ # AWS SAM infrastructure (template.yaml, samconfig.toml)
├── archive/ # Previous runs
└── src/ # Your code
Based on the Ralph loop pattern by Geoffrey Huntley:
- Fresh context per session - Each iteration starts clean, no context pollution
- One task per loop - Maximum utilization of the model's "smart zone"
- State via files -
prd.json,progress.txt, and git provide memory between sessions - Backpressure - Tests, typechecks, and lints force correctness
- Let Ralph Ralph - Trust the loop to self-correct through iteration
See docs/philosophy.md for more details.
When working in this repo with Claude Code, these skills are available:
/interview- Start a project discovery interview/infra- Design AWS SAM serverless infrastructure/discover- Generate a feature spec from JTBD/prd- Create a PRD for a feature/prd-to-json- Convert a PRD to prd.json format/design-sync- Import UI designs from Stitch into project specs/scaffold- Scaffold a new project
Inspired by: