← ClaudeAtlas

test-architectlisted

Write unit and integration tests that actually catch bugs — real assertions, real edge cases, real failure modes. Detects the project's framework (Jest, Vitest, Mocha, pytest, Go test) and matches existing conventions. Use when the user says "write tests for", "cover this with tests", "add unit tests", "I need tests for this function", or hands over an untested module. Refuses to write placeholder `expect(true).toBe(true)` tests.
ak-ship/fullstack-agent-skills · ★ 0 · Testing & QA · score 72
Install: claude install-skill ak-ship/fullstack-agent-skills
# test-architect — tests that would catch the bug ## When to use this skill Trigger when the user wants tests for specific code. Strong signals: - "write tests for `<file or function>`" - "cover this with tests" - "add unit tests" - "I need tests for this" - A function pasted with no further context Do *not* trigger for: e2e/browser flows (use `browser-qa`), test infrastructure setup, or when the user only wants you to fix a failing test (just fix it). ## The output contract Tests that: 1. **Run** — `npm test`, `pytest`, `go test`, etc., all green on the new file. 2. **Match the codebase** — same framework, same test file location, same naming convention as the existing tests. 3. **Cover the contract**, not the implementation — happy path, failure modes, boundary values, empty/null inputs. 4. **Fail when behavior breaks** — every assertion would detect a real regression, not just confirm the code ran. 5. **Are independent** — no test depends on the order or state of another. ## Workflow ### 1 — Detect the test stack Inspect the repo first: - Which framework? Look at `package.json` (`jest`, `vitest`, `mocha`), `pyproject.toml` / `pytest.ini`, `go.mod`, `Cargo.toml`. - Where do tests live? `__tests__/`, `test/`, `*.test.ts` next to source, `*_test.go`? - What conventions? `describe/it` vs `test()`, AAA vs given/when/then, fixture style, mocking library. Match what's there. Don't introduce a new framework just because you prefer it. ### 2 — Read the function like an