onboarding-flow
Skill21 starsChanged 16 days agoMITView on GitHub
Design new onboarding flows or evaluate/critique existing ones — signup sequences, setup checklists, first-run wizards, personalization quizzes, permission priming, paywalls — for SaaS/web products or consumer/mobile apps. Use this whenever someone asks to design, build, spec, improve, review, audit, or critique onboarding, a first-run experience, a getting-started flow, a signup sequence, an account setup wizard, or "the first thing users see," whether starting from scratch or from screenshots/a description of an existing flow. Pulls current visual reference from Mobbin, routes all UI copy to righter, and routes all structure/styling to the vois skills (vois-patterns → vois-components → vois-tokens).
5 other projects use a version of this.
Adopted by
Most recently taken up by
- Maudeunfledged834/startup-founder-skillstheir own version, first seen Oct 25, 2026
- sidchaudhary/gtm-skillstheir own version, first seen Aug 21, 2026
- YepAPI/skillstheir own version, first seen Apr 12, 2026
- shawnpang/startup-founder-skillstheir own version, first seen Mar 16, 2026
- Dragoon0x/product-skillstheir own version, first seen Feb 24, 2026
Used with
Projects with it also use lead-scoring, email-marketing and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
shawnpangSkilllead-scoring
When a founder needs to qualify inbound leads, define their ICP, build a lead scoring model, set MQL criteria, or route prospects through pipeline stages. Activate when the user mentions lead scoring, ICP, MQL, SQL, lead qualification, inbound leads, or pipeline design.
Also in 3 projects that use this
claude-office-skillsSkillemail-marketing
Email marketing automation - campaign creation, sequence building, A/B testing, deliverability optimization, and analytics
Also in 3 projects that use this
webrenewSkillseo-technical
Audit and improve technical SEO in Next.js apps. Use this skill for metadata, structured data, Open Graph, sitemaps, robots rules, canonical URLs, hreflang, redirects, search visibility, and crawlability.
Also in 3 projects that use this
nicolas-webdevSkilllanding-page
Architecture and copywriting framework for high-converting landing pages. Use when building landing pages, sales pages, product pages, or lead capture pages. Follows a proven 8-section structure optimized for conversions.
Also in 3 projects that use this
AnthropicSkillcompetitive-analysis
Framework for building competitive landscape decks — market positioning, competitor deep-dives, comparative analysis, strategic synthesis. Use when the user asks for a competitive landscape, competitor analysis, peer comparison, market positioning assessment, strategic review, or investment memo deck. Also triggers on "who are the competitors to X", "benchmark X against peers", "build a market map", or any request to systematically evaluate competitive dynamics across an industry.
Also in 3 projects that use this
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- shawnpang/startup-founder-skills★ 331same name
- Maudeunfledged834/startup-founder-skills★ 8same name
- YepAPI/skills★ 8same name
- Dragoon0x/product-skills★ 4same name
- sidchaudhary/gtm-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository15 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- case-studySkill
- changelog-writerSkill
- conversion-patternsSkill
- design-askSkill
- designer-ic-assessmentSkill
- design-rationaleSkill
- gtm-positioningSkill
- longformSkill
- metrics-taggingSkill
- righterSkill
- vois-componentsSkill
- vois-datavizSkill
- vois-patternsSkill
- vois-tokensSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 6 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 54
Output in the Review format below: Don't rewrite copy or restyle components yourself — flag copy issues for righter and structural issues …
- Distinctive: line 61
Name the activation event: Before sequencing any screens: what does this user need to accomplish for onboarding to have worked?
- Very specific: line 66
Pull current reference, don't rely on memory: If the mcp__Mobbin__search_flows or mcp__Mobbin__search_screens tools are available, use them …
- Distinctive: line 98
If a product genuinely straddles both (e.g.
- Distinctive: line 120
Read only the one file that matches your shape.
- Distinctive: line 127
Use this for each screen or moment reviewed.
- Very specific: line 145
If none, write "None found." A MUST violation is always a violation.
- Very specific: line 155
After all screens: one summary line — total violations (call out MUST violations separately, since those are non-negotiable), and the …
- Very specific: line 161
Use the screen sequence itself as the deliverable — a numbered list of screens in order, each with: screen purpose, primary action, what's …
- Distinctive: line 192
Don't write filler copy "for now" and don't eyeball spacing.
“Common” is measured: kept by at least 6 in 10 of the 5 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.
Files
Onboarding Flow
A skill for designing onboarding for two very different contexts. SaaS/web onboarding and consumer/mobile onboarding fail for opposite reasons if you cross the patterns: block a SaaS user behind a linear wizard and they bounce before seeing the product; let a consumer app skip the personalization quiz and you lose the sign-up's whole reason for existing. Pick the right one before you design or evaluate anything.
This skill defines the sequence and screen types. It is not a copywriting or styling skill:
- Every word that appears on screen (headlines, button labels, quiz questions, permission copy, checklist item text) routes to the righter skill. Don't guess at wording here.
- Every structural/visual decision (spacing, components, tokens, animation, accessibility) routes to vois-patterns → vois-components → vois-tokens, in that order.
- This skill sits above both: it tells you which screens exist and in what order (or should); righter tells you what words go on them; vois tells you how they're built.
Two Modes
Mode 1: Evaluate an Existing Flow
- Get the flow in front of you. Screenshots, a Figma/Mobbin link, or a plain description of the screen-by-screen sequence. If it's incomplete, say what's missing rather than guessing at unseen screens.
- Determine the shape using the decision tree below — SaaS companion checklist or consumer linear sequence. An existing flow that uses the wrong shape for its product type is itself a finding, not something to route around.
- Read the matching reference file and walk the flow screen by screen against every rule
idindata/onboarding-rules.jsonfor that shape, plus the fiveUNIV-*rules. If the flow states or implies its activation event (see Mode 2 step 2), treat any screen that doesn't move toward it as a candidate cut even when it doesn't fail a specific numbered rule. - Output in the Review format below. Don't rewrite copy or restyle components yourself — flag copy issues for righter and structural issues for vois-patterns, cite what should be checked there, and stop.
Mode 2: Generate a New Flow
- What kind of product is this? Walk the decision tree below — it determines the whole shape of the flow, not just the visual style.
- Name the activation event. Before sequencing any screens: what does this user need to accomplish for onboarding to have worked? What's the one activation event (first workflow run, first save, first invite sent, first personalized result shown), and what information is strictly necessary to reach it? Anything that doesn't materially move the user toward that event is friction, not onboarding — cut it rather than including it "just in case."
- Pull current reference, don't rely on memory. If the
mcp__Mobbin__search_flowsormcp__Mobbin__search_screenstools are available, use them to pull 3–5 real examples for the specific product category (e.g. "fintech app onboarding," "B2B analytics tool setup guide") before finalizing screens — patterns date fast, and a competitor-specific pull beats the general patterns catalogued here. If Mobbin isn't available, usereferences/as the fallback baseline. Treat what you pull as evidence of current practice, not proof that a pattern is correct — weigh it againstdata/onboarding-rules.json, which is this skill's durable baseline. A competitor doing something doesn't override a rule here without a stated reason ("Apple does X" is not itself an argument for X). - Read the matching reference file for the full screen-by-screen breakdown.
- Route copy to righter and structure to vois as you build each screen — don't batch this at the end.
- Output in the New Flow format below.
Decision Tree: Which Onboarding Shape?
START: What is the user signing up for?
├─ SaaS / web product — used repeatedly at a desk, ongoing account, often paid seat-by-seat
│ └─ → read references/saas-onboarding.md [SHAPE-SAAS]
│ Pattern: drop into the real product immediately, companion checklist alongside it.
│ Never a full-screen linear wizard that blocks the product.
│
└─ Consumer / mobile app — short sessions, one person, often a subscription decision up front
└─ → read references/consumer-onboarding.md [SHAPE-CONSUMER]
Pattern: linear full-screen sequence (value prop → personalize → permissions →
account → paywall → confirmation → home). The wizard IS the experience before home.If a product genuinely straddles both (e.g. a mobile companion app for a web SaaS product), default to the shape of the surface you're designing or evaluating this flow for — a mobile app onboarding still follows the consumer shape even if the parent product is B2B SaaS.
A second edge case: a single surface that blends both, like Notion, Figma, Slack, or a
ChatGPT-style prosumer tool — used repeatedly at a desk like SaaS, but with real upfront value
in a personalization choice (a workspace type, a template, a use case). Default to the SaaS
shape as the base — these are still ongoing accounts used repeatedly, not short sessions — and
borrow at most one consumer-style screen for the single highest-leverage personalization
question, only if the product's early value genuinely depends on it. Treat CONSUMER-004's
payoff rule as binding on that screen. Never let this turn into a multi-screen quiz gating
access to the product — that's the SaaS shape's whole point (SAAS-001).
Reference Files
| File | Covers | Shape ID |
references/saas-onboarding.md | Setup guides, onboarding checklists, empty states, in-product companion patterns | [SHAPE-SAAS] |
references/consumer-onboarding.md | Value prop screens, personalization quizzes, permission priming, paywalls, confirmation | [SHAPE-CONSUMER] |
Read only the one file that matches your shape. Each is self-contained.
Output Formats
Review format (Mode 1)
Use this for each screen or moment reviewed. Group by screen in flow order.
Screen: [name/position, e.g. "Screen 3 of 6 — interest picker"]
Shape: [SaaS companion checklist | Consumer linear sequence] — flag here if the flow is using the wrong shape for its product type.
Rules checked: [list every rule id from data/onboarding-rules.json that applies to this
screen type, whether it passed or failed]
Violations found: For each one:
[rule id](MUST | SHOULD, fromdata/onboarding-rules.json)- Observed: [what's actually on this screen in the supplied flow — point at it, don't assert without something to point at]
- Expected: [what the rule's
outcomerequires] - Fix: [what to do instead, in one sentence]
If none, write "None found." A MUST violation is always a violation. A SHOULD violation with
a stated, legitimate reason isn't one — note the reasoning in place of a fix instead of flagging it.
Route to righter: [any copy on this screen worth a pass — labels, headlines, error states — or "Nothing flagged."]
Route to vois: [any structural/spacing/component concern worth a vois-patterns/vois-components pass, or "Nothing flagged."]
After all screens: one summary line — total violations (call out MUST violations separately,
since those are non-negotiable), and the single highest-leverage fix (usually a
CONSUMER-004/personalization-payoff issue, a SAAS-001/blocking-wizard issue, or any MUST
violation, if present).
New Flow format (Mode 2)
Use the screen sequence itself as the deliverable — a numbered list of screens in order, each
with: screen purpose, primary action, what's collected or shown, and which rule ids it
satisfies. Follow with the Checklist Before Handing Off below, completed, not just shown blank.
Universal Rules (apply regardless of shape or mode)
These held across every real flow pulled for this skill, SaaS and consumer alike. Every rule
below carries a stable id in backticks — cite the id, not the bullet position, when referencing
a rule from outside this file. Each is also tagged MUST or SHOULD in
data/onboarding-rules.json: MUST rules address coercion, deception, or dark patterns and
have no legitimate exception; SHOULD rules are strong defaults with real exceptions — deviate
from them only with a stated reason, not by default.
- One primary action per screen
id: UNIV-001(SHOULD). For a screen presenting a single decision, give it exactly one primary action — if a screen has two competing CTAs for the same decision, one is winning by accident. Make the secondary action visually and verbally subordinate (text link, not a second button of equal weight). This doesn't apply to a checklist's per-item CTAs (SAAS-003— each item is its own independent action, not competitors) or a legally required consent screen's equal-weight buttons (CONSUMER-007). - Progress must be honest and visible
id: UNIV-002(MUST). A progress bar, step count ("Step 3 of 4"), or fraction ("3/8 completed") should reflect real remaining effort, not motivate through vagueness. Never show progress that doesn't move. - Never trap the user
id: UNIV-003(MUST). Every screen needs a way out — back arrow, X, or skip — except the single final confirmation screen. A flow with no exit reads as coercive, not confident. - Ask before you tell
id: UNIV-004(SHOULD). If you collect a preference (goal, interest, role), the payoff must visibly appear within one or two screens after that answer. If it won't, cut the question — asking without using it just adds friction for nothing. - Route every word to righter, every layout decision to vois-patterns
id: UNIV-005(MUST). Don't write filler copy "for now" and don't eyeball spacing. It compounds into rework.
Structured lookup: data/onboarding-rules.json holds every tagged rule from this file and
both reference files as { id, strength, condition, outcome, source_file } — useful for a quick
condition/outcome check by id without opening the full file it lives in. This is also what
Mode 1 walks screen-by-screen against.
Source of truth: data/onboarding-rules.json is canonical for a rule's strength,
condition, and outcome. The .md files restate rules for readability and carry the worked
examples (real app names, screen-by-screen breakdowns) the JSON doesn't — but if the two ever
disagree, the JSON wins. scripts/check-rule-sync.mjs checks that every tagged id cited in the
.md files resolves to a real entry in the JSON, the reverse, and that every rule has a valid
strength; run it after editing rules in either place.
Checklist Before Handing Off (Mode 2)
- Shape selected (SaaS companion checklist vs. consumer linear sequence) and justified
- Activation event named, and every screen either moves toward it or was cut
- Pulled current Mobbin reference for this product's specific category, if the tool is available
- Screen sequence drafted, one primary action per screen
- Progress indicator defined and honest
- Every screen has an exit except the final confirmation
- Personalization inputs (if any) visibly reflected later in the flow
- All copy drafted through righter (not placeholder text)
- All structure/spacing/components resolved through vois-patterns → vois-components → vois-tokens
Maintaining This Skill
data/onboarding-rules.json is the canonical rule set (18 rules: 5 universal, 6 SaaS, 7
consumer). Every rule carries a strength of MUST or SHOULD (see Universal Rules above for
what the distinction means) alongside its id, condition, outcome, and source_file. When
you add, remove, or reword a rule, update it in both the .md file and the JSON, then run:
node scripts/check-rule-sync.mjsIt fails loudly if an id is tagged in markdown but missing from the JSON, listed in the JSON but
never cited in markdown, tagged in a file that doesn't match the JSON's source_file, or missing
a valid strength. Run it before publishing any edit to a rule.
evals/cases.json is a fixed set of worked flows (good and bad, both shapes) with the rule ids a
correct review should flag — and, for the exact false positive this skill's checklist and
consent patterns first shipped with, the ids it should explicitly not flag. It's a manual
regression corpus, not an automated test suite: whether a flow actually violates a rule is a
judgment call, not something a script can verify. Re-walk each case's scenario against the
current rules after editing SKILL.md or the JSON, and confirm the same ids still come out.
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
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.

