Configuration Reference¶
Complete reference for visionspec.yaml configuration options.
Overview¶
Each VisionSpec project contains a visionspec.yaml file in its root directory. This file configures LLM providers, export targets, context sources, rubrics, and spec requirements.
Minimal Configuration¶
Most settings have sensible defaults. Only the project name is required.
Full Configuration¶
name: my-project
# Constitution file path (relative or absolute)
constitution: ../CONSTITUTION.md
# LLM provider configuration
llm:
provider: anthropic
model: claude-sonnet-4-20250514
temperature: 0.0
max_tokens: 8192
# Spec requirements configuration
spec_config:
mrd:
required: true
prd:
required: true
uxd:
required: false
trd:
required: true
ird:
required: false
# Custom rubrics configuration
rubrics:
directory: .rubrics
strict_mode: false
max_critical: 0
max_high: 0
max_medium: -1
overrides:
prd: custom/prd-v2.rubric.yaml
# Context sources for grounding
context:
cache_ttl: 30m
repositories:
- path: "."
analyze: [structure, deps, apis]
files:
- path: docs/architecture.md
type: architecture
# Export target configuration
targets:
default: speckit
speckit:
enabled: true
output_dir: export/speckit
Configuration Sections¶
name¶
The project identifier. Must be kebab-case.
constitution¶
Path to the constitution file, either relative to the project or absolute.
llm¶
Configure the LLM provider for evaluations and synthesis.
| Field | Type | Default | Description |
|---|---|---|---|
provider |
string | anthropic |
LLM provider (anthropic, openai, gemini) |
model |
string | varies by provider | Model identifier |
temperature |
float | 0.0 |
Randomness (0.0 = deterministic) |
max_tokens |
int | 8192 |
Maximum response length |
Example:
Environment variables:
LLM credentials are configured via environment variables:
ANTHROPIC_API_KEY- For Anthropic/ClaudeOPENAI_API_KEY- For OpenAIGOOGLE_API_KEY- For Google/Gemini
spec_config¶
Configure which specs are required and their settings.
| Field | Type | Default | Description |
|---|---|---|---|
required |
bool | varies | Whether spec is mandatory |
category |
string | auto | Spec category (source, gtm, technical) |
template |
string | spec type | Template to use |
rubric |
string | spec type | Rubric to use |
Built-in spec types and defaults:
| Spec | Category | Default Required |
|---|---|---|
mrd |
source | true |
prd |
source | true |
uxd |
source | false |
press |
gtm | false |
faq |
gtm | false |
narrative |
gtm | false |
trd |
technical | true |
ird |
technical | false |
Example:
spec_config:
mrd:
required: true
prd:
required: true
uxd:
required: true
rubric: uxd-mobile # Use custom rubric
trd:
required: true
# Custom spec type
api-spec:
required: true
category: technical
template: api
rubric: api
rubrics¶
Configure custom rubric loading for evaluations.
| Field | Type | Default | Description |
|---|---|---|---|
directory |
string | - | Directory containing .rubric.yaml files |
overrides |
map | - | Map spec types to specific rubric files |
strict_mode |
bool | false |
Require all categories to pass |
max_critical |
int | 0 |
Maximum critical findings allowed |
max_high |
int | 0 |
Maximum high findings allowed |
max_medium |
int | -1 |
Maximum medium findings (-1 = unlimited) |
Example:
rubrics:
directory: .rubrics
strict_mode: true
max_critical: 0
max_high: 0
max_medium: 3
overrides:
prd: enterprise/prd.rubric.yaml
Rubric files in the directory should be named {spec-type}.rubric.yaml (e.g., prd.rubric.yaml).
context¶
Configure context sources for grounding technical spec synthesis.
context.cache_ttl¶
How long to cache gathered context data.
context.repositories¶
Git repositories to analyze for context.
| Field | Type | Description |
|---|---|---|
path |
string | Local path to repository |
url |
string | Remote URL (alternative to path) |
branch |
string | Branch to analyze (for remote repos) |
include |
[]string | Glob patterns to include |
exclude |
[]string | Glob patterns to exclude |
analyze |
[]string | What to analyze: structure, deps, apis |
graphize |
string | Path to graphize graph or "auto" |
max_depth |
int | Maximum directory depth |
Example:
context:
repositories:
- path: "."
analyze: [structure, deps, apis]
exclude: ["vendor/**", "node_modules/**"]
- url: "https://github.com/org/shared-lib"
branch: main
include: ["pkg/**"]
context.graphize¶
Standalone graphize graphs for requirement tracing.
| Field | Type | Description |
|---|---|---|
path |
string | Path to graphize directory |
name |
string | Display name for the graph |
include_nodes |
[]string | Node types to include |
include_edges |
[]string | Edge types to include |
Example:
context:
graphize:
- path: .graphize
name: spec-graph
include_nodes: [requirement, user_story]
include_edges: [traces_to, depends_on]
context.files¶
Local files to include as context.
| Field | Type | Description |
|---|---|---|
path |
string | File path (supports globs) |
type |
string | Context type: architecture, adr, api_spec |
max_size |
int | Maximum file size in bytes |
Example:
context:
files:
- path: docs/architecture.md
type: architecture
- path: docs/adr/*.md
type: adr
- path: api/openapi.yaml
type: api_spec
context.mcp_servers¶
MCP servers for external context (not yet implemented).
| Field | Type | Description |
|---|---|---|
command |
string | Command to run |
args |
[]string | Command arguments |
env |
map | Environment variables |
config |
map | Server-specific config |
timeout |
duration | Connection timeout |
Example:
targets¶
Configure export target settings.
targets.default¶
Default export target when none specified.
targets.speckit¶
GitHub Spec-Kit format configuration.
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
bool | true |
Enable this target |
output_dir |
string | export/speckit |
Output directory |
branch_numbering |
string | sequential |
Numbering: sequential, timestamp |
targets.gsd¶
Get Shit Done format configuration.
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
bool | false |
Enable this target |
output_dir |
string | export/gsd |
Output directory |
model_profile |
string | balanced |
Profile: balanced, quality, budget |
targets.gastown¶
GasTown formula format configuration.
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
bool | false |
Enable this target |
formula_type |
string | convoy |
Type: convoy, workflow, expansion |
rig |
string | - | Rig name to use |
targets.gascity¶
GasCity orchestration format configuration.
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
bool | false |
Enable this target |
city_dir |
string | export/gascity |
Output directory |
Configuration Profiles¶
VisionSpec supports configuration profiles that provide pre-configured settings for different organizational stages.
Available profiles:
| Profile | Description |
|---|---|
0-1 |
Early-stage, minimal requirements |
startup |
Growing team, balanced requirements |
growth |
Scaling organization, comprehensive coverage |
enterprise |
Full compliance and traceability |
Export a profile to use as a starting point:
See the Profiles Guide for details.
Environment Variables¶
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Anthropic API key |
OPENAI_API_KEY |
OpenAI API key |
GOOGLE_API_KEY |
Google AI API key |
MULTISPEC_CONFIG |
Override config file path |
MULTISPEC_PROFILE |
Default profile to use |
See Also¶
- Profiles Guide - Pre-configured settings
- Custom Rubrics - Rubric customization
- Context Sources - Context configuration