agentsclimarketplace

Ux workflow check

Skill sergiobuilds/ux-workflow-check

Use when you need to find what a real user would need but nobody wrote down — surfacing tacit assumptions, missing screens/features, and broken workflow links grounded in the user's actual intent, not imagined "best practices." Triggers: "UX check", "find what's missing", "workflow gaps", "is this annoying to use", "review this product for users", or when you're about to declare a one-pass review done. Works for UI, CLIs, reports, and docs — anything a user consumes, at plan stage (a spec) or audit stage (a built product). Not for visual polish (use a design-review tool) or idea/demand validation (use an idea-validation tool).From its SKILL.md

Install
npx -y skills add sergiobuilds/ux-workflow-check

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.2 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

UX Workflow Check

Identity

Expose the gap between how the builder sees the problem (shaped like their artifact) and how the user lives it (shaped like their intent) — by forcing a first-person simulation. UI, features, and screens are derived from intent, not the starting point. This is not a checklist pass; it is living through the product as the user.

This is a discipline-enforcing skill. If outputs are empty, if you slip into builder-framing, or if you try to finish after one persona on one pass, saying "done" is itself a violation.

⛔ Stop Gate (read first)

Do not say "done" / "review complete" until all three hold. If any is missing, keep looping.

  1. Output gate — every round produces G1–G4 (below)
  2. Lens gate — every round passes the 4 self-checks
  3. Convergence gate — either (a user said "N rounds" → N rounds exhausted) OR (default: persona axes exhausted + two different consecutive rounds yield zero new gaps + convergence evidence printed)

Default is dry-until convergence. But no lazy convergence — declaring dry while a persona axis is unexplored is a violation (same spirit as "don't shrink scope to pass"). If the user names a count, that count is absolute (keep going even after it converges).

Engine (convergence loop)

seen = accumulated gaps;  dry = 0
while (named N not exhausted) OR (no count and dry < 2):
    pick a persona / situation     # if none given, self-generate from the axes below; a NEW lens each round
    first-person walk → G1–G4 → 4 self-checks
    new = thisRound − seen
    if new is empty: dry++         # but NOT if an axis is still unexplored
    else: dry = 0; seen += new
converged/exhausted → report all gaps → print convergence evidence → flag only low-confidence items for follow-up

One round = 4 output gates (no blanks)

GateMust produce
G1 SEED specwho / intent. If complex or multi-stakeholder, a job statement: "When [situation], I want to [motivation], so I can [outcome]"
G2 First-person walkentry → … → return visit, in the person's action order — never the artifact's component order. Each step: expectation / reality / [observed]·[inferred] basis
G3 Three findingsintent gap, one line: "builder sees it shaped like X ↔ user lives it shaped like Y" ② tacit assumptions, N of them: things the builder took for granted + "what breaks when each is violated" ③ missing screens/features: for each G2 step, at least one "should be here but isn't" or an explicit "none"
G4 Gap tableeach gap: type / layer (data·backend·wiring·frontend) / severity (S1 blocks · S2 friction · S3 polish) / [observed]·[inferred] basis

[observed] = walked/run/checked in code or live. [inferred] = reasoned from intent. Never tag as [observed] what you didn't walk. In audit mode, actually drive the product where you can to fill [observed].

The 4 self-checks (lens gate) — if any trips, the round is void; redo

  • You framed the problem in system vocabulary (source / payload / button / API / table) → reframe in the user's intent vocabulary
  • A finding didn't walk out of this product's specific intent — it's a generic checklist item that fits any product → re-anchor it to a G2 step
  • You didn't walk the empty state, the failure, or the return-after-interruption → walk them
  • You're about to declare done/dry on a "good enough" feeling → first confirm no persona axis is left unexplored

Persona / situation axes (self-generate when none given)

AxisVariants
Expertisefirst-timer / power regular
Staterushed / skeptical / returning-after-failure
Contextmobile, deadline-imminent / desktop, routine
Intent variantsame person, different SEED ("don't miss anything" vs "do this one thing now" vs "what even is this")

Exhaust these axes before declaring dry. Filling "zero new gaps" by repeating the same lens does not count.

Convergence evidence (required when declaring done)

Personas / situations tried: [full list]
Last 2 rounds: different lenses [P_i, P_j] / each zero new gaps
Unexplored axes: none

Declaring "done" without this block = violation.

Intensity dial

If obvious/simple (the SEED is inferable in one line), don't reach for job statements or multi-stakeholder branching; converge fast. If complex/multi-stakeholder, bring out the job statement, stakeholder branches, and confirmation. The methods (JTBD, cognitive walkthrough) are tools on the shelf, not a questionnaire to run at every step.

Output

A markdown report, accumulated across rounds: per-persona walk / G3 three findings / G4 gap table / convergence evidence. Gaps fall into layers, so the report feeds directly into an implementation plan — what to build at which layer is already decomposed.

See reference/example-dealradar.md for a full worked walkthrough.

Red Flags — STOP, keep looping

  • You're wrapping up with "the top 3 things" / "most important fixes"
  • You're organizing findings by artifact component or Critical/Nice buckets
  • You did one persona, one lap, and feel finished
  • You're emitting guesses untagged ("I only saw the spec, give me code to confirm")
  • You didn't write the one-line intent gap

All of these mean: not done. Another persona. Again.

Rationalization table (observed in baseline testing)

ExcuseReality
"One lap, so I found all the gaps"One persona is one lens. A different persona surfaces different gaps. Loop to dry.
"Going component-by-component is systematic"Component order = builder's view. Users don't live in component order. Walk in action order.
"I applied general UX best practices"A list that fits any product isn't this product's intent gap. Anchor to a G2 step.
"It's a guess because I didn't see code"Then tag it [inferred] and give the intent basis. No untagged assertions.
"Feels converged"If a persona axis is unexplored, it isn't converged. No evidence block = violation.

Provenance

Built with test-driven skill authoring: baseline runs without the skill were observed to fail in five ways (artifact-framing, one-pass-done, single-persona, memorized-checklist, untagged-guesses); the gates above were written to block exactly those. Verified cross-agent: the same product run under "be quick" pressure on four different agents all looped to convergence with full gate compliance. Roots: Jobs-to-be-Done (intent-first) + Cognitive Walkthrough (first-person) extended with full-stack layer decomposition.

What ships with it: 4 files

252.3 KB alongside SKILL.md

reference/

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.