agentleFS
viknesh20-20viknesh20-20/claude-code-tool-kit/.claude/skills/design-flow/SKILL.md

design-flow

Skill7 starsChanged 7 months agoMITView on GitHub

Designs an end-to-end user flow before any pixels are drawn — entry point, screens, decisions, branches, error/recovery paths, edge cases, microcopy hooks. Outputs a structured spec engineering and design can build from.

9 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 11 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before designing anything, get answers in one round:

    line 20
  2. Distinctive:

    Do not start designing without these.

    line 29
  3. Distinctive:

    Every flow has decisions. Build a table:

    line 46
  4. Distinctive:

    Every alternative path that's reachable must have its own design.

    line 53
  5. Distinctive:

    Don't ship "Submit" or "Error: invalid input." Specify the actual copy.

    line 86
  6. Very specific:

    Write the result to .claude/memory/project/flow-<name>.md so future sessions inherit it.

    line 94
  7. Distinctive:

    Don't design without the 6 questions answered.

    line 155
  8. Distinctive:

    Don't draw pixels at story altitude.

    line 156
  9. Distinctive:

    Don't skip edge cases — they're the point.

    line 157
  10. Distinctive:

    Don't design dark patterns.

    line 158
  11. Distinctive:

    Don't recommend a flow longer than the goal requires.

    line 159
  12. Distinctive:

    Always cite prior art when borrowing patterns from competitors.

    line 160

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/design-flow

Design a complete user flow at the right altitude. Most flow design fails because it stops at the happy path — this skill walks the full surface (decisions, branches, edge cases, recovery) and outputs something engineers can actually build.

When to use

  • Designing a new feature flow before any UI work.
  • Spec'ing an existing flow that's never been documented.
  • Translating a vague product goal ("we need onboarding") into a concrete user-facing journey.
  • Comparing your flow against how Stripe / Linear / Notion / Shopify handle the same problem.

Operating method — ASK FIRST

Before designing anything, get answers in one round:

  1. Who is the user? Persona + context. Not "a user" — "a small-business owner whose first action is connecting a bank account on a phone."
  2. What's their goal? The thing they want completed.
  3. What's the success criterion? Measurable. "First-time user can complete in under 90 seconds, ≤ 3 attempts."
  4. What's the entry point? Where do they arrive from? Email link, marketing CTA, in-app banner, deep link from another product?
  5. What's the hardest case? The edge that's breaking it today (or the case you're worried about).
  6. What constraints? Compliance (KYC, GDPR consent), accessibility, mobile-first, third-party integrations.

Do not start designing without these. Designing the wrong flow takes the same time as designing the right one — and one of them ships.

Method

1. Story altitude

Walk the journey end to end in plain language. 5–12 numbered steps. Each step:

  • Where the user is (URL / screen / state).
  • What they see.
  • What they decide.
  • What they do.
  • What the system responds.

This pass tests whether the journey is coherent before any wireframing.

2. Decisions and branches

Every flow has decisions. Build a table:

Decision pointDefault pathAlternativesIf user bailsIf error
Pick auth methodMagic link to emailGoogle OAuth, SAML SSOSave email, send link 1h laterShow error + retry
Confirm phoneEnter SMS codeResend, change numberHold account 7dShow error + alt verification

Every alternative path that's reachable must have its own design. Branches you don't design will break in production.

3. Edge cases

Walk these explicitly:

  • Empty state — first-time, no data yet.
  • Partial state — some required info missing.
  • Long content — names with 200 characters, lists with 10K items.
  • Special characters — emoji, RTL text, accents, zero-width.
  • Slow network — what's shown for 5+ seconds?
  • Offline — the network drops mid-flow.
  • Returning user mid-flow — they bailed yesterday, came back today; resume or restart?
  • Permission denied — the user lacks the role for this action.
  • Concurrent edit — two people editing the same resource.
  • Account state — suspended, past-due, trial-expired, archived.
  • Locale / timezone — date display, currency, number formats.
  • Accessibility — keyboard-only flow, screen-reader sense, reduced motion.

Each relevant edge case needs a planned response.

4. Microcopy hooks

For every screen, name the strings that matter:

  • Page title / heading.
  • Primary CTA label.
  • Secondary action.
  • Field labels.
  • Error messages (per failure mode).
  • Empty-state explanation + CTA.
  • Success confirmation.

Don't ship "Submit" or "Error: invalid input." Specify the actual copy. Voice and tone come from the project's existing convention (read existing UI for the pattern); fall back to direct, friendly, verb-led if no convention exists.

5. Compare to prior art (optional)

For flows that have a thousand prior implementations (signup, checkout, password reset, invitations, onboarding), look at how 2–3 mature products handle it before designing. The /competitive-analysis skill is the deep version of this. For a quick check, just name the references in the output: "Stripe handles this with X; we'll differ because Y."

6. Save the design

Write the result to .claude/memory/project/flow-<name>.md so future sessions inherit it. Add to MEMORY.md index.

Output format

## Flow: <name>

### Goal
<one sentence>

### User
<persona — specific>

### Success criterion
<measurable>

### Entry points
- <where they come from>
- <where they come from>

### Story
1. User arrives at <X> from <source>. They see <screen 1 summary>. They <action>.
2. System <response>. User sees <screen 2 summary>. They decide <decision 1>.
3. …

### Screens (state-by-state)
| Screen | Purpose | States needed | Key components |
|---|---|---|---|
| /signup | First-touch | default, error (email taken), loading | Email input, primary CTA, OAuth alts |
| /signup/verify | Confirm code | default, code-sent, error (bad code), expired | Code input, resend link, change-email link |
| …

### Decisions and branches
[table]

### Edge cases
- <case 1> — handled how
- <case 2> — handled how

### Microcopy
| Screen | Element | Copy |
|---|---|---|
| /signup | Page title | "Create your account" |
| /signup | Primary CTA | "Send magic link" |
| /signup | Error: email taken | "That email's already in use. Sign in instead?" |
| …

### Open questions for you
1. <question>
2. <question>

### Engineering handoff
- Routes needed: …
- Backend endpoints: …
- New components needed: …
- Reused components: …
- Analytics events to instrument: …

Boundaries

  • Don't design without the 6 questions answered. Domain ambiguity makes for irrelevant design.
  • Don't draw pixels at story altitude.
  • Don't skip edge cases — they're the point.
  • Don't design dark patterns. Refuse, name them, offer honest alternatives.
  • Don't recommend a flow longer than the goal requires. The shortest flow that covers all states wins.
  • Always cite prior art when borrowing patterns from competitors.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.