/engineering:spec
/spec — Refine a Feature into a Tracked Epic
Refine a feature into a tracked epic with ordered sub-issues, each mapping to one PR. Use when user wants to spec a feature, plan a feature, break a feature into issues, or scope a new initiative. Does NOT write code — hand off to `/implement` when ready to build.
<feature name or description> Guided workflow for designing a feature spec, breaking it into ordered sub-issues, and publishing everything to GitHub. Produces a parent epic with a linked implementation plan. Does NOT write code or create PRs — hand off to `/implement` when ready to build.
Full skill instructions
This is the same file the agent loads when the skill triggers. Source: plugins/engineering/skills/spec/SKILL.md.
Instructions
When the user runs /spec <feature-name-or-description>, follow this workflow:
Phase 1: Gather Information
Walk the user through each section of the spec. Ask one section at a time, offering to help draft content. The sections are:
- Context — What problem does this solve? What is the current state?
- Proposal — High-level solution overview (1-2 paragraphs)
- Design — Detailed technical design: types, interfaces, code flow, code examples where helpful
- Changes Required — List of packages/files affected with specific modifications
- Dependencies — External Go modules, services, assumptions, or prerequisites
For each section, present what you have so far and ask the user to confirm or revise before moving on.
Phase 2: Break Down into Sub-Issues
Once the spec is complete:
- Propose a set of implementation steps (sub-issues), where each step maps to exactly one PR
- Each sub-issue should have:
- A title in Conventional Commits format:
type(scope): description - A body with: Goal, Changes (file-by-file), and Verification steps
- A title in Conventional Commits format:
- Ask the user to confirm, reorder, split, or merge steps
Phase 3: Review & Create
- Present the full parent issue and all sub-issues for final review
- Only after the user explicitly approves, create them using
gh issue create - Create the parent issue first, then create each sub-issue referencing the parent
- After creating all sub-issues, edit the parent body to replace placeholder checklist items with the actual issue numbers
Issue Format
Parent issue:
## Context
...
## Proposal
...
## Design
...
## Changes Required
...
## Dependencies
...
## Implementation Steps
- [ ] #<sub-issue-1> — type(scope): description
- [ ] #<sub-issue-2> — type(scope): description
- ...
Sub-issue:
Parent: #<parent-issue-number>
## Goal
What this step accomplishes.
## Changes
File-by-file modifications with code examples.
## Verification
Build, test, and validation commands.
Labels
Apply to every sub-issue:
🧩 sub-issue(always)- Component label matching the primary change area:
📋 proto,🤖 agent,🚌 bus,📥 ingestor,🔀 dispatcher,🌐 http enhancementfor new features; omit for pure refactors✅ ready
Apply to the parent issue:
📦 epic- Relevant component label(s)
Rules
- Never create issues without explicit user approval
- Keep sub-issues small enough for a single PR (ideally reviewable in one sitting)
- Sub-issue titles double as PR titles — use Conventional Commits format
- Reference the parent issue number in every sub-issue body
- Stop here — do not write code, create branches, or open PRs; that is
/implement's job