Skip to content
Back to skills

Collection

ASecurity

Use when code-verification fails - analyzes verification failures, identifies root causes, corrects the implementation, and re-verifies. This skill fixes code to meet acceptance criteria, not modifies requirements to match code.

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
testingpythongobashsqlnodedebuggingrefactoringcode-reviewdatabase

Works with

  • cli

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

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

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-f3c699f7/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-f3c699f7)

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: code-correction
description: Use when code-verification fails - analyzes verification failures, identifies root causes, corrects the implementation, and re-verifies. This skill fixes code to meet acceptance criteria, not modifies requirements to match code.
---

# Code Correction - Fix Failed Verification

Correct code that failed verification so it passes acceptance criteria.

> **Critical Distinction:** This corrects **code** to meet **requirements** (stories remain unchanged).
> See `CLAUDE.md` section "Quality Assurance Terminology" for definitions.

**Announce:** On activation, say: "I'm using the code-correction skill to fix the implementation so it passes verification."

**Database:** `.claude/data/story-tree.db`

**Critical:** Use Python sqlite3 module, NOT sqlite3 CLI.

## Purpose

Bridge the gap between failed verification and passing verification by **correcting the code implementation**. Stories and acceptance criteria remain the source of truth - only the code changes.

## When to Use

- After `code-verification` reports FAIL
- When story stage is `verifying` with `hold_reason='broken'`
- When acceptance criteria tests fail
- When user says "fix verification failures", "correct the code", "make tests pass"

## Workflow

### Step 1: Load Verification Failure Report

**Query story with failed verification:**

```python
python -c "
import sqlite3, json
conn = sqlite3.connect('.claude/data/story-tree.db')
conn.row_factory = sqlite3.Row
stories = [dict(row) for row in conn.execute('''
    SELECT s.id, s.title, s.description, s.stage, s.hold_reason, s.notes,
        (SELECT MIN(depth) FROM story_paths WHERE descendant_id = s.id) as node_depth
    FROM story_nodes s
    WHERE s.stage = 'verifying'
      AND s.hold_reason = 'broken'
      AND s.terminus IS NULL
    ORDER BY node_depth ASC
''').fetchall()]
print(json.dumps(stories, indent=2))
conn.close()
"
```

**Extract failure details from notes:**
- Parse verification report embedded in notes
- Identify which criteria failed
- Identify which tests failed
- Extract error messages and stack traces

### Step 2: Analyze Failure Root Cause

For each failed criterion/test:

1. **Read the failing test code** to understand expected behavior
2. **Read the implementation code** to understand current behavior
3. **Identify the gap** between expected and actual

**Failure categories:**

| Category | Description | Correction Strategy |
|----------|-------------|---------------------|
| Missing | Feature not implemented | Implement missing code |
| Incorrect | Wrong behavior | Fix logic error |
| Incomplete | Partial implementation | Complete the implementation |
| Broken | Previously worked, now fails | Fix regression |
| Integration | Works alone, fails with siblings | Resolve conflict |

### Step 3: Plan Corrections

Before making changes, create a correction plan:

```markdown
## Correction Plan for Story [ID]

### Failure 1: [Criterion/Test name]
- **Root Cause:** [Description of why it fails]
- **Files to Modify:** [List of files]
- **Changes Required:** [Description of changes]
- **Verification Method:** [How to confirm fix]

### Failure 2: ...
```

**Planning rules:**
- Address failures in dependency order (if A depends on B, fix B first)
- Keep changes minimal - fix only what's broken
- Avoid refactoring - this is correction, not improvement
- Don't change tests - the tests define expected behavior

### Step 4: Implement Corrections

For each failure in the plan:

1. **Make minimal code changes** to fix the specific failure
2. **Run the specific failing test** to verify the fix
3. **Run related tests** to check for regressions
4. **Commit the fix** with a clear message

**Commit message format:**
```
fix: [criterion/test name] - [brief description]

Story: [ID]
Criterion: [number]
```

### Step 5: Re-verify

After all corrections:

```bash
python .claude/skills/code-verification/generate_report.py <story_id>
```

