v0.2.0 — Discovery tier
The first major system addition: a new Discovery tier between Setup and Generative that grounds design work in named users and the jobs they're hiring the product to do.
Spruce now reasons about who the design serves before reasoning about how it should look.
Five new commands:
/personas— establish primary + secondary user types; writes.personas.md./jtbd— articulate functional, emotional, and social jobs per persona; writes.jtbd.md./journey— map a persona doing a specific job through real touchpoints with emotional arc, friction, and opportunity; writes.journeys.md./scenarios— anchor design decisions in concrete moments (persona + job + lived narrative + design implication); writes.scenarios.md./audit— HCD-grounded evaluation against named personas + jobs. The diagnostic counterpart of the Discovery tier; the only diagnostic command that frames findings against specific users rather than against general principles.
Six new reference files:
- Human-Centered Design (orchestrating reference for the tier)
- Personas
- Jobs-to-be-Done
- User Journeys
- Scenarios
- Research and Evaluation
New patterns:
- The three-mode pattern. Every Discovery command runs in one of three modes: draft from
.spruce.mdcontext when no research exists, structure user-supplied research when it does, or pressure-test a finished artifact for assumptions.
Context-derived artifacts are labelled honestly — every persona, job, or journey carries a confidence line so downstream commands know what to weight as a structured assumption versus a research-grounded finding. /auditcross-referenced from the existing diagnostics (/survey,/uxreview,/critique,/detect) and from/finish. Each reference names the distinct value of HCD-grounded findings versus general-principle findings;/audit
recommends running/personas+/jtbdfirst if the artifacts don't exist yet, rather than degrading to generic findings.
System shape after v0.2.0: 25 commands across 5 tiers (Setup, Discovery, Generative, Diagnostic, Corrective). Every command in the loop reads from .spruce.md plus the four Discovery context files when they exist. Discovery is
optional; the loop reads better with it in place.