§ Discovery
/audit
HCD-grounded evaluation against named personas and their jobs.
What it does
Where /survey, /uxreview, /critique, and /detect frame findings against general principles, /audit frames them against the specific HCD artifacts — `.personas.md`, `.jtbd.md`, `.journeys.md`, `.scenarios.md`. Every finding is tied to a named persona doing a named job, with the journey or scenario that surfaced it called out explicitly. The frame is “this empty state fails Maya doing her morning practice job because…” rather than “every list needs an empty state.”
Findings include severity (Blocking / Significant / Friction / Polish), confidence (research-grounded / context-derived / assumed), and behavioral anti-pattern when applicable (Choice Overload, Premature Commitment, Cognitive Tax, Missing Recovery, Engagement Trap, Persona Mismatch). Cross-persona conflicts get surfaced as deliberate /decide calls rather than averaged away. /audit doesn’t modify code; it produces findings the team acts on.
Output
/audit · Stillpoint
Audit
The audit surfaces a clear pattern: Stillpoint serves Maya’s daily-use job well at most touchpoints (the personalization banner placement, the voice register, the pull-quote moment all earn the positive findings) but has two Blocking gaps — the personalization banner’s hardcoded recommendation breaks trust for Maya in the morning, and the post-practice close screen is undefined and would default to engagement-trap patterns that violate Maya’s emotional job. Jordan’s first-impression flow has a Significant friction in the practice detail page (well-crafted but dense for first-time visitors) and an open cross-persona tradeoff at the hero secondary action that the team should /decide deliberately. The voice + character work is the strongest layer; the state-coverage + flow-design work is where the remaining gaps live.
Scope · Home page → personalization banner → practice detail page → practice begins → post-practice close. Scoped to the daily-use flow (the highest-stakes flow for the primary persona).
Artifacts read · .personas.md — 2 personas (Maya primary, Jordan secondary). Both context-derived. · .jtbd.md — 6 jobs across 3 layers (functional, emotional, social). All context-derived. · .journeys.md — 1 journey scope (Maya morning practice) mapped in both current-state and future-state. Both context-derived. · .scenarios.md — 2 scenarios (Maya morning kitchen, Jordan first-time curious). Both context-derived.
Findings shape · 2 Blocking, 2 Significant, 1 Friction, 1 Polish, plus 3 positive findings.
Positive findings (3)
Personalization banner placement
Working
WhereHome page — personalization banner sits above the practices grid, recommendation visible immediately on app open.
WhatMaya can begin the recommended practice in one tap from app open without scrolling, scanning, or choosing. The banner removes the home-scan friction that the current-state journey identified at touchpoint 4.
AffectsMaya doing F1 (settle the nervous system before the day’s demands arrive). Removes the journey’s biggest current-state friction.
Voice register
Working
WhereAcross home, banner, practice detail page, signup section.
WhatCopy is calm-supportive without performative warmth. CTAs name the action specifically (“Begin practice,” “Start practicing”) rather than reaching for SaaS-default verbs. The voice work that /voice did is intact.
AffectsBoth Maya (E1: small good choice) and Jordan (E1: honest not packaged) — the voice doesn’t signal lifestyle product, which serves both personas’ social jobs simultaneously.
Pull-quote moment
Working
WhereHome page — pull quote section with candle still-life.
WhatThe Lora editorial moment with curly quotes + warm material image is the page’s signature beat. Reads as work made by someone who has actually meditated rather than someone selling meditation.
AffectsBoth personas’ social jobs (S1: not chasing wellness trends). The moment is concrete proof of the brand’s commitment.
Cross-persona summary
Findings affecting multiple personas
- Both positive findings about voice register and pull-quote moment apply to both personas’ social jobs simultaneously — the strongest design wins so far are the ones that serve both.
- The signup form non-functional state affects both personas at the same touchpoint; fixing it serves both.
Cross-persona conflicts
- The personalization banner’s strength for Maya (removes choice friction) may be a weakness for Jordan (feels presumptuous when the app doesn’t know her). Currently the banner serves Maya cleanly; whether the framing also serves Jordan is the open question. Surface as /decide.
- The hero secondary action (“Or see how it works”) is the explicit cross-persona tradeoff control. Maya doesn’t need it; Jordan may. Current treatment is a quiet text link, which is the conservative middle. Worth a /decide pass to confirm the resolution.
Recommended next steps
- Address the two Blocking findings first — implement the personalization banner’s time-of-day adaptation (/fortify) and design the post-practice close screen (/design). These are the highest-leverage moves. Run
/fortify + /design - Then address the practice detail page interstitial issue. Surface as a /decide call: design banner-direct path for recommendation flows; keep detail-page-mediated path for browsing-from-grid. Run
/decide - Run /critique on the practice detail page through Jordan’s lens specifically. The page is well-crafted for general use; the question is whether it reads as “quiet introduction” or as “sales material” to a skeptical first-time visitor. Run
/critique - Defer the signup form state-coverage work (/fortify) and the footer non-functional links (/finish) until the Blocking + Significant findings are resolved. Run
Sequencing note - Re-audit after the corrective work above. Expect the post-practice close + personalization banner adaptation findings to clear. The practice detail page interstitial finding will move from Significant to either resolved (if /decide produces the banner-direct path) or accepted-tradeoff (if the team chooses to keep current behavior). Run
/audit (re-run)
End of output
/audit produces HCD-grounded findings — every issue tied to a named persona doing a named job, with severity, confidence, and the corrective command that addresses it. The frame is 'this fails Maya doing her morning practice' rather than 'every list needs an empty state.'
When to use it
- HCD artifacts exist (at minimum `.personas.md` + `.jtbd.md`) and you want findings tied to specific users + jobs.
- A /survey returned generic findings and you want a sharper, persona-grounded read on what to address first.
- Cross-persona conflicts are likely (multiple personas with diverging jobs at the same touchpoint) and you want them surfaced explicitly.
- Behavioral anti-patterns (Choice Overload, Engagement Trap, Cognitive Tax) are suspected and you want them named with their HCD-grounded justification.
- Preparing to ship and want a final HCD-grounded read alongside the cross-dimensional /finish polish pass.
How to use it
By default /audit reads every Discovery artifact in the project and evaluates the full surface against them. Pass a scope (page, flow, area) to focus the audit. Without HCD artifacts in place, /audit recommends running /personas + /jtbd first rather than degrading to generic findings — it’s explicitly the HCD-grounded lens.
- /audit home page
- /audit checkout flow
Anti-patterns it addresses
- Findings framed against general UX principles (“every list needs an empty state”) instead of against specific personas + jobs. That’s /uxreview’s frame; /audit’s value is the HCD grounding.
- Running /audit without HCD artifacts and producing generic findings anyway. The command should redirect to /personas + /jtbd rather than degrading silently.
- Cross-persona conflicts averaged away in single recommendations (“design for both”) rather than surfaced as deliberate /decide tradeoffs.
- Severity assigned mechanically (every empty state = Significant) rather than calibrated to which persona it affects, doing which job, in which scenario.
- Behavioral anti-patterns named without justification. “This is Choice Overload” is weaker than “This is Choice Overload because Maya’s morning context can’t carry a six-option choice — surfaced in her morning kitchen scenario as half-attention.”