woostack-fix
woostack-fix
Overview
Drives a bug fix or a small technical change from diagnosis to implementation through a lightweight, unified loop. Fixes are smaller than features and combine the spec and the plan into a single markdown file under .woostack/fixes/. The fix loop owns diagnosis, the fix plan, hardening, and the approval gate, then delegates the execution mechanics to woostack-execute — the same engine the build loop uses — passing the fix file as the plan. Fix does not re-inline a TDD/commit/distill loop of its own. Because a fix is small, its plan and code ship as one PR: woostack-execute commits the .woostack/fixes/ markdown and the code together onto the single fix/<slug> branch.
diagnose root cause (woostack-debug) → write fix plan (fixes/ markdown) → harden fix plan
→ approve-to-execute (GATE) → execute via woostack-execute in the fix/<slug> worktree
(TDD per task → tick → commit plan + code via woostack-commit → task review → distill)
⇒ one PR (fix plan + code on fix/<slug>)
The skill has exactly one hard gate: approve-to-execute. The hardened fix plan is presented for explicit approval; no code is written until it clears. Because a fix is small enough that this is appropriate, the plan and the code ship as a single PR — woostack-execute commits the fix markdown and the code together onto the one fix/<slug> branch, so a fix is one PR, not a docs base plus a stacked code increment. Delegation adds no gate: woostack-execute owns no approval gate and never merges, so the fix's one gate stays upstream of execution.