@roopesh.yadava/qa-pack
v1.1.0
Published
AI-powered QA agent skills for Claude Code — manual testing, BDD automation, accessibility, UI/Figma diff, bug reporting
Maintainers
Readme
@roopesh.yadava/qa-pack
AI-powered QA agent skills for Claude Code. Drop into any product repo — get manual testing, BDD automation, accessibility audits, UI/Figma diff, bug filing, and test charters all triggered by plain English.
Install
# One-time .npmrc line needed because of the CodeArtifact default registry on 7Edge machines
echo "@roopesh.yadava:registry=https://registry.npmjs.org" >> .npmrc
npm install --save-dev @roopesh.yadava/qa-packOn install, the postinstall script copies all skills and commands into .claude/ (git-ignored — see Git hygiene below) and creates one-time config files (CLAUDE.md, .mcp.json, cucumber.cjs, .env) if they don't already exist. It also writes the .npmrc scope entry above automatically, so npm update works with no extra steps after the first install.
Update
npm update @roopesh.yadava/qa-packSkill files are overwritten with the latest version. Your CLAUDE.md, .mcp.json, .env, and — critically — product_context/ (your accumulated run history and known bugs) are never touched.
First-time setup
After installing:
- Open
.env(gitignored) and fill in the secrets:QA_APP_URL,QA_LOGIN_URL,QA_USERNAME,QA_PASSWORD,QA_OTP_CODE(plusJIRA_BASE_URL/JIRA_EMAIL/JIRA_API_TOKENif you want bug screenshots attached). - Open
CLAUDE.mdand fill in the non-secret project facts (Jira key, environment, auth method).
Then open the repo in Claude Code and run:
run qa PROJ-123How the QA agent works
Every run follows the same structured flow:
- Card input — give a Jira card ID (
run qa PROJ-123) - Product context — saved context + the Jira card are loaded automatically
- Gap questions — you're asked only what isn't already known (one message)
- Phase selection:
- Phase 1 — Manual testing (UI/Figma diff → browser tests → bugs → charter)
- Phase 2 — Write automation (reuse audit → Gherkin → steps → POM → real run + self-heal)
- Phase 3 — Both (manual first — its findings feed the automation)
Automation is reuse-first: existing .feature files and step definitions are catalogued
before any Gherkin is written, drafted steps must match existing ones (exact → parameterized
→ reworded) before a new step definition is allowed, and each run reports its reuse %.
Triggers
| Say this | What happens |
|---|---|
| run qa PROJ-123 | Structured flow — context, questions, then phase menu |
| manual test PROJ-123 | Phase 1 — manual testing + bug filing |
| automate PROJ-123 | Phase 2 — reuse-first BDD automation |
| full QA PROJ-123 | Phase 3 — manual first, then automation |
| accessibility test PROJ-123 | WCAG 2.1 A/AA audit |
| ui test PROJ-123 | Live app vs Figma design diff |
| file a bug | Files bug directly to Jira |
| /write-acceptance-criteria PROJ-123 | Generates AC, appends to Jira card |
What postinstall does
| File | Behaviour |
|---|---|
| .claude/skills/*/SKILL.md + companion .md files | Always overwritten (versioned logic) |
| .claude/commands/*.md | Always overwritten |
| .claude/skills/qa-agent/product_context/** | Never touched after first seed |
| .claude/settings.json | Created once, never overwritten |
| CLAUDE.md, .mcp.json, cucumber.cjs, .env | Created once, never overwritten |
| .env.example | Always refreshed (shows latest env keys) |
| .claude/settings.local.json | Created once from example |
| .claude/settings.local.json.example | Always refreshed (shows latest options) |
| .gitignore | Managed # >>> qa-pack block regenerated on every install — ignores all pack-installed skills/commands plus outputs/, session files, and local settings |
Git hygiene
Everything qa-pack copies into .claude/ is git-ignored via a managed block in your .gitignore (between # >>> qa-pack and # <<< qa-pack markers). Your product repo's own skills in .claude/skills/ are not affected — only the pack's skill folders are listed by name. The block is regenerated on every install, so skills added in future versions are ignored automatically; anything you write outside the markers is never touched.
Secrets live only in .env (gitignored). product_context/ contains no credentials but lives inside an ignored folder, so it also stays out of git — each machine builds its own context from its runs.
If you installed an older qa-pack version and already committed the skill files, postinstall prints the one-time git rm -r --cached command to untrack them (files stay on disk).
Publishing (maintainers)
# In qa-pack/ repo, bump version and push
npm version patch # or minor / major
git add . && git commit -m "your message" && git push origin main
# GitHub Actions publishes to npmjs automaticallyRequirements
- Claude Code CLI
- Node.js 18+
- Atlassian MCP connected in Claude Code (for Jira)
