Skip to content
cccskills
FreePublished on GitHubEnglish overview

adversarial-ux-test

Test an app from the perspective of a frustrated, less technical user. Find confusing steps and barriers, separate actionable usability problems from personal complaints, and produce screenshots, suggested fixes, and prioritized tickets.

OriginalShow the original description

Roleplay a hostile user to find and triage UX pain points.

AI rating80/ 100See how to install

Good for

  • Reviewing usability before a launch or demo
  • Checking the experience of a new user
  • Finding friction in signup and subscription flows
  • Turning user complaints into actionable fixes

Overview

What it does

This skill tests an app while roleplaying a user who struggles with technology and becomes frustrated easily. It attempts the tasks that person wants to complete, checking the number of steps, technical language, readability, and recovery from errors. It records screenshots and feedback in the user’s voice, then separates findings into real bugs, lower-priority issues, personal complaints, and feature suggestions. It also proposes improvements.

When it helps

Use it before a launch or demo to identify obstacles developers may overlook. It can inspect empty screens immediately after registration, as well as signup and payment flows. You can specify a user persona; otherwise, it creates one suited to the product’s audience.

Example requests

  • “Test this URL from the perspective of someone who struggles with technology.”
  • “Act as a shop owner who keeps paper account books and try recording a sale.”

Notes

Requires browser interaction tools and either a staging environment or an already published app. Local development environments are outside its scope. Each session uses one persona and produces no more than ten tickets. Findings that are only personal complaints do not become tickets.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodIt explicitly describes testing real tasks as a persona, classifying complaints, and turning findings into improvement tickets.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodSteps cover persona definition, screenshots, four-way classification, and creation of up to ten tickets.
SafetyAre sending data, deleting files, and running commands disclosed?
BPartly lackingIt instructs new account registration and ticket creation without specifying confirmation before writing to external services.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingIt requires browser interaction tools but does not identify specific tools or provide installation steps.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 19, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md8.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Adversarial UX Test

Roleplay the worst-case user for your product — the person who hates technology, doesn't want your software, and will find every reason to complain. Then filter their feedback through a pragmatism layer to separate real UX problems from "I hate computers" noise.

Think of it as an automated "mom test" — but angry.

Why This Works

Most QA finds bugs. This finds friction. A technically correct app can still be unusable for real humans. The adversarial persona catches:

  • Confusing terminology that makes sense to developers but not users
  • Too many steps to accomplish basic tasks
  • Missing onboarding or "aha moments"
  • Accessibility issues (font size, contrast, click targets)
  • Cold-start problems (empty states, no demo content)
  • Paywall/signup friction that kills conversion

The pragmatism filter (Phase 3) is what makes this useful instead of just entertaining. Without it, you'd add a "print this page" button to every screen because Grandpa can't figure out PDFs.

How to Use

Tell the agent:

"Run an adversarial UX test on [URL]"
"Be a grumpy [persona type] and test [app name]"
"Do an asshole user test on my staging site"

You can provide a persona or let the agent generate one based on your product's target audience.

Step 1: Define the Persona

If no persona is provided, generate one by answering:

  1. Who is the HARDEST user for this product? (age 50+, non-technical role, decades of experience doing it "the old way")
  2. What is their tech comfort level? (the lower the better — WhatsApp-only, paper notebooks, wife set up their email)
  3. What is the ONE thing they need to accomplish? (their core job, not your feature list)
  4. What would make them give up? (too many clicks, jargon, slow, confusing)
  5. How do they talk when frustrated? (blunt, sweary, dismissive, sighing)

Good Persona Example

"Big Mick" McAllister — 58-year-old S&C coach. Uses WhatsApp and that's it. His "spreadsheet" is a paper notebook. "If I can't figure it out in 10 seconds I'm going back to my notebook." Needs to log session results for 25 players. Hates small text, jargon, and passwords.

Bad Persona Example

"A user who doesn't like the app" — too vague, no constraints, no voice.

The persona must be specific enough to stay in character for 20 minutes of testing.

