Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Coordinates testing strategy and execution across all test types. Use when creating test plans, implementing tests (unit/integration/E2E), or enforcing coverage requirements (80% minimum). Applies testing-requirements.md.
.claude/skills/aiskillstore-test-orchestrator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 55% | 0% |
Acts as QA Lead, coordinating all testing activities across the system.
ai-state/active/testing/ ├── test-plans.json # Test strategies ├── coverage.json # Coverage metrics ├── results.json # Test results └── tasks/ # Active test tasks
unit-test-skill - Unit test creationintegration-test-skill - Integration testinge2e-test-skill - End-to-end scenariosperformance-test-skill - Load/stress testingsecurity-test-skill - Security validationyamlcontext: task_id: "task-004-testing" component: "authentication" test_requirements: unit: ["all public methods", ">80% coverage"] integration: ["database operations", "API calls"] e2e: ["login flow", "password reset"] performance: ["100 concurrent users", "<200ms response"] standards: - "testing-requirements.md" existing_tests: coverage: 65% failing: ["test_login_invalid"]
Updates testing documentation:
json{ "event": "code.changed", "component": "user-service", "impact": ["auth", "profile"], "requires_testing": true }
json{ "event": "tests.completed", "component": "user-service", "results": { "passed": 145, "failed": 2, "skipped": 3, "coverage": "85%" }, "status": "FAILED" }
pythonclass TestOrchestrator: def run_tests(self, suites): # 1. Identify independent tests # 2. Distribute across workers # 3. Collect results # 4. Aggregate coverage # 5. Generate report
pythondef retry_failed_tests(failures): MAX_RETRIES = 3 for test in failures: for attempt in range(MAX_RETRIES): if run_test(test).passed: break else: mark_as_flaky(test)
typescriptclass LoginPage { async login(email: string, password: string) { await this.emailInput.fill(email); await this.passwordInput.fill(password); await this.submitButton.click(); } }
pythondef test_user_creation(): user = UserBuilder() .with_email("test@example.com") .with_role("admin") .build() assert user.is_valid()
❌ Tests that depend on order ❌ Hardcoded test data ❌ Testing implementation details ❌ Slow test suites ❌ Flaky tests ignored ❌ No test documentation
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 14,342 | 9,439 | -34% | 1 | 1 | 0% | 1,788 | 3,117 | +74% | 0 | 0 | — |
case-07 | fail→fail | 14,072 | 17,814 | +27% | 1 | 1 | 0% | 2,167 | 3,509 | +62% | 0 | 0 | — |
case-01 | fail→pass | 48,623 | 30,071 | -38% | 1 | 1 | 0% | 6,474 | 6,143 | -5% | 0 | 0 | — |
case-02 | fail→pass | 27,501 | 16,735 | -39% | 1 | 1 | 0% | 4,805 | 4,771 | -1% | 0 | 0 | — |
case-03 | fail→pass | 28,355 | 26,247 | -7% | 1 | 1 | 0% | 4,670 | 5,450 | +17% | 0 | 0 | — |
case-04 | fail→pass | 19,920 | 12,928 | -35% | 1 | 1 | 0% | 2,446 | 2,818 | +15% | 0 | 0 | — |
case-05 | fail→pass | 21,938 | 20,500 | -7% | 1 | 1 | 0% | 2,663 | 4,124 | +55% | 0 | 0 | — |
case-08 | fail→pass | 18,812 | 4,046 | -78% | 1 | 1 | 0% | 2,505 | 2,210 | -12% | 0 | 0 | — |
case-09 | fail→pass | 13,069 | 13,709 | +5% | 1 | 1 | 0% | 2,189 | 3,052 | +39% | 0 | 0 | — |
case-10 | pass→pass | 18,108 | 21,288 | +18% | 1 | 1 | 0% | 2,786 | 4,277 | +54% | 0 | 0 | — |
case-11 | fail→pass | 14,529 | 12,942 | -11% | 1 | 1 | 0% | 2,337 | 2,923 | +25% | 0 | 0 | — |
case-12 | fail→pass | 13,272 | 10,688 | -19% | 1 | 1 | 0% | 2,249 | 3,220 | +43% | 0 | 0 | — |
case-13 | fail→pass | 21,944 | 13,916 | -37% | 1 | 1 | 0% | 2,906 | 2,981 | +3% | 0 | 0 | — |
case-14 | pass→pass | 21,533 | 21,569 | +0% | 1 | 1 | 0% | 2,981 | 4,406 | +48% | 0 | 0 | — |
case-15 | pass→pass | 12,798 | 16,538 | +29% | 1 | 1 | 0% | 2,394 | 3,641 | +52% | 0 | 0 | — |
case-16 | pass→pass | 18,024 | 23,741 | +32% | 1 | 1 | 0% | 2,136 | 3,577 | +67% | 0 | 0 | — |
case-17 | pass→pass | 12,178 | 14,050 | +15% | 1 | 1 | 0% | 1,957 | 2,958 | +51% | 0 | 0 | — |
case-18 | pass→pass | 23,366 | 8,805 | -62% | 1 | 1 | 0% | 3,134 | 2,129 | -32% | 0 | 0 | — |
case-19 | fail→fail | 17,145 | 23,433 | +37% | 1 | 1 | 0% | 2,171 | 5,108 | +135% | 0 | 0 | — |
case-20 | fail→fail | 27,637 | 26,505 | -4% | 1 | 1 | 0% | 5,646 | 5,802 | +3% | 0 | 0 | — |
case-21 | fail→fail | 29,481 | 21,480 | -27% | 1 | 1 | 0% | 5,188 | 5,168 | -0% | 0 | 0 | — |
case-22 | pass→pass | 17,257 | 15,047 | -13% | 1 | 1 | 0% | 2,643 | 3,838 | +45% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +45 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.