gate-tests

A test-quality review that examines whether a test suite can catch real bugs, not merely whether its tests pass.

In plain words
What is it for?
It reviews relevant tests for specific assertions, boundary and error coverage, mock discipline, and other weaknesses, using adversarial analysis when needed.
Why use it?
Passing tests can create false confidence when assertions are vague, edge cases are missing, or mocks hide the behavior under test.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/obsidian-owl/specwright/gate-tests
Any agent
npx skills add Obsidian-Owl/specwright --skill gate-tests
Clone the repo
git clone --depth 1 https://github.com/Obsidian-Owl/specwright

Made for: Claude Code, Codex.

Per session 39 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,054 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00039 $0.01054
Opus 5 $0.00019 $0.00527
Sonnet 5 $0.00008 $0.00211
Haiku 4.5 $0.00004 $0.00105

Measured 2d ago against content hash 7f73eacaf171, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

gate-tests scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

core/skills/gate-tests/SKILL.md · 81 lines

How it starts

The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Gate: Test Quality

Goal

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.

Inputs

  • {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
  • Test files in the codebase

Outputs

  • Evidence file at {workDir}/evidence/test-quality.md
  • Gate status in the selected work's workflow.json
  • Findings organized by category with specific file:line references

Constraints

Scope (MEDIUM freedom):

  • Focus on test files related to the current work unit.
  • Identify test files via convention (test/, tests/, .test., .spec.).

Analysis (HIGH freedom):

  • Delegate to specwright-tester agent for adversarial test quality review.
  • The tester evaluates against these quality dimensions:
    • Assertion strength: Are assertions specific? (toBe(42) vs toBeDefined())
    • Boundary coverage: Are edge cases tested? (empty, null, max, negative)
    • Mock discipline: Are mocks justified? Are integration boundaries real?
    • Error paths: Are failure scenarios tested? (network down, invalid input)
    • Behavior focus: Do tests verify behavior or implementation details?
    • Mutation resistance: Tiered analysis (T1/T2/T3) stays inside this gate; missing tools route to T2/T3, never a silent skip.
      • T1: configured tool-backed mutation run. Report concrete file:line evidence plus mutation score or restricted survivor details when available: operator, location, before/after, defect category, and action.
      • T2: LLM-generated mutation check when zero applicable mutants make T1 uninformative or when the configured LLM fallback is the active path. Report concrete file:line evidence plus the same restricted survivor details: operator, location, before/after, defect category, and action.
      • T3: qualitative floor when T1 errors, T2 errors, or fallback unavailable would otherwise leave the gate blind. Audit the three bypass classes: hardcoded returns, partial implementations, boundary skips.
      • Honor accepted-mutant lineage through the shared approval record and config contract instead of silently waiving survivors.
    • Boundary test approach: Validate mock-vs-integration decisions against TESTING.md boundary classifications per protocols/testing-strategy.md. WARN if internal boundary is mocked. INFO if TESTING.md absent.
    • Tier distribution: For each AC tagged with [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).
  • Each weakness is a finding with severity and file:line reference.

Read the full file on GitHub · 81 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 81 lines · 39 tokens per session scan A 7f73eacaf171

Subscribe to this mod's changes

gate-tests is a skill published in the GitHub repository Obsidian-Owl/specwright (9 stars, last pushed 4mo ago), licensed MIT. It adds 39 tokens to every session and 1,054 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

ai-spec-project-start

Install or upgrade SDAD; migrate an existing SDAD project; recover or repair sdad-state.yaml, INDEX, ledger, or handoff consistency; run or interpret SDAD Doctor; or diagnose the SDAD control plane. Use only for SDAD-specific bootstrap, migration, repair, and Doctor operations.

LiveTrack-X/spec-driven-ai-development · 67 tokens

phase-7-testing

Phase 7 — Test Strategy with pyramid, coverage gates, load tests, and Critical User Journeys.

exchanet/method_enterprise_builder_planning · 25 tokens

gsd-audit-milestone

Audit milestone completion against original intent before archiving.

open-gsd/gsd-core · 17 tokens

spec-kitty-charter-doctrine

Run charter interview, generation, context, and sync workflows for project governance in Spec Kitty 3.x. Access doctrine artifacts programmatically via DoctrineService. Resolve agent profiles. Load action-scoped governance context iteratively, not all at once. Triggers: "interview for charter", "generate charter"…

Priivacy-ai/spec-kitty · 135 tokens

create-mcp-server

Build, iterate, and evaluate Model Context Protocol (MCP) servers that expose external services as tools an LLM can call. Covers schema/tool design, error handling, pagination, MCP Inspector testing, and an eval set. Use when asked to "build an MCP server", "create an MCP tool", "wrap this API as MCP", "expose X to…

open-gsd/gsd-pi · 90 tokens

spk-team-auth

Handle Spec Kitty team authentication, hosted credentials, account selection, and auth-related recovery.

Priivacy-ai/spec-kitty · 22 tokens