|
| 1 | +--- |
| 2 | +name: openclaw-qa-testing |
| 3 | +description: Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy. |
| 4 | +--- |
| 5 | + |
| 6 | +# OpenClaw QA Testing |
| 7 | + |
| 8 | +Use this skill for `qa-lab` / `qa-channel` work. Repo-local QA only. |
| 9 | + |
| 10 | +## Read first |
| 11 | + |
| 12 | +- `docs/concepts/qa-e2e-automation.md` |
| 13 | +- `docs/help/testing.md` |
| 14 | +- `docs/channels/qa-channel.md` |
| 15 | +- `qa/QA_KICKOFF_TASK.md` |
| 16 | +- `qa/seed-scenarios.json` |
| 17 | +- `extensions/qa-lab/src/suite.ts` |
| 18 | + |
| 19 | +## Model policy |
| 20 | + |
| 21 | +- Live OpenAI lane: `openai/gpt-5.4` |
| 22 | +- Fast mode: on |
| 23 | +- Do not use: |
| 24 | + - `openai/gpt-5.4-pro` |
| 25 | + - `openai/gpt-5.4-mini` |
| 26 | +- Only change model policy if the user explicitly asks. |
| 27 | + |
| 28 | +## Default workflow |
| 29 | + |
| 30 | +1. Read the seed plan and current suite implementation. |
| 31 | +2. Decide lane: |
| 32 | + - mock/dev: `mock-openai` |
| 33 | + - real validation: `live-openai` |
| 34 | +3. For live OpenAI, use: |
| 35 | + |
| 36 | +```bash |
| 37 | +OPENCLAW_LIVE_OPENAI_KEY="${OPENAI_API_KEY}" \ |
| 38 | +pnpm openclaw qa suite \ |
| 39 | + --provider-mode live-openai \ |
| 40 | + --model openai/gpt-5.4 \ |
| 41 | + --alt-model openai/gpt-5.4 \ |
| 42 | + --fast \ |
| 43 | + --output-dir .artifacts/qa-e2e/run-all-live-openai-<tag> |
| 44 | +``` |
| 45 | + |
| 46 | +4. Watch outputs: |
| 47 | + - summary: `.artifacts/qa-e2e/run-all-live-openai-<tag>/qa-suite-summary.json` |
| 48 | + - report: `.artifacts/qa-e2e/run-all-live-openai-<tag>/qa-suite-report.md` |
| 49 | +5. If the user wants to watch the live UI, find the current `openclaw-qa` listen port and report `http://127.0.0.1:<port>`. |
| 50 | +6. If a scenario fails, fix the product or harness root cause, then rerun the full lane. |
| 51 | + |
| 52 | +## Repo facts |
| 53 | + |
| 54 | +- Seed scenarios live in `qa/`. |
| 55 | +- Main live runner: `extensions/qa-lab/src/suite.ts` |
| 56 | +- QA lab server: `extensions/qa-lab/src/lab-server.ts` |
| 57 | +- Child gateway harness: `extensions/qa-lab/src/gateway-child.ts` |
| 58 | +- Synthetic channel: `extensions/qa-channel/` |
| 59 | + |
| 60 | +## What “done” looks like |
| 61 | + |
| 62 | +- Full suite green for the requested lane. |
| 63 | +- User gets: |
| 64 | + - watch URL if applicable |
| 65 | + - pass/fail counts |
| 66 | + - artifact paths |
| 67 | + - concise note on what was fixed |
| 68 | + |
| 69 | +## Common failure patterns |
| 70 | + |
| 71 | +- Live timeout too short: |
| 72 | + - widen live waits in `extensions/qa-lab/src/suite.ts` |
| 73 | +- Discovery cannot find repo files: |
| 74 | + - point prompts at `repo/...` inside seeded workspace |
| 75 | +- Subagent proof too brittle: |
| 76 | + - prefer stable final reply evidence over transient child-session listing |
| 77 | +- Harness “rebuild” delay: |
| 78 | + - dirty tree can trigger a pre-run build; expect that before ports appear |
| 79 | + |
| 80 | +## When adding scenarios |
| 81 | + |
| 82 | +- Add scenario metadata to `qa/seed-scenarios.json` |
| 83 | +- Keep kickoff expectations in `qa/QA_KICKOFF_TASK.md` aligned |
| 84 | +- Add executable coverage in `extensions/qa-lab/src/suite.ts` |
| 85 | +- Prefer end-to-end assertions over mock-only checks |
| 86 | +- Save outputs under `.artifacts/qa-e2e/` |
0 commit comments