Release Notes - v0.5.0¶
Release Date: 2026-01-30
Overview¶
This release marks the rename from structured-requirements to structured-plan and introduces a unified planning system. The repository now provides a complete set of planning document types (PRD, MRD, TRD) with framework-agnostic goal support for both OKR and V2MOM methodologies.
Highlights¶
- Repository Rename:
structured-requirements→structured-plan - Unified CLI: New
splanCLI replacessrequirements - Homebrew Support: Install via
brew install grokify/tap/splan - Framework-Agnostic Goals: New
goals/package supporting both OKR and V2MOM - Common Types Extraction: Shared types moved to
common/package for consistency - Dynamic Roadmap Labels: Roadmap tables automatically use correct terminology (Objectives/Methods)
Breaking Changes¶
Module Path Change¶
The Go module path has changed:
// Before
import "github.com/grokify/structured-requirements/prd"
// After
import "github.com/grokify/structured-plan/requirements/prd"
GitHub automatically redirects the old repository URL, but you should update your imports.
Package Structure¶
| Before | After |
|---|---|
prd/ | requirements/prd/ |
mrd/ | requirements/mrd/ |
trd/ | requirements/trd/ |
| (new) | goals/ |
| (new) | goals/okr/ |
| (new) | goals/v2mom/ |
| (new) | roadmap/ |
New Features¶
Framework-Agnostic Goals¶
The new goals/ package provides a unified interface for both OKR and V2MOM:
import "github.com/grokify/structured-plan/goals"
// Create OKR-based goals
g := goals.NewOKR(okrSet)
// Create V2MOM-based goals
g := goals.NewV2MOM(v2mom)
// Framework-agnostic access
items := g.GoalItems() // Returns Objectives (OKR) or Methods (V2MOM)
results := g.ResultItems() // Returns Key Results (OKR) or Measures (V2MOM)
// Dynamic labels
g.GoalLabel() // "Objectives" or "Methods"
g.ResultLabel() // "Key Results" or "Measures"
PRD ProductGoals Field¶
PRDs now support the framework-agnostic Goals wrapper:
// New field
doc.ProductGoals = goals.NewOKR(okrSet) // or goals.NewV2MOM(v2mom)
// Helper method (prefers ProductGoals, falls back to legacy Objectives)
goals := doc.GetProductGoals()
Dynamic Roadmap Labels¶
Roadmap swimlane tables now use framework-appropriate labels:
// Generates table with "Objectives" / "Key Results" for OKR
// or "Methods" / "Measures" for V2MOM
table := doc.ToSwimlaneTableWithGoals(opts)
Common Types Package¶
Shared types extracted to common/ for consistency across PRD/MRD/TRD:
Status- Document lifecycle statusRisk,RiskProbability,RiskImpact,RiskStatusAssumption,Constraint,ConstraintTypeGlossaryTerm,CustomSectionOpenItem,Option,OpenItemResolutionDecisionRecord,DecisionStatusPriority,EffortLevel,RiskLevelNonGoal- Structured out-of-scope items
Migration Guide¶
Update Imports¶
# Find and replace in your codebase
find . -name "*.go" -exec sed -i '' \
's|github.com/grokify/structured-requirements|github.com/grokify/structured-plan|g' {} +
Update Package Paths¶
// Before
import "github.com/grokify/structured-requirements/prd"
// After
import "github.com/grokify/structured-plan/requirements/prd"
Using Framework-Agnostic Goals¶
To migrate from OKR-only to framework-agnostic goals:
// Before: OKR-only
for _, okr := range doc.Objectives.OKRs {
// process objectives
}
// After: Framework-agnostic
goals := doc.GetProductGoals()
for _, item := range goals.GoalItems() {
// process goals (works with OKR or V2MOM)
}
Ecosystem¶
The structured-plan ecosystem now includes:
| Repository | Purpose |
|---|---|
structured-plan | Planning documents (PRD, MRD, TRD, OKR, V2MOM, Roadmap) |
structured-tasks | AI agent task tracking (renamed from structured-roadmap) |
structured-changelog | Release management |
structured-evaluation | Quality assessment |
Installation¶
Homebrew (macOS/Linux)¶
Go Install¶
Go Module¶
Download Binary¶
Pre-built binaries for Linux, macOS, and Windows are available on the releases page.
CLI Changes¶
The CLI has been renamed from srequirements to splan with a new hierarchical command structure:
# Old (deprecated)
srequirements prd generate file.json
# New
splan requirements prd generate file.json
splan req prd generate file.json # 'req' is an alias
Available Commands¶
splan
├── merge # Merge multiple JSON files
├── requirements # Requirements documents (alias: req)
│ ├── prd # PRD commands (generate, validate, check, score, filter)
│ ├── mrd # MRD commands (generate, validate)
│ └── trd # TRD commands (generate, validate)
└── schema # JSON Schema generation
Full Changelog¶
See CHANGELOG.md for complete details.