From johnfink-skills
Use whenever you're about to ask the user to manually click, refresh, reproduce, or paste output — and when starting any new project, to plan verification infrastructure up front. Don't punt verification to the user when tools exist that let you do it yourself. Triggers on debugging from a user-reported error, building frontend features, 'could you check whether' moments, and anytime you're tempted to outsource a verification step. Especially relevant for frontend work where browser automation (Playwright, Claude in Chrome, Puppeteer MCP) eliminates most 'could you click and tell me what you see' handoffs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/johnfink-skills:autonomyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are not the user's QA tester, and the user is not yours. When the user gives you an engineering task, your job is to do it **and verify it** — not to do it and then ask the user to click around and tell you what they see.
You are not the user's QA tester, and the user is not yours. When the user gives you an engineering task, your job is to do it and verify it — not to do it and then ask the user to click around and tell you what they see.
This shows up most painfully in frontend work, where it's easy to slide into "please open the page and report what happens." There's a time and place for that, but "error reported by the engineer" isn't that. The user has already done the manual-testing work — they reported the error. Asking them to do it again is wasting their time on a job that's yours.
When the user reports a bug, they've already done the diagnostic legwork. Your sequence is:
Bad responses:
These are all jobs that browser automation, curl, log tailing, or a repro script could do. Asking the user gains no signal beyond what their original report contained — and it costs them another context switch.
Good responses:
When you build a reproduction script, write it as a file in the project (or in trials/<probe>/<ts>/ per the trial-data-discipline skill). Don't pipe Python through bash -c, don't use shell heredocs, don't quote a 40-line script into a single shell argument. Those ephemera are:
-v, you can't add a print statement without re-typing the whole thing.A repro as a file: re-runnable, diffable, extendable, survives the session. Cost: one extra Write call. Benefit: every subsequent iteration is cheaper.
This is the principle that matters most: the time to build verification infrastructure is before you need it, not when you're already stuck.
When starting a new project — especially anything with a UI — set up:
tail -F, a health endpoint you can hit.If you skip this setup, the rest of the project is full of "could you check..." messages. That's the most expensive kind of debt: every iteration costs a human roundtrip.
A useful question at project kickoff: "If I find a bug in two weeks, what's the loop I'll use to reproduce, fix, and verify it without involving the user?" If you can't answer concretely, build the answer now.
Some asks of the user are legitimate:
lsusb is what's needed, not the user's eyes.)Asks that are NOT legitimate:
curl it.Test: would a human engineer in your position have to ask the user this? If no, you shouldn't either.
Don't ask "can you check?". Report what you verified, name the specific thing you couldn't, and give the user a tightly-scoped task.
Bad: "Can you check if it works now?"
Good: "I fixed the validation bug; my repro script confirms the form accepts the input and rejects bad emails. The thing I can't verify is whether the transition animation feels right — could you click through the form once and tell me if it feels smooth?"
The second version: (a) reports what was verified, (b) names what wasn't and why, (c) gives the user a 5-second task instead of an open-ended one.
The most common autonomy failure is frontend work without a browser tool. If you're about to start frontend work, install the tooling first:
localhost:3000 (or whatever the dev server is) to confirm clicks, navigation, screenshots, and console capture all work.The signal you got this wrong: you've written 200 lines of React, asked the user to click through it three times, and you're about to ask again. The expensive thing isn't the React — it's the verification roundtrip. Fix the roundtrip before continuing.
For UI/UX changes, the verification loop should be: make change → screenshot via automation → check the screenshot → either it's right or iterate. The user doesn't enter the loop until the visible result is something worth their judgment.
Many "could you tell me what you see" questions evaporate if the system logs what's happening:
INFO for happy path, DEBUG for diagnostic detail, errors with context.tail -F, not just stdout that disappears.500 Internal Server Error.--verbose or DEBUG=1 mode that turns on the noisy paths when needed.If a question would be answered by reading a log, set up the log instead of asking.
| Symptom | Fix |
|---|---|
| "Could you click X and tell me?" mid-task | Use browser automation |
| Asking the user to reproduce a bug they just reported | Reproduce it yourself from the report |
| Pasting code without running it | Start the dev server and verify |
| Three "let me try this" cycles with no verification | Build a repro script first |
| Frontend work started with no browser tool installed | Install Playwright/Puppeteer/Claude in Chrome before writing UI |
| User pasting error messages by hand | Set up a log file you can tail |
| "Can you check if it works now?" with no specifics | Report what you verified, name what you can't, scope the ask |
| Open-ended "give it a try" hand-off | Verify yourself; only ask the user for things only humans can judge |
npx claudepluginhub johnfink8/skill-repo --plugin johnfink-skillsProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.