Visual Orchestrator for Spec-Driven Development (SDD) β Decoupled Hexagonal Architecture, Next.js 15, ReactFlow, and Multi-Agent Orchestration.
SpecKit Assistant is a visual orchestrator for Spec-Driven Development (SDD). It connects your local specification, planning, and task checklists with AI agents (Claude, Gemini, Copilot) through a modern, Vercel-style dashboard. By utilizing Hexagonal Architecture, it fully decouples the core domain rules from UI and external runners, ensuring that your local file system remains the single source of truth at all times.
- Core Concept & SDD Flow
- Key Features
- User Interface Screenshots
- Architecture (Hexagonal / Ports & Adapters)
- Installation & Setup
- How to Publish to npmjs
- CLI Usage
- Workspace Anatomy
- Testing & Quality Assurance
- License
Spec-Driven Development (SDD) is a software engineering methodology that uses structured markdown documents to guide AI agents and human developers sequentially through software lifecycle stages:
graph TD
A[1. Constitution] --> B[2. Specification]
B --> C[3. Planning]
C --> D[4. Tasks]
D --> E[5. Implementation]
- Constitution: Establish project-wide principles, tech stack, and constraints.
- Specification: Document user requirements and features in detail.
- Planning: Outline technical implementation decisions and file modifications.
- Tasks: Break down plans into an actionable checklist of developer-ready tasks.
- Implementation: Execute tasks and generate clean code.
SpecKit Assistant acts as the Visual Dashboard and Command-Line Interface to run, approve, and track these phases, syncing seamlessly with your local file system.
- π¨ Premium UI/UX: High-fidelity dark and light themes (light by default) styled with a sleek, minimalist Vercel aesthetic.
- π§ Full-Width Sectioned Layout: Top-level sections separate responsibilities β Workflow, Agents, MCP Tools, and Extensions β each using the full width of the screen.
- πΊοΈ Interactive ReactFlow DAG Map: Visualizes the dependencies and status of every feature's development lifecycle.
- π‘ Agent Executions View: A third Workflow view (next to Kanban / DAG) that tracks every agent run β phases, review personas, and DevOps agents β with live status, start time, duration, cost, tokens, and exit code, drillable to each run's saved log. Includes an Obsidian-style force-directed graph (agent/feature nodes, edges weighted by run frequency) that can be maximized full-screen. Backed by an append-only execution history that survives reloads.
- π DevOps Agents (on-demand): A profile of operational agents β Deploy, post-deploy Monitor, and Troubleshoot β run on demand from the Executions view, backed by the bundled
spec-kit-devopsextension. - π§© Extension Manager: Install and manage spec-kit extensions from the UI β one-click bundled installs (Review Personas, Specification Agents, DevOps Agents), community installs via GitHub ZIP/URL, and a one-click
specifyCLI installer (venv-first, from the spec-kit GitHub source β nogitrequired). - π§ββοΈ Specification & Review Agents: Spec-phase agents (Product Owner, Architecture, Refinement, Consolidate) wired as
after_specifyhooks, plus a sequential implementation review gate (QA, Code Review, Security, Tech Lead). - π Drag-and-Drop Kanban Board: Progress features forward (auto-approving intermediate steps and launching agents) or roll them back (marking downstream files as stale) by simple drag-and-drop.
- π€ Agent Management (YAML): Create, edit, and persist multiple CLI agent profiles centrally in
.specify/agents.yaml; the active agent drives every workflow run. Supports Anthropic's Claude CLI, Google's Gemini CLI, GitHub Copilot CLI, OpenAI Codex, or custom CLI wrappers. - π Agnostic MCP Tools: Define Model Context Protocol servers once, assign them per agent, and apply them to each CLI's native config β Claude
.mcp.json, Gemini~/.gemini/settings.json, Codex~/.codex/config.tomlβ with safe read-merge-write (and.bakbackups). - π° Execution Cost Capture: Model/CLI-agnostic per-run cost & token usage (parsed when the CLI prints it, otherwise estimated from I/O volume Γ a pricing table), surfaced in the Human Review Portal.
- π‘οΈ Human Review Portal: Inspect git diffs, browse the entire project file tree with syntax highlighting, toggle markdown preview/raw, and sign off the persona review gate with real cost/duration metrics.
- β
Multi-File Checklists: Renders a
checklists/directory of multiple.mdfiles via per-file sub-tabs, in addition to a singlechecklist.md. - π WYSIWYG Markdown Editor: Edit specifications or plans with a formatting toolbar (Bold, Italic, Headings, Code Blocks, Tables, Checklists), with support for alternating-row Vercel-style tables.
- π Conflict & Change Guard: A live watcher (
chokidar+ SSE) detects external changes on disk and alerts you in case of editing conflicts. - πΎ Persistent State: Automatically remembers your active workspace inside
~/.speckit-assistant-config.json.
To prevent coupling our core workflows to UI libraries, Next.js, or file system APIs, SpecKit Assistant is built using Hexagonal Architecture.
src/
βββ domain/ # Core business rules
β βββ models/ # Types (Feature, Phase, Task)
β βββ ports/ # Ports (Interfaces)
β βββ in/ # Inbound use cases (GetWorkflowState, RunPhase)
β βββ out/ # Outbound SPIs (WorkspaceRepository, AgentRunner)
βββ adapters/ # Infrastructure implementations
β βββ primary/ # Next.js API controllers, React/ReactFlow UI
β βββ secondary/ # File system sync, Process spawners
For a detailed analysis of our architectural decisions, read our Architecture Decision Records (ADRs):
- ADR 001: Hexagonal Architecture (Ports and Adapters)
- ADR 002: State Synchronization and Agent Dispatch
- Node.js:
v18.0.0or higher - Package Manager:
pnpm(preferred),npmoryarn
You don't need to install or clone anything locally to run the assistant. Simply run it inside your target workspace using npx:
npx speckit-assistant(This will download the latest release, start the server on port 18080, and open the Web UI in your browser.)
If you wish to modify the code or contribute to the project:
# Clone the repository
git clone https://github.com/dmux/speckit-assistant.git
cd speckit-assistant
# Install dependencies using pnpm
pnpm install
# Compile the CLI and Next.js assets
pnpm run build
# Start the Web UI on the default port (18080)
pnpm startTo publish speckit-assistant under your own account/organization on npm so it can be run via npx:
Log in to your npm registry account (sign up at npmjs.com if you haven't already):
npm loginOpen package.json and verify:
"name": Change this if the package namespeckit-assistantis already taken, or if you want to publish under a scoped organization (e.g."@my-org/speckit-assistant")."version": Bump the version number (e.g."0.1.1","1.0.0") every time you publish new changes.
Run the publish command. The configured prepublishOnly script will automatically compile the Next.js assets and TypeScript files before bundling and uploading the package:
# For public packages
npm publish
# If using a scoped package (e.g. @my-org/speckit-assistant)
npm publish --access publicSpecKit Assistant comes with a powerful CLI. When installed globally, you can invoke it using speckit-assistant (or via local path ./bin/bin/cli.js).
-
Start the Web Server:
speckit-assistant
Starts the Next.js server on port
18080(avoids conflicts on Unix/Windows/macOS) and auto-openshttp://localhost:18080in your default browser. -
Check Workflow Status:
speckit-assistant status [-w <workspace-path>]
Displays a terminal-based overview of your Constitution and feature phase statuses.
-
Approve a Phase:
speckit-assistant approve <phase> [feature-name]
Marks a phase (e.g.
specification,planning,tasks) as approved. -
Discard/Reset a Phase:
speckit-assistant discard <phase> [feature-name]
Resets the phase and marks all downstream phases as stale (e.g. discarding
specificationmarksplanning,tasks, andimplementationas stale). -
Create a New Feature:
speckit-assistant create <feature-name>
Generates a new directory under
specs/<feature-name>with template markdown files. -
Run an Agent Phase:
speckit-assistant run <phase> [feature-name] --agent <claude|gemini|copilot> --prompt "refinement details"
-w, --workspace <path>: Specify the target workspace directory. Defaults to the current directory, but persists the last-used workspace in~/.speckit-assistant-config.json.-p, --port <number>: Override the default port18080for the Web UI.--agent <type>: AI agent execution binary (default:claude).--prompt <text>: Feed specific refinements or custom instructions to the AI agent.
SpecKit Assistant manages markdown files inside your target project workspace. Your workspace directory structure should follow this pattern:
my-project/
βββ .mcp.json # MCP servers applied to the Claude CLI (generated)
βββ .specify/
β βββ memory/
β β βββ constitution.md # Project-wide context & rules
β βββ agents.yaml # Persisted CLI agent profiles + active agent
β βββ mcp.yaml # Central MCP server definitions
β βββ personas-config.json # Review-gate persona configuration
β βββ spec-agents.yaml # Specification-phase agent roster
β βββ devops-agents.yaml # DevOps agent roster (deploy/monitor/troubleshoot)
β βββ extensions/ # Installed spec-kit extensions (.registry + each extension)
β βββ .runtime/
β βββ workflow-state.json # Internal workflow cache (automatically managed)
β βββ executions.jsonl # Append-only agent execution history
β βββ logs/ # Captured per-run output logs
βββ specs/
βββ 001-user-authentication/
βββ spec.md # Feature requirements
βββ plan.md # Implementation strategy
βββ checklist.md # β or a checklists/ directory of multiple .md files
βββ tasks.md # Actionable checklists
βββ reviews/ # Persona review reports (qa.md, security.md, ...)
βββ devops/ # DevOps agent reports (deploy.md, monitor.md, ...)
SpecKit Assistant maintains a high bar for reliability and code health:
- Vitest for fast, concurrent unit and integration testing.
- 100% Mocked File Systems in unit tests to prevent disk pollution.
- Isolated temporary workspaces for E2E tests, avoiding workspace write conflicts.
We boast 99.44% statement coverage across our domain rules, API routers, process dispatchers, and repository adapters:
# Run unit and integration tests
pnpm run test β src/domain/services/WorkflowService.test.ts (22 tests)
β src/domain/services/CostMeter.test.ts (9 tests)
β src/domain/services/mcpTranslate.test.ts (6 tests)
β src/adapters/secondary/fs/FSWorkspaceRepository.test.ts (8 tests)
β src/adapters/secondary/fs/FSMcpConfig.test.ts (4 tests)
β src/components/HumanReviewModal.test.tsx (12 tests)
Test Files 13 passed (13)
Tests 108 passed (108)
This project is licensed under the MIT License. See LICENSE for details.

