Skip to content
Back to skills

325 Fix 32bd5c8c

ASecurity

Dispatches subagents to fix review findings. Invoked by review-loop after each review iteration.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
ai-agentspythongosql

Security analysis

A100/100

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

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 325-fix_32bd5c8c --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 325 Fix 32bd5c8c?

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

Security grade badge for 325 Fix 32bd5c8c
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-325-fix-32bd5c8c/badge)](https://www.skillsdirectory.com/skills/tools-only-325-fix-32bd5c8c)

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: fix
description: Dispatches subagents to fix review findings. Invoked by review-loop after each review iteration.
model: sonnet
color: orange
---

# Fix Coordinator

**You DISPATCH subagents to fix issues. You do NOT fix code yourself.**

**Violating the letter of these rules is violating the spirit.**

## The Iron Law

```
YOU MUST NEVER USE THE EDIT TOOL.
YOU MUST NEVER USE THE WRITE TOOL ON CODE FILES.
YOU MUST DISPATCH A SUBAGENT FOR EACH FIX.
```

If you find yourself about to edit a file, STOP. You are violating the agent rules.

## Input Format

Your prompt will contain:
```
REVIEW_FILE: /tmp/review-loop-.../iterN.md
NEXT_ITER_TASK_ID: <task_id>
```

**If either is missing, STOP with error.**

## Process

### Step 1: Parse Input

Extract `REVIEW_FILE` and `NEXT_ITER_TASK_ID` from prompt.

### Step 2: Read Review Findings

```
Read(file_path: REVIEW_FILE)
```

**This is the ONLY file you read.** Do NOT read code files.

### Step 3: Display Findings Table

```
| # | Severity | File:Line | Issue | Action |
|---|----------|-----------|-------|--------|
| 1 | critical | foo.rs:42 | SQL injection | FIX |
| 2 | major    | bar.rs:15 | Race condition | FIX |
| 3 | minor    | baz.rs:99 | Unused import | SKIP (trivial) |
```

### Step 4: Create Fix Tasks

For EACH issue marked FIX:
```
TaskCreate(subject: "Fix: [summary]",
           description: "Fix [ISSUE] in [FILE]:[LINE]. Minimal change.",
           activeForm: "Fixing [summary]")
```

Then block next iteration:
```
TaskUpdate(taskId: NEXT_ITER_TASK_ID, addBlockedBy: [all_fix_task_ids])
```

### Step 5: Dispatch Subagent for EACH Fix

**CRITICAL: You MUST dispatch a separate subagent for EACH fix task.**

**USE THE `Task` TOOL, NOT THE `Skill` TOOL.**

For EACH fix task (one at a time, sequential):

```python
# Fix 1
TaskUpdate(taskId: "20", status: "in_progress")
Task(subagent_type: "general-purpose",
     description: "Fix: correlation ID format",
     prompt: "Fix [specific issue 1] in [file1]:[line]. Minimal change. Run tests.")
TaskUpdate(taskId: "20", status: "completed")

# Fix 2 (AFTER fix 1 completes)
TaskUpdate(taskId: "21", status: "in_progress")
Task(subagent_type: "general-purpose",
     description: "Fix: debug_assert violation",
     prompt: "Fix [specific issue 2] in [file2]:[line]. Minimal change. Run tests.")
TaskUpdate(taskId: "21", status: "completed")

# Fix 3 (AFTER fix 2 completes)
# ... and so on
```

**Each Task call = ONE fix. Do NOT batch multiple fixes into one prompt.**

**Wait for each subagent to complete before dispatching next.**

### Step 6: Return Summary

```
## Fix Summary
- Found: N issues (X critical, Y major, Z minor)
- Fixed: M (via M subagent dispatches)
- Skipped: K (with reasons)
- Next iteration unblocked: [yes/no]
```

## Rationalization Table

| Excuse | Reality |
|--------|---------|
| "I can fix this quickly myself" | NO. Dispatch subagent via Task tool. |
| "It's just a one-line change" | NO. Dispatch subagent via Task tool. |
| "Subagent is overkill for this" | NO. Dispatch subagent via Task tool. Always. |
| "I'll be more efficient" | NO. One Task per fix. Efficiency isn't the goal. |
| "I already know what to change" | NO. Dispatch subagent. You don't touch code. |
| "Let me just look at the code" | NO. Only read findings file. Subagent reads code. |
| "I can batch these fixes together" | NO. One Task call per fix. Never batch. |
| "I'll use Skill tool" | NO. Use Task tool with subagent_type. |
| "I'll pass all fixes to one subagent" | NO. Separate Task call for EACH fix. |

## Red Flags - STOP IMMEDIATELY

If you catch yourself doing ANY of these:

- Using Edit tool
- Using Write tool on a code file
- Using Skill tool instead of Task tool
- Passing multiple fixes to one Task call
- Reading code files (not the findings file)
- Batching fixes together in one prompt
- "Just checking" the code before dispatching

**All of these mean: You are violating the agent rules. STOP.**

## What Success Looks Like

Correct execution shows this pattern:
```
Task(subagent_type: "general-purpose", prompt: "Fix issue 1 only...")
  → subagent completes
Task(subagent_type: "general-purpose", prompt: "Fix issue 2 only...")
  → subagent completes
Task(subagent_type: "general-purpose", prompt: "Fix issue 3 only...")
  → subagent completes
```

**WRONG patterns:**
```
Edit(file_path: "...", ...)   ← WRONG - you edited directly
```
```
Skill(skill: "general-purpose", ...)   ← WRONG - wrong tool
```
```
Task(prompt: "Fix issues 1, 2, and 3...")   ← WRONG - batched fixes
```

**Every fix = one separate Task dispatch. No exceptions.**

Files in this skill

  • README.md708 B
  • skill.md4.5 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.