**If verification passes:**
- Update story stage and clear hold
- Report success

**If verification still fails:**
- Analyze new failures
- Return to Step 2 (max 3 iterations)
- If still failing after 3 attempts, escalate to human

### Step 6: Update Story Status

**On successful correction:**

```python
python -c "
import sqlite3
from datetime import datetime
conn = sqlite3.connect('.claude/data/story-tree.db')
conn.execute('''
    UPDATE story_nodes
    SET hold_reason = NULL,
        notes = notes || '\n[Correction ' || datetime('now') || '] Fixed verification failures',
        updated_at = datetime('now')
    WHERE id = ?
''', ('STORY_ID',))
conn.commit()
conn.close()
"
```

**On correction failure (max attempts reached):**

```python
python -c "
import sqlite3
from datetime import datetime
conn = sqlite3.connect('.claude/data/story-tree.db')
conn.execute('''
    UPDATE story_nodes
    SET hold_reason = 'escalated',
        human_review = 1,
        notes = notes || '\n[Correction ' || datetime('now') || '] Unable to fix after 3 attempts - escalating',
        updated_at = datetime('now')
    WHERE id = ?
''', ('STORY_ID',))
conn.commit()
conn.close()
"
```

## Mode Detection

**CI Mode** activates when:
- Environment variable `CI=true` is set, OR
- Trigger phrase includes "(ci)" like "correct code (ci)"

**CI Mode behavior:**
- No confirmation prompts
- Structured JSON output
- Auto-escalate after max attempts

**Interactive Mode** (default):
- Present correction plan for approval
- Pause between corrections for review
- Allow human to guide approach

## Output Format

### Correction Report (YAML)

```yaml
correction_report:
  story_id: "1.2.3"
  title: "Feature Title"
  corrected_at: "2025-12-29T10:30:00Z"

  failures_addressed:
    - criterion: "User can export data as CSV"
      root_cause: "Missing CSV header row"
      files_modified: ["src/exporter.py"]
      tests_fixed: ["tests/test_export.py::test_csv_header"]

    - criterion: "Export includes timestamps"
      root_cause: "Timestamp format incorrect"
      files_modified: ["src/exporter.py"]
      tests_fixed: ["tests/test_export.py::test_timestamp_format"]

  verification_result: pass  # pass | fail
  attempts: 1
  commits: ["abc1234"]
```

### CI Mode Output (JSON)

**Success:**
```json
{
  "story_id": "1.7",
  "status": "corrected",
  "failures_fixed": 3,
  "attempts": 1,
  "commits": ["abc1234", "def5678"],
  "verification_result": "pass"
}
```

**Failure (escalated):**
```json
{
  "story_id": "1.7",
  "status": "escalated",
  "failures_remaining": 1,
  "attempts": 3,
  "reason": "Unable to fix criterion 2 after 3 attempts",
  "recommendation": "human_review"
}
```

## Correction Principles

### DO

- **Fix the code** - never modify acceptance criteria or tests
- **Keep changes minimal** - only fix what's broken
- **Preserve test intent** - tests define correct behavior
- **Document root causes** - help future debugging
- **Verify after each fix** - catch regressions early

### DO NOT

- Modify acceptance criteria to match broken code
- "Fix" tests to pass with broken implementation
- Refactor unrelated code while correcting
- Add features while correcting bugs
- Skip verification after corrections

## Exit Conditions

| Result | Transition |
|--------|------------|
| All failures fixed | Clear `hold_reason`, keep stage at `verifying` for re-verification |
| Max attempts reached | Set `hold_reason='escalated'`, `human_review=1` |

## Related Skills

- **code-verification:** Identifies failures this skill corrects
- **debug-orchestrator:** Handles complex debugging scenarios
- **code-review:** Reviews code quality (separate from verification)
- **human-validation:** Human judgment after verification passes

## References

- **Verification Skill:** `.claude/skills/code-verification/SKILL.md`
- **Database:** `.claude/data/story-tree.db`
- **QA Terminology:** `CLAUDE.md` (Quality Assurance Terminology section)

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.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…