extensions/bug/README.md
A three-step bug triage workflow for Spec Kit: assess, fix, and validate. Each bug lives in its own directory under .specify/bugs/<slug>/, with one Markdown report per stage.
This extension delivers an opinionated, repeatable bug workflow that any AI coding agent can drive:
The three stages communicate through three Markdown files in a single per-bug directory:
.specify/bugs/<slug>/
├── assessment.md # written by speckit.bug.assess
├── fix.md # written by speckit.bug.fix
└── test.md # written by speckit.bug.test
| Command | Description | Output |
|---|---|---|
speckit.bug.assess | Triages a bug report (pasted text or URL) against the codebase. | .specify/bugs/<slug>/assessment.md |
speckit.bug.fix | Applies the remediation from the assessment. | .specify/bugs/<slug>/fix.md |
speckit.bug.test | Validates the fix and records the verification report. | .specify/bugs/<slug>/test.md |
A slug is the per-bug directory name under .specify/bugs/. It is the only handle the three commands share.
login-timeout, cve-2026-001, oauth-redirect-500). The slug is preserved verbatim after normalization — no timestamps or numbers are appended automatically.speckit.bug.assess asks for a slug when none is supplied, suggesting a kebab-case default derived from the bug summary..specify/bugs/<slug>/ already exists, the agent appends the shortest disambiguating suffix needed (-2, -3, …) or a short date (-20260605). Existing bug directories are never overwritten.# Install the bundled bug extension (no network required)
specify extension add bug
# Disable the bug extension
specify extension disable bug
# Re-enable it
specify extension enable bug
# 1. Triage a bug from a pasted stack trace
/speckit.bug.assess "TypeError: cannot read properties of undefined (reading 'token') at /auth/callback"
# 2. Triage a bug from a GitHub issue URL
/speckit.bug.assess https://github.com/example/repo/issues/1234 slug=callback-token
# 3. Apply the proposed fix
/speckit.bug.fix slug=callback-token
# 4. Validate the fix
/speckit.bug.test slug=callback-token
speckit.bug.assess and speckit.bug.test never modify source code. They read the repository and write only inside .specify/bugs/<slug>/.speckit.bug.fix is the only command that edits source code, and it stays within the files listed in the assessment unless new evidence requires expanding scope (which is logged in fix.md under Deviations from Assessment).partial or not-run, not verified.This extension registers no hooks. The three commands are always invoked explicitly by the user.