Qa persona bug
Use when promoting a row from docs/qa-persona/bugs.md to a GitHub issue via gh CLI; back-links the issue number into the bug tracker row. Refuses if the bug was already promoted.From its SKILL.md
npx -y skills add andreykuzin/qa-persona --skill qa-persona-bugAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, as published. Nobody here has run it
qa-persona-bug
Promote one bug row from docs/qa-persona/bugs.md to a GitHub issue and back-link the issue number into the bug tracker. Closes the loop between the walkthrough's Markdown ledger and the team's actual issue tracker.
Inputs
$ARGUMENTS — the stable bug ID (the # column in bugs.md). One ID at a time. Refuse if multiple are passed — promote them one by one so commit messages stay clean.
Pre-checks
-
docs/qa-persona/bugs.mdexists. -
ghCLI is available (gh --version). If not → tell the user to install it (brew install gh/winget install GitHub.cli) and stop. -
gh auth statusshows authenticated. If not → tell the user to rungh auth loginand stop. -
Find the row matching the ID. If absent → list available IDs and stop.
-
Inspect the row — refuse if any of these is true:
- Status is already 🟢 (fixed) — promoting a fixed bug as a new open issue is wrong.
- Status is already 🟡 (in progress / tracked) — almost certainly already promoted.
- The
Bugcolumn contains a back-link of the form(#<digits>)— definitive proof of prior promotion. - The
Fixed incolumn already references an issue.
Note:
Fixed inalone is not a reliable signal — step 4 below intentionally leaves it empty until a later walkthrough verifies the fix landed. Check the back-link in theBugcolumn or the 🟡 status as the primary "already promoted" indicators.
Steps
1. Build the issue body
From the bug row, construct an issue with this shape:
Title: [qa-persona bug #<ID>] <one-line description>
Body:
**Severity:** <Major|Medium|Minor>
**Discovered:** <YYYY-MM-DD> (qa-persona Run #<N>)
**Where:** `<file:line>`
**Description**
<full description from bugs.md>
**Fix sketch**
<fix sketch from bugs.md>
**Walkthrough context**
See `docs/qa-persona/walkthrough-RUN-<latest>.md` Run #<N>.
---
*Filed via qa-persona-bug — back-linked into `docs/qa-persona/bugs.md`.*
2. Pick labels
Map severity → label:
Major→bug,severity:majorMedium→bug,severity:mediumMinor→bug,severity:minor,good-first-issue
If a label doesn't exist in the repo, fall back to bug only — never abort on a missing label.
3. Create the issue
gh issue create \
--title "[qa-persona bug #<ID>] <one-line>" \
--body-file <tmpfile> \
--label "<labels>"
Capture the resulting issue URL and number.
4. Back-link into bugs.md
Update the row in docs/qa-persona/bugs.md:
- Append
(#<issue-number>)to theBugcolumn, e.g.Idempotent submit downgrades status (#42). - Update status
🔴→🟡(in progress, since it's now tracked). - Leave
Fixed inempty until a later walkthrough confirms 🟢.
5. Print summary
✓ Filed issue #42: <title>
URL: <url>
bugs.md row updated: status 🔴 → 🟡, back-link added
Next: qa-persona-walkthrough after the fix lands to verify and mark 🟢.
Red flags — do not do
- Promoting bugs that are already 🟢 (fixed) or already linked to an issue.
- Inventing severity / fix-sketch text not present in
bugs.md— the issue must reflect the ledger faithfully. - Closing the bug row in
bugs.mdwhen the issue is filed. The bug closes only when a later walkthrough confirms it's gone — that's the methodology's verification rule. - Creating the issue with
gh issue close --reason completedto "skip ahead." Never. The issue lifecycle mirrors the bug lifecycle.