Local Mode (Bash Loop)
```
βββββββββββββββββββββββββββββββββββββββββββ
β ralph.sh (bash loop) β
β βββΆ claude -p < prompt.md β
β βββΆ Implements ONE story β
β βββΆ Commits if passing β
β βββΆ Updates state files β
β βββΆ Loop until done or max iterations β
βββββββββββββββββββββββββββββββββββββββββββ
```
Remote Mode (Task-Based)
```
βββββββββββββββββββββββββββββββββββββββββββ
β Ralph Controller (you or outer agent) β
β βββΆ Reads prd.json, progress.txt β
β βββΆ Selects next story β
β βββΆ Task(general-purpose) βββββββββββββββββ
β β β
β βΌ β
β βββββββββββββββββββββββββββββββββββββββ β
β β Ralph Worker (subagent) β β
β β - Fresh context window β β
β β - Implements ONE story β β
β β - Runs feedback loops β β
β β - Commits if passing β β
β β - Updates state files β β
β βββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββββββββββββββ
β βββΆ Verifies result β
β βββΆ Loop until done or max iterations β
βββββββββββββββββββββββββββββββββββββββββββ
```
Key insight: Each Task() call creates a fresh context window - exactly what Ralph needs.