Designs B2B SaaS pages, components, forms, tables, flows, and features with structured UX methodology. Triggers when designing pages, wireframing, making layout decisions, choosing containers, mapping states, defining conditional visibility, writing confirmation dialogs, speccing empty/error/loading states, ordering fields, reviewing designs, auditing pages, speccing for engineering, or researching users. Also triggers on "what should go on this page", "where should this field go", "what states does this need", "design this", "wireframe this", "review this design", or "audit this page".
98
100%
Does it follow best practices?
Impact
94%
1.25xAverage score across 3 eval scenarios
Passed
No known issues
Think in flows not screens, states not static, tasks not pages. Interrogate and decide before wireframing. Wireframes are the last step, not the first.
.impeccable.mdNot every decision needs the full pipeline. Match depth to stakes.
| Tier | Scope | Time | What to Run |
|---|---|---|---|
| Quick | One component decision (modal vs drawer? button label?) | 30s | Container decision tree or copy rules → answer with rationale |
| Standard | One section or form (charge creation drawer, filter bar) | 5m | Load matching interrogator bank + interaction patterns → decisions + wireframe |
| Deep | Full page or multi-page flow (Products page, onboarding wizard) | 30m+ | Full 10-step pipeline → all deliverables |
Auto-detect tier from scope. If unclear, ask: "Is this a quick component decision, a single form/section, or a full page design?"
Every step produces a specific deliverable. Do not skip steps. Do not jump to wireframes.
Deep Tier Progress Checklist (copy and track):
- [ ] Step 1: Load project context
- [ ] Step 2: Competitor reference (3-6 sources)
- [ ] Step 3: Interrogate (fire ★ MUST-ASK questions)
- [ ] Step 4: State matrix (all states + compound)
- [ ] Step 5: Progressive disclosure tiers
- [ ] Step 6: High-stakes moments (friction levels)
- [ ] Step 7: Record decisions
- [ ] Step 8: ASCII wireframes (all states, real data, edge cases)
- [ ] Step 9: Copy (buttons, errors, empty states, confirmations)
- [ ] Step 10: Law review + 4 craft testsRead the project's existing docs for this page/feature. Look for:
docs/pages/{page}/ — spec.md, design.md, flows.md, tests.mddocs/modules/{module}/ — api.md, lifecycle.md, schema.mdIf page docs exist: Note what's populated vs empty. The skill fills gaps. If no docs exist: More interrogation needed, not less.
Check for a domain file in domains/. If the project has one, load it for domain-specific patterns, conditional visibility rules, and output format.
With 30+ competitors in most B2B categories, 2 sources isn't enough. Check 3-6 sources before designing.
If user provides screenshots, analyze them. If not, draw from known B2B patterns.
Document genealogy: "[Pattern] validated by [Source A, B, C]. Divergent approach from [Source D]. Our addition: [unique element]."
The more sources that validate a pattern, the safer it is to adopt. Divergence signals an opportunity to pick the best approach — or invent something better.
Load the matching question bank from reference/3-interrogator.md based on component type. Fire MUST-ASK questions first (marked with ★). Record every answer as a decision.
Always run Bank 9 (Edge Case Stress Test) AFTER the primary bank.
Generate state-action matrices for every primary object on the page. Per reference/1-decision-frameworks.md:
error + empty + loading states BEFORE happy + full + idleAssign every field, column, option, and section to a tier:
Set smart defaults to minimize Tier 1. Document conditional display rules (elements that show/hide based on configuration state).
Identify actions that are irreversible, destructive, or change critical state. Apply the friction ladder from reference/2-interaction-patterns.md:
Level 0: No confirmation → safe, reversible actions (edit name, toggle)
Level 1: Inline confirmation → low-risk changes (archive with 0 dependencies)
Level 2: Dialog confirmation → medium-risk (cancel subscription, void invoice)
Level 3: Type-to-confirm → high-risk (delete with cascade, bulk operations)For each high-stakes moment: preview impact with concrete numbers, show before/after, button repeats the action verb.
Record every decision made in steps 1-6. Format per project's template, or use:
| # | Decision | Answer | Rationale | Genealogy | Lenses |Apply 6 Lenses as kill signals (see below). Run pre-mortem: "6 months later, this page failed. What went wrong? Most likely failure mode? Early warning signal?"
Now — and only now — draw wireframes.
Rules for wireframes:
$4,892.50, Acme Corp, sub_01J5K..., 2026-03-24. Never $XX.XX or Item 1.[if credits], [if contract], [v2] for elements that show/hide.Write all microcopy per reference/5-copy-and-handoff.md:
Quality check against reference/4-laws-and-heuristics.md:
Run 4 Craft Tests before presenting:
| Designing a... | Load These |
|---|---|
| Form | 3-interrogator (Bank 1) + 2-interaction-patterns (Forms) + 5-copy-and-handoff |
| Table / List | 3-interrogator (Bank 2) + 2-interaction-patterns (Tables) |
| Detail page | 3-interrogator (Bank 3) + 1-decision-frameworks (OOUX + State Matrix) |
| Dialog / Confirmation | 3-interrogator (Bank 4) + 2-interaction-patterns (Destructive Actions) + 5-copy-and-handoff |
| Wizard / Multi-step | 3-interrogator (Bank 5) + 2-interaction-patterns (Forms) + 1-decision-frameworks |
| Drawer | 3-interrogator (Bank 6) + 2-interaction-patterns (Containers) |
| Chart / Dashboard | 3-interrogator (Bank 7) + 4-laws-and-heuristics |
| Empty / Error / Loading | 3-interrogator (Bank 8) + 5-copy-and-handoff + 1-decision-frameworks (State Matrix) |
| Navigation / IA | 1-decision-frameworks (OOUX) + 2-interaction-patterns (Nav) + 4-laws-and-heuristics |
| Full page (Deep) | All of the above. Start with 1-decision-frameworks, end with 4-laws-and-heuristics. |
| Any component | 3-interrogator (Bank 9) — run AFTER primary bank |
| Research / Discovery | 6-research-discovery |
| Design Audit | 4-laws-and-heuristics (Nielsen audit checklist) |
| Domain-specific | domains/{domain}.md — load when project has a domain file |
Apply after Step 6, before recording final decisions. If any lens returns a kill signal, stop and discuss.
| Lens | Question | Kill Signal |
|---|---|---|
| 10x? | Is this 10x better than what exists, or 10% better? | "It's slightly better" = not worth building |
| Position? | Does this reinforce your product's core positioning? | Can't connect to your differentiator |
| Habit? | Will users return to this page regularly? | Monthly-only or never-return engagement |
| ICP? | Would your ideal customer pay for this? | "Nice to have" with no willingness to pay |
| Ship? | Can you ship MVP in <2 weeks? | Needs new infrastructure or 3+ new APIs |
| Steal? | Can you name 3-6 inspiration sources? | Nobody does this and no analog exists |
These override generic UX advice. B2B apps are not consumer apps.
| # | Insight | Reference |
|---|---|---|
| 1 | 500th visit > 1st visit. Expert efficiency over onboarding. Power users are the product. | 4-laws-and-heuristics (Paradox of Active User) |
| 2 | No number without context. Every metric needs comparison, trend, deadline, or threshold. | 1-decision-frameworks (Progressive Disclosure) |
| 3 | Time is the hidden dimension. Surface dates, periods, countdowns, expiry, deadlines. | 2-interaction-patterns |
| 4 | Buyer ≠ User. 4 roles share 1 product (Buyer, Admin, User, Finance). Primary actor per page. | 1-decision-frameworks (OOUX) |
| 5 | Error paths > happy paths. 60% of design time on errors + compound states. | 2-interaction-patterns |
| 6 | Design for interruption. Breadcrumbs, CMD+K, unsaved warnings, persistent filters. | 2-interaction-patterns |
| Mistake | Fix |
|---|---|
| Jumping to wireframes | Run interrogator first — 5 min of questions prevents 5 hours of rework |
| Happy path first | Design error + empty + loading BEFORE happy + full + idle |
| Placeholder data | Use real amounts, entity IDs, company names, dates |
| "Are you sure?" dialogs | State consequences with concrete numbers. Button repeats the action |
| Ignoring compound states | What if past_due + payment failing + pending change + trial expiring? |
| B2C patterns in B2B | 500th visit > 1st. Expert efficiency over onboarding polish |
| One wireframe per page | Draw EVERY state: empty, loading, error, populated, edge case, drawer variants |
| Missing disabled tooltips | Every disabled element explains WHY and WHAT TO DO |
[UNVALIDATED].cdcd1f6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.