core/skills/gate-tests/SKILL.md
Audits test quality — assertion strength, boundary coverage, mock discipline, error path testing. Delegates to the tester agent for adversarial analysis. Internal gate — invoked by verify.
npx skillsauth add obsidian-owl/specwright gate-testsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ensure tests are actually worth having. Passing tests that don't catch bugs are worse than no tests — they create false confidence. This gate audits test quality, not just pass/fail.
{projectArtifactsRoot}/config.json -- test commands, project language{projectArtifactsRoot}/TESTING.md -- testing strategy with boundary classifications (optional){repoStateRoot}/work/{selectedWork.id}/workflow.json -- selected work unit{workDir}/evidence/test-quality.mdworkflow.jsonScope (MEDIUM freedom):
Analysis (HIGH freedom):
specwright-tester agent for adversarial test quality review.toBe(42) vs toBeDefined())protocols/testing-strategy.md. WARN if internal boundary is mocked. INFO if TESTING.md absent.[tier: integration], [tier: contract], or [tier: e2e], check whether corresponding tests exist at that tier. Use heuristics: integration tests touch multiple modules and use real infrastructure (Testcontainers, real DB, httptest with real handler); contract tests validate schema or shape at a boundary; E2E tests exercise a full flow. Verdicts: non-unit ACs with matching tier tests that pass → PASS. Non-unit ACs with tier-appropriate tests that fail → BLOCK (forces user decision at gate). Non-unit ACs with only unit-tier tests → BLOCK. Zero non-unit ACs in spec → PASS (nothing to check). When no tier-tagged ACs exist and TESTING.md is absent → INFO (no data to validate, no false positives).Verdict (LOW freedom):
protocols/evidence.md#verdict-rendering.expect(result).toBeDefined() only).protocols/evidence.md#verdict-rendering -- verdict renderingprotocols/evidence.md -- evidence storageprotocols/state.md -- gate status updatesprotocols/delegation.md -- tester agent delegationprotocols/testing-strategy.md -- boundary classifications for mock-vs-integration validation| Condition | Action | |-----------|--------| | No test files found | Gate FAIL: "No tests found for this work unit" | | Tester agent unavailable | Fall back to inline analysis (less thorough) | | Project has no test framework | Gate SKIP with note |
testing
Explicitly adopt an existing work into the current worktree after validating live ownership, stale sessions, and branch consistency.
testing
Orchestrates quality gates for the current work unit. Runs enabled gates in dependency order, produces an aggregate evidence report with gate handoff.
tools
Syncs the local repository by fetching all remotes, updating the base branch, and removing stale local branches that are not protected by live sessions or helper worktrees.
data-ai
Shows current Specwright state for this worktree, the attached work, repo-wide active works, gate results, and lock status. Supports --reset, --cleanup, and --repair {unitId}.