Browse the docs

Skills — Craft and build

/crisp-brief

From vague ask to sharp brief.

Specialist extensionsuser-invoked

A converter for vague requests. /crisp-brief takes "can we improve the dashboard?" and interrogates it into a scoped, unambiguous .brief.md: the underlying problem, the specific user, observable success criteria, explicit scope boundaries, constraints, anti-goals, and the CRISP dimension that matters most.

It will not write the brief while ambiguity remains. Solution-shaped requests, feature-shaped success criteria, and open-ended scope are each flagged and pushed back with a sharpening question first.

Reach for it before design work starts:

  • A request has arrived as one vague sentence and everyone is nodding at different interpretations
  • Success criteria are feature-shaped — "build a dashboard" — rather than outcome-shaped
  • Scope keeps creeping because nothing was ever declared out of scope
  • You want /feature-design to start from a real problem statement instead of a guess
  • .brief.md written to project root
  • Scoped problem statement
  • Observable success criteria
  • CRISP dimension priority
Claude Code — /crisp-brief
.brief.md
ProblemEmpty dashboard — new users bounce 34% before creating a first project
UserProduct manager, first week, high intent but low context
SuccessFirst project created within 5 min of landing
Out of scopeOnboarding tour redesign
PriorityContextual Intelligent

Illustrative example output — not a real audit.

Four patterns get flagged before the brief is written:

  • The request describes a solution, not a problem — what makes users need this in the first place?
  • Success criteria describe a feature, not an outcome — what would a user be able to do if this worked?
  • Scope is open-ended — what is explicitly not included?
  • The user is unspecified — who exactly will interact with this design?
How many questions will it ask?

Two if .crisp.md exists — the request in one sentence, and the observable outcome that would prove it worked. Five if there is no project context. The interview is deliberately short; the sharpening happens in the pushback, not in the volume of questions.

How does it choose the CRISP priority?

It reads the request for dimension signals, asserts the most likely primary dimension, and asks you to confirm or correct — a recommendation, not a menu. Workflow interruption points to Seamless; confusion about what happened points to Contextual.

What is an anti-goal?

An explicit statement of what the design should not be — not a modal, not a settings page, not optimised for first-time users. Anti-goals stop the wrong reference pattern creeping in during design and review.

What do I do with the finished brief?

Run /feature-design. It reads .brief.md and .crisp.md together, so the flow it designs is grounded in the problem, the user, and the success criteria you just locked down.

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.