bonfire-spec
Create Implementation Spec
Create an implementation spec for $ARGUMENTS.
Outcome
A complete implementation spec written to the configured specs location that captures:
- What to build and why
- Key decisions with rationale
- Concrete implementation steps
- Edge cases and error handling
- Testing approach and scope boundaries
Acceptance Criteria
The spec file must contain these sections:
| Section | Purpose |
|---|---|
## Overview |
What this feature does and why it matters |
## Decisions |
Key technical choices with rationale |
## Implementation Steps |
Ordered, actionable steps to build it |
## Edge Cases |
Error handling, boundary conditions, failure modes |
Additional sections are welcome but these four are required.
Quality signals:
- Decisions reference actual codebase patterns (not generic advice)
- Implementation steps are specific to this codebase (file paths, function names)
- Edge cases reflect real constraints discovered in research
Constraints
Context Isolation
Research and writing happen in isolated subagent contexts to preserve main context for user interaction.
| Phase | Agent | Model | Why |
|---|---|---|---|
| Research | codebase-explorer |
inherit | Fast exploration without polluting main context |
| Writing | writer |
inherit | Synthesis in isolation; has full research + interview context |
Use the Task tool with the appropriate agent. The subagents have user-invocable: false so they're only accessible via Task.
User Interview Required
The user must be interviewed before writing. Research informs questions; questions surface decisions the user wouldn't think to mention.
Interview must cover:
- Core technical decisions (patterns, approaches, tradeoffs)
- Edge cases and error handling preferences
- Testing approach
- Scope boundaries (what's explicitly out)
Use AskUserQuestion. Good questions are informed by research, about tradeoffs, and codebase-specific.
File Locations
- Config:
<git-root>/.bonfire/config.jsoncontainsspecsLocation - Default:
.bonfire/specs/if not configured - Naming:
<issue-id>-<topic>.mdor<topic>.md
Verification
After writing, verify the spec contains all 4 required sections. If incomplete:
- Warn user what's missing
- Offer: proceed / retry / abort
Session Context
After writing the spec, add a reference to it in <git-root>/.bonfire/index.md under Current State. This links the spec to the session that created it.
Completion
After verification, confirm spec creation and offer options:
- Proceed with implementation
- Refine specific sections
- Save for later
Guidance (Not Rules)
These patterns tend to work well, but adapt as needed:
Research before interviewing - Findings make questions specific and valuable.
Three interview rounds - Core decisions → Edge cases → Testing & scope. But collapse if user is time-constrained.
Show your work - Tell user what you're doing: "Researching...", "Starting interview...", "Writing spec..."
Fallback gracefully - If subagent fails, do the work in main context. Warn user but don't stop.
Large codebases - Explorer may need multiple passes. Offer to continue if findings seem incomplete.
Writer context - When invoking the writer agent, specify document type as "spec" so it uses the correct format.
Anti-Patterns
Don't ask generic questions - "What features do you want?" wastes an interview slot.
Don't skip the interview - Research alone misses user intent. Interview alone misses codebase reality.
Don't write without verification - Subagents can produce partial output. Always check.
Don't over-specify implementation - Steps should guide, not micromanage. Leave room for implementation judgment.
More from vieko/bonfire
bonfire
Session context persistence for AI coding. Pick up exactly where you left off.
98bonfire-document
Create documentation about a topic in the codebase
4bonfire-review
Review work for blindspots, gaps, and improvements
4bonfire-start
Start a new session - reads context, sets up Tasks
4bonfire-context
Read project session context from .bonfire/index.md to understand ongoing work, previous decisions, blockers, and history. Use when the user asks about project context, previous sessions, what was worked on before, architectural decisions, blockers, or when they reference "last time", "previously", "the session", or "what we decided".
4bonfire-end
End session - update context, run health check, and archive completed work
4