gen-test-plan
Analyze repo, detect stack, trace changes to user-facing entry points, generate E2E YAML test plan
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/anderskev/gen-test-planGenerate Test Plan
Analyze the repository's tech stack, branch changes vs default, and generate an executable YAML test plan focused on user-facing impact.
This is an E2E test plan — not an automated test wrapper. The generated plan will be executed by an autonomous agent acting exactly as a human QA tester would: launching real binaries, hitting real endpoints, interacting with real databases, and verifying real observable behavior.
Critical Rule: No Automated Test Duplication
NEVER generate test steps that re-run the project's existing automated test suite. This means:
- No
cargo test,pytest,npm test,go test,mix test, or equivalent commands as test steps - No wrapping unit/integration test modules in a test case
- No "run the tests and check they pass" — that's CI's job, not QA's
If you find yourself writing a test step that invokes the project's test runner, stop and rethink. Ask: "What would a human tester do to verify this feature works?" The answer is never "run the unit tests."
What E2E test steps look like:
- Build the binary and run it with real arguments, check stdout/stderr/exit code
- Start a server and hit it with curl
- Run a CLI command that writes to a real database, then query the database to verify
- Launch the TUI and verify it renders (via screenshot or process lifecycle)
- Chain multiple commands that exercise a full user workflow end-to-end
Hard gates
Complete these in order. Do not advance to the next gate until its Pass condition is met (each pass should leave retrievable evidence: pasted command output, a written list, or the generated file on disk). Scheduling: Gate 1 before Step 2; Gate 2 before Step 5; Gate 3 before Step 7; Gates 4–5 during Step 8 (after the Step 7 summary).
-
Diff and base pinned (after Step 1) — Resolve the base branch from
--basewhen provided, otherwise use the repo default (mainormasterper Step 1). CompareHEADto$(git merge-base HEAD origin/<base_branch>)(or equivalent if the remote ref differs). Pass: You recordcurrent_branch,base_branch, the merge-base SHA or range used, andchanged_filesfromgit diff --name-only <merge-base>..HEAD(empty list allowed if you paste or quote that output and state “no file changes vs base”). -
Trace complete (after Step 4) — Pass: Every affected entry point you will test has a Core functionality vs Configuration/admin classification, and the Step 4 requirement holds: at least one test targets a core entry point or you document why that is impossible and flag manual review.
-
Plan file valid (after Step 6, before Step 7) — Pass:
docs/testing/test-plan.yamlexists and the following command exits 0 (parses the YAML and asserts all four top-level keys are present — a singlegrep -Ewith alternations would pass on any one match, so do not substitute it):
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-anderskev-gen-test-plan": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
explanation-docs
Explanation documentation patterns for understanding-oriented content - conceptual guides that explain why things work the way they do
tutorial-docs
Tutorial patterns for documentation - learning-oriented guides that teach through guided doing
pytest-code-review
Reviews pytest test code for async patterns, fixtures, parametrize, and mocking. Use when reviewing test_*.py files, checking async test functions, fixture usage, or mock patterns.
reference-docs
Reference documentation patterns for API and symbol documentation. Use when writing reference docs, API docs, parameter tables, or technical specifications. Triggers on reference docs, API reference, function reference, parameters table, symbol documentation.
serde-code-review
Reviews serde serialization code for derive patterns, enum representations, custom implementations, and common serialization bugs. Use when reviewing Rust code that uses serde, serde_json, toml, or any serde-based serialization format. Covers attribute macros, field renaming, and format-specific pitfalls.