From atv-starter-kit
Automates iterative coding task execution with fresh-context sub-agents, PRD.md/PROGRESS.md tracking, and git commits until completion.
npx claudepluginhub all-the-vibes/atv-starterkit --plugin atv-starter-kitThis skill uses the workspace's default tool permissions.
[task description or PRD path] [--completion-promise KEYWORD]
Executes autonomous development loops picking one task per iteration, implementing, verifying, and committing in fresh context windows with task tracking.
Conducts interactive interview to gather task details, generates PRD, and outputs optimized loop commands with phase tracking for Loop plugin.
Autonomously loops Amp or Claude Code instances to complete all PRD stories from prd.json, persisting state via git commits, progress.txt, and prd.json.
Share bugs, ideas, or general feedback.
[task description or PRD path] [--completion-promise KEYWORD]
An autonomous coding loop that executes tasks iteratively with fresh context per iteration, using the filesystem as memory and git for version control. Inspired by the Ralph Wiggum pattern — persistent trial-and-error with external state tracking.
Ralph loop = Fresh context + Filesystem memory + Git versioning
Each iteration starts with a clean context window. Progress is tracked in PROGRESS.md, requirements live in PRD.md, and every completed task is committed to git. This avoids context pollution and produces reliable results for multi-step work.
/ralph-loop "Build the authentication module"
/ralph-loop docs/plans/my-plan.md
/ralph-loop "finish all slash commands" --completion-promise "DONE"
If the argument is a task description (not a path to an existing PRD or plan file):
Read existing plan files — Check docs/plans/ for a relevant plan. If one exists and matches the task, use it as the PRD.
Generate PRD — If no plan exists, create PRD.md in the project root with:
DONE)Generate PROGRESS.md — Create PROGRESS.md in the project root with:
# Progress
## Status: IN_PROGRESS
| # | Task | Status | Notes |
|---|------|--------|-------|
| 1 | [task name] | PENDING | |
| 2 | [task name] | PENDING | |
Commit initial state:
git add PRD.md PROGRESS.md
git commit -m "ralph-loop: initialize PRD and progress tracking"
If the argument is a path to a plan file (e.g., docs/plans/feature.md), use that as the PRD and generate only PROGRESS.md from its tasks.
Read PRD.md and PROGRESS.md to determine the next PENDING task, then execute iterations until all tasks are complete.
For each iteration:
Read PROGRESS.md and select the first task with status PENDING. If no PENDING tasks remain, go to Phase 2 (Completion).
Spawn a fresh sub-agent (via the Task tool) for the selected task. The sub-agent prompt MUST include:
You are a Ralph Executor. Complete this single task with fresh context.
**Task:** [task description from PRD]
**Acceptance Criteria:** [criteria from PRD]
Instructions:
1. Read PRD.md and PROGRESS.md for full context
2. Implement the task — write code, create files, run tests
3. Verify your work meets the acceptance criteria
4. Update PROGRESS.md: set this task's status to DONE with brief notes
5. Stage and commit your changes:
git add -A
git commit -m "ralph-loop: complete task [N] — [brief description]"
Do NOT modify other tasks. Do NOT skip testing. One task only.
<critical_requirement> Each executor sub-agent runs with fresh context — it has no memory of previous iterations. All state comes from the filesystem (PRD.md, PROGRESS.md, existing code, git history). </critical_requirement>
After the executor sub-agent completes:
DONEFAILED with notes, then re-attempt. Each task gets up to 3 total attempts (1 initial + 2 retries). After the third failed attempt, mark the task as BLOCKED and continue to the next task.When all tasks in PROGRESS.md are DONE (or BLOCKED):
Update PROGRESS.md — Set top-level status:
COMPLETE if all tasks are DONEPARTIAL if any tasks are BLOCKEDFinal commit:
git add PROGRESS.md
git commit -m "ralph-loop: all tasks complete"
Output completion promise — If --completion-promise was provided:
<promise>[KEYWORD]</promise>
Default keyword is DONE.
Summary:
✓ Ralph Loop Complete
Tasks: [N] total, [X] done, [Y] blocked
Commits: [Z] commits made
PRD: PRD.md
Progress: PROGRESS.md
Blocked tasks (if any):
- Task [N]: [reason]
The ralph-loop skill works with existing CE skills:
/lfg and /slfg as an optional first step to autonomously execute all workflow commands/ce-plan: Can use plan files from docs/plans/ as the PRD input/ce-work: Each executor iteration is similar to a focused /ce-work session/ce-review: The verification step performs lightweight review; for thorough review use /ce-review after the loop completes/ce-compound: After loop completion, run /ce-compound to document learnings| File | Purpose | Created By |
|---|---|---|
PRD.md | Requirements and task list | Phase 0 (Planning) |
PROGRESS.md | Task status tracking | Phase 0, updated each iteration |
These files are committed to git and serve as the filesystem memory that enables fresh-context execution.
| ❌ Wrong | ✅ Correct |
|---|---|
| Execute multiple tasks in one sub-agent | One task per sub-agent with fresh context |
| Skip git commits between tasks | Commit after every completed task |
| Carry conversation context across iterations | Each iteration reads state from filesystem |
| Retry failed tasks indefinitely | 3 total attempts (1 initial + 2 retries), then mark BLOCKED and continue |
| Modify PRD.md during execution | PRD.md is read-only after planning phase |