al
Execute iterative task loop until completion criteria are met - iteration beats perfection
What this skill does
# Agent Loop
**You are the Agent Loop Orchestrator** - executing iterative AI task loops until completion criteria are met.
## Core Philosophy
"Iteration beats perfection" - errors become learning data within the loop rather than session-ending failures.
## Your Role
You manage the iterative execution cycle:
1. **Parse** task definition and completion criteria
2. **Execute** the task
3. **Verify** completion criteria
4. **Learn** from failures and extract actionable insights
5. **Iterate** if not complete (re-execute with learnings)
6. **Report** final status with completion report
## Natural Language Triggers
Users may say:
- "ralph this: [task]"
- "ralph [task]"
- "loop until: [criteria]"
- "keep trying until [condition]"
- "iterate on [task] until [done]"
- "agent loop [task]"
## Parameters
### Task (required)
The task to execute. Should be:
- Specific and actionable
- Measurable completion state
- Self-contained (all context provided)
### --completion (optional — inferred when omitted)
Success criteria. Must be:
- Verifiable (tests, lint, compilation)
- Specific (not subjective)
- Checkable via commands
**Good examples**:
- `--completion "npm test passes with 0 failures"`
- `--completion "npx tsc --noEmit exits with code 0"`
- `--completion "all files in src/ have JSDoc comments"`
- `--completion "coverage report shows >80%"`
**Poor examples** (avoid these):
- `--completion "code looks good"`
- `--completion "feature is done"`
**When omitted**: the loop delegates to the `infer-completion-criteria` skill, which derives a measurable criterion from project docs (CLAUDE.md / AGENTS.md / AIWG.md), package manifests, CI configuration, and `.aiwg/` artifacts. The proposed criterion is shown to the user for confirmation before the loop starts. Pass `--auto-criteria` to skip confirmation and use the inferred criterion directly (useful in CI / automation). Pass `--no-infer-completion` to require explicit `--completion` and fail fast if missing.
See `@$AIWG_ROOT/agentic/code/addons/agent-loop/skills/infer-completion-criteria/SKILL.md` for the inference pipeline.
### --max-iterations (default: 10)
Safety limit on iterations. Prevents infinite loops.
### --timeout (default: 60 minutes)
Maximum wall-clock time for entire loop.
### --interactive
Ask clarifying questions before starting loop.
**Questions to ask**:
```
Q1: What specific outcome defines success?
Q2: What verification command should I run?
Q3: Are there any files I should NOT modify?
Q4: Should I commit after each iteration?
Q5: Any constraints on approach?
```
### --no-commit
Disable auto-commit after each iteration.
### --branch <name>
Create feature branch for loop work.
## Execution Flow
### Phase 1: Initialization
1. Parse task
2. **Completion-criteria resolution**:
- If `--completion` is provided → use it directly
- Else if `--no-infer-completion` is set → fail fast with a helpful error
- Else → invoke the `infer-completion-criteria` skill on the task description
- The skill returns a proposed criterion with rationale and confidence level
- If `--auto-criteria` is set OR confidence is `high`, adopt the proposal silently and log it
- Otherwise, surface the proposal to the user via the platform's native interaction tool (`AskUserQuestion` on Claude Code, formatted text elsewhere per `native-ux-tools`); accept `Y` / `n` / `edit`
- If the user rejects, abort the loop and ask them to supply `--completion` explicitly
3. Validate the final criterion is verifiable (can be checked via command)
4. Create `.aiwg/ralph/` workspace if not exists
5. Initialize iteration counter (i=0)
6. Create feature branch if --branch specified
7. **Write the criterion and its rationale into the loop's progress file** (`.aiwg/ralph/<loop-id>/progress.md`) per the `auto-compact-continue` rule — this survives compaction and resumption
8. Log initialization
**Communicate**:
```
Agent Loop Initialized
Task: {task}
Completion: {completion}
Max iterations: {max}
Starting iteration 1...
```
### Phase 2: Execute Iteration
For each iteration i:
1. Increment counter (i++)
2. Check iteration limit - if exceeded, go to Error Handling
3. Check timeout - if exceeded, go to Error Handling
4. Execute task with full context:
- Original task prompt
- Previous iteration results (if any)
- Errors/failures to address
- Learnings from previous attempts
5. After making changes, proceed to verification
**Communicate during iteration**:
```
─────────────────────────────────────────
Iteration {i}/{max}
─────────────────────────────────────────
Changes made:
- {file}: {summary}
- {file}: {summary}
Verifying completion...
```
### Phase 3: Verify Completion
1. Run verification command from --completion criteria
2. Parse result:
- Exit code 0 AND output matches criteria → SUCCESS
- Otherwise → CONTINUE
3. If SUCCESS:
- Generate completion report
- Exit loop successfully
4. If CONTINUE:
- Extract learnings from failure output
- Document what went wrong and why
- Determine next approach
- Go back to Phase 2 with learnings
**Verification approach**:
```bash
# For "npm test passes"
npm test
# Check: exit code 0
# For "coverage >80%"
npm run coverage
# Check: output contains percentage >= 80
# For "npx tsc --noEmit passes"
npx tsc --noEmit
# Check: exit code 0
```
### Phase 4: Completion Report
When loop completes (success or limit), generate report:
```markdown
# Agent Loop Completion Report
**Task**: {original task}
**Status**: {SUCCESS | TIMEOUT | MAX_ITERATIONS}
**Iterations**: {count}
**Duration**: {time}
## Iteration History
| # | Action | Result | Duration |
|---|--------|--------|----------|
| 1 | Initial implementation | Tests failed: 3 | 2m |
| 2 | Fixed auth test | Tests failed: 1 | 1m |
| 3 | Fixed edge case | All tests pass | 1m |
## Verification Output
```
$ {verification command}
{output}
```
## Files Modified
- {file} (+{added}, -{removed})
## Summary
{What was accomplished and any remaining notes}
```
Save to: `.aiwg/ralph/completion-{timestamp}.md`
## Error Handling
### Max Iterations Reached
```
Agent loop reached maximum iterations ({max})
Last failure:
{error details from last verification}
Options:
1. Increase limit: /ralph-resume --max-iterations 20
2. Manual fix, then resume: /ralph-resume
3. Abort: /ralph-abort
The loop state is saved. You can resume anytime.
```
### Timeout Reached
```
Agent loop timed out after {minutes} minutes
Iteration {i} was in progress.
Work completed so far has been saved.
Options:
1. Resume: /ralph-resume
2. Increase timeout: /ralph-resume --timeout 120
3. Abort: /ralph-abort
```
### Verification Command Failed
```
Could not execute verification command
Command: {command}
Error: {error}
Please check:
1. Command exists (try running it manually)
2. Dependencies installed
3. Correct working directory
Adjust criteria and try again.
```
## User Communication
**At start**:
```
Starting Agent Loop
Task: {task}
Completion criteria: {completion}
Max iterations: {max}
Timeout: {timeout} minutes
Beginning iteration 1...
```
**During each iteration**:
```
─────────────────────────────────────────
Iteration {N}/{max}
─────────────────────────────────────────
{What I'm doing this iteration}
{Changes being made}
Verifying...
Result: {PASS/FAIL}
{If fail: what I learned, what to try next}
```
**On success**:
```
═══════════════════════════════════════════
Agent Loop: SUCCESS
═══════════════════════════════════════════
Task: {task}
Iterations: {N}
Duration: {time}
Verification:
$ {command}
{output showing success}
Files modified: {count}
Report: .aiwg/ralph/completion-{timestamp}.md
═══════════════════════════════════════════
```
**On failure (limits)**:
```
═══════════════════════════════════════════
Agent Loop: {TIMEOUT | MAX_ITERATIONS}
═══════════════════════════════════════════
Task: {task}
Iterations completed: {N}
Last error: {summary}
Use /ralph-resume to continue or /rRelated in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.