specs-tickets
Specs Tickets
Create and execute tickets through the spec-driven lifecycle, or resume work on existing ones.
Skill Dependencies
This skill is part of a set of skills designed to work together:
- spec-driven — Core rules and high-level document map
- specs-setup — Initialize
specs/for a new project - specs-tickets (this skill) — Create and execute tickets through their lifecycle
- specs-review — Audit specs health, consistency, and drift
- specs-finish-ticket — Review implemented tickets before closure
If any of these skills are missing from the project, instruct the user to install them before proceeding:
npx skills add b12consulting/skills --skill <missing_skill>
Always load the spec-driven skill first for the core rules. Load the methodology reference for detailed lifecycle and Findings guidance. Load templates when creating documents.
Prerequisites
- Verify
specs/folder exists withVision.md,PRD.md, andArchitecture/README.md. If missing, prompt the user to run the specs-setup skill first. - Read
specs/README.md, thenspecs/Vision.md,specs/PRD.md, andspecs/Architecture/README.mdto understand the project context. - Read architecture sub-documents relevant to your ticket such as
specs/Architecture/data-model.md.
Entry Point: New Ticket or Existing?
Determine whether the user wants to create a new ticket or continue an existing one.
- If the user describes new work, go to the New Ticket section below.
- If the user references an existing ticket, go to the Resume Ticket section below.
- If unclear, ask the user.
New Ticket
Phase 0: Create Ticket
- Ask the user to describe the work to be done.
- Determine the next ticket number: scan
specs/tickets/for the highest existing number and increment by one. If no tickets exist, start at001. - Derive a short slug from the description using lowercase hyphen-separated words.
- Create the ticket folder and
Spec.md:
specs/tickets/<NNN>-<slug>/Spec.md
Use this frontmatter:
---
id: "<NNN>"
title: "<Descriptive title>"
status: research
owner: ""
created: YYYY-MM-DD
updated: YYYY-MM-DD
---
Follow with a one-paragraph summary of the ticket and the initial spec scaffold.
Then proceed to Phase 1: Research.
Resume Ticket
1. Identify the Ticket
Ask the user which ticket to continue, or identify it from conversation context:
- ticket number such as
003 - description such as
the auth ticketby scanning ticket titles
If ambiguous, list active tickets from specs/README.md and ask the user to pick one.
2. Read Ticket State
Read the ticket's Spec.md and note the status from frontmatter. Then read all existing documents in the ticket folder to understand the full context.
Summarize the current state for the user: what phase the ticket is in, what is complete, and what comes next.
3. Check for Drift
Compare the ticket's documents against the current state of:
specs/Vision.mdandspecs/PRD.md— have requirements or success expectations changed since this ticket was written?specs/Architecture/README.md— has the architecture evolved?- the codebase — has relevant code changed since the ticket was last worked on?
If drift is detected:
- report the specific inconsistencies to the user
- discuss whether the ticket needs updating before continuing
- if specs changed, the ticket may need
Spec.mdorPlan.mdupdates - if code changed, completed checklist items may need re-verification
4. Resolve Blockers
If the ticket status is open-questions:
- present the unresolved questions from
Decisions.mdto the user - ask for decisions on each
- record decisions in the Resolved section of
Decisions.md - update the ticket status once all questions are answered
If the ticket's Plan.md already records unresolved blockers or sequencing constraints:
- report those blockers and their current status
- discuss whether to wait, work around, or re-scope
5. Resume the Lifecycle
Based on the current status, pick up at the appropriate phase:
| Current Status | Next Action |
|---|---|
research |
Review Research.md findings. Proceed to Phase 2: Specify. |
specifying |
Check whether Spec.md has been validated. If yes, proceed to Phase 3: Plan. If no, present it for validation. |
open-questions |
Resolve questions, then return to the prior phase. |
planned |
Review Plan.md, including its checklist, and proceed to implementation once it is confirmed. |
in-progress |
Continue from the execution checklist in Plan.md. |
done |
Inform the user the ticket is complete. Ask whether they want to reopen it or create a follow-up. |
archived |
Inform the user the ticket was archived. Ask whether they want to create a new ticket instead. |
6. Update Findings
If resuming work uncovers durable assumptions, frictions, workarounds, follow-up candidates, or residual risks, create or update Findings.md. Keep it curated and durable rather than chronological.
Ticket Lifecycle
The lifecycle is: Research → Specify → Plan → Implement → Finish Review → Done.
User validation is required at the spec, plan, and closeout checkpoints.
Any participant (human or agent) can execute any phase. The lifecycle defines the order, not who does what.
Phase 1: Research
Goal: Understand the problem space and gather information needed to write a good spec.
- Investigate the codebase, existing documentation, and any external resources relevant to the ticket.
- Identify technical constraints, existing patterns, and potential approaches.
- If the ticket may affect domain entities or boundary payloads, identify:
- the canonical domain concepts involved
- the canonical boundary contract involved
- the owner, producers, and consumers of that contract
- whether serialization or persistence format differs from the canonical in-memory shape
- Document findings in
Research.md:- Objective: what we are trying to learn
- Findings: organized by topic
- Options considered with pros and cons
- Recommendation
- References
- Update ticket status to
researchinSpec.md.
Research.md is optional for straightforward tickets. If the path is clear from the user's description, skip directly to Phase 2. A one-line bug fix does not need research, but a new feature with multiple possible approaches often does.
Phase 2: Specify
Goal: Define what done looks like.
-
Based on research findings or the user's description, write
Spec.md:- User stories: who wants what and why. Assign a priority (
P1,P2,P3, ...) to each story. Each story should be independently testable and include a one-line verification note. - Acceptance criteria: concrete, testable conditions that prove the work is done
- Scope boundaries: what is in scope and explicitly out of scope
- User stories: who wants what and why. Assign a priority (
-
Clarification scan. Before finalizing the spec, scan it for ambiguity across these categories:
- functional scope and behavior
- domain and data model
- interaction and UX flow
- non-functional quality attributes
- integration and external dependencies
- edge cases and failure handling
- constraints and trade-offs
- terminology consistency
For each category that is partial or missing, decide whether clarification materially affects implementation. If it does, ask the user. Limit yourself to the most impactful questions. If a gap is better deferred to planning, note it internally and move on.
-
If there are unresolved questions that block specification, create
Decisions.md:- list each question with context in the Open section
- provide options with trade-offs for each
- include a suggested answer for each
- ask the user to decide on all open questions before proceeding
- move resolved questions to the Resolved section with the decision, date, and rationale
-
Self-validate the spec. Before presenting it to the user, check:
- no implementation details have leaked into the spec
- every requirement is testable and unambiguous
- acceptance criteria are measurable
- scope is clearly bounded
- no more than 3 items remain marked
[NEEDS CLARIFICATION] - all user stories have a priority and an independent-test description
- field-level schema details appear in the spec only when they are part of a user-visible or product-level contract; stable technical contract definitions live in architecture docs or the plan
If any check fails, fix the spec before presenting it.
-
Update ticket status to
specifying, oropen-questionsif questions exist, inSpec.md. -
Present
Spec.mdto the user for validation.
CHECKPOINT: Do not proceed to Phase 3 until the user has validated the spec.
Phase 3: Plan
Goal: Define the implementation strategy and executable checklist.
-
Based on the confirmed spec, write
Plan.md:- Approach: high-level implementation strategy
- Key design decisions: important choices and their rationale
- Dependencies and sequencing: only the blockers or ordering constraints that materially affect execution
- Data model and contract impact: canonical entities, boundary contracts, serialization differences, and compatibility or cutover policy when relevant
- Implementation checklist: the concrete execution checklist with file-scoped items
- Risks and mitigations: what could go wrong and how to handle it
- Verification: the checks that prove the plan satisfies the spec
-
Check alignment with architecture docs. If the plan requires architectural changes:
- flag this to the user explicitly
- propose an ADR in
specs/decisions/ - update
specs/Architecture/README.mdand any affected sub-documents only after user approval
-
Coverage check. Before presenting the plan, verify that
Spec.mdandPlan.mdare consistent:- every requirement maps to at least one checklist item
- every checklist item traces back to a requirement or design decision
- terminology is consistent across the two files
For tickets that affect data modeling or boundary contracts, also verify:
- every changed canonical entity or contract is reflected in the relevant architecture doc
- every contract change has explicit verification checklist items for producer and consumer alignment
- compatibility or migration work is represented in
Plan.mdwhen needed
If gaps are found, update
Plan.mdorSpec.mdbefore proceeding. This check is lightweight — skip it for very small tickets with <= 5 checklist items. -
Update ticket status to
plannedinSpec.md. -
Present
Plan.mdto the user for confirmation.
CHECKPOINT: Do not proceed to implementation until the user has confirmed the plan.
Phase 4: Implement
Goal: Execute the plan.
-
Work through the execution checklist in
Plan.mdsequentially:- check off each item as it is completed
- if an item reveals the spec or plan needs updating, pause implementation
- update the relevant document, inform the user, and get confirmation if the change is significant
-
Update
Findings.mdprogressively:- use it for durable discoveries that matter after the session ends
- create it as soon as those discoveries appear; do not wait until the ticket is nearly done
- every finding must end with a clear disposition such as
Addressed here,Follow-up needed, orAccepted for now
-
Drift detection during implementation: If implementation reveals a conflict with
Vision.md,PRD.md, or architecture docs:- alert the user immediately
- either create an ADR to update specs, or create a follow-up ticket to fix the code
- do not silently deviate from specs
-
Update ticket status to
in-progressinSpec.md.
Phase 5: Prepare Finish Review
Goal: Hand the ticket off for independent closeout review before it is marked done.
- Verify all acceptance criteria from
Spec.mdappear to be met. - Make a final pass over
Plan.mdandFindings.md:- ensure completed checklist items are checked off or clearly superseded
- ensure
Findings.mdcaptures durable assumptions, frictions, follow-up candidates, residual risks, and test gaps with clear dispositions
- If the ticket affects data shape, update
specs/Architecture/data-model.mdto classify the change explicitly: - Do not mark the ticket
doneyet. - Ask the user to start a fresh conversation and run the specs-finish-ticket skill for independent review.
The ticket typically remains in-progress until the finish review passes and the user confirms closure.
Handling Changes Mid-Flight
Requirements often change during implementation. When they do:
- Update
Spec.mdwith the new or changed requirements. - Update
Plan.mdso the approach, sequencing, and checklist still reflect reality. - Update
Findings.mdif the change revealed an assumption, workaround, follow-up candidate, or residual risk worth preserving. - If the change affects
Vision.md,PRD.md, or architecture docs, create an ADR. - If the change alters canonical entities, boundary contracts, or serialization policy, update
specs/Architecture/data-model.mdand/or the relevant architecture docs when those definitions are part of the long-lived system design. - Re-validate with the user if the change is significant.
The spec is always the source of truth for the ticket, not the code. Keep it in sync.
Scaling Guidance
- Small tickets such as a bug fix or config change: create the ticket, specify it, write a compact plan with checklist, implement it, then send it to finish review. Skip Research.
- Medium tickets such as a feature or refactor: use all phases. Research may be brief.
- Large tickets such as a new system or major redesign: use all phases. Consider breaking the work into multiple tickets if the
Plan.mdchecklist exceeds ~15 items.
More from b12consulting/skills
yuma-design
Yuma brand design reference covering color palette, logos and typography guidance. Use this skill when creating or reviewing Yuma-branded visual assets to stay aligned with the design system.
15pptx
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions "deck," "slides," "presentation," or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
12specs-setup
Initialize the spec-driven project methodology. Use when: no specs/ folder exists; critical files like PRD.md, Vision.md, or Architecture/ are missing; setting up a new project for structured requirements and ticket management. Triggers on: 'setup specs', 'initialize specs', 'create PRD', 'start project methodology', 'missing specs', 'init specs', 'no specs folder'.
10specs-review
Review the health of a spec-driven project. Use when: checking if specs are up to date; detecting drift between code and specs; finding stale or incomplete tickets; auditing consistency across Vision, PRD, Architecture, and tickets. Triggers on: 'specs review', 'spec health', 'check specs', 'audit specs', 'are specs up to date', 'drift check', 'stale tickets', 'spec consistency'.
10spec-driven
Spec-driven project methodology reference. Use when a project has a specs/ folder for managing product requirements, vision, architecture, success measures, decision records (ADR), glossary, changelog, and ticket-based work tracking. Loaded when: working on a project with specs/; reading or updating PRD, vision, architecture, glossary, or changelog; detecting drift between code and specs; reviewing project methodology or document formats. Triggers on: 'specs', 'PRD', 'vision', 'success metrics', 'milestones', 'architecture', 'ADR', 'decision record', 'glossary', 'changelog', 'ticket', 'project methodology', 'ground truth'.
10code-simplifier
Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
5