Browse the docs

Skills — Craft and build

/crisp-teach

Teach it once.

The core loopuser-invoked

A one-time onboarding interview. /crisp-teach works through five short sections — product, users, design system, benchmarks, known weaknesses — and writes the answers to .crisp.md in your project root.

That file is the context layer for the whole pack. Every other CRISP command reads it automatically, which is the difference between a generic design opinion and one grounded in your users, your design system, and the products you actually want to be measured against.

Run it once per project, before anything else. Reach for it again when:

  • You are about to run your first /crisp-audit or /crisp-review and .crisp.md does not exist yet
  • The product has repositioned — new primary user, new job-to-be-done, new stage
  • You have adopted or replaced a design system and the documented tokens are stale
  • The benchmark set has changed — the products you compare against are no longer the right ones
  • .crisp.md context file
  • User personas + jobs-to-be-done
  • Design system reference
  • Benchmark + anti-reference set
Claude Code — /crisp-teach
CRISP: Who are the primary users of this product?
Enterprise SaaS product managers, 50-500 person companies...
CRISP: What design system or UI library do you use?
Tailwind CSS + shadcn/ui, custom tokens...
CRISP: What does "great design" look like for this product?
Fast, no-surprise interactions. Think Linear or Stripe...
→ writing .crisp.md

Illustrative example output — not a real audit.

Five sections, asked one at a time. Good context makes every subsequent command more accurate, so the interview does not rush.

  • Product — what it is, what stage it is at, the primary action users take
  • Users — who they are, the job they are hiring the product for, what failure costs them
  • Design system — the library, the tokens, the components that are off-limits
  • Benchmarks — positive references, anti-references, and the CRISP dimension that matters most right now
  • Known weaknesses — the UX problems you already know about, and anything off-limits to audits
  • Audit findings reference your documented users, not a generic persona
  • Benchmark comparisons name the products you chose, not a default list
  • Violations are weighted by the priority dimension you set
  • You stop re-explaining the product at the start of every session
Do I need to run /crisp-teach before the other commands?

No — every command works without it. But without .crisp.md the evaluation is generic: default benchmarks, assumed users, no knowledge of your design system. The commands are built to read project context first, so ten minutes of interview sharpens everything that follows.

Should I commit .crisp.md to the repository?

Yes. It is plain markdown, contains no secrets, and the whole team benefits when every agent session starts from the same context. Treat it like any other project documentation.

How do I update the context later?

Run /crisp-teach again — it rewrites .crisp.md from a fresh interview. For a small correction, a changed benchmark or a new known issue, you can also edit the file directly; it is designed to be human-readable.

What happens if my answers are vague?

The output is only as sharp as the interview. If you cannot name a primary user or a benchmark yet, say so honestly — a documented gap is more useful to the other commands than an invented answer.

zsh
$ npx skills add @laith-wallace/crisp

Installs all fourteen CRISP skills and auto-detects your AI harness. Run /crisp-teach once per project first.

The CRISP Letter

Design evaluation, in writing.

Occasional letters on making AI agents produce work worth shipping. New skills announced here first. No noise.