# Signup Onboarding Audit

> Signup Onboarding Audit

- Skill: `matteotitta/signup-onboarding-audit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add matteotitta/signup-onboarding-audit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/matteotitta/signup-onboarding-audit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: matteotitta (https://skillmd.com/u/matteotitta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/matteotitta/signup-onboarding-audit

---


# /signup-onboarding-audit — pre/intra-product friction audit

Audit the journey from "first click on Sign Up" through "first aha moment" with sharp heuristics on field friction, time-to-value, activation-metric definition, and checklist patterns.

This is the **measurement half** of the audit-triage pair. The triage counterpart `signup-onboarding-incident-response` is deferred per `.claude/rules/audit-triage-pairing.md` until a client triggers the build (likely ClientCo Q3 activation work).

---

## When to invoke

- Activation rate is below the team's gut threshold and the cause is unclear.
- A signup flow has visible drop-offs in analytics and prioritization is needed.
- An onboarding sequence (in-product checklist, email triggers, tooltips) hasn't been audited since launch.
- A client is preparing for a growth push and wants the activation engine inspected before scaling acquisition.

Do NOT invoke when:
- The product has no signup (sales-led only) — sales-process audit instead.
- The activation metric is undefined — define it first via the activation-metric definition step, then audit.

---

## Workflow

### Step 1 — Define the activation metric

The single specific action that correlates with retention. Examples:
- B2B SaaS: "User invited 1 teammate within 7 days" or "User completed 1 core workflow within 14 days".
- Vertical SaaS: "User connected their primary data source within 24 hours" (ClientCo: "connected first client account") or "User generated their first report".
- Marketplace: "User completed first transaction within 30 days".

If the client cannot name the activation metric, that's the first finding. No further audit until defined — measuring against an undefined target produces theatre, not signal.

### Step 2 — Signup field audit

Catalog every field on the signup form. For each, classify:

| Class | Examples | Rule |
|---|---|---|
| Essential | Email, password (or magic-link) | Keep |
| Deferrable | Company, role, phone | Move to post-signup or progressive profiling |
| Inferred from email | Company name, role guess | Don't ask — auto-fill |
| Vanity | "How did you hear about us", marketing consent | Cut from signup, ask later |

**Sharp rules:**
- 3 or fewer fields → single-step form OK.
- 4+ fields → multi-step with progress indicator.
- Password requirements visible upfront (don't ambush at submit).
- Mobile: large touch targets, autofill-friendly field types (`type="email"`, `autocomplete="email"`).
- "Takes 30 seconds" messaging sets expectations and reduces abandonment.

### Step 3 — Onboarding flow audit

Map the path from signup confirmation to activation-metric hit. For each step, score:

- Time-to-value contribution: does this step move the user closer to the aha moment or away?
- Friction: how many decisions / inputs / waits does it impose?
- Necessity: would removing this step lose anything?

**Sharp rules:**
- Checklist length: 3–7 items. Fewer feels trivial; more overwhelms.
- Order by impact: highest-leverage step first, not easiest.
- "Do, don't show" — interactive completion beats tutorial videos.
- Tour length: 3–5 steps maximum before exhaustion.
- Celebrate completions visibly (progress bars, confetti, badges).

### Step 4 — Multi-channel coordination

Onboarding ≠ in-product only. Audit the email triggers, in-app prompts, and `/in-app-popups` overlays in coordination:

- Day 0 email (immediately post-signup): pointer to the next critical step.
- Day 1 trigger (if no activation): friction-removal nudge specific to the stuck step.
- Day 3, 7 triggers: per-state, not per-time.

Misalignment (email says "do X" while in-product says "do Y") is a common finding.

### Step 5 — Priority-ranked recommendations

Score each recommendation on Impact × Ease (5 × 5 = 25 max):

| Finding | Recommendation | Impact (0-5) | Ease (0-5) | Score | Priority |
|---|---|---|---|---|---|
| 8-field signup form, 47% drop-off at "company size" | Cut "company size" + "industry" from signup; add to first onboarding step | 5 | 5 | 25 | P0 |
| No activation metric defined | Define metric via 1-hour team workshop | 5 | 4 | 20 | P0 |
| Day-3 email fires regardless of state | Convert to state-based trigger | 4 | 3 | 12 | P1 |
| Tour is 9 steps long | Cut to 5 steps; defer 4 to contextual hover | 3 | 4 | 12 | P1 |

Top 3 land in the action queue; below that goes to a backlog.

### Step 6 — A/B hypotheses for `/ab-testing`

Each high-priority recommendation becomes an A/B hypothesis in the format from `/ab-testing`:

> "Because [observation], we believe [change] will cause [outcome] measured by [metric] within [timeframe]."

Example:
> "Because 47% of users drop off at the company-size field, we believe removing the field will increase signup completion by 25% measured by signup-completion-rate within 2 weeks."

Hand off the formatted hypotheses to `/ab-testing` for sample-size calculation and test design.

---

## {Product / Client} signup + onboarding audit

### Activation metric
- Defined: ✅ {metric statement} / ❌ {first finding: define this}

### Signup field audit
| Field | Class | Recommendation |
|---|---|---|
| email | Essential | Keep |
| company | Deferrable | Move to post-signup |
|...

### Onboarding flow audit
- Step 1: {description} — {time-to-value contribution: high/med/low} — {friction: high/med/low} — {keep/cut/reorder}
-...

### Multi-channel coordination findings
- Email Day 0:...
- In-product trigger Day 1:...
- Coordination misalignment: {if any}

### Priority-ranked recommendations
- P0: {top 3 recs with Impact × Ease scores}
- P1: {next 3-5 recs}
- Backlog: {rest}

### A/B hypotheses (formatted for /ab-testing)
- H1: Because..., we believe..., measured by..., within...
- H2:...
```

---

## Integration with other skills

- **Upstream:** `/analytics-tracking-plan` provides the event taxonomy needed to measure drop-offs; `/product-messaging` defines the value-prop the signup form sells against.
- **Downstream:** Hypotheses feed `/ab-testing` (test design + sample-size math); in-product overlay redesigns feed `/in-app-popups`.
- **Triage half (deferred):** `signup-onboarding-incident-response` per `.claude/rules/audit-triage-pairing.md`. Backlog noted; build when a client triggers an incident-mode use case.

---

## Anti-patterns

- ❌ Audit without an activation metric. You're measuring noise.
- ❌ Recommend "redesign the signup page" without per-field reasoning. Friction is field-level.
- ❌ Prioritize by ease alone (easy wins) instead of impact × ease.
- ❌ Audit signup or onboarding alone, not both. The handoff is where most friction lives.
- ❌ Tutorial-heavy onboarding when "do, don't show" applies.

---

## Attribution

This skill merges and adapts patterns from [`coreyhaines31/marketingskills/signup/SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/skills/signup/SKILL.md) and [`coreyhaines31/marketingskills/onboarding/SKILL.md`](https://github.com/coreyhaines31/marketingskills/blob/main/skills/onboarding/SKILL.md) (MIT license, © Corey Haines / Conversion Factory). Adapted to Genesys operator voice; merged into one audit skill per user direction. Triage half deferred per audit-triage-pairing rule.

---


