v0.3.0 Release Notes¶
Release Date: 2026-05-24
Overview¶
VisionSpec v0.3.0 introduces composability, enabling organizations to build custom CLI tools using visionspec as a library. This release includes configuration profiles for different product lifecycle stages, custom template and rubric support, and example organization CLIs.
Highlights¶
- CLI composability - use visionspec as a library to build custom organization CLIs
- Configuration profiles for different product lifecycle stages (0-1, startup, growth, enterprise)
- Custom templates and rubrics with Loader interfaces and YAML support
Features¶
CLI as Library¶
Organizations can now import pkg/cli to build custom CLI tools:
package main
import (
"github.com/ProductBuildersHQ/visionspec/pkg/cli"
"github.com/ProductBuildersHQ/visionspec/pkg/profiles"
"github.com/spf13/cobra"
)
func main() {
root := &cobra.Command{Use: "org-spec"}
// Load a profile
profile, _ := profiles.DefaultLoader().Load("enterprise")
cfg := cli.ConfigFromProfile(profile)
// Add visionspec commands
cli.AddCommandsTo(root, cfg)
// Add custom commands
root.AddCommand(customCmd())
root.Execute()
}
Configuration Profiles¶
Profiles define which specs are required for different organizational contexts:
| Profile | Required Specs | Use Case |
|---|---|---|
0-1 |
hypothesis | Idea validation phase |
startup |
prd | Pre-PMF startups |
growth |
prd, uxd, faq | 1-N scaling phase |
enterprise |
mrd, prd, uxd, trd, press, faq, spec | Post-PMF enterprises |
Profile CLI Commands:
# List available profiles
visionspec profiles list
# Show profile details
visionspec profiles show enterprise
# Initialize project with profile
visionspec init my-project --profile startup
Custom Templates¶
Create organization-specific templates using the Loader interface:
// Use embedded templates
cfg.TemplateLoader = templates.NewChainLoader(
templates.NewEmbedFSLoader(orgTemplates, "templates"),
templates.EmbeddedLoader(), // Fallback to defaults
)
Custom Rubrics¶
Define rubrics in YAML format:
spec_type: prd
name: "Organization PRD Rubric"
categories:
- id: security
name: "Security Requirements"
description: "Security considerations documented"
weight: 0.25
pass_criteria:
max_critical: 0
max_high: 2
Example Organization CLIs¶
The examples/ directory includes ready-to-use organization CLIs:
| Example | Profile | Description |
|---|---|---|
0-1-product |
0-1 | Hypothesis-driven development |
pre-pmf-startup |
startup | Minimal specs for speed |
1-n-growth |
growth | Metrics-driven scaling |
post-pmf-enterprise |
enterprise | Full spec suite with compliance |
org-cli |
custom | Custom templates without profiles |
Build an example:
API Reference¶
pkg/cli¶
// AddCommandsTo adds all visionspec commands to a root command
func AddCommandsTo(root *cobra.Command, cfg *Config)
// Commands returns individual commands for selective inclusion
func Commands(cfg *Config) *CommandSet
// ConfigFromProfile creates a Config from a profile
func ConfigFromProfile(profile *profiles.Profile) *Config
pkg/profiles¶
// Loader loads configuration profiles
type Loader interface {
Load(name string) (*Profile, error)
Available() []string
}
// DefaultLoader returns the embedded profile loader
func DefaultLoader() Loader
pkg/templates¶
// Loader loads spec templates
type Loader interface {
Load(specType types.SpecType) (string, error)
Available() []types.SpecType
}
// NewChainLoader tries loaders in order until one succeeds
func NewChainLoader(loaders ...Loader) Loader
pkg/rubrics¶
// Loader loads evaluation rubrics
type Loader interface {
Load(specType types.SpecType) (*RubricSet, error)
Available() []types.SpecType
}
// NewChainLoader tries loaders in order until one succeeds
func NewChainLoader(loaders ...Loader) Loader
Installation¶
Migration Guide¶
No breaking changes. Existing projects continue to work with default visionspec behavior.
To use profiles in existing projects:
- Add
--profileflag when initializing new projects - Or update
visionspec.yamlwith profile settings
What's Next¶
See ROADMAP.md for planned features including:
- Phase 10: Platform enhancements (testing, MCP resources, export targets)
- Profile CLI enhancements (create, extend, validate)
- Spec versioning and cross-project analysis
- CI/CD integration (GitHub Actions, pre-commit hooks)