Skip to content
Back to skills

Test Strategy

ASecurity

Decide what to test and write the tests for a change — regression guards, edge cases, cross-service contracts — and scaffold the test project in the repo's conventions. Use after a fix or feature, or to assess coverage. Triggers on "write tests", "test coverage", "regression test", "validate change", "review test quality".

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentspythongobashsecurity

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add OneDro1d/dark-factory --skill test-strategy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Test Strategy?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Test Strategy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/onedro1d-test-strategy/badge)](https://www.skillsdirectory.com/skills/onedro1d-test-strategy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: test-strategy
description: Decide what to test and write the tests for a change — regression guards, edge cases, cross-service contracts — and scaffold the test project in the repo's conventions. Use after a fix or feature, or to assess coverage. Triggers on "write tests", "test coverage", "regression test", "validate change", "review test quality".
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
---

# Test Strategy + Scaffolding

Goal: protect against regressions cheaply. Test pure logic and cross-service contracts — that's where silent bugs live (record detection, object-store-key drift, data-class split, type coercion). Skip trivial getters.

## Test-first (RED → GREEN → REFACTOR)
Write the test **before** the production code, not after — the bug/feature's
test should exist and **fail (RED)** first, then the implementer makes it pass
**(GREEN)**, then refactor under green. The test list is **derived from the
Design Spec's ACCEPTANCE criteria** (one criterion → one named test), not
invented at validation time. The implementer may not weaken a RED test to pass;
a wrong test goes back to feature-architect. (Validation that lands *after* code
is test-after — a weaker guard. See `.claude/context/AGENT-CONTRACTS.md`.)

## What to test (priority)
1. **The exact bug being fixed** — a test that fails before the fix, passes after.
2. **Cross-service contracts** — drift = silent wedge (object-store key shape, record fields, routing keys).
3. **Security/segregation** — restricted vs non-restricted data routing, fail-safe defaults.
4. **Edge cases** — empty/missing, wrong type, boundary (padding, blank + coerced value).
Avoid tests needing live queue/DB/object-store (those are integration — keep a separate fixture for them).

## Scaffolding conventions
Mirror the repo's existing test layout and pinned tooling versions. Common stacks:
- **.NET** → a `<Service>.Tests` project referencing the service `.csproj` (xUnit). To test `private` helpers, widen to `internal` (never `public`) + add `<InternalsVisibleTo>` to the service csproj. Run: `dotnet test <proj>`.
- **Go** → in-package `<file>_test.go`, table-driven. If valuable logic is inlined in `main()`, extract a named pure func first, then test it. Run: `cd <service> && go test ./...`.
- **Python** → `test_<module>.py` next to the code or under `tests/`. Run: `pytest`.

## Run before reporting — green is the bar
Run the repo's test command (e.g. `dotnet test`, `go test ./...`, `pytest`) and mirror an existing passing suite for structure.

## Output (Validation Report)
```
TESTED: <what + why it matters>
RESULT: <pass/fail summary>
EDGE CASES: <covered>
REGRESSIONS: <checked / found>
VERDICT: <safe / not safe> — and what's still unverified
```
No secrets/PII in fixtures. Don't commit without explicit approval.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…