Core Concepts¶
Specification Types¶
VisionSpec organizes specifications into three categories:
Source Specs (Human-Authored)¶
| Spec | Name | Purpose |
|---|---|---|
| MRD | Market Requirements | Market problem, audience, business goals |
| PRD | Product Requirements | User stories, functional requirements |
| UXD | User Experience Design | User journeys, interaction flows |
GTM Specs (LLM-Generated)¶
Generated using the Working Backwards methodology:
| Spec | Name | Input | Purpose |
|---|---|---|---|
| PRESS | Press Release | MRD | Vision document defining customer experience |
| FAQ | FAQ Document | MRD + PRESS | Challenges claims, surfaces gaps |
| NARRATIVE | Narrative (1P/6P) | MRD + PRD | Stakeholder alignment documents |
Product Specs (Human or Synthesized)¶
| Spec | Name | Input | Purpose |
|---|---|---|---|
| PRD | Product Requirements | MRD + PRESS + FAQ | Detailed requirements derived from vision |
PRD can be human-authored or synthesized from the Working Backwards chain. When synthesized, it derives testable requirements from the validated vision.
Technical Specs (LLM-Generated)¶
| Spec | Name | Input | Purpose |
|---|---|---|---|
| TRD | Technical Requirements | MRD + PRD + UXD + CONSTITUTION | Architecture, APIs, data models |
| TPD | Test Plan Document | PRD + TRD + UXD | Test cases, automation, quality gates |
| IRD | Infrastructure Requirements | TRD + CONSTITUTION | Deployment, scaling, operations |
All synthesized documents are committed to git and can be edited by humans or refined collaboratively with AI assistants.
Directory Structure¶
docs/specs/
├── CONSTITUTION.md # Repo-level governance (required)
├── ROADMAP.md # Cross-project priorities
└── {project}/ # kebab-case project name
├── source/ # Human-authored
│ ├── mrd.md
│ ├── prd.md
│ └── uxd.md
├── gtm/ # LLM-generated GTM
│ ├── press.md
│ ├── faq.md
│ └── narrative.md
├── technical/ # LLM-generated technical
│ ├── trd.md
│ ├── tpd.md
│ └── ird.md
├── eval/ # Evaluation results
│ ├── mrd.eval.json
│ ├── prd.eval.json
│ └── ...
├── spec.md # Reconciled execution spec
├── current-truth.md # Post-ship maintained state
└── visionspec.yaml # Project configuration
Configuration Profiles¶
Profiles bundle spec requirements, templates, and rubrics for different use cases:
| Profile | Use Case | Required Specs |
|---|---|---|
0-1 |
Idea validation | hypothesis |
startup |
Pre-PMF startups | prd |
growth |
1-N scaling | prd, uxd, faq |
enterprise |
Post-PMF enterprises | prd, mrd, uxd, trd, press, faq |
# Use a profile when initializing
visionspec init my-project --profile startup
# List available profiles
visionspec profiles list
# Export a profile for customization
visionspec profiles export enterprise ./my-profile
Organizations can create custom profiles with their own templates and rubrics. See the Custom Profiles Guide for details.
Readiness Gates¶
Projects progress through readiness gates:
- Required specs present - All required source specs exist
- Evaluations passing - No critical/high findings
- Approvals obtained - Required specs have approvals
- Execution spec generated - spec.md created via reconciliation
Evaluation System¶
Each spec can be evaluated using LLM-as-a-Judge:
- Rubrics define evaluation criteria per spec type
- Findings are categorized by severity (critical, high, medium, low)
- Decisions are pass, conditional, or fail
Evaluation results are stored as {spec}.eval.json in the eval/ directory.
Reconciliation¶
Reconciliation combines all approved specs into a unified execution spec:
- Loads all approved source, GTM, and technical specs
- Detects conflicts and missing traceability
- Generates
spec.md(unified execution spec) - Generates
spec.eval.json(reconciliation evaluation)
Target Adapters¶
The reconciled spec.md can be exported to various execution systems:
| Target | Format | Use Case |
|---|---|---|
| SpecKit | spec.md, plan.md, tasks.md | GitHub-based workflows |
| GSD | PLAN.md, STATE.md | Get Shit Done methodology |
| GasTown | TOML formulas, Beads | Multi-agent orchestration |
| GasCity | city.toml | Agent city configuration |
| OpenSpec | JSON/YAML | Portable interchange format |
CONSTITUTION.md¶
The CONSTITUTION.md file at docs/specs/CONSTITUTION.md defines repo-level constraints and patterns:
- Technology choices
- Coding standards
- Architecture patterns
- Security requirements
- Performance targets
- Quality and testing requirements
Quality and Testing Requirements¶
The CONSTITUTION should define universal testing guardrails:
## Quality and Testing Requirements
### Test Coverage
- Minimum unit test coverage: {threshold}%
- All public APIs must have integration tests
- All user journeys must have E2E tests
### CI/CD Gates
- All tests must pass before merge
- No deployment without passing integration tests
- Performance regression threshold: {X}%
### Test Types Required
- Unit tests for all business logic
- Integration tests for API boundaries
- E2E tests for critical user journeys
- Security tests for authentication/authorization
These guardrails are enforced in the TPD (Test Plan Document) and evaluated during synthesis.
All generated specs must adhere to the constitution.
Requirement Graphs¶
VisionSpec extracts requirement graphs from specs for traceability analysis:
- Nodes: requirements, user stories, constraints, decisions, sections
- Edges: traces_to, derived_from, contains
Graphs enable visualization and traceability analysis:
# Extract graph from specs
visionspec graph extract
# Export as interactive HTML
visionspec graph export --format html
# Query specific node types
visionspec graph query --type requirement --spec prd
See Graph Command for full documentation.
Post-Ship Alignment¶
After shipping, current-truth.md maintains alignment between specs and reality:
- Documents actual capabilities
- Notes divergences from spec
- Tracks limitations discovered in production
- Updates GTM docs with alignment notes