§ Diagnostic
/survey
Structured review across every dimension.
What it does
The diagnostic workhorse — a comprehensive structured review across all seven Spruce dimensions, calibrated to the product’s context, with each finding paired to a fix and grouped by severity. The output is methodical: characterization paragraph, severity-tiered findings, numbered action plan.
/survey doesn’t modify code. It produces findings the user can act on, usually by running the corrective commands the findings point to. The four severity tiers (Critical / Significant / Polish / Opportunity) calibrate to context — a missing focus state is critical on accessibility-sensitive products and significant on internal tools. Findings depend on what the product is trying to be, which is what the .spruce.md context file establishes.
Output
/survey · Stillpoint home
Survey
Reviewed Stillpoint’s home page across all seven Spruce dimensions. The foundation is in strong shape — typography commits to the Söhne + Lora pair, the warm-neutral palette is calibrated, the meditation photography is on direction. The issues below are voice slips and craft details, not character problems.
8 findings · 0 critical · 4 significant · 3 polish · 1 opportunity
Significant (4)
Generic SaaS-default CTA copy
UX Writing
Both the hero and signup primary buttons say "Get Started" — the SaaS CTA pattern (friendly-professional default the moodboard warned against). Stillpoint's voice is calm-supportive-friend; "Begin Practice" or "Start Practicing" matches the established register.
Fix: Rewrite to specific practice-led labels. Run
/voice.Performative social-proof line
UX Writing
"Join 10,000+ people finding their stillpoint" beneath the signup form is the performative-proof pattern the .sketch.md anti-references explicitly excluded — no "join thousands" copy. Reads as wellness-influencer marketing rather than as Stillpoint's voice.
Fix: Remove or rewrite to a quieter framing. Run
/voice.Three-equal-cards practices grid
Component Patterns
The featured-practices section uses three identical cards in a uniform grid — the three-equal-cards anti-pattern the moodboard's anti-references named as "aggressive symmetry" against the established "quietly asymmetric" direction. Cards are clean; layout archetype is the issue.
Fix: Move to an asymmetric or tiered arrangement. Run
/refine.Missing apostrophe in "TODAYS PRACTICES" eyebrow
Typography
The practices section eyebrow renders as "TODAYS PRACTICES" without the apostrophe. Small but visible craft slip; reads as undercared on first glance at the section.
Fix: Add apostrophe; convert to smart apostrophe. Run
/typeface.
Polish (3)
Practices eyebrow renders at default tracking
Typography
The practices section eyebrow is the only all-caps eyebrow on the page without the foundation's tracking-wide token applied. The rest already use it; the holdout reads as defaulted next to the established rhythm.
Fix: Apply --stp-tracking-wide to the practices eyebrow. Run
/typeface.Pull quote rendered without quote marks
Typography
The pull-quote section's editorial sentence runs without opening or closing quotation marks. Pull quotes carry quote marks by editorial convention; the absence reads as caption rather than as quotation.
Fix: Add opening and closing curly quotes around the pull quote. Run
/typeface.Practice cards lack interactivity affordance
Component Patterns
Cards have a hover border-color shift but no lift or shadow change — interactivity reads as implicit rather than explicit. On a content-marketing surface this matters less; for a product home where cards are the primary affordance, more explicit signaling helps.
Fix: Add subtle elevation shift on hover. Run
/refine.
Opportunity (1)
Personalization banner has no fallback
UX Decision Patterns
The banner /decide produced renders a hardcoded recommendation; if no time-of-day signal or no recommendation is available, the banner has no quiet fallback state. Worth designing the empty/silent path.
Fix: Add a fallback state for missing recommendations. Run
/design.
Recommended next steps
- Address the voice slips first — they're the most visible character drift on the page. Run
/voice. - Reconsider the practices grid layout. Three-equal-cards contradicts the established direction; an asymmetric arrangement is the moodboard's call. Run
/refine. - Typography craft pass — apostrophes, letter-spacing, smart-quote conversion across the page. Run
/typeface.
End of output
/survey produces findings the user can act on, calibrated to the product's context and grouped by severity. Each finding is a specific observation, not an opinion — and each ends in a command that addresses it.
When to use it
- You want a comprehensive understanding of an interface’s current state before making changes.
- A codebase has grown organically and accumulated issues need to be assessed.
- Preparing to ship and want a final quality review identifying what to address and at what severity.
- Inherited work needs assessment before figuring out what to do with it.
- You’re asking “what’s wrong with this,” “review this,” or “tell me what needs work.”
How to use it
By default /survey reviews the full project across all seven dimensions. Pass a scope (page, area, directory) to focus the review while still considering how that scope relates to the rest of the project. /survey calibrates findings to the .spruce.md context file when one exists; without context, findings that depend on character (density, voice register) are flagged as needing context to evaluate.
- /survey dashboard
- /survey checkout-flow
Anti-patterns it addresses
- Forty-finding surveys that overwhelm rather than guide. A survey that’s exhaustive isn’t actionable — aim for representative findings on systemic issues, not every instance of a recurring problem.
- Padded Opportunity tiers with filler items invented to look thorough. A genuine opportunity finding is rare; if there are no real ones, skip the section.
- Findings reported as opinions (“could use more whitespace”) rather than as observations grounded in specific principles or measurable criteria.
- Severity assigned mechanically rather than calibrated to context. Identical findings get different severities in different products — what’s critical for a consumer product may be minor for an internal tool.
- Missing the action plan. Without numbered next steps, the survey is a problem inventory rather than a direction. The closing should answer “what to do first” in three or four prioritized moves.