Run a disciplined UX friction-logging practice: capture user friction signals with concrete evidence, score severity on the standard 0-4 rubric, and route them into a prioritized fix queue. Triggers when an agent needs to collect, triage, or report usability friction, audit a flow for pain points, or turn support tickets and session notes into ranked fix tickets.
./install.sh friction-logname: "friction_log" description: "Run a disciplined UX friction-logging practice: capture user friction signals with concrete evidence, score severity on the standard 0-4 rubric, and route them into a prioritized fix queue. Triggers when an agent needs to collect, triage, or report usability friction, audit a flow for pain points, or turn support tickets and session notes into ranked fix tickets."
Give an agent a repeatable practice for handling UX friction: capture every signal with evidence instead of impressions, score it honestly, and turn the stack into a fix queue a team can actually work. One entry per signal. Evidence first, opinion last.
Write one entry per friction signal using assets/templates/friction-entry.md. A signal is one concrete, observable thing: a rage-click cluster on the checkout button, three identical support tickets about the same step, a tester who could not finish a task. Record:
references/signal-catalog.md it is,A feeling is not evidence. "Users seem confused" stays out until it is backed by a count, a quote, or a session.
Tag each entry as one of three classes:
Apply the 0-4 severity rubric in references/severity-rubric.md. Weigh three factors: frequency (how common), impact (how hard to overcome), persistence (one-time or recurring). Score severity, not priority. A rare blocker can outrank a common annoyance. When frequency is unknown, say so and score on impact; never invent a frequency to make the math cleaner.
Score the four routing dimensions, 1-5 each:
Priority = reach x severity x value proximity x confidence. The number is a triage aid, not a measurement of the universe. It exists to make assumptions explicit so the loudest stakeholder does not set the queue. Maintain the log as a JSON file (schema in bin/friction_rank.py) and run the ranker to get the ordered list with quick-win flags: python3 bin/friction_rank.py log.json. A worked example of an entry plus its ranker output is in assets/worked-example.md.
Turn the top entries into fix tickets using assets/templates/friction-report.md. Each ticket carries: the evidence, the severity, the priority score, and a proposed fix marked either measured (you checked the real data) or hypothesis (you did not). A proposed fix with no number behind it is a guess; label it one.
When a fix ships, record what changed, how you re-measured, and the new reading. Status markers: open, partial, fixed. A friction log with no closed entries is a graveyard, not a practice.
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.