wireframe
v0.1.1SVG wireframe generation, review, and sign-off for spec-driven development. Approved wireframes become spec constraints honored by /speckit.plan, /speckit.tasks, and /speckit.implement.
spec-kit-extension-wireframe
Spec-Driven Development catches logic errors. It doesn't catch "this doesn't look right."
By the time you've planned, tasked, and started implementing, you're painting a picture you never approved. This extension adds the visual sign-off step SDD is missing: generate wireframes from the spec, iterate on them, sign them off β and then
/speckit.plan,/speckit.tasks, and/speckit.implementautomatically honor what you approved.
π See it live: https://tortoisewolfe.github.io/spec-kit-extension-wireframe/
How it works
Spec-Driven Development already treats spec.md as the source of truth β every downstream command (/speckit.plan, /speckit.tasks, /speckit.implement) reloads it as constraint context. This extension piggybacks on that: on sign-off, approved wireframe paths get written into spec.md under a ## UI Mockup section. From that moment, the visual becomes part of the spec. No changes to core Spec Kit required.
/speckit.specify
β
/speckit.clarify
β
/speckit.wireframe.generate β NEW: SVG mockups from spec
β
/speckit.wireframe.review β NEW: review + sign-off writes paths into spec.md
β
/speckit.plan (reads spec.md β honors wireframes)
β
/speckit.tasks (reads spec.md β honors wireframes)
β
/speckit.implement (reads spec.md β honors wireframes)
β
/speckit.wireframe.screenshots β NEW: regression check vs signed-off wireframes
Installation
Via catalog (once spec-kit#2262 merges)
specify extension add wireframe
Local development
git clone https://github.com/TortoiseWolfe/spec-kit-extension-wireframe
cd /path/to/your/speckit-project
specify extension add --dev /path/to/spec-kit-extension-wireframe
Verify:
specify extension list
# β Wireframe Visual Feedback Loop (v0.1.0)
# Commands: 5 | Hooks: 3 | Status: Enabled
Commands
| Command | Purpose |
|---|---|
/speckit.wireframe.prep | Load spec + rules context before generating |
/speckit.wireframe.generate | Create SVG wireframes from spec.md (light/dark/both themes) |
/speckit.wireframe.review | Review wireframes, classify issues, sign off into spec.md |
/speckit.wireframe.inspect | Cross-SVG consistency check |
/speckit.wireframe.screenshots | Capture standardized PNGs (Tier-2, needs Python or Docker) |
Hooks
The extension registers three optional hooks into SpecKit's workflow:
| Hook | Prompts | What it offers |
|---|---|---|
after_specify | "Generate wireframes for this feature now?" | Runs wireframe.generate right after spec creation |
before_plan | "Review and sign off wireframes before planning?" | Ensures wireframes are signed off before /speckit.plan locks in the implementation plan |
after_implement | "Capture implementation screenshots and compare?" | Regression check: captures the built UI and compares against signed-off wireframes |
All hooks are optional β the extension prompts before executing, and you can decline to continue the SpecKit workflow unchanged.
Theme convention
The extension ships two canonical templates in templates/:
- Light theme (
light-theme.svg) β parchment/tan canvas for frontend features (UI screens, forms, dashboards) - Dark theme (
dark-theme.svg) β charcoal/slate canvas for backend features (architecture diagrams, RLS policies, OAuth flows, API contracts)
The generator auto-classifies each User Story from spec.md as frontend (UI-describing narrative) or backend (system-describing narrative). Features that mix both β one wireframe per theme.
Override auto-detection with --theme {light|dark|both}.
Theme tokens are documented in templates/THEME-CONVENTION.md.
Configuration
Copy config-template.yml to .specify/extensions/wireframe/wireframe-config.yml and customize. All settings are optional. Common overrides:
themes:
frontend: "light" # default
backend: "dark" # default
hybrid: "both" # default
output:
svg_dir: "specs/{feature}/wireframes" # where SVGs land
validator:
enabled: false # set true if you install the optional Python validator
Tiers
The extension is designed with progressive enhancement:
- Tier 1 (zero deps):
generate,prep,review,inspectβ AI does all the work via reading SVG source + reasoning. Works on any machine. - Tier 2 (optional):
screenshotsand a validator script use Python (playwright+cairosvg) or Docker for standardized PNG capture and mechanical validation. When unavailable, commands gracefully degrade with an informational message β they don't fail.
You can use this extension with just Tier 1 β everything core works. Tier 2 adds richer visual review and regression checking when you want it.
Example: full loop
Scratch SpecKit project:
specify init my-demo
cd my-demo
specify extension add wireframe
Then in your agent:
/speckit.specify "User login page with email and password, shows error on invalid credentials"
β creates specs/001-user-login/spec.md
after_specify hook: "Generate wireframes for this feature now?" β y
β runs /speckit.wireframe.generate 001
β auto-classifies as frontend β generates light-theme SVG
β writes specs/001-user-login/wireframes/01-login.svg
/speckit.wireframe.review 001
β analyzes SVG, reports: PASS
β prompts sign-off β y
β updates specs/001-user-login/spec.md with ## UI Mockup block
/speckit.plan
β reads spec.md (now includes wireframe reference)
β plan.md now lists the wireframe as a visual constraint
/speckit.tasks β tasks honor layout constraints from wireframe
/speckit.implement β implementation matches signed-off mockup
after_implement hook: "Capture implementation screenshots and compare?" β y
β captures built UI
β side-by-side diff vs signed-off wireframe
β reports visual drift (if any)
What this extension does NOT do
- Orchestration β no queue, no multi-terminal dispatch, no terminal status files. If you want that layer, see TortoiseWolfe/First-Frame, which builds on this extension with a Planner/Generator/Reviewer/Inspector terminal model.
- Style guides β the extension enforces its own canvas and color conventions. If you want different conventions, fork the
templates/directory and publish a preset that overrides them. - Replace
/speckit.constitutionβ project-wide design standards still belong in the constitution. This extension handles per-feature wireframes.
Prior art
This extension supersedes github/spec-kit#1410, which proposed adding wireframe generation to SpecKit core. That PR predated the extension system (#2130); this extension takes the same ideas into the post-extension-system architecture and extends them with the sign-off binding mechanism and tier-based graceful degradation.
License
MIT β see LICENSE.
Version
- Version: 0.1.0
- Compatible with Spec Kit:
>=0.6.0
Stats
Version
Install
Using the Specify CLI
specify extension add wireframe --from https://github.com/TortoiseWolfe/spec-kit-extension-wireframe/archive/refs/tags/v0.1.1.zip