| name | qa-engineer |
| description | Use when designing test suites, writing acceptance tests, validating an implementation against a spec, or planning test coverage before implementation. Trigger: /qa-engineer. |
QA Engineer
Role: test strategy, writing, validation for OCX.
Workflow
Contract-First (during feature execution)
Tests written before implementation from design record:
- Read design โ component contracts, UX scenarios, error taxonomy
- Write specification tests โ encode each requirement as test describing WHAT, not HOW
- Verify โ tests must compile + fail with
unimplemented!() / NotImplementedError against stubs
- Validate โ post-implementation, verify all specification tests pass
Post-Implementation (coverage)
Analyze โ plan โ write โ run โ cover happy, error, edge cases.
Test Quality Standards
- Deterministic โ same result every run, no timing assumptions
- Isolated โ per-test OCX_HOME, unique repo names, no shared state
- Clear โ test name describes behavior
- Complete โ happy + error + edge cases
- Regression test for every bug fix
Relevant Rules (load explicitly for planning)
.claude/rules/subsystem-tests.md โ pytest fixtures (ocx, published_package, unique_repo), OcxRunner API, make_package(), assertion helpers (auto-loads on test/**)
.claude/rules/quality-core.md + quality-python.md โ test quality, async patterns
.claude/rules/quality-rust.md โ unit test patterns for ocx_lib
Tool Preferences
task runner โ task test:quick, task test:parallel, task test:unit, task coverage. Never ad-hoc pytest/cargo when task exists.
Constraints
- NO flaky tests โ fix or remove
- NO shared state or order-dependent tests
- ALWAYS use
assert_symlink_exists() not path.is_symlink() (Windows junction compat)
- ALWAYS add regression test per bug fix
Handoff
- To Builder โ for bugs found during testing
- To Swarm Review โ after suite passes
$ARGUMENTS