| name | auto-loop |
| description | TDD-based autonomous development loop with checkpoint recovery and observability changelog |
| user-invocable | true |
Auto-Loop
Execute a TDD-based autonomous development loop with full observability.
Usage
/auto-loop "Implement user login"
/auto-loop "Implement authentication
Acceptance Criteria:
- [ ] Login form (email + password)
- [ ] JWT token generation
- [ ] Error handling
"
/auto-loop --resume
/auto-loop --force "New task"
/auto-loop --status
/auto-loop "Task" --max-iterations 15
How It Works
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ TDD Iteration โ
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ RED โ Write failing test for next AC โ
โ โ โ Auto-logged: file_created, test_fail โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ GREEN โ Write implementation to make test pass โ
โ โ โ Auto-logged: file_created/modified, test_pass โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ REFACTOR โ Improve code quality (no behavior change) โ
โ โ โ Use code-reviewer agent for suggestions โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ VALIDATE โ Run full test suite + linter โ
โ โ โ Auto-logged: test_pass/fail โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ COMMIT โ Commit changes with descriptive message โ
โ โ โ Auto-logged: commit โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ DECIDE โ Check AC completion โ continue or complete โ
โโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Execution
When user runs /auto-loop "<request>":
1. State Detection (Conflict Prevention)
STATE_DIR=".auto-loop"
CHECKPOINT="$STATE_DIR/checkpoint.json"
if [ -f "$CHECKPOINT" ]; then
status=$(jq -r '.status // "unknown"' "$CHECKPOINT" 2>/dev/null || echo "unknown")
iteration=$(jq -r '.current_iteration // 0' "$CHECKPOINT" 2>/dev/null || echo "0")
if [ "$status" == "in_progress" ]; then
echo "โ ๏ธ Found interrupted session at iteration #$iteration"
echo "Options:"
echo " /auto-loop --resume โ Continue"
echo " /auto-loop --force \"...\" โ Start fresh"
exit 1
fi
fi
Behavior Matrix:
| Existing State | Command | Action |
|---|
| None | /auto-loop "task" | Start new |
completed | /auto-loop "task" | Archive & start new |
in_progress | /auto-loop "task" | Block - prompt user |
in_progress | /auto-loop --resume | Continue |
in_progress | /auto-loop --force "task" | Archive & start new |
2. Initialize
CHANGELOG_DIR=".director-mode"
CHANGELOG="$CHANGELOG_DIR/changelog.jsonl"
if [ -f "$CHANGELOG" ] && [ $(wc -l < "$CHANGELOG") -gt 100 ]; then
mv "$CHANGELOG" "$CHANGELOG_DIR/changelog.$(date +%Y%m%d_%H%M%S).jsonl"
fi
mkdir -p "$STATE_DIR" "$CHANGELOG_DIR"
cat > "$CHECKPOINT" << EOF
{
"request": "$ARGUMENTS",
"current_iteration": 0,
"max_iterations": 20,
"status": "in_progress",
"started_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"acceptance_criteria": [],
"last_test_result": null,
"files_changed": []
}
EOF
3. Parse Acceptance Criteria
Input:
"Implement authentication
Acceptance Criteria:
- [ ] Login form
- [ ] JWT token
"
Parsed:
{
"acceptance_criteria": [
{ "id": 1, "description": "Login form", "done": false },
{ "id": 2, "description": "JWT token", "done": false }
]
}
4. DECIDE - Completion Check
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DECIDE - Iteration #3 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [x] 1. Login form โ test passing โ
โ [x] 2. JWT token โ test passing โ
โ [ ] 3. Error handling โ NO TEST YET โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Decision: 2/3 complete โ CONTINUE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Complete when:
- All AC marked
done: true
- All tests passing
Stop when:
max_iterations reached
.auto-loop/stop file exists
Flags
| Flag | Description |
|---|
--resume | Continue interrupted session |
--force | Clear old state, start fresh |
--status | Show current session status |
--max-iterations N | Set iteration limit (default: 20) |
Observability
All events are automatically logged via PostToolUse hooks:
| Event | Trigger | Hook |
|---|
file_created | Write tool | log-file-change.sh |
file_modified | Edit tool | log-file-change.sh |
test_pass/fail | Bash (test) | log-bash-event.sh |
commit | Bash (git commit) | log-bash-event.sh |
Query with /changelog:
/changelog
/changelog --summary
/changelog --type test
Stop / Resume
touch .auto-loop/stop
/auto-loop --status
/auto-loop --resume
/auto-loop --force "New task"
Related