Skip to content
Back to skills

Iterative Retrieval

ASecurity

Protocol for iteratively refining sub-agent queries through follow-up questions to ensure sufficient context

  • 121 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
ai-agentsdocumentation

Works with

  • claude code

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add closedloop-ai/claude-plugins --skill iterative-retrieval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Iterative Retrieval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Iterative Retrieval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/closedloop-ai-iterative-retrieval/badge)](https://www.skillsdirectory.com/skills/closedloop-ai-iterative-retrieval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: iterative-retrieval
description: Protocol for iteratively refining sub-agent queries through follow-up questions to ensure sufficient context
---

# Iterative Retrieval Skill

This skill enables orchestrators to iteratively refine sub-agent queries through follow-up questions, ensuring sub-agents gather sufficient context before the orchestrator accepts their output. This addresses the problem where orchestrators have semantic context that sub-agents lack, leading to incomplete summaries.

## Target Audience

This skill is designed for **the `/code` orchestrator only** (code.md slash command). Sub-agents do not use this skill - they simply respond to queries. The orchestrator is responsible for evaluating responses and deciding whether to resume with follow-ups.

**Note:** Sub-agents do NOT see this skill documentation in their context. Only the orchestrator can invoke and follow the protocol. Sub-agents are unaware they're part of an iterative retrieval loop - they just respond to queries and follow-ups as normal requests.

## Usage Model

This skill is **optional and opt-in**. Not every sub-agent call benefits from iterative refinement - simple lookups or well-defined queries don't need it. Invoke this skill when you anticipate that a sub-agent may return incomplete context due to semantic gaps.

## The 4-Phase Protocol

This protocol provides a structured approach to iterative context gathering. All 4 phases represent the **recommended workflow**, but **phases 2-4 are optional if the initial response is sufficient**. Exercise judgment - if Phase 2 evaluation shows context is sufficient on first pass, phases 3-4 aren't needed.

### Phase 1: Initial Dispatch

Define and dispatch the initial query with full context:

1. **Define PRIMARY OBJECTIVE**: Clearly state what you ultimately need to accomplish
2. **Formulate INITIAL QUERIES**: Specific questions or search criteria for the sub-agent
3. **Dispatch with BOTH**: Send both the queries AND the primary objective to provide semantic context
4. **Store AGENT ID**: Keep the `agent_id` returned from the `Task(...)` call for potential continuation via SendMessage

### Phase 2: Sufficiency Evaluation

Evaluate whether the sub-agent's response provides sufficient context using the checklist below. If context is sufficient, **skip to output** (phases 3-4 not needed). If gaps exist, proceed to Phase 3.

#### Sufficiency Evaluation Checklist

Ask yourself these 4 questions:

1. **Direct Answer**: Does the summary directly answer the orchestrator's primary objective?
2. **Obvious Gaps**: Are there obvious gaps the orchestrator could identify? (e.g., missing error handling, incomplete data flow, unaddressed edge cases)
3. **Adjacent Information**: Did the sub-agent mention adjacent or related information that wasn't fully explored?
4. **Confidence Check**: Would the orchestrator be confident proceeding with ONLY this information?

If you answer "no" to question 1 or 4, OR "yes" to questions 2 or 3, the context is likely insufficient - proceed to Phase 3.

### Phase 3: Refinement Request

Continue the sub-agent with targeted follow-up questions using SendMessage:

1. **Continue via SendMessage**: Use `SendMessage(to=<stored_agent_id>, summary=<5-10 word summary>, message=<prompt>)` to continue the subagent; completed subagents auto-resume from transcript in the background with full prior context intact
2. **Acknowledge what was useful**: Briefly confirm what information was valuable
3. **Specify EXACTLY what's needed**: Be precise about what additional context is required
4. **Ask about related info**: "Is there related information that might be relevant to [primary objective]?"

**Async flow:** SendMessage returns immediately with a queued acknowledgment. The subagent then runs in the background and you will receive a `<task-notification>` when it finishes. Do not proceed to the next step until that notification arrives.

**Fallback:** If no `agent_id` is in memory (cross-session resume after a previous Claude Code session ended) or SendMessage returns an actual error, fall back to a fresh `Task(...)` launch with a self-contained prompt that includes all prior context needed.

### Phase 4: Loop

Repeat Phases 2-3 until one of these conditions is met:

- **Context is sufficient**: All 4 checklist criteria are satisfied
- **Maximum cycles reached**: Recommended maximum of **3 refinement cycles** (see guidance below)
- **Source exhausted**: Sub-agent confirms no additional relevant information exists

## Refinement Cycle Guidance

The recommended maximum is **3 refinement cycles** (initial dispatch + 2 follow-ups). This balances thoroughness against cost and latency.

**Important**: This is a **recommendation, not an enforced limit**. As guidance documentation, this skill cannot enforce limits - the orchestrator has final judgment. However, exceeding 3 cycles often indicates:
- The query scope is too broad
- The sub-agent lacks access to needed information
- The primary objective should be broken into smaller queries

## Output Format

When iterative retrieval completes, report:

1. **Total refinement cycles used**: Number of iterations (including initial dispatch)
2. **What additional context was gathered**: Summarize what the follow-ups uncovered
3. **Agent ID for future continuation via SendMessage**: Store for potential later follow-ups

Example:
```
Iterative Retrieval Summary:
- Cycles used: 2 (initial + 1 follow-up)
- Additional context gathered: Error handling patterns, retry logic implementation, timeout configuration
- Agent ID: agent-abc123 (available for future continuation via SendMessage)
```

## When to Use This Skill

### Use iterative retrieval when:
- The orchestrator has semantic context the sub-agent lacks
- The query involves complex or interconnected information
- Initial results might miss important adjacent context
- The orchestrator can identify potential gaps in advance

### Don't use iterative retrieval when:
- The query is simple and well-defined (e.g., "read file X")
- The sub-agent has all needed context upfront
- Time/cost constraints are critical
- The information needed is atomic and isolated

## Examples

For detailed usage examples, see [references/examples.md](./references/examples.md) (if available).

Files in this skill

  • SKILL.md6.2 KB
  • references/examples.md12.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.