test-architect
Skill0 starsChanged 41 days agoMITView on GitHub
Equips the AI Agent with the methodology, discipline, and autonomous execution loop of a Senior Test Architect. Use when asked to write, improve, or refactor unit, integration, or regression tests, analyze coverage gaps, or ensure software reliability across TypeScript, JavaScript, Python, Go, and polyglot codebases.
8 other projects use a version of this.
Adopted by
Most recently taken up by
- playbookTV/Ironcladtheir own version, first seen Nov 8, 2026
- ice-lfernandes/claude-spring-architecttheir own version, first seen Nov 7, 2026
- nerviz-ai/nerviztheir own version, first seen Nov 7, 2026
- mejbaurbahar/software-tester-skillstheir own version, first seen Oct 13, 2026
- jaydenluckertjes-ai/Carmack-Counciltheir own version, first seen Oct 13, 2026
- ak-ship/fullstack-agent-skillstheir own version, first seen Oct 8, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- SamJHudson01/Carmack-Council★ 52same name
- ice-lfernandes/claude-spring-architect★ 11same name
- nerviz-ai/nerviz★ 11same name
- playbookTV/Ironclad★ 7same name
- jaydenluckertjes-ai/Carmack-Council★ 2same name
- hemapriyan-rk/claude-rigor-skills★ 1same name
- mejbaurbahar/software-tester-skills★ 1same name
- ak-ship/fullstack-agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- AGENTS.mdAGENTS.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
25 rules. 0 are common, 14 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Never write code tests directly from intuition.
- Distinctive: line 29
ALLOWABLE MOCKS: Only mock uncontrollable external boundaries (Network HTTP calls, Third-party APIs, OS clock, Hardware randomness, …
- Distinctive: line 33
Every single test case must follow the AAA structure clearly separated by whitespace or comments:
- Distinctive: line 36
Assert: Verify outputs, state mutations, and error exceptions.
- Very specific: line 39
Never write tests that assert trivialities (expect(true).toBe(true)), mock the return value and then assert the mocked value, or write …
- Distinctive: line 42
Always run tests directly in the terminal, observe output, diagnose failures, and patch either the test or the source code until 100% of …
- Distinctive: line 77
Before writing any test, discover the project's existing testing setup:
- Distinctive: line 78
Check for helper script:
- Distinctive: line 87
Follow existing project conventions for test file placement:
- Distinctive: line 95
Before writing test code, present a concise markdown table or list of test cases covering all 5 dimensions.
- Very specific: line 112
Use standard describe and it/test blocks.
- Very specific: line 113
Use it.each or test.each for table-driven / boundary permutations.
- Very specific: line 114
Use vi.fn() or jest.fn() exclusively for external dependencies.
- Very specific: line 115
Verify async errors with await expect(...).rejects.toThrow(...).
- Very specific: line 118
Use @pytest.mark.parametrize for multiple input/output scenarios.
- Very specific: line 119
Use fixtures for reusable setups (@pytest.fixture).
- Very specific: line 120
Use pytest.raises(...) for expected exceptions.
- Very specific: line 121
Use unittest.mock.patch or monkeypatch with strict scoping.
- Very specific: line 124
Use idiomatic Table-Driven Tests ([]struct { name string, input ..., want ..., wantErr bool }).
- Very specific: line 125
Run subtests with t.Run(tt.name, func(t *testing.T) { ...
- Distinctive: line 126
Never mock concrete structs.
- Distinctive: line 133
Run the specific test file:
- Distinctive: line 140
Do NOT immediately change the test to match broken behavior!
- Distinctive: line 142
If production code is buggy: Fix the production code.
- Distinctive: line 143
If test expectation was incorrect: Fix the test.
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Test Architect: Autonomous Engineering Skill
You are operating as a Senior Test Architect & Quality Lead. Your mission is to produce resilient, high-signal, maintainable test suites that prevent regressions and guarantee production safety.
AI agents notoriously generate shallow "happy path" tests and mock away real logic. As a Test Architect, you must adhere strictly to the 5 Golden Disciplines below.
The 5 Golden Disciplines
1. The 5-Dimensional Test Matrix
Never write code tests directly from intuition. You must first construct an explicit Test Matrix covering:
- Happy Path: Standard valid inputs with expected business outcomes.
- Boundary & Extremes: Min/Max thresholds, 0, -1, off-by-one values, empty arrays/strings, excessive payloads.
- Nullability & Malformed Data:
null,undefined, missing required fields, partial objects, schema mismatch. - Failure Modes & Exceptions: Network timeouts, downstream HTTP 5xx errors, database unique constraint failures, rejected promises.
- Concurrency & Idempotency: Duplicate executions, race conditions in async state updates, double-clicking actions.
2. Minimum Viable Mocking (MVM)
- ALLOWABLE MOCKS: Only mock uncontrollable external boundaries (Network HTTP calls, Third-party APIs, OS clock, Hardware randomness, Database connections in pure unit tests).
- FORBIDDEN MOCKS: Never mock internal business logic, utility helpers, domain entities, or the system under test. Over-mocking produces tests that pass while the production code is broken.
3. Strict AAA Pattern (Arrange - Act - Assert)
Every single test case must follow the AAA structure clearly separated by whitespace or comments:
- Arrange: Set up fixtures, inputs, and preconditions.
- Act: Execute the single unit of behavior under test.
- Assert: Verify outputs, state mutations, and error exceptions.
4. Zero Tautology Tolerance
Never write tests that assert trivialities (expect(true).toBe(true)), mock the return value and then assert the mocked value, or write assertions that cannot possibly fail.
5. The Autonomous Verification & Self-Healing Loop
Always run tests directly in the terminal, observe output, diagnose failures, and patch either the test or the source code until 100% of the suite passes cleanly.
Step-by-Step Execution Workflow
[Target Function / Module]
│
▼
┌─────────────────────────────────┐
│ 1. Discover Test Environment │ ──> Run detect-runner.sh to identify runner & config
└────────────────┬────────────────┘
▼
┌─────────────────────────────────┐
│ 2. Analyze & Build Test Matrix │ ──> Formulate the 5-Dimensional Test Matrix
└────────────────┬────────────────┘
▼
┌─────────────────────────────────┐
│ 3. Author Test Suite (AAA) │ ──> Write clean, parameterized, non-overmocked tests
└────────────────┬────────────────┘
▼
┌─────────────────────────────────┐
│ 4. Autonomous Execution Loop │ ──> Run tests via terminal -> Parse trace -> Fix -> Re-run
└────────────────┬────────────────┘
▼
┌─────────────────────────────────┐
│ 5. Mutation Sanity Check │ ──> Invert an operator in code -> Verify test FAILS -> Revert
└─────────────────────────────────┘Phase 1: Environment & Test Runner Discovery
Before writing any test, discover the project's existing testing setup:
- Check for helper script:
Or inspect configuration files:bash scripts/detect-runner.sh- TypeScript/JS:
vitest.config.ts,jest.config.js,package.json(scripts.test) - Python:
pytest.ini,pyproject.toml,setup.cfg,tests/conftest.py - Go:
*_test.go,go test ./... - Rust:
Cargo.toml,cargo test
- TypeScript/JS:
- Follow existing project conventions for test file placement:
- Colocated:
src/services/payment.ts->src/services/payment.test.ts - Centralized:
src/services/payment.py->tests/test_payment.py
- Colocated:
Phase 2: Formulate the 5-D Test Matrix
Before writing test code, present a concise markdown table or list of test cases covering all 5 dimensions.
Example Test Matrix Format:
| ID | Dimension | Scenario Description | Input / State | Expected Outcome |
TC-01 | Happy Path | Successfully charge valid credit card | Amount = $50, valid card | Return receipt ID, status SUCCESS |
TC-02 | Boundary | Charge minimum allowed amount | Amount = $0.01 | Return receipt ID, status SUCCESS |
TC-03 | Boundary | Amount is zero or negative | Amount = 0 or -10 | Throw InvalidAmountError |
TC-04 | Nullability | Missing customer email | Email is undefined | Throw ValidationError |
TC-05 | Failure | Payment gateway responds with 504 Gateway Timeout | Mock Gateway HTTP 504 | Retry up to 3 times, then throw GatewayTimeoutError |
TC-06 | Idempotency | Duplicate charge with identical idempotency key | Same key sent twice concurrently | Return original transaction, charge only once |
Phase 3: Authoring Tests by Language
TypeScript / JavaScript (Vitest / Jest)
- Use standard
describeandit/testblocks. - Use
it.eachortest.eachfor table-driven / boundary permutations. - Use
vi.fn()orjest.fn()exclusively for external dependencies. - Verify async errors with
await expect(...).rejects.toThrow(...).
Python (Pytest)
- Use
@pytest.mark.parametrizefor multiple input/output scenarios. - Use fixtures for reusable setups (
@pytest.fixture). - Use
pytest.raises(...)for expected exceptions. - Use
unittest.mock.patchormonkeypatchwith strict scoping.
Go
- Use idiomatic Table-Driven Tests (
[]struct { name string, input ..., want ..., wantErr bool }). - Run subtests with
t.Run(tt.name, func(t *testing.T) { ... }). - Never mock concrete structs; program against small interfaces.
Phase 4: Autonomous Run & Self-Healing Loop
Once tests are written, execute them in the terminal:
- Run the specific test file:
- Vitest:
npx vitest run path/to/file.test.ts - Jest:
npx jest path/to/file.test.ts - Pytest:
pytest tests/test_file.py -v - Go:
go test -v ./path/to/package -run TestName
- Vitest:
- If all tests pass: Proceed to Phase 5.
- If any test fails:
- Do NOT immediately change the test to match broken behavior!
- Determine: Is this a bug in the production code, or a flaw in test expectations?
- If production code is buggy: Fix the production code.
- If test expectation was incorrect: Fix the test.
- Re-run until 100% green.
Phase 5: Mutation Sanity Check (Catching Fake Tests)
To ensure tests are not fraudulent (tautological):
- Pick one critical business condition in the implementation (e.g.,
if (amount <= 0)). - Temporarily invert or alter it (e.g., change
<=to<or remove the check). - Re-run the test suite:
- If the test FAILS: The test is genuinely verifying the logic (Passes Sanity Check).
- If the test still PASSES: The test is weak or fraudulent. Add missing assertions!
- Revert the temporary mutation back to normal.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

