Toolkit for writing, refining, and prioritizing tickets on issue-tracking systems (Jira and equivalents). Covers three concerns: writing clear acceptance criteria for user stories; applying MoSCoW prioritization to requirements and backlogs; and readying sparse backlog tickets for refinement by gathering incident context, applying a YAML template, and generating a validated structured document.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Navigation hub for writing measurable, test-ready acceptance criteria.
Starting Point (Vague Requirement):
"Users should be able to reset their password easily."
Step 1: Capture Intent
Step 2: Select Format Choose Given/When/Then (Gherkin) for clarity.
Step 3: Draft Must-Pass Criteria
Given a user is on the login page
When they click "Forgot Password"
Then a password reset form appears within 1 second
Given a user enters a valid email in the reset form
When they click "Send Reset Link"
Then an email is sent within 30 seconds
And the email contains a clickable reset link valid for 24 hours
Given a user clicks the reset link from the email
When they enter a new password (min 8 chars, 1 uppercase, 1 number)
And click "Update Password"
Then the password is updated
And they are redirected to login within 2 secondsStep 4: Add Negative & Boundary Scenarios
Given a user enters an unregistered email
When they click "Send Reset Link"
Then they see "Email not found" message (no account enumeration)
Given a user's reset link has expired (>24 hours old)
When they click the link
Then they see "Link expired, request a new one"
Given a user enters a weak password (e.g., "pass")
When they click "Update Password"
Then validation error appears: "Password must be 8+ chars with uppercase and number"Step 5: Validation Checklist
# Find vague language
grep -nE "\b(should be|user-friendly|fast|easy|good)\b" <file>.md# Count checklist criteria lines
grep -nE "^- \[ \]" <file>.md | wc -l# Detect missing negative/error words
grep -niE "invalid|error|timeout|denied|failed" <file>.mdUser Story:
As a [role], I want [action], so that [benefit].
Acceptance Criteria (Must Have):
- [ ] ...
- [ ] ...
Negative/Edge Scenarios:
- [ ] ...
Out of Scope:
- ...WHY: vague language cannot be tested objectively. BAD: "The system should be fast." GOOD: "Search returns in <= 2s for 95% of requests."
WHY: criteria define outcomes, not implementation details. BAD: "Use JavaScript validation on submit button click." GOOD: "Invalid form input shows error message within 1 second."
WHY: real users hit error and edge conditions. BAD: only valid-login scenario listed. GOOD: include invalid credentials, timeout, and expired session behavior.
WHY: broad criteria hide failure source and reduce test clarity. BAD: "Checkout and email and invoice should work." GOOD: split into separate measurable criteria.
WHY: misalignment causes rework at QA/review time. BAD: criteria written without stakeholder validation. GOOD: confirm criteria with product and QA before implementation.
| Topic | Reference |
|---|---|
| INVEST criteria | references/invest-criteria.md |
| Gherkin examples | references/gherkin-examples.md |
| Pattern selection | references/patterns-by-type.md |
| Scenario examples | references/examples.md |
| Reusable templates | references/templates.md |