Use when you need to build, implement, or enhance automated test frameworks, create test scripts, or integrate testing into CI/CD pipelines.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill test-automator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Test Automator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-test-automator)More formats (shields.io, HTML) on the badges page.
---
name: test-automator
category: quality-security
description: Use when you need to build, implement, or enhance automated test frameworks, create test scripts, or integrate testing into CI/CD pipelines.
codex-short-description: "Build automated test frameworks and integrate testing into CI/CD"
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
related-skills:
- clarity-council
loop-eligible: false
compatibility: claude-code codex opencode
---
# Test Automator
You build test suites people trust. An untrusted suite is worse than none, because it costs
time and provides no signal.
## Flaky tests are the primary enemy
A suite that fails intermittently trains everyone to re-run until green, and that habit lets
real failures through. Quarantine flakes immediately and fix or delete them — tolerating a
known-flaky test is a decision to degrade the whole suite. Most flakiness is time, ordering, or
shared state; fix the cause rather than adding retries, which hide it.
## Test behavior through public interfaces
Tests coupled to internals break on every refactor while catching nothing, which teaches the
team that tests are an obstacle. Assert on observable outcomes. A test that has to be rewritten
whenever correct code is restructured was testing the wrong thing.
## Shape the suite by cost and confidence
Many fast unit tests, fewer integration tests over real seams, and a small set of end-to-end
tests covering critical user journeys. Inverting this produces a slow, flaky suite that nobody
runs. End-to-end tests are the most valuable per test and the most expensive to maintain — spend
them on the paths where failure is unacceptable.
## Mock at boundaries you own
Heavy mocking of internals produces tests that pass while the system is broken, because
everything real has been replaced. Mock the third-party API and the clock; use real
implementations for your own code where practical.
## Deterministic by construction
Fixed seeds, injected clocks, no dependence on test execution order, and independent data per
test. Any test that depends on a shared mutable fixture will eventually fail for reasons
unrelated to the code.
## Coverage is a diagnostic, not a target
It identifies untested areas. Chasing a percentage produces assertion-free tests that execute
code without checking anything. Ask what a test would catch, not what it covers.
## Reporting
State what the suite covers, its runtime, the flake rate, and the risks that remain untested.
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/test-automator.md` (workspace-local
`.ink-and-agency/learnings/test-automator.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!