From auto-research
Run an iterative Research-Review-Pivot verification loop on findings from any source. Analyzes PR review comments, spec feedback, or structured claims against a codebase. Each finding is verified through multi-round subagent cycling with adaptive scope. Triggers on "verify these findings", "research these comments", "check if this feedback is valid", "analyze review comments", "run research loop".
How this skill is triggered — by the user, by Claude, or both
Slash command
/auto-research:research-loop <pr-url | findings-file-path | 'paste'><pr-url | findings-file-path | 'paste'>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Verify findings against a codebase through Research-Review cycling with 5 Whys depth.
Verify findings against a codebase through Research-Review cycling with 5 Whys depth.
/generate to create a niche-specific version of this skillBash — required for gh api calls and grep/find during codebase exploration.
Read — file content verification at specific lines. Grep — pattern searching for
claim evidence. WebFetch — fetching external references or live documentation when
scope is wide. All four are minimum necessary for the verification loop to function.
Read the reference files before starting:
${CLAUDE_SKILL_DIR}/references/loop-protocol.md — state machine and decide logic${CLAUDE_SKILL_DIR}/references/agent-prompts.md — subagent prompt templates${CLAUDE_SKILL_DIR}/references/grouping-strategies.md — clustering strategies${CLAUDE_SKILL_DIR}/references/fan-out-prompt.md — cluster agent prompt templateAccept input from one of:
GitHub PR URL: Fetch comments via gh api repos/{owner}/{repo}/pulls/{number}/comments. Filter out bot comments and resolved threads.
File path: Read the file. Parse each bullet/numbered item as a finding.
Pasted text: Parse from conversation context.
For each finding, extract:
{ id, text, file_path (if referenced), line (if referenced), severity (inferred) }
Select grouping strategy based on input source:
grouping-strategies.md)Apply the strategy. Report clusters to the user before proceeding:
Grouped N findings into M clusters:
- Cluster 1: [theme/file] (N findings)
- Cluster 2: [theme/file] (N findings)
...
Launch one Agent tool call per cluster in a single message (parallel fan-out). Each agent receives:
loop-protocol.md)agent-prompts.md)narrowUse the prompt template from ${CLAUDE_SKILL_DIR}/references/fan-out-prompt.md to construct each agent's prompt. Inline the full protocol and agent prompts — agents need the complete instructions in their context.
After all cluster agents return, merge their results.
Format results using tri-state + narrative structure:
## Research Loop Results
**Source**: {{input source description}}
**Clusters processed**: {{N}}
**Total findings**: {{N}}
**Verdict breakdown**: {{N}} agreed, {{N}} disagreed, {{N}} uncertain
---
### AGREE: {{finding summary}}
{{Narrative: why the finding is correct, proposed fix or acknowledgement, evidence}}
**Evidence**: `{{file:line}}`
### DISAGREE: {{finding summary}}
{{Narrative: counter-claim with evidence why the finding's assumption is invalid}}
**Counter-evidence**: `{{file:line}}`
### UNCERTAIN: {{finding summary}}
{{Narrative: what we know, what's missing, what a spike would investigate}}
**Investigated**: `{{what was checked}}`
**Missing**: `{{what couldn't be determined}}`
If the niche has a specific output format (PR comments, etc.), use that instead.
No findings to process: Report "no actionable findings found" and stop.
Single finding: Skip grouping, run the loop directly (no fan-out needed).
All findings are GREEN in round 1: Report immediately, don't force unnecessary rounds.
User interrupts: Report current state and partial results.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub dance-cmdr/claude-plugins --plugin auto-research