testing-gate

Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).

242 stars

Best use case

testing-gate is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).

Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).

Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.

Practical example

Example input

Use the "testing-gate" skill to help with this workflow task. Context: Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).

Example output

A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.

When to use this skill

  • Use this skill when you want a reusable workflow rather than writing the same prompt again and again.

When not to use this skill

  • Do not use this when you only need a one-off answer and do not need a reusable workflow.
  • Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/testing-gate/SKILL.md --create-dirs "https://raw.githubusercontent.com/aiskillstore/marketplace/main/skills/danielpodolsky/testing-gate/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/testing-gate/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How testing-gate Compares

Feature / Agenttesting-gateStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Gate 6 - Verify tests exist and cover critical paths. Issues result in WARNINGS (encourages tests, doesn't block).

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Gate 6: Testing Verification

> "Tests are proof of understanding. If you can't test it, do you really understand it?"

## Purpose

This gate encourages juniors to write tests for their features. Unlike the Ownership Gate, this does NOT block completion - it issues warnings to encourage the testing habit.

## Gate Status

- **PASS** — Tests exist and cover critical paths
- **WARNING** — No tests or insufficient coverage (can proceed with note)

**Note:** This gate does NOT block. The goal is to build the testing habit through encouragement, not enforcement.

---

## Gate Questions

Ask in sequence:

### Question 1: Test Existence
> "What tests did you write for this feature?"

**Looking for:**
- At least one test file exists
- Tests are actually running (not skipped)
- Tests are meaningful (not just `expect(true).toBe(true)`)

**If no tests:**
> "I noticed there aren't tests for this feature. Testing isn't required to complete, but it's a habit worth building. What would you test if you had time?"

### Question 2: Coverage Strategy
> "What does your test prove about this feature?"

**Looking for:**
- Happy path covered
- At least one edge case considered
- Error states (if applicable)

**Follow-up:**
> "If I broke [specific part], which test would catch it?"

### Question 3: Test Quality
> "Show me your most important test. What behavior does it verify?"

**Looking for:**
- Testing behavior, not implementation
- Clear test names
- AAA pattern (Arrange, Act, Assert)

---

## Response Templates

### If PASS (Tests Exist)

```
✅ TESTING GATE: PASSED

Nice work including tests! I see you covered:
- [Specific test they wrote]
- [Edge case they handled]

Key strength: [Something they did well]

Consider adding: [One suggestion for future]

Moving to code review...
```

### If WARNING (No Tests)

```
⚠️ TESTING GATE: WARNING

No tests found for this feature. That's okay - we can proceed.

But here's why tests matter:
1. **Interview Gold**: "I implemented tests for critical flows..."
2. **Confidence**: Know your changes don't break things
3. **Documentation**: Tests show how code should be used

Quick win for next time:
- Test the happy path first
- Add one edge case
- That's already better than most!

Proceeding to code review...
```

### If WARNING (Weak Tests)

```
⚠️ TESTING GATE: WARNING

Tests exist but could be stronger:

**Issue**: [What's missing or weak]
**Question**: "If [scenario], would your tests catch it?"

This doesn't block you, but consider:
- [Specific improvement suggestion]

Proceeding to code review...
```

---

## What Makes a Good Test Suite?

| Level | Coverage | Characteristics |
|-------|----------|-----------------|
| Minimal | 1-2 tests | Happy path only |
| Good | 3-5 tests | Happy path + main edge cases |
| Strong | 5-10 tests | Happy path + edge cases + error states |
| Interview-Ready | Full pyramid | Unit + Integration + E2E for critical flows |

---

## Socratic Guidance

If they want to add tests but don't know where to start:

1. "What's the ONE thing that would be really bad if it broke?"
2. "What input would a user never send but a hacker might?"
3. "What happens when the server is slow or returns an error?"

---

## Stack-Specific Hints

| Stack | Suggestion |
|-------|------------|
| Vite + React | "Vitest + React Testing Library is fast and integrated" |
| Next.js | "Vitest or Jest works great with Next" |
| API/Backend | "Test your endpoints with supertest or native HTTP" |
| Python | "pytest is the standard - simple and powerful" |

---

## Interview Connection

> "Testing is interview gold."

When they pass this gate with tests:
- Note it for their STAR story
- "You can talk about your testing strategy in interviews"
- "What percentage coverage did you achieve?" (for resume)

When they skip tests:
- "Next time, even 2-3 tests makes a huge difference for your portfolio"
- "Employers love seeing test files in your repo"

---

## Why WARNING Not BLOCKING?

1. **Encouragement > Enforcement**: Build the habit through positive reinforcement
2. **Some features are trivial**: Not everything needs tests
3. **Time constraints exist**: Production pressure is real
4. **Learning curve**: Testing has a learning curve; don't block progress

The goal is to make testing feel valuable, not punitive.

Related Skills

testing-strategies

242
from aiskillstore/marketplace

Design comprehensive testing strategies for software quality assurance. Use when planning test coverage, implementing test pyramids, or setting up testing infrastructure. Handles unit testing, integration testing, E2E testing, TDD, and testing best practices.

backend-testing

242
from aiskillstore/marketplace

Write comprehensive backend tests including unit tests, integration tests, and API tests. Use when testing REST APIs, database operations, authentication flows, or business logic. Handles Jest, Pytest, Mocha, testing strategies, mocking, and test coverage.

wordpress-penetration-testing

242
from aiskillstore/marketplace

This skill should be used when the user asks to "pentest WordPress sites", "scan WordPress for vulnerabilities", "enumerate WordPress users, themes, or plugins", "exploit WordPress vulnerabilities", or "use WPScan". It provides comprehensive WordPress security assessment methodologies.

web3-testing

242
from aiskillstore/marketplace

Test smart contracts comprehensively using Hardhat and Foundry with unit tests, integration tests, and mainnet forking. Use when testing Solidity contracts, setting up blockchain test suites, or validating DeFi protocols.

web-security-testing

242
from aiskillstore/marketplace

Web application security testing workflow for OWASP Top 10 vulnerabilities including injection, XSS, authentication flaws, and access control issues.

unit-testing-test-generate

242
from aiskillstore/marketplace

Generate comprehensive, maintainable unit tests across languages with strong coverage and edge case focus.

testing-qa

242
from aiskillstore/marketplace

Comprehensive testing and QA workflow covering unit testing, integration testing, E2E testing, browser automation, and quality assurance.

temporal-python-testing

242
from aiskillstore/marketplace

Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal workflow tests or debugging test failures.

ssh-penetration-testing

242
from aiskillstore/marketplace

This skill should be used when the user asks to "pentest SSH services", "enumerate SSH configurations", "brute force SSH credentials", "exploit SSH vulnerabilities", "perform SSH tunneling", or "audit SSH security". It provides comprehensive SSH penetration testing methodologies and techniques.

sqlmap-database-pentesting

242
from aiskillstore/marketplace

This skill should be used when the user asks to "automate SQL injection testing," "enumerate database structure," "extract database credentials using sqlmap," "dump tables and columns...

sqlmap-database-penetration-testing

242
from aiskillstore/marketplace

This skill should be used when the user asks to "automate SQL injection testing," "enumerate database structure," "extract database credentials using sqlmap," "dump tables and columns from a vulnerable database," or "perform automated database penetration testing." It provides comprehensive guidance for using SQLMap to detect and exploit SQL injection vulnerabilities.

sql-injection-testing

242
from aiskillstore/marketplace

This skill should be used when the user asks to "test for SQL injection vulnerabilities", "perform SQLi attacks", "bypass authentication using SQL injection", "extract database information through injection", "detect SQL injection flaws", or "exploit database query vulnerabilities". It provides comprehensive techniques for identifying, exploiting, and understanding SQL injection attack vectors across different database systems.