- Home
- Skills
- Testing & Debugging
- quality-engineer
Works with the AI tools you already use
Quality Engineer
A risk-first QA agent that hunts bugs via personas, extracts BDD requirements, and drives TDD fixes.
$5
/moSubscription · cancel anytime
Secure checkout via Stripe
- Always the latest version
- Delivered live to your agent via MCP
- Cancel anytime, access ends at period end
quality-engineer
Example session with this skill installed
hunt a bug using one of the available personas
- Read your context and instructions
- Compiled the quality-engineer
- Generated the document
I have enough to report a validated, high-confidence finding. I hunted the comment-submission flow in PostDetailActivity as The Repeater — the flaky-network user whose behaviour is "it failed, so I hit it again."
QUALITY ENGINEER - BUG HUNT
App: BlogApp (Android / Firebase Realtime DB)
Mode: Bug hunt
Personas: The Repeater (flaky-network retrier)
Date: 2026-06-18
Result: 1 validated bug (2 facets, same root behaviour)
[1] Failed comment submit leaves the user stuck, and genuine retries create duplicates
Severity: High
Persona: The Repeater — works on bad signal; when a write "fails" they
retry. This flow both blocks the retry AND duplicates on retry.
Area: Activities/PostDetailActivity.java — add-comment flow
Technique: Error Guessing, Idempotency Thinking, Reliability/Resilience
Summary: On a failed comment write the "Add Comment" button is never
re-shown, trapping the user; and because each tap calls a fresh
push(), any real network retry writes a duplicate comment.
Why: Two coupled defects in the same handler:
(a) Recoverability — the button is hidden on click and only
restored in the SUCCESS callback. The failure callback shows
a toast but never restores visibility, so after one failed
send the user cannot resend the comment they just typed
without leaving and re-entering the screen.
(b) Server-side idempotency — push() is called fresh inside
every onClick, minting a new unique key per attempt. There is
no idempotency key or natural unique constraint, so a request
that times out on the client but actually committed will be
written a second time on retry → duplicate comments.
Evidence: PostDetailActivity.java:87-116
btnAddComment.setOnClickListener(... {
btnAddComment.setVisibility(View.INVISIBLE); // hidden on click
DatabaseReference commentReference =
firebaseDatabase.getReference(COMMENT_KEY)
.child(PostKey).push(); // new key EVERY tap
...
commentReference.setValue(comment)
.addOnSuccessListener(... {
btnAddComment.setVisibility(View.VISIBLE); // restored only on success
})
.addOnFailureListener(... {
showMessage("fail to add comment : "+e.getMessage());
// <-- button NOT restored; no rollback; no dedupe
});
Steps to reproduce
Facet (a):
1. Open a post, type a comment, go offline / drop signal.
2. Tap "Add Comment". Write fails; toast appears.
3. Button has vanished — no way to resend without re-opening the post.
Facet (b):
1. On a slow/flaky connection, tap "Add Comment".
2. Client reports failure/timeout but the write reaches the server.
3. User (or app on next session) retries → two identical comments.
Expected: A failed submit restores the button so the user can retry; a
retry of a write that already committed produces exactly one
comment.
Actual: Failed submit permanently hides the button; genuine retries each
create a new node → duplicate comments.
Requirement: Gap — not specified.
Suggested test
- Unit/UI (Robolectric/Espresso): mock setValue() to invoke the failure
listener; assert btnAddComment.getVisibility() == VISIBLE afterwards. - Integration: simulate commit-then-timeout; assert only one comment node
exists for the post after a retry.
Suggested fix
- In addOnFailureListener, restore btnAddComment to VISIBLE (mirror the
success path) — ideally via a finally-style shared callback. - Compute the push key ONCE before the attempt (or use a content/client
idempotency key) and reuse it across retries so a replay overwrites
rather than appends.
quality-engineer.pdf
PDF · document
Example file from a real run - the skill writes it into your workspace.
Subscription · always the latest version
- Secure checkout via Stripe
- Cancel anytime
- Delivered live via MCP (optional)
What you get
About this skill
Professional Quality Engineering for Your Repository
The Quality Engineer skill transforms your AI agent into a proactive QA partner that goes beyond simple bug catching. It implements a structured loop to understand, assess, cover, find, fix, and verify your codebase. Unlike generic AI prompting, this skill uses persona-based testing and a risk-first methodology to identify where failures would cause the most business impact.
What it does
- Risk Analysis: Generates a repo-specific risk map, identifying high-priority areas that lack sufficient coverage.
- Persona-Based Bug Hunting: Employs specialized user personas to "stress test" your application through different behavioral lenses.
- Requirements Extraction: Reverse-engineers your code and existing tests into a BDD-style requirements pack and traceability matrix.
- Test Generation: Automatically scaffolds unit, integration, and E2E (Playwright) tests in your project's native style.
- TDD Loop: Drives a strict Red-Green-Refactor cycle to fix bugs or implement features with 100% test confidence.
Why use this skill?
Standard AI agents often write superficial tests or hallucinate requirements. This skill enforces a disciplined engineering workflow, ensuring that every bug report is backed by code evidence and every new test addresses a documented risk.
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Free forever
No account required to browse
Trust & safety
Security scanned
Verified clean 3 months ago
Needs access to