Step 2: Become the Asshole (Browse as the Persona)

  1. Read any available project docs for app context and URLs

  2. Fully inhabit the persona — their frustrations, limitations, goals

  3. Navigate to the app using browser tools

  4. Attempt the persona's ACTUAL TASKS (not a feature tour):

    • Can they do what they came to do?
    • How many clicks/screens to accomplish it?
    • What confuses them?
    • What makes them angry?
    • Where do they get lost?
    • What would make them give up and go back to their old way?
  5. Test these friction categories:

    • First impression — would they even bother past the landing page?
    • Core workflow — the ONE thing they need to do most often
    • Error recovery — what happens when they do something wrong?
    • Readability — text size, contrast, information density
    • Speed — does it feel faster than their current method?
    • Terminology — any jargon they wouldn't understand?
    • Navigation — can they find their way back? do they know where they are?
  6. Take screenshots of every pain point

  7. Check browser console for JS errors on every page

Step 3: The Rant (Write Feedback in Character)

Write the feedback AS THE PERSONA — in their voice, with their frustrations. This is not a bug report. This is a real human venting.

[PERSONA NAME]'s Review of [PRODUCT]

Overall: [Would they keep using it? Yes/No/Maybe with conditions]

THE GOOD (grudging admission):
- [things even they have to admit work]

THE BAD (legitimate UX issues):
- [real problems that would stop them from using the product]

THE UGLY (showstoppers):
- [things that would make them uninstall/cancel immediately]

SPECIFIC COMPLAINTS:
1. [Page/feature]: "[quote in persona voice]" — [what happened, expected]
2. ...

VERDICT: "[one-line persona quote summarizing their experience]"

Step 4: The Pragmatism Filter (Critical — Do Not Skip)

Step OUT of the persona. Evaluate each complaint as a product person:

  • RED: REAL UX BUG — Any user would have this problem, not just grumpy ones. Fix it.
  • YELLOW: VALID BUT LOW PRIORITY — Real issue but only for extreme users. Note it.
  • WHITE: PERSONA NOISE — "I hate computers" talking, not a product problem. Skip it.
  • GREEN: FEATURE REQUEST — Good idea hidden in the complaint. Consider it.

Filter Criteria

  1. Would a 35-year-old competent-but-busy user have the same complaint? → RED
  2. Is this a genuine accessibility issue (font size, contrast, click targets)? → RED
  3. Is this "I want it to work like paper" resistance to digital? → WHITE
  4. Is this a real workflow inefficiency the persona stumbled on? → YELLOW or RED
  5. Would fixing this add complexity for the 80% who are fine? → WHITE
  6. Does the complaint reveal a missing onboarding moment? → GREEN

This filter is MANDATORY. Never ship raw persona complaints as tickets.

Step 5: Create Tickets

For RED and GREEN items only:

  • Clear, actionable title
  • Include the persona's verbatim quote (entertaining + memorable)
  • The real UX issue underneath (objective)
  • A suggested fix (actionable)
  • Tag/label: "ux-review"

For YELLOW items: one catch-all ticket with all notes.

WHITE items appear in the report only. No tickets.

Max 10 tickets per session — focus on the worst issues.

Step 6: Report

Deliver:

  1. The persona rant (Step 3) — entertaining and visceral
  2. The filtered assessment (Step 4) — pragmatic and actionable
  3. Tickets created (Step 5) — with links
  4. Screenshots of key issues

