@roopesh.yadava/qa-pack 1.0.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -25
- package/bin/postinstall.js +95 -14
- package/claude/commands/impacted-tests.md +11 -0
- package/claude/commands/qa-agent.md +5 -5
- package/claude/skills/SKILLS_CONTEXT.md +66 -32
- package/claude/skills/accessibility-testing/SKILL.md +9 -9
- package/claude/skills/automation/LOCATOR_PATTERNS.md +1 -1
- package/claude/skills/automation/SKILL.md +200 -78
- package/claude/skills/bug-reporting/SKILL.md +2 -1
- package/claude/skills/impacted-tests/SKILL.md +111 -0
- package/claude/skills/manual-testing/SKILL.md +24 -40
- package/claude/skills/qa-agent/SKILL.md +197 -240
- package/claude/skills/qa-agent/product_context/CONTEXT_SCHEMA.md +10 -13
- package/claude/skills/qa-agent/product_context/README.md +1 -1
- package/claude/skills/ui-test-figma/SKILL.md +8 -4
- package/package.json +1 -1
- package/templates/.env.example +22 -0
- package/templates/CLAUDE.md +20 -12
|
@@ -3,7 +3,8 @@ name: ui-test-figma
|
|
|
3
3
|
description: >
|
|
4
4
|
Compares a live web application page against a Figma design to detect UI inconsistencies.
|
|
5
5
|
Uses Playwright CLI for zero-token screenshots and targeted browser_evaluate for CSS — never
|
|
6
|
-
browser_snapshot. Figma MCP preferred; browser fallback automatic.
|
|
6
|
+
browser_snapshot. Figma MCP preferred; browser fallback automatic. Credentials and OTP
|
|
7
|
+
code come from .env (QA_USERNAME / QA_PASSWORD / QA_OTP_CODE).
|
|
7
8
|
Can be called standalone or from manual-testing (Step 1 of Manual branch).
|
|
8
9
|
Trigger: "compare with application", "ui test", "check design", "test this page against figma",
|
|
9
10
|
"run ui check", or a Figma link with a comparison request.
|
|
@@ -30,7 +31,8 @@ Compares a live app page against a Figma design. Uses **Playwright CLI** for all
|
|
|
30
31
|
|
|
31
32
|
## Token Tracking
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
Optional and silent — follow the **Token Tracking** pattern in `SKILLS_CONTEXT.md`
|
|
35
|
+
(run its enablement check once at skill start; if disabled, skip every checkpoint silently).
|
|
34
36
|
Never show tracking output to user. Checkpoints: `start` → `login` → `comparison` → `end + report + session`.
|
|
35
37
|
Use `CARD_ID` if called from pipeline, else `"ui-test"`.
|
|
36
38
|
|
|
@@ -68,7 +70,9 @@ ls .playwright-session.json 2>/dev/null && echo "SESSION_EXISTS" || echo "NO_SES
|
|
|
68
70
|
**If no session file:**
|
|
69
71
|
Navigate to `BASE_URL` via `browser_navigate` and take a `browser_snapshot`.
|
|
70
72
|
- **Dashboard/home page** → session active, skip to Step 1b.
|
|
71
|
-
- **Login form** →
|
|
73
|
+
- **Login form** → read `.env` for `QA_USERNAME` / `QA_PASSWORD` / `QA_OTP_CODE` (or use
|
|
74
|
+
values passed by the invoking skill). Only if still missing, ask for email + password
|
|
75
|
+
in one message. Never print the password.
|
|
72
76
|
|
|
73
77
|
Once inputs collected: `"Got everything. Logging in and starting the comparison now..."`
|
|
74
78
|
|
|
@@ -100,7 +104,7 @@ Use `browser_snapshot` to read field selectors, then:
|
|
|
100
104
|
|
|
101
105
|
**If OTP screen appears** (6-box PIN):
|
|
102
106
|
7. `browser_click` first OTP box
|
|
103
|
-
8. `browser_type(text:
|
|
107
|
+
8. `browser_type(text: QA_OTP_CODE)` — the code from `.env` (ask once if unset), auto-advances
|
|
104
108
|
9. `browser_click` Verify button
|
|
105
109
|
10. `browser_wait_for(state: "networkidle")`
|
|
106
110
|
11. `browser_snapshot()` — confirm past OTP
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roopesh.yadava/qa-pack",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "AI-powered QA agent skills for Claude Code — manual testing, BDD automation, accessibility, UI/Figma diff, bug reporting",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"postinstall": "node bin/postinstall.js"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# qa-pack — QA agent secrets & environment (gitignored — fill in the values)
|
|
2
|
+
# All QA skills read this file once at startup. Values here take precedence over
|
|
3
|
+
# anything stored in product context. NEVER commit the filled-in .env.
|
|
4
|
+
|
|
5
|
+
# ── App under test ────────────────────────────────────────────────────────────
|
|
6
|
+
QA_APP_URL=
|
|
7
|
+
QA_LOGIN_URL=
|
|
8
|
+
QA_USERNAME=
|
|
9
|
+
QA_PASSWORD=
|
|
10
|
+
# OTP code entered on the OTP screen when the app asks for one (leave empty if no OTP)
|
|
11
|
+
QA_OTP_CODE=999999
|
|
12
|
+
|
|
13
|
+
# ── Jira REST (only needed for screenshot attachments on bugs) ────────────────
|
|
14
|
+
JIRA_BASE_URL=
|
|
15
|
+
JIRA_EMAIL=
|
|
16
|
+
JIRA_API_TOKEN=
|
|
17
|
+
|
|
18
|
+
# ── Optional: token-usage tracking (developer machines only) ──────────────────
|
|
19
|
+
# Point at a directory containing track_tokens.py + context_snapshot.py.
|
|
20
|
+
# When unset or the scripts are missing, skills skip all tracking silently.
|
|
21
|
+
# QA_TRACKING_DIR=
|
|
22
|
+
# QA_TRACKING_MODEL=
|
package/templates/CLAUDE.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# QA Agent — Project Configuration
|
|
2
2
|
|
|
3
|
-
<!-- Fill in the sections marked TODO before committing.
|
|
3
|
+
<!-- Fill in the sections marked TODO before committing. This file is safe to commit —
|
|
4
|
+
secrets go in .env (gitignored), never here. -->
|
|
4
5
|
|
|
5
6
|
## Project
|
|
6
7
|
|
|
@@ -9,24 +10,28 @@
|
|
|
9
10
|
- **Login URL**: `TODO: e.g. https://app.example.com/login` (or same as App URL)
|
|
10
11
|
- **Environment**: `TODO: staging | dev | prod`
|
|
11
12
|
- **Auth Method**: `TODO: form_login | SSO | token | none`
|
|
12
|
-
- **OTP Required**: `TODO: yes (
|
|
13
|
+
- **OTP Required**: `TODO: yes | no` (the code itself goes in `.env` as `QA_OTP_CODE`)
|
|
13
14
|
|
|
14
|
-
##
|
|
15
|
+
## Secrets
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
Test credentials live in `.env` at the repo root (gitignored, seeded by qa-pack install):
|
|
18
|
+
`QA_APP_URL`, `QA_LOGIN_URL`, `QA_USERNAME`, `QA_PASSWORD`, `QA_OTP_CODE`, plus
|
|
19
|
+
`JIRA_BASE_URL` / `JIRA_EMAIL` / `JIRA_API_TOKEN` for bug screenshot attachments.
|
|
20
|
+
**Never write credentials into this file or any committed file.**
|
|
18
21
|
|
|
19
22
|
---
|
|
20
23
|
|
|
21
24
|
## QA Skills available
|
|
22
25
|
|
|
23
|
-
This project has the
|
|
26
|
+
This project has the qa-pack skill set installed. The QA agent runs a structured flow:
|
|
27
|
+
card ID → product context → only the missing questions → phase selection.
|
|
24
28
|
|
|
25
29
|
| What you want | How to trigger |
|
|
26
30
|
|---|---|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
31
|
+
| Start the QA agent on a card | `run qa PROJ-123` (then pick a phase) |
|
|
32
|
+
| Phase 1 — manual testing | `manual test PROJ-123` |
|
|
33
|
+
| Phase 2 — write automation (reuse-first) | `automate PROJ-123` |
|
|
34
|
+
| Phase 3 — both (manual first, then automation) | `full QA PROJ-123` |
|
|
30
35
|
| Accessibility audit | `accessibility test PROJ-123` |
|
|
31
36
|
| UI vs Figma diff | `ui test PROJ-123` |
|
|
32
37
|
| File a bug | `file a bug` |
|
|
@@ -35,7 +40,10 @@ This project has the full QA agent skill pack installed. Invoke any skill from C
|
|
|
35
40
|
|
|
36
41
|
## Conventions
|
|
37
42
|
|
|
38
|
-
-
|
|
39
|
-
|
|
43
|
+
- BDD runner: CucumberJS with `cucumber.cjs` config — the automation skill discovers
|
|
44
|
+
your feature/step/POM layout from this config and the existing tree (no fixed layout imposed)
|
|
45
|
+
- The automation skill reuses existing Gherkin steps and step definitions first; new step
|
|
46
|
+
definitions require explicit approval and reuse % is tracked per run
|
|
40
47
|
- Screenshots and reports go to `outputs/` (gitignored)
|
|
41
|
-
- Product context (persistent QA memory) lives in
|
|
48
|
+
- Product context (persistent QA memory, no secrets) lives in
|
|
49
|
+
`.claude/skills/qa-agent/product_context/{PRODUCT}/context.md`
|