openclaw-qa-testing
Skill184 starsChanged 7 months agoMITView on GitHub
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.
- Reads credentials
We split this skill into the rules it gives an agent
17 rules. 6 are common, 1 is distinctive, and 10 are very specific to this project.
6
Common
Most of the 13 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use this skill for qa-lab / qa-channel work.
- Distinctive: line 27
Only change model policy if the user explicitly asks.
- Common: line 31
Read the scenario pack and current suite implementation.
- Very specific: line 49
If the user wants to watch the live UI, find the current openclaw-qa listen port and report http://127.0.0.1:<port>.
- Common: line 50
If a scenario fails, fix the product or harness root cause, then rerun the full lane.
- Very specific: line 54
Use qa character-eval for style/persona/vibe checks across multiple live models.
- Very specific: line 75
Do not add new examples with separate --model-thinking.
- Very specific: line 84
Keep prompts natural and task-shaped.
- Common: line 85
Prefer at least one real task, such as creating or editing a tiny workspace artifact, so the transcript captures character under normal …
- Very specific: line 89
Use model refs shaped like codex-cli/<codex-model> whenever QA should exercise Codex as a model backend.
- Common: line 108
Treat the concrete Codex model name as user/config input.
- Very specific: line 111
If Codex returns fallback/auth text every turn, first check CODEX_HOME, ~/.profile, and gateway child logs before changing scenario …
- Common: line 138
prefer stable final reply evidence over transient child-session listing
- Very specific: line 144
Add or update scenario markdown under qa/scenarios/
- Very specific: line 145
Keep kickoff expectations in qa/scenarios/index.md aligned
- Very specific: line 146
Add executable coverage in extensions/qa-lab/src/suite.ts
- Common: line 147
Prefer end-to-end assertions over mock-only checks
“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
OpenClaw QA Testing
Use this skill for qa-lab / qa-channel work. Repo-local QA only.
Read first
docs/concepts/qa-e2e-automation.mddocs/help/testing.mddocs/channels/qa-channel.mdqa/README.mdqa/scenarios/index.mdextensions/qa-lab/src/suite.tsextensions/qa-lab/src/character-eval.ts
Model policy
- Live OpenAI lane:
openai/gpt-5.4 - Fast mode: on
- Do not use:
openai/gpt-5.4-proopenai/gpt-5.4-mini
- Only change model policy if the user explicitly asks.
Default workflow
- Read the scenario pack and current suite implementation.
- Decide lane:
- mock/dev:
mock-openai - real validation:
live-frontier
- mock/dev:
- For live OpenAI, use:
OPENCLAW_LIVE_OPENAI_KEY="${OPENAI_API_KEY}" \
pnpm openclaw qa suite \
--provider-mode live-frontier \
--model openai/gpt-5.4 \
--alt-model openai/gpt-5.4 \
--output-dir .artifacts/qa-e2e/run-all-live-frontier-<tag>- Watch outputs:
- summary:
.artifacts/qa-e2e/run-all-live-frontier-<tag>/qa-suite-summary.json - report:
.artifacts/qa-e2e/run-all-live-frontier-<tag>/qa-suite-report.md
- summary:
- If the user wants to watch the live UI, find the current
openclaw-qalisten port and reporthttp://127.0.0.1:<port>. - If a scenario fails, fix the product or harness root cause, then rerun the full lane.
Character evals
Use qa character-eval for style/persona/vibe checks across multiple live models.
pnpm openclaw qa character-eval \
--model openai/gpt-5.4,thinking=xhigh \
--model openai/gpt-5.2,thinking=xhigh \
--model openai/gpt-5,thinking=xhigh \
--model anthropic/claude-opus-4-6,thinking=high \
--model anthropic/claude-sonnet-4-6,thinking=high \
--model zai/glm-5.1,thinking=high \
--model moonshot/kimi-k2.5,thinking=high \
--model google/gemini-3.1-pro-preview,thinking=high \
--judge-model openai/gpt-5.4,thinking=xhigh,fast \
--judge-model anthropic/claude-opus-4-6,thinking=high \
--concurrency 16 \
--judge-concurrency 16 \
--output-dir .artifacts/qa-e2e/character-eval-<tag>- Runs local QA gateway child processes, not Docker.
- Preferred model spec syntax is
provider/model,thinking=<level>[,fast|,no-fast|,fast=<bool>]for both--modeland--judge-model. - Do not add new examples with separate
--model-thinking; keep that flag as legacy compatibility only. - Defaults to candidate models
openai/gpt-5.4,openai/gpt-5.2,openai/gpt-5,anthropic/claude-opus-4-6,anthropic/claude-sonnet-4-6,zai/glm-5.1,moonshot/kimi-k2.5, andgoogle/gemini-3.1-pro-previewwhen no--modelis passed. - Candidate thinking defaults to
high, withxhighfor OpenAI models that support it. Prefer inline--model provider/model,thinking=<level>;--thinking <level>and--model-thinking <provider/model=level>remain compatibility shims. - OpenAI candidate refs default to fast mode so priority processing is used where supported. Use inline
,fast,,no-fast, or,fast=falsefor one model; use--fastonly to force fast mode for every candidate. - Judges default to
openai/gpt-5.4,thinking=xhigh,fastandanthropic/claude-opus-4-6,thinking=high. - Report includes judge ranking, run stats, durations, and full transcripts; do not include raw judge replies. Duration is benchmark context, not a grading signal.
- Candidate and judge concurrency default to 16. Use
--concurrency <n>and--judge-concurrency <n>to override when local gateways or provider limits need a gentler lane. - Scenario source should stay markdown-driven under
qa/scenarios/. - For isolated character/persona evals, write the persona into
SOUL.mdand blankIDENTITY.mdin the scenario flow. UseSOUL.md + IDENTITY.mdonly when intentionally testing how the normal OpenClaw identity combines with the character. - Keep prompts natural and task-shaped. The candidate model should receive character setup through
SOUL.md, then normal user turns such as chat, workspace help, and small file tasks; do not ask "how would you react?" or tell the model it is in an eval. - Prefer at least one real task, such as creating or editing a tiny workspace artifact, so the transcript captures character under normal tool use instead of pure roleplay.
Codex CLI model lane
Use model refs shaped like codex-cli/<codex-model> whenever QA should exercise Codex as a model backend.
Examples:
pnpm openclaw qa suite \
--provider-mode live-frontier \
--model codex-cli/<codex-model> \
--alt-model codex-cli/<codex-model> \
--scenario <scenario-id> \
--output-dir .artifacts/qa-e2e/codex-<tag>pnpm openclaw qa manual \
--model codex-cli/<codex-model> \
--message "Reply exactly: CODEX_OK"- Treat the concrete Codex model name as user/config input; do not hardcode it in source, docs examples, or scenarios.
- Live QA preserves
CODEX_HOMEso Codex CLI auth/config works while keepingHOMEandOPENCLAW_HOMEsandboxed. - Mock QA should scrub
CODEX_HOME. - If Codex returns fallback/auth text every turn, first check
CODEX_HOME,~/.profile, and gateway child logs before changing scenario assertions. - For model comparison, include
codex-cli/<codex-model>as another candidate inqa character-eval; the report should label it as an opaque model name.
Repo facts
- Seed scenarios live in
qa/. - Main live runner:
extensions/qa-lab/src/suite.ts - QA lab server:
extensions/qa-lab/src/lab-server.ts - Child gateway harness:
extensions/qa-lab/src/gateway-child.ts - Synthetic channel:
extensions/qa-channel/
What “done” looks like
- Full suite green for the requested lane.
- User gets:
- watch URL if applicable
- pass/fail counts
- artifact paths
- concise note on what was fixed
Common failure patterns
- Live timeout too short:
- widen live waits in
extensions/qa-lab/src/suite.ts
- widen live waits in
- Discovery cannot find repo files:
- point prompts at
repo/...inside seeded workspace
- point prompts at
- Subagent proof too brittle:
- prefer stable final reply evidence over transient child-session listing
- Harness “rebuild” delay:
- dirty tree can trigger a pre-run build; expect that before ports appear
When adding scenarios
- Add or update scenario markdown under
qa/scenarios/ - Keep kickoff expectations in
qa/scenarios/index.mdaligned - Add executable coverage in
extensions/qa-lab/src/suite.ts - Prefer end-to-end assertions over mock-only checks
- Save outputs under
.artifacts/qa-e2e/
Other versions13 projects use a version of this.
Word for word · 0
None found.
Edited · 13
- steipete/warelay★ 394k38% same
- moltbot/clawdbot★ 394k38% same
- moltbot/moltbot★ 394k38% same
- clawdbot/clawdbot★ 394k38% same
- steipete/clawdis★ 394k38% same
- openclaw/openclaw★ 394k38% same
- molt-bot/clawdbot★ 391k38% same
- friuns2/openclaw-android-assistant★ 57338% same
- OpenClawAndroid/openclaw-android-assistant★ 55638% same
- AtomicBot-ai/atomicbot★ 32585% same
3 more not listed
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use auto-qa, discord-e2e and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
supermansuper563-opsSkillauto-qa
Continuously audit, live-test, and stress-test the current OpenClaw codebase across at least ten independently scoped subsystem lanes; default to 100 independently verified, landed root-cause fixes, maintain an evidence-backed report, and announce each merged pull request immediately. Use for OpenClaw-wide autonomous QA, live-provider campaigns, gateway, CLI, web, plugin, native-app, scenario, packaging, and extended soak testing.
Also in 11 projects that use this
molt-botSkilldiscord-e2e
Test Discord with Convex-leased QA bots: check credentials without a Gateway, exercise owned messages, or prove OpenClaw replies, files, threads, reactions, streaming, and typing. Distinguish API and Gateway evidence from manual user interactions.
Also in 10 projects that use this
molt-botSkillopenclaw-repair-sweep
Run scoped OpenClaw issue/PR repair campaigns: coordinate workers, prove root causes, and land or close verified work under the requested authority.
Also in 10 projects that use this
bighamxSkillplugin-sdk-impact
Query how many public plugins use a Plugin SDK method, optionally by recent release date, and assess SDK deprecation or behavior changes using live ClawHub evidence.
Also in 7 projects that use this
clawdbotSkillopenclaw-performance
Performance work in OpenClaw: a slow or heavy flow (latency, CPU, memory, SQL, RPC, renders), writing or reviewing a perf PR, or adding a cache. Count the work, delete waste first, cache last.
Also in 6 projects that use this
clawsoulsSkillchannel-message-flows
Use when running QA Lab channel message flow evidence.
Also in 12 projects that use this
- +2 more from molt-bot
In this repository67 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- extensions/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- ui/AGENTS.mdAGENTS.md
- openclaw-ghsa-maintainerSkill
- openclaw-parallels-smokeSkill
- openclaw-pr-maintainerSkill
- openclaw-release-maintainerSkill
- openclaw-secret-scanning-maintainerSkill
- openclaw-test-heap-leaksSkill
- parallels-discord-roundtripSkill
- security-triageSkill
- 1passwordSkill
- apple-notesSkill
- apple-remindersSkill
- bear-notesSkill
- blogwatcherSkill
- blucliSkill
- bluebubblesSkill
- camsnapSkill
- canvasSkill
- clawhubSkill
- coding-agentSkill
- discordSkill
- eightctlSkill
- geminiSkill
- gh-issuesSkill
- gifgrepSkill
- githubSkill
- gogSkill
- goplacesSkill
- healthcheckSkill
- himalayaSkill
- imsgSkill
- mcporterSkill
- model-usageSkill
- nano-pdfSkill
- node-connectSkill
- notionSkill
- obsidianSkill
- openai-whisper-apiSkill
- openai-whisperSkill
- openhueSkill
- oracleSkill
- ordercliSkill
- peekabooSkill
- sagSkill
- session-logsSkill
- sherpa-onnx-ttsSkill
- skill-creatorSkill
- slackSkill
- songseeSkill
- sonoscliSkill
- spotify-playerSkill
- summarizeSkill
- taskflow-inbox-triageSkill
- taskflowSkill
- things-macSkill
- tmuxSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