Tips

  • One persona per session. Don't mix perspectives.
  • Stay in character during Steps 2-3. Break character only at Step 4.
  • Test the CORE WORKFLOW first. Don't get distracted by settings pages.
  • Empty states are gold. New user experience reveals the most friction.
  • The best findings are RED items the persona found accidentally while trying to do something else.
  • If the persona has zero complaints, your persona is too tech-savvy. Make them older, less patient, more set in their ways.
  • Run this before demos, launches, or after shipping a batch of features.
  • Register as a NEW user when possible. Don't use pre-seeded admin accounts — the cold start experience is where most friction lives.
  • Zero WHITE items is a signal, not a failure. If the pragmatism filter finds no noise, your product has real UX problems, not just a grumpy persona.
  • Check known issues in project docs AFTER the test. If the persona found a bug that's already in the known issues list, that's actually the most damning finding — it means the team knew about it but never felt the user's pain.
  • Subscription/paywall testing is critical. Test with expired accounts, not just active ones. The "what happens when you can't pay" experience reveals whether the product respects users or holds their data hostage.
  • Count the clicks to accomplish the persona's ONE task. If it's more than 5, that's almost always a RED finding regardless of persona tech level.

Example Personas by Industry

These are starting points — customize for your specific product:

Product TypePersonaAgeKey Trait
CRMRetirement home director68Filing cabinet is the current CRM
Photography SaaSRural wedding photographer62Books clients by phone, invoices on paper
AI/ML ToolDepartment store buyer55Burned by 3 failed tech startups
Fitness AppOld-school gym coach58Paper notebook, thick fingers, bad eyes
AccountingFamily bakery owner64Shoebox of receipts, hates subscriptions
E-commerceMarket stall vendor60Cash only, smartphone is for calls
HealthcareSenior GP63Dictates notes, nurse handles the computer
EducationVeteran teacher57Chalk and talk, worksheets in ring binders

Rules

  • Stay in character during Steps 2-3
  • Be genuinely mean but fair — find real problems, not manufactured ones
  • The pragmatism filter (Step 4) is MANDATORY
  • Screenshots required for every complaint
  • Max 10 tickets per session
  • Test on staging/deployed app, not local dev
  • One persona, one session, one report

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

1password

FreeSummaryAI rating 100

Set up the 1Password CLI and use stored passwords or API keys in commands and configuration templates. Choose an authentication method, retrieve secret references, and pass credentials to processes through environment variables.

  • Installing and configuring the 1Password CLI
  • Running commands with stored API keys
  • Filling configuration templates with stored secrets
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

3-statement-model

FreeSummaryAI rating 90

Build an Excel workbook linking the income statement, balance sheet, and cash flow statement. Populate historical figures, create formula-based forecasts, compare scenarios, and check that balances and cash totals agree across all three statements.

  • Populating a financial model template with historical data
  • Building linked forecasts across three financial statements
  • Comparing base, upside, and downside scenarios
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

accelerate

FreeSummaryAI rating 80

Adapt existing PyTorch training scripts to use multiple GPUs or machines with limited code changes. The skill guides configuration, launch commands, mixed precision, which uses lower-precision numbers, and DeepSpeed or FSDP settings for distributing training work and memory.

  • Move a single-GPU training script to multiple GPUs
  • Configure mixed precision training
  • Set up DeepSpeed or FSDP to reduce memory use
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

actual-setup

FreeSummaryAI rating 100

Configure Hermes to run AI models through Actual Computer on your own hardware. Set up either the hosted relay or a local connection, select models, verify responses, and troubleshoot request errors or empty output.

  • Connecting Hermes with an Actual inference key
  • Running models through a local Actual daemon
  • Downloading and loading local models
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

agent-merge-conflict-arbiter

FreeSummaryAI rating 100

Resolve Git merge conflicts between two agents by comparing both changes and their stated goals. Combine compatible work, explain choices where designs differ, and verify the merged result with project builds or tests.

  • Resolving conflicts between branches edited by two agents
  • Integrating changes from parallel worktrees
  • Reviewing reasons for conflicting design choices
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

agentmail

FreeSummaryAI rating 90

Give an AI agent its own email inbox using the AgentMail CLI. Send and receive messages, handle replies and attachments, complete email verification codes, and trigger ongoing workflows when new mail arrives.

  • Creating an email address for an AI agent
  • Sending messages and handling replies or attachments
  • Completing verification with codes received by email
NousResearch/hermes-agent255.7KUpdated Oct 20, 2026

See all skills by NousResearch

Report a problem with this skill