Release Notes v0.4.0¶
Released: 2026-11-01
Two strategy and improvement formats join the projections of an impact model. A V2MOM is drawn from the model's vision, values, and pathways, and a DMAIC metrics document from the programs measured often enough to improve with statistics. The README now says what the format is: a causal model that states which interventions should change which outcomes, and why.
This release is additive for documents and the command line. One Go function,
prismx.ToOKR, returns a type from a different module; see
Upgrading.
Highlights¶
- V2MOM.
export v2momwrites the vision and values from the context, one method per pathway with its interventions as projects, measures from each pathway's North Star and guardrails, and obstacles from risks and the assumptions not yet shown to hold. - DMAIC. Mark a pathway
projections: [dmaic], and lint checks that its indicators are measured often enough and from enough people.export dmaicwrites each indicator as a metric with its observations, control limits once there are enough points, root causes, improvement initiatives, and a phase. - A course catalog example. A fictional nonprofit's free on-demand courses, run with DMAIC on weekly completion with a post-course survey as guardrail.
New Features¶
V2MOM projection¶
| V2MOM | From the impact model |
|---|---|
| Vision | context.vision |
| Values | context.values, new in this release, in order |
| Methods | one per pathway; its interventions are the method's projects |
| Measures | each pathway's North Star, one metric that matters, and guardrails |
| Obstacles | risks, and high or critical assumptions not yet shown to hold, by their assessed status with -O |
A model without a vision, values, or a pathway is refused with a message naming what to add. The V2MOM guide maps each part and follows one pathway from the model to the V2MOM.
DMAIC projection¶
impact-model lint impact-model.yaml
impact-model export dmaic impact-model.yaml -O observations.yaml -o dmaic.json
Three new lint rules check the indicators of a pathway marked for DMAIC, and only those:
IMP-DMA-001: it states a frequency and a data sourceIMP-DMA-002: it is measured at least 20 times a yearIMP-DMA-003: a survey indicator gets at least 30 responses per measurement
The export makes each marked pathway a category and each indicator with a numeric baseline and target a metric. Observations become data points, without disaggregated slices, and control limits are those of an individuals chart, computed only from 20 or more points. Root causes come from the problem tree, initiatives from the pathway's interventions, and the phase is derived by a documented convention. Process capability is not filled, because an impact model records targets and not specification limits. The DMAIC guide explains each part.
Model additions¶
context.values: the principles that guide how the organization works, most important first. A value needs a name (VAL-DOC-006), and names are unique (VAL-DOC-007).pathway.projections: what else a pathway is meant for. Its one value isdmaic. An unknown or repeated projection is reported (VAL-PTH-007).
Examples¶
examples/course-catalog is new: a pathway marked for DMAIC, weekly platform,
survey, and forum indicators, and 24 weeks of observations. Some indicators are
flagged by the DMAIC lint rules on purpose. The intermediary example gains
values, so it exports as a V2MOM.
Documentation¶
- The README and the docs index describe the impact model as a causal model, and show V2MOM and DMAIC as available projections.
- New V2MOM and DMAIC guides, written for readers who already know those formats.
- The glossary says how each projection names an intervention: an activity in
the logic model and a project in V2MOM, delivered by initiatives linked
through
initiativeRefs.
Installation¶
go install github.com/ProductBuildersHQ/impact-model/cmd/[email protected]
Go 1.26.5 or later. The optional programs are the same as in v0.3.0.
Upgrading¶
Documents and the command line¶
Nothing to change. Every new field is optional, specVersion stays "0.1", and
the OKR export writes the same JSON as before. A model that was GO stays GO: the
new lint rules only check pathways marked for DMAIC.
Go code that calls prismx.ToOKR¶
The OKR types moved from structured-goals into prism-roadmap, where the other
PRISM tools use them, and structured-goals is deprecated. ToOKR now returns
*okr.OKRDocument from the new package. Change the import:
// was: import "github.com/grokify/structured-goals/okr"
import "github.com/grokify/prism-roadmap/goals/okr"
The fields and the JSON they write are the same.
Compatibility¶
An API comparison against v0.3.0 reports the new types and functions above as
compatible changes, and one incompatible change: the result type of
prismx.ToOKR. Dependencies: prism-roadmap v0.22.0 and prism-core v0.6.0, and
structured-goals is no longer used.
Known Limitations¶
- Disaggregated observations. The status of an indicator can take a disaggregated observation, one for a single group, as its latest overall value. This affects reports and the OKR and V2MOM exports; the DMAIC export leaves such observations out. What a disaggregated observation means for the overall status is not yet specified.
- V2MOM dates. A model with no created or updated date exports them as the zero time, because the V2MOM format does not omit an empty date.
- DMAIC phases are derived by convention; the model does not record them.
- The limitations of v0.3.0 still apply.