DEV Community

Cover image for I Built an Agent Skill That Tests Your App Like Four First-Time Users
Bargan Constantin
Bargan Constantin

Posted on

I Built an Agent Skill That Tests Your App Like Four First-Time Users

When you're building an app, you already know where every button leads and what the user is supposed to do next.

Your first-time visitors don't.

That's why I built First User Audit — an open-source Agent Skill that helps coding agents explore your application from four different first-time-user perspectives.

It focuses on one question:

Can someone reach the first useful result without getting stuck?

Four perspectives, one app

The skill uses four simulated user behaviors:

  • Impatient — Skims the page, clicks the obvious button, and quickly gives up when things get confusing.
  • Skeptic — Checks pricing, privacy, and terms before trusting the product.
  • Mobile — Explores the experience at a 375px viewport.
  • Breaker — Tries invalid inputs, retries, back navigation, and double submissions.

Four first-time-user perspectives

What does the skill actually do?

It guides your coding agent through a simple process:

  1. Identify what first success means for your app.
  2. Explore the onboarding journey through four different behaviors.
  3. Record blockers with browser evidence and reproduction steps.
  4. Prioritize issues and propose safe technical fixes.
  5. Verify changes through fresh sessions when supported.

First User Audit workflow

The idea is to catch friction that can be easy to overlook when you're already familiar with your product.

Try it with your coding agent

You can install it using the skills CLI, or simply copy this prompt into Claude Code, Codex, or another compatible coding agent:

Install the first-user-audit Agent Skill from:
https://github.com/BarganConstantin/agent-skills

Use the skills CLI:
npx skills add BarganConstantin/agent-skills --skill first-user-audit

Verify that the skill is installed.

Inspect my application and identify the first useful
outcome a new user should reach.

If a safe local or isolated preview environment and
browser automation are available, run the four
first-user personas with fresh browser sessions.

Collect evidence, identify friction, propose bounded
technical fixes, and verify changes with fresh
agent contexts when supported.

Do not use production data or live payments.
Ask before sensitive changes or reduced-isolation runs.

If anything is missing, explain how to set it up.
Never invent test results.
Enter fullscreen mode Exit fullscreen mode

The skill requires connected browser tooling for the audit. Independent subagents depend on your coding environment, and simulated personas don't replace real usability testing.

It's open source under the MIT license.

Explore First User Audit on GitHub

Give it a try

If you use it on your own project, I'd love to hear what happens.

Did it catch an issue you hadn't noticed? Did it miss something obvious? Was the setup straightforward?

Share your experience in the comments. Feedback, ideas, and contributions are always welcome.

Top comments (9)

Collapse
 
alexcodebytes profile image
Oleksandr •

The "Breaker" persona is the one I'd use most, because it catches the bugs that normal testing misses.

A human tester clicks the button that's supposed to work. A breaker tries the button that's supposed to fail, then clicks it twice, then hits back, then submits the form with the wrong content type. That's where the real bugs live.

Curious how the skill handles the "infinite loop" case. If the Breaker keeps finding bugs, does the audit stop at a certain number of issues, or does it keep going until the budget runs out?

Collapse
 
bargan profile image
Bargan Constantin •

There's no open-ended fix-and-retest loop. The Breaker pass stops at first success or when it hits an error, duplicate action, or unrecoverable flow, and records what happened. After all four baseline passes, the workflow allows one bounded fix pass, then fresh verification. Anything still broken goes into the report rather than triggering another automatic repair cycle. There isn't a numeric issue cap in the current instructions.

Collapse
 
alexcodebytes profile image
Oleksandr •

"One bounded fix pass, then fresh verification" is the right design. It prevents the "fix one thing, break another" loop that most automated testing tools fall into.

Curious how the "fresh verification" works. Does it re-run the same four personas, or does it focus only on the specific flow that was fixed? Asking because re-running everything after every fix is slow, but re-running only the fixed part might miss a regression.

Thread Thread
 
bargan profile image
Bargan Constantin •

It reruns all four personas after the bounded fix pass, using fresh browser sessions and the same first-success goal and starting conditions. It doesn't restart the full audit after every individual fix; focused automated tests cover those changes first.

That way, verification can catch a regression elsewhere in the journey. Where the runtime supports it, the verification agents get no baseline findings or fix details. If separate agents aren't available, the report must disclose that limitation.

Thread Thread
 
alexcodebytes profile image
Oleksandr •

"Verification agents get no baseline findings or fix details" is the detail that makes this trustworthy.

If the verifier knew what the fix was supposed to be, it would just confirm the fix. By giving it a fresh set of eyes (and no context about what changed), you're actually testing whether the fix worked, not whether the agent can read a diff.

Curious how you handle the "the fix broke something unrelated" case. If the verifier finds a new issue that wasn't in the baseline, does it just report it, or does it trigger another fix pass?

Collapse
 
glenallen profile image
Glen Allen •

This is a practical use case for AI agents beyond code generation. An application can pass its technical tests and still frustrate users because the onboarding is unclear, the next step isn't obvious, or an important action gives insufficient feedback. At IT Path Solutions, this is the kind of challenge worth considering when building AI-powered applications: development speed matters, but so does validating the experience people actually have when they use the product. An agent that repeatedly explores key user journeys and identifies friction points could help teams catch usability problems before release. The important part is making sure its findings are reproducible and easy for developers to verify.

Collapse
 
bargan profile image
Bargan Constantin •

Thanks, Glen. Reproducibility is a core part of the skill: findings should include screenshots, URLs, and steps to reproduce, followed by a fresh verification pass after fixes. The personas are simulated, though, so I see this as a complement to testing with real users.

Collapse
 
cristian_calaras_f2ca0013 profile image
Cristian Calaras •

Interesting! I’d definitely like to try it on a legacy app to see how it improves the existing UX without having to rebuild everything from scratch.

Collapse
 
bargan profile image
Bargan Constantin •

That's exactly the kind of app I'd be curious to test it on! I imagine there are a few UX quirks that everyone on the team is used to by now.

If you give it a try, I'd love to hear what it finds (or misses). Feel free to share your results here, even if things don't go as expected. It would really help me improve the skill.