# Ck Fix

> Runs a structured bug-fix pipeline: scouts evidence, diagnoses root cause, applies minimal fixes, and reviews before committing.

- Skill: `huuanh20/ck-fix` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add huuanh20/ck-fix`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huuanh20/ck-fix/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra, Coding & Dev Tools, CI/CD, Code Review, Debugging
- Tags: Bug Fix, Code Review, Debugging, Git, Pipeline, Quality Report
- Author: huuanh20 (https://skillmd.com/u/huuanh20)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/huuanh20/ck-fix

---


# ck:fix — Structured Bug-Fix Pipeline

Modes — mutually exclusive, pick one (default = Standard: auto-approve on `code-reviewer`'s own `APPROVED` verdict):
- **`--fast`** — trivial issues (lint, type errors, build errors); skip scout, review, docs
- **`--hard`** — mandatory review, no auto-approve

Report-scoped input (either replaces Step 0's free-text description):
- **`--from-quality <report-path>`** — the target is exactly the blocking findings in a `ck:quality` report (`plans/{slug}/quality/{phase}-quality-report.json`).
- **`--from-test <report-path>`** — the target is exactly the failures in a `ck:test` failure report.

With either flag, fix strictly what the report lists — no expanding scope to adjacent code the report doesn't cite, even if it looks related.

---

### Step 0 — Prerequisites + Scope

`--from-quality`/`--from-test`: read the report; its findings/failures *are* the scope. Skip straight to Step 2 (report evidence replaces Scout).

Otherwise, if no error message, stack trace, or concrete description provided:
→ "Paste the error message or stack trace." Wait before continuing.

```
# Scope:
#   Description: {what the user said, or "from {report-path}"}
#   Quick?      → {yes/no — reason}
#   Mode:       {Standard | Quick | Hard}
```

If `--fast` or clearly a build/compiler/lint error: skip Step 1 → go directly to Step 2.

---

### Step 1 — Scout

Skip if `--from-quality`/`--from-test` (the report already is the evidence).

Spawn **`scout`** with the bug description:
- Greps for error patterns in logs and stack traces
- Reads affected source files and maps dependencies
- Checks recent git changes for related commits

```
// Evidence:
//   Error pattern: NullReferenceException at auth.ts:45
//   Affected files: auth.ts, session.ts
//   Recent change: commit a3f2b1 modified auth.ts (2h ago)
```

---

### Step 2 — Diagnose

Spawn **`debugger`** with the scout evidence report, or with the report's findings/failures directly for `--from-quality`/`--from-test`:
- Forms 2–3 hypotheses from the evidence (or takes the report's `required_action`/`expected` vs `actual` directly — it's already a confirmed root cause, not a hypothesis)
- Confirms or rejects each against the codebase
- Applies the minimal fix at the confirmed root cause, scoped to exactly what the report/evidence names

```
// Hypothesis A: null check missing in auth.ts:45 → CONFIRMED ✓
// Hypothesis B: race condition in session init   → REJECTED ✗
//
// Root cause: missing null guard on req.user before .validate()
// Fix applied: auth.ts:45
// Severity: HIGH | Scope: 1 file
```

---

### Step 2.5 — Quality Re-verification (when applicable)

If the fix touched any file already covered by an issued quality receipt (`plans/{slug}/quality/{phase}-receipt.json`), that receipt is now stale — its fingerprint no longer matches the file's bytes. Run `ck:quality --verify plans/{slug}/quality/{phase}-quality-report.json` before Step 3. `CHANGES_REQUIRED` sends the fix back to Step 2; do not proceed to Review or Finalize on a stale or rejected receipt.

Skip this step only when the fix touched no file with an existing receipt.

---

### Step 3 — Review

**`--fast`**: skip → Step 4.

Spawn **`code-reviewer`**: correctness, security, regressions. `code-reviewer` does not re-score maintainability that `ck:quality` already approved in Step 2.5 — it checks the bug fix itself, not architecture.

**Standard**: auto-approve on `code-reviewer`'s `APPROVED` verdict. Up to 3 fix/re-review cycles (different approach each), then escalate.
**`--hard`**: no auto-approve — human must explicitly approve before Step 4.

---

### Step 4 — Finalize (MANDATORY)

**`project-manager`** (skip `--fast`): sync plan progress if bug was tracked.
**`docs-manager`** (skip `--fast`): update docs if fix changes a public contract.
**`git-manager`** (always): conventional commit + ask to push.

```
// git-manager → fix(auth): add null guard on req.user before validate
//            → Push to remote? [y/N]
```

---

## Agents

| Agent             | Step | Modes |
|-------------------|------|-------|
| `scout`           | 1    | Standard, `--hard` (skip if `--fast` or `--from-quality`/`--from-test`) |
| `debugger`        | 2    | All |
| `ck:quality --verify` | 2.5 | All (only when a touched file has an existing receipt) |
| `code-reviewer`   | 3    | Standard, `--hard` (skip for `--fast`) |
| `project-manager` | 4    | Standard, `--hard` (skip for `--fast`) |
| `docs-manager`    | 4    | Standard, `--hard` (skip for `--fast`) |
| `git-manager`     | 4    | Always (mandatory) |

