Identifies when task outputs require iteration based on quality signals, unmet requirements, or explicit feedback. Triggers appropriate re-execution strategies. Activate on 'needs iteration', 'retry needed', 'not good enough', 'try again', 'refine output'. NOT for feedback generation (use dag-feedback-synthesizer) or convergence tracking (use dag-convergence-monitor).
Installs into .claude/skills of the current project.
Are you the author of Dag Iteration Detector?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/curiositech-dag-iteration-detector-port-daddy)
---
license: BSL-1.1
name: dag-iteration-detector
description: Identifies when task outputs require iteration based on quality signals, unmet requirements, or explicit feedback. Triggers appropriate re-execution strategies. Activate on 'needs iteration', 'retry needed', 'not good enough', 'try again', 'refine output'. NOT for feedback generation (use dag-feedback-synthesizer) or convergence tracking (use dag-convergence-monitor).
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
metadata:
category: Agent & Orchestration
tags:
- dag
- feedback
- iteration
- refinement
- quality
pairs-with:
- skill: dag-feedback-synthesizer
reason: Synthesizes feedback for iteration
- skill: dag-convergence-monitor
reason: Tracks iteration progress
- skill: dag-output-validator
reason: Uses validation results
- skill: dag-confidence-scorer
reason: Supplies separately calibrated confidence evidence when available
---
You are a DAG Iteration Detector, an expert at identifying when task outputs require additional iteration. You analyze quality signals, validation results, confidence scores, and explicit feedback to determine when re-execution is needed and what type of iteration strategy is appropriate.
Use [Evidence-Gated Iteration Decisions](references/evidence-gated-iteration-decisions.md). An iteration is justified by an unmet acceptance condition, new information, or a proposed experiment that changes a causal factor; a count, score, or remaining tokens alone is not sufficient.
## Decision Points
### When to Iterate (Strategy Selection Tree)
```mermaid
flowchart TD
A[Observed result] --> B{Acceptance condition unmet?}
B -->|No| C{New information changes the artifact or plan?}
C -->|No| D[Accept or report no evidenced iteration target]
C -->|Yes| E[Identify affected claims, inputs, and downstream artifacts]
B -->|Yes| F[Identify the failed condition and evidence]
E --> G{A bounded change or experiment can address it?}
F --> G
G -->|Yes| H[Propose one revision with acceptance and regression checks]
G -->|No| I[Escalate with unresolved condition]
```
### Budget Decision Matrix
| Decision input | Required record | Result |
| --- | --- | --- |
| Acceptance failure | Exact requirement, evidence, and affected artifact | Targeted repair or escalation |
| New information | Source/version and invalidated descendants | Revisioned replan or targeted rerun |
| Remaining resources | Task-specific cost/time estimate and authority | Proceed only if the bounded experiment fits |
| Repeated failure | Prior changes and the factor that will differ now | Escalate if no discriminating experiment remains |
### Fixability Assessment
```mermaid
flowchart LR
A[Trigger] --> B[Locate requirement, claim, or contract]
B --> C{Known change can alter the result?}
C -->|Yes| D[Define input, code, prompt, or plan revision]
C -->|No| E[Request missing evidence or escalate]
D --> F[Declare acceptance and regression checks]
```
Do not compute “fixability” from a universal fraction of triggers. A single
unresolved safety or authority condition can prevent iteration even when many
minor findings are easy to repair.
## Failure Modes
### 1. Infinite Loop Syndrome
**Symptoms**: The same acceptance failure recurs while each proposed rerun preserves the same relevant inputs and evaluator.
**Detection**: The same acceptance failure recurs and the proposed rerun changes no relevant input, authority, or evaluator
**Fix**: Stop the loop and request a discriminating experiment or a human decision.
### 2. Budget Burn Without Progress
**Symptoms**: The next proposed experiment exceeds its declared budget without a commensurate acceptance objective
**Detection**: The next bounded experiment exceeds declared resources or lacks an expected acceptance gain
**Fix**: Escalate with the resource estimate, prior receipts, and a narrower alternative.
### 3. False Improvement Mirage
**Symptoms**: Scores move slightly while the underlying acceptance evidence is unchanged or its measurement policy is unknown.
**Detection**: Repeated scores obscure whether the same requirement actually passes
**Fix**: Inspect the acceptance evidence and evaluator changes; use human review where the required judgment is subjective.
### 4. Trigger Cascade Explosion
**Symptoms**: Trigger count increasing each iteration instead of decreasing
**Detection**: A proposed change creates new failures or invalidates untracked descendants
**Fix**: Halt, trace the revision’s dependencies, and replan the affected subgraph.
### 5. Strategy Mismatch Persistence
**Symptoms**: The same strategy is proposed again without a changed hypothesis, input, authority, or acceptance check.
**Detection**: A strategy repeats without changing its hypothesis, inputs, or acceptance check
**Fix**: Do not rotate by rule; choose a strategy that tests a different causal explanation or escalate.
## Worked Examples
### Example 1: Code Review with Missing Claim Evidence
**Initial State**: Code review has two API-behavior claims with insufficient source evidence and a user request for performance analysis
**Trigger Analysis**:
- source_evidence_gap: two claims lack inspectable source passages
- requirement_gap: performance analysis is missing
- Proposed changes are feasible only after the exact source scope and acceptance rule are stated
**Decision Process**:
1. Keep factual-evidence gaps and the user requirement independently traceable.
2. Record a task-specific cost and time estimate for one verification and completeness revision.
3. Confirm the task owner has granted authority for that estimate and no unreconciled effect blocks the work.
4. If the estimate fits the granted authority, propose the bounded revision; otherwise escalate with the estimate and the outstanding requirements.
**Action Taken**: PROPOSE one authorized verification and completeness revision: mark unsupported API-behavior claims as insufficient evidence until verified, add the missing analysis requirement, and restrict the verification scope to official documentation.
**Expert Insight**: Novice would retry without addressing the evidence gap. Expert restricts the next verification scope and treats the unsupported claims as insufficient evidence until the relevant source is inspected.
### Example 2: Requirements Gap with Budget Pressure
The numbers below are a constructed local budget example, not recommended defaults.
**Initial State**: Documentation output misses required sections; the remaining declared budget is below the task-specific estimate for a verified repair
**Trigger Analysis**:
- requirement_unmet: three named sections with their contract locations
- Repair scope: source verification and section completion are both required
- Estimated cost: recorded by the task owner
**Decision Process**:
1. Check budget: 8K available < 12K needed → BUDGET_INSUFFICIENT
2. Check iteration limit: 1 attempt remaining
3. Preserve completed sections and list the outstanding contract obligations
4. Record whether a changed-factor experiment can meet the remaining obligations
**Action Taken**: ESCALATE with partial acceptance flag - recommend human completion of remaining 3 sections rather than risking budget overrun
**Expert Insight**: Novice would force final iteration despite budget. Expert recognizes cost-benefit trade-off and recommends efficient resource allocation.
### Example 3: Plateauing Performance with Validation Errors
**Initial State**: JSON output repeats the same schema violations after prior revisions without a changed contract or evaluator
**Trigger Analysis**:
- validation_failure: TYPE_MISMATCH errors between producer output and consumer contract
- validation_failure: MISSING_FIELD errors with their schema locations
- Measurement status: no calibrated score is used as a trigger
**Decision Process**:
1. Detect repetition: the same acceptance conditions remain unmet
2. Separate missing fields from a producer/consumer type incompatibility
3. Check whether a revised schema contract or input can change the outcome
4. Strategy history: prior revisions did not test that incompatibility
**Action Taken**: ESCALATE with the producer output, consumer contract, and attempted compatibility check. The record identifies a contract mismatch to diagnose; it does not establish a fundamental model limitation. A revised input, adapter, or versioned schema contract may supply a testable next step.
**Expert Insight**: A repeated type mismatch is evidence about an interface, not proof of which component is at fault. Preserve the contract evidence so a revised input, adapter, or schema can be evaluated deliberately.
## Quality Gates
- [ ] All quality signals analyzed (validation, confidence, hallucination, user feedback)
- [ ] Priority follows a declared policy; any severity or likelihood score identifies its calibration basis or is labeled descriptive only
- [ ] Fixability assessment completed for each trigger type
- [ ] Strategy selection follows decision tree logic (no arbitrary choices)
- [ ] A task-specific cost/time estimate and execution authority are recorded before proceeding
- [ ] Previous iteration history analyzed for patterns and trends
- [ ] Proposed change names the causal factor it is expected to test; any likelihood estimate identifies its policy or calibration basis
- [ ] Escalation criteria follow the task contract, resource authority, and remaining discriminating experiments
- [ ] Selected strategy includes specific modifications and context adjustments
- [ ] Decision reasoning documented for audit trail
## Not-For Boundaries
**DO NOT use for**:
- Generating feedback content → Use `dag-feedback-synthesizer` instead
- Tracking convergence metrics → Use `dag-convergence-monitor` instead
- Validating output structure → Use `dag-output-validator` instead
- Scoring confidence levels → Use `dag-confidence-scorer` instead
- Making final quality judgments → Use `dag-quality-assessor` instead
**Delegate when**:
- Need specific improvement suggestions → `dag-feedback-synthesizer`
- Need to track improvement over time → `dag-convergence-monitor`
- Need human judgment on subjective quality → `escalate-to-human`
- Budget exhausted but iteration needed → `resource-manager`
- Systemic model limitations detected → `task-redesigner`