fix - document an ad-hoc fix, then build it like anything else
Context reuse: Reuse any required file already loaded in project instructions or the current session. Read it again only if absent, changed, or exact current bytes or line references are needed.
First action: Before project inspection, preflight, or any other tool call,
publish running to blueprint/.state/run.json using the dashboard activity
contract in AGENTS.md.
Where this sits in the workflow:
/fix -> /implement -> /complete -> back to your features
(spec (build it, (log to blueprint/history/fixes/
the fix) reviewed) + merge)
A fix is a bug or small change that isn't a planned build-plan feature. It runs
through the same loop as a feature (build with review gates, iterate, then merge);
it just starts here instead of /feature, and is logged separately.
Input
A description of the bug or change, for example /fix "password reset email never sends". If the user just reported the problem in chat, use that.
The input may also be a finding ID from blueprint/context/findings.md, alone
or with a description, for example /fix F-03. Pull the problem statement from
that ledger entry. Use this form only between work items, when
current-feature.md is the reset stub: this skill overwrites that file, so
while a spec is active, repair its findings through /implement instead.
Step 1 - write the fix spec
Pull context from blueprint/context/project-overview.md and blueprint/context/coding-standards.md,
then write a short spec to blueprint/context/current-feature.md (this file holds whatever
is being built now, feature or fix). Its first heading must be exactly
# Fix: <title>, and it must retain the **Type:** Fix contract below. Keep it
lighter than a feature spec:
- Title - the bug or change in a few words.
- Type: Fix (so
/completelogs it toblueprint/history/fixes/, notblueprint/history/features/). - Status: not started -
/implementupdates this durable workflow state as work and verification progress. - Branch: the full fix branch from the configured prefix plus the fix title in lowercase kebab-case.
- Fixes:
<finding id>- only when the fix targets a ledger finding. The stamp makes the repair traceable:/implementmarks that findingfixedwhen the repairing step lands, and/auditre-reviews it before it closes. - The problem - what's wrong or what needs to change, and where.
- The fix - the root-cause repair, and anything it must not break. Do not add an abstraction, dependency, service, configuration surface, compatibility layer, or security mechanism unless the defect is in that layer or an established repository requirement needs it now. Adding a missing authorization, ownership, validation, escaping, or redaction check is a root-cause repair, not new machinery.
- Build steps - usually one small step; split only if the diff would be too big to read. Each ends with an observable "done when".
- Verify - how to confirm it's fixed (what to click or test).
Then stop. Tell the user to review the fix spec, then run /implement to build it.
Rules
- A fix is not a build-plan item; don't add it to
build-plan.md. - Keep it small. If it's really a new feature, use
/featureand the build plan instead. - Same conventions as everything else (
blueprint/context/coding-standards.md).
Formatting
Format the output to match the project's conventions in
blueprint/context/ai-interaction.md: concise, scannable markdown, with lists for
enumerations and tables for matrices rather than dense paragraphs.