specs-setup
Specs Setup
Initialize the spec-driven methodology for a project. Run this when specs/ doesn't exist or is missing critical files.
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 (this skill) — Initialize
specs/for a new project - specs-tickets — 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 document guidance and the templates when creating documents.
Prerequisites
Before setting up specs, check if the project has coding standards defined:
.github/copilot-instructions.mdor.github/instructions/*.instructions.mdCLAUDE.md- or equivalent
If no coding standards exist, prompt the user to create them before proceeding. Specs define WHAT to build; coding standards define HOW to build it. Both are needed before any implementation work begins.
Procedure
1. Assess Current State
Check which of these exist:
-
specs/directory -
specs/README.md -
specs/Vision.md -
specs/PRD.md -
specs/Architecture/directory -
specs/Architecture/README.md -
specs/Architecture/data-model.md(optional) -
specs/Glossary.md -
specs/Changelog.md -
specs/decisions/directory -
specs/tickets/directory
Report what's missing and confirm with the user before creating anything.
2. Create Missing Structure
Create any missing directories and files using the templates from templates.md.
Create in this order:
specs/directoryspecs/decisions/directory (add a.gitkeepif empty)specs/tickets/directory (add a.gitkeepif empty)specs/Architecture/directoryspecs/Vision.mdspecs/PRD.mdspecs/Architecture/README.mdspecs/Glossary.mdspecs/Changelog.mdspecs/README.md(last, because it links to everything above)
Do not create optional architecture sub-documents by default. Decide whether specs/Architecture/data-model.md or other topic-specific docs are needed during architecture setup.
3. Populate Vision.md
Interview the user to fill in the vision. Ask about:
- Vision statement: What is this project? Why does it exist? What future are we building toward?
- Problem statement: What problem does it solve? Who feels this pain? What is the impact?
- Target audience: Who are the primary users or personas?
- Success metrics: How will we know the project is succeeding?
- Milestones: What major milestones matter, and roughly when?
Write Vision.md based on the user's answers. Present it for review and confirmation.
If the project has existing documentation or a README, use it as input — but always confirm with the user rather than assuming.
4. Populate PRD.md
Interview the user to fill in the PRD. Ask about:
- Functional requirements: What are the key things the system must do?
- Non-functional requirements: Performance, security, scalability, accessibility needs?
- Scope: What's explicitly in scope? What's explicitly out of scope?
- Assumptions & constraints: What are we assuming? What limits us?
Write PRD.md based on the user's answers. Present it for review and confirmation.
5. Populate Architecture
If the project has existing code, analyze it and draft the architecture documentation:
- System overview: What does the system do at a high level?
- Key components: What are the major parts and their responsibilities?
- Technology stack: What technologies are used and why?
- Key constraints: What are the important architectural constraints and trade-offs?
If the project is new with no code yet, work with the user to define the target architecture.
Present Architecture/README.md for review and confirmation.
Remember: keep it high-level. The architecture entry point should give someone a clear mental model of the system in under 5 minutes of reading. Split into sub-documents only when a section exceeds ~200 lines.
If the project has any of the following, strongly consider creating optional architecture sub-documents now:
- non-trivial domain entities with identity or lifecycle rules
- signals, events, APIs, or shared structs crossing module or package boundaries
- persisted read models or storage formats that differ from canonical in-memory shapes
- compatibility, migration, or cutover concerns around data shape
Use them like this:
specs/Architecture/data-model.md— canonical entities, identity, relationships, state transitions, invariants- other topic-specific architecture docs — boundary payloads, owners, producers, consumers, canonical shape, transport or persistence format, and compatibility policy where those concerns need long-lived documentation
For boundary-oriented docs, explicitly distinguish:
- the canonical in-memory or conceptual shape
- the transport or wire format
- the persistence or stored representation
If those differ, document the difference rather than collapsing them into one vague "schema".
6. Populate Glossary
Scan Vision.md, PRD.md, and Architecture/README.md for domain-specific terms. Draft definitions and ask the user to confirm them. Even a small initial glossary (5-10 terms) is valuable — it can grow over time.
7. Create Instructions File
Create a .github/instructions/specs.instructions.md file to ensure agents automatically load the spec-driven methodology when working with specs:
---
applyTo: "specs/**"
---
This project uses the spec-driven methodology. Load the `spec-driven` skill before making any changes to files in the specs/ folder.
If the .github/instructions/ directory doesn't exist, create it.
8. Finalize README
Update specs/README.md with:
- the project name and one-line description
- current status such as "Setting up" or "No active tickets"
- working navigation links to all created documents
- links to
Architecture/data-model.mdand any other architecture sub-documents if they were created
9. Suggest Commit
Suggest the user commits the initial specs:
docs: initialize spec-driven methodology
Incremental Setup
If specs/ already exists but is incomplete, only create the missing pieces. Do not overwrite existing documents — they may contain work that shouldn't be lost. Instead, flag any inconsistencies or gaps and let the user decide how to resolve them.
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-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'.
10specs-tickets
Create new spec-driven tickets and resume existing ones through the full lifecycle: research, specification, planning, and implementation. Use when: the user describes new work to be done; continuing a previously started ticket; a feature, bug fix, or task needs planning and implementation; starting or resuming planned work on a project with specs/. Triggers on: 'new ticket', 'new feature', 'fix bug', 'implement', 'create ticket', 'I want to build', 'let us work on', 'add feature', 'continue ticket', 'resume work', 'pick up where we left off', 'work on ticket', 'existing ticket', 'check ticket status', 'what is the state of ticket'.
10code-simplifier
Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
5