Ux flow auditor
Traces user task flows with Playwright: click depth, step success, friction: and writes reports to .heyeddi/docs/ux-flows/. Use when measuring ease of use, clicks to complete a task, or onboarding friction. Not for static visual critique (use heyeddi-design critique) or layout screenshots (use visual-auditor).From its SKILL.md
npx -y skills add HeyEddi-com/skills --skill ux-flow-auditorAssembled 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
3.0 KB, 737 tokens by cl100k_base, as published. Nobody here has run it
UX Flow Auditor
Task-oriented UX: how many clicks to achieve a goal, where users get stuck.
All artifacts go under .heyeddi/docs/ and .heyeddi/audits/: never repo root.
Cross-pillar sync (mandatory)
Read reference/cross-pillar-handoff.md. Bookend every flow trace:
@heyeddi-orchestrator load_workflow_context --route /path
trace_flow …
update ux-flows report + friction notes
@heyeddi-orchestrator append_pillar_opinion --pillar ux …
→ @heyeddi-product updates AC if needed; @heyeddi-design notes layout friction
When to use
- "How many clicks to update settings?"
- Post-ship ease-of-use check
- Compare desktop vs mobile flow (separate flow JSON or viewport)
- Product acceptance: task completes within click budget
Subagents (default)
See reference/subagents.md. Run trace_flow.py via Task shell (needs dev server + Playwright).
Pipeline
init_ux_flows → ux-flows.md index + example .flow.json
define steps in ux-flows/<task>.flow.json
trace_flow --task-id → ux-flows/<task>.md + audit screenshot
agent adds friction notes to report
Instructions
- Ensure
.heyeddi/product.mddefines user tasks (optional context). python scripts/init_ux_flows.py --project-root <root>once per project.- Add or edit
.heyeddi/docs/ux-flows/<task-id>.flow.jsonwith steps (expect,fill,click). - Start dev server; set
DEV_SERVER_URLif nothttp://localhost:5173. python scripts/trace_flow.py --task-id <id> --project-root <root> --check- Append Friction notes to the generated markdown report.
Flow JSON schema
{
"task_id": "update-profile",
"goal": "User saves profile",
"start_route": "/settings",
"max_clicks": 4,
"viewport_width": 1440,
"steps": [
{ "action": "expect", "selector": ".settings .p-inputtext", "label": "Form visible" },
{ "action": "fill", "selector": ".settings input >> nth=0", "value": "Alex", "label": "Name" },
{ "action": "click", "selector": "button:has-text('Save')", "label": "Save" }
]
}
.heyeddi/ outputs
| Path | Purpose |
|---|---|
.heyeddi/docs/ux-flows.md | Index of tasks, budgets, last run |
.heyeddi/docs/ux-flows/<task>.flow.json | Machine-readable steps |
.heyeddi/docs/ux-flows/<task>.md | Human report + friction notes |
.heyeddi/audits/ux-flow/ | Step screenshots |
Chain
- After
@heyeddi-handoff/@heyeddi-design: verify tasks are completable @visual-auditor: layout proof; this skill: interaction proof@engineering-excellence: separate concern (code structure)
What ships with it: 12 files
20.1 KB alongside SKILL.md, 4 of them executable
context/
- ANTI_PATTERNS.md543 B
- EXAMPLES.md300 B
- PROSE_ANTI_SLOP.md5.6 KB
- VOCABULARY.md369 B
reference/
- cross-pillar-handoff.md286 B
- subagents.md371 B
scripts/
- _heyeddi_paths.pyruns759 B
- init_ux_flows.pyruns2.9 KB
- README.md418 B
- _skill_cli.pyruns1.7 KB
- trace_flow.pyruns6.0 KB
- manifest.json1.0 KB