From "I have an idea" to autonomous implementation. A framework for AI-driven development using the Ralph loop pattern.
The Problem
AI can write code. But without structure, it writes the wrong code — hallucinating requirements, losing context mid-task, and producing work that doesn't integrate.
Throwing a vague prompt at an LLM and hoping for a production app is like handing someone lumber and saying "build me a house." You get walls that don't connect, rooms that serve no purpose, and a foundation that crumbles under load.
The missing piece isn't smarter models. It's structured process — deterministic inputs, atomic tasks, and quality gates that keep AI on the rails.
Framework
Kickoff guides you through a series of phases to take a greenfield project from idea to working code. It uses the Ralph loop pattern — a bash-driven outer loop that feeds one atomic task at a time into Claude Code, keeping each iteration inside the model's "smart zone."
A bash outer loop that picks one story, implements it, runs quality checks, commits, and repeats. Fresh context every iteration — no pollution, maximum utilization.
With ~176K usable tokens, 40-60% is the "smart zone." One task per loop iteration means 100% smart zone utilization — the model operates at peak capability.
Every user story must be completable in one context window. If you can't describe the change in 2-3 sentences, it's too big. No half-completed code, no broken state.
Tests, typechecks, and lints must pass before committing. Quality gates force correctness — the loop self-corrects through iteration rather than hoping for the best.
Workflow
Six phases take you from a vague idea to a shipped product. Each phase narrows scope and increases precision.
Principles
Control what the AI sees. Specs, CLAUDE.md, prd.json, and progress.txt are loaded deterministically at the start of each iteration. Garbage in, garbage out — so curate the input.
Control what the AI must satisfy. Tests, typechecks, lints, and browser verification form a quality gauntlet. Nothing ships until everything passes.
Trust the loop to self-correct through iteration. Eventual consistency beats micro-management. A wrong plan is cheap to regenerate — let the loop find its way.
curl -sfL https://raw.githubusercontent.com/kifbv/kickoff/main/scripts/install.sh | bash -s ~/Projects/my-app "My App"
cd ~/Projects/my-app && ./ralph/ralph.sh interview