Multi-domain specification orchestration for humans and AI agents.
MultiSpec bridges the gap between organizational intent (MRD, PRD, UXD) and executable specifications for AI coding agents. It provides:
- ✍️ Domain-specific authoring - Separate specs for PM, UX, Engineering
- 📣 GTM synthesis - LLM-generated press releases, FAQs, narratives (Working Backwards)
- ⚙️ Technical synthesis - LLM-generated TRD, IRD from source specs
- 📊 Structured evaluation - Per-domain LLM judges with customizable rubrics
- 🔄 Reconciliation - Conflict detection and tradeoff resolution
- 📦 Target adapters - Export to SpecKit, GSD, GasTown, GasCity, OpenSpec
go install github.com/plexusone/multispec/cmd/multispec@v0.2.0# Initialize a new project
multispec init user-onboarding
# Validate project structure
multispec lint
# Check project status
multispec status
multispec status --format json
multispec status --format html > status.htmldocs/specs/
├── CONSTITUTION.md # Repo-level governance
├── ROADMAP.md # Cross-project priorities
└── {project}/ # kebab-case project name
├── source/ # Human-authored specs
│ ├── mrd.md
│ ├── prd.md
│ └── uxd.md
├── gtm/ # LLM-generated GTM docs
│ ├── press.md
│ ├── faq.md
│ └── narrative.md
├── technical/ # LLM-generated technical docs
│ ├── trd.md
│ └── ird.md
├── eval/ # All evaluations
│ ├── mrd.eval.json
│ ├── prd.eval.json
│ └── ...
├── .graphize/ # Requirement graph
├── spec.md # Reconciled execution spec
├── current-truth.md # Post-ship state
├── status.html # Readiness report
├── index.md # MkDocs page
└── multispec.yaml # Configuration
HUMAN-AUTHORED (Source)
MRD.md → PRD.md → UXD.md
↓
LLM-GENERATED (GTM) ← Working Backwards
press.md → faq.md → narrative.md
↓
LLM-GENERATED (Technical)
trd.md → ird.md
↓
RECONCILIATION
All approved specs → spec.md
↓
TARGET EXPORT
spec.md → SpecKit | GSD | GasTown | GasCity | OpenSpec
↓
POST-SHIP ALIGNMENT
spec.md + reality → current-truth.md
| Command | Description | Status |
|---|---|---|
init <project> |
Initialize a new project with standard directory structure | Implemented |
lint [project] |
Validate directory structure and naming conventions | Implemented |
status |
Show project status and readiness gates | Implemented |
targets |
List available export targets | Implemented |
eval [type] |
Evaluate specs using LLM judges | Implemented |
synthesize <type> |
Generate specs from source docs | Implemented |
reconcile |
Generate unified execution spec | Implemented |
approve <type> |
Approve a spec for reconciliation | Implemented |
export <target> |
Export to target execution system | Implemented (SpecKit) |
graph <cmd> |
Manage requirement graphs (extract, export, query) | Implemented |
serve |
Start MCP server for AI integration | Implemented |
The status command shows project readiness with multiple output formats:
# Terminal output with readiness gates
multispec status -p myproject
# JSON for programmatic use
multispec status -p myproject --format json
# HTML report with traffic light indicator
multispec status -p myproject --format html > status.html
# Markdown for embedding in docs
multispec status -p myproject --format markdown
# CI mode - exits non-zero if not ready
multispec status -p myproject --ci| Gate | Description |
|---|---|
| Required specs present | All required source specs (mrd, prd, uxd, trd) exist |
| Evaluations passing | No blocking evaluation findings |
| Approvals obtained | All required specs have approvals |
| Execution spec generated | spec.md has been created |
MultiSpec includes an MCP (Model Context Protocol) server for integration with AI coding assistants like Claude Code and Kiro CLI.
# Run MCP server directly
multispec-mcp| Tool | Status | Description |
|---|---|---|
list_projects |
Implemented | List all multispec projects |
get_project_status |
Implemented | Get project readiness status |
start_draft |
Implemented | Initialize a new draft |
update_draft |
Implemented | Save draft content |
eval_draft |
Implemented | Evaluate draft against rubric |
finalize_draft |
Implemented | Promote draft to final spec |
get_draft |
Implemented | Retrieve current draft |
discard_draft |
Implemented | Delete a draft |
get_spec |
Implemented | Get specification content |
get_eval |
Implemented | Get evaluation results |
run_eval |
Implemented | Run evaluation against rubric |
synthesize |
Implemented | Generate a spec |
reconcile |
Implemented | Generate execution spec |
approve |
Implemented | Approve a specification |
export |
Implemented | Export to target system |
| Target | Description |
|---|---|
speckit |
GitHub Spec-Kit format |
gsd |
Get Shit Done (PLAN.md, STATE.md) |
gastown |
GasTown formulas and beads |
gascity |
GasCity city.toml configuration |
openspec |
OpenSpec portable format (future) |
- structured-evaluation - Rubric and evaluation types
- graphize - Requirement graph extraction
# Build
make build
# Test
make test
# Lint
make lint
# Install locally
make installSee ROADMAP.md for detailed implementation status and CHANGELOG.md for release history.
Current Version: v0.2.0
| Phase | Status |
|---|---|
| Phase 0: Foundation | Complete |
| Phase 1: Directory Structure | Complete |
| Phase 2: Evaluation Engine | Complete |
| Phase 3: GTM & Technical Synthesis | Complete |
| Phase 4: Reconciliation Engine | Complete |
| Phase 5: Target Adapters | Partial (SpecKit) |
| Phase 6: Claude Code Integration | Complete |
| Phase 7: Graphize Integration | Complete |
| Phase 8: Advanced Features | Not Started |
MIT