§ Diagnostic

/detect

Anti-pattern scan across all dimensions.

What it does

The fast scan. /detect does one thing: flag the named anti-patterns and accessibility blockers present in a project and point to the commands that would fix them. The lightest of the diagnostic commands — fast, structured, optimized for speed of decision rather than depth of analysis.

Each Spruce reference file (Typography, Color, Spatial, Component, Motion, Voice, UX Patterns) ends with a catalog of named anti-patterns. /detect runs through those catalogs plus a small set of accessibility blockers, flags matches, notes locations, and points to the corrective command. The output names what’s wrong and tells you what to run next — nothing more.

Output

/detect · Stillpoint home

Scan result

Scanned Stillpoint’s home page · 6 anti-patterns across 3 domains, plus 1 accessibility note.

UX Writing

Systemic

  • The SaaS CTABoth hero and signup primary buttons use the generic "Get Started" default rather than Stillpoint's practice-led voice. Run /voice.
  • The Performative Proof"Join 10,000+ people finding their stillpoint" in the signup section — the wellness anti-reference the moodboard explicitly excluded. Run /voice.

Component

  • The Three-Equal-CardsPractices section uses three uniform cards in a parallel grid — the aggressive symmetry the moodboard's anti-references named against the established asymmetric direction. Run /refine.

Typography

  • The Missing ApostrophePractices section eyebrow renders as "TODAYS PRACTICES" without the apostrophe. Run /typeface.
  • The Untracked All-CapsPractices eyebrow renders at default tracking; missing the foundation's tracking-wide token the rest of the page's all-caps eyebrows already use. Run /typeface.
  • The Unmarked Pull QuotePull-quote section ships without opening or closing quotation marks; reads as caption rather than as quotation. Run /typeface.

Accessibility

  • Signup email input uses `aria-label` only with no associated visible `<label>` — works for screen readers but lacks semantic robustness. Run /fortify accessibility.

Highest-leverage next stepRun /voice first — the SaaS CTA and performative-proof copy are the most visible character drift on the page. Then /refine for the practices grid layout, and /typeface for the craft details.

End of output

/detect names what's wrong and tells you what to run. No severity tiers, no narrative analysis — that's /survey's and /critique's job.

When to use it

  • You want a quick scan for specific anti-patterns without a full review.
  • You’ve heard “there’s probably some AI slop in here” and want to know what specifically.
  • You’re triaging — deciding whether any corrective work is needed before committing to a full review.
  • You want a fast check before running /finish for ship readiness.
  • A quick sanity check during active development.
  • You’re asking “quick scan,” “anything wrong here,” or “any anti-patterns to flag.”

How to use it

/detect

By default /detect scans the full project. Pass a page, area, or file path to narrow the scope. The scan stays fast regardless — the command’s value is speed of decision, not depth of analysis. For a comprehensive review with severity tiers and action plans, use /survey; for narrative design-direction feedback, use /critique.

  • /detect home page
  • /detect components/Button.tsx

Anti-patterns it addresses

  • Diagnostic creep — the command starts producing severity ratings, action plans, or narrative analysis. That’s /survey’s role; /detect’s value is speed, and the moment it starts analyzing, it stops being fast.
  • Padded output — findings invented or stretched to make the report look thorough. A clean scan with three findings is a useful scan; a padded scan with twelve is noise.
  • Severity ratings on findings. /detect is binary — the anti-pattern is present or it isn’t. Severity belongs to /survey.
  • Instance lists when a pattern is systemic. The same anti-pattern appearing across forty files should be flagged once as systemic, not listed forty times.
  • Findings without command pointers. Every finding should connect to an action; an anti-pattern noted without a corrective command pointer leaves the user with nothing to do.

See also