Skip to content

smykla-skalski/test-writer

v1.0.1MIT

Write tests that verify behavior (not implementation), use table-driven/parameterized patterns, and minimize mocking. Supports Go, Python, TypeScript, Java, and Rust.

test-writer

Write tests that verify behavior (not implementation), use table-driven/parameterized patterns, and minimize mocking.

The plugin is a portable Agent Plugin with one Agent Skill, so the same package works in Claude Code, Codex, Copilot CLI and opencode.

Installation

Claude Code (Copilot CLI is the same with copilot in place of claude):

claude plugin marketplace add smykla-skalski/sai
claude plugin install test-writer@sai

Codex:

codex plugin marketplace add smykla-skalski/sai
codex plugin add test-writer@sai

opencode, or any agent that reads Agent Skills, loads skills/test-writer/ directly:

ln -s /path/to/sai/plugins/test-writer/skills/test-writer ~/.config/opencode/skills/test-writer

Local checkout: claude --plugin-dir /path/to/sai/plugins/test-writer/

Usage

# Write tests for a file
/test-writer src/parser.go

# Review existing tests
/test-writer tests/parser_test.go --review

# Override language detection
/test-writer lib/utils.py --lang python

In Codex use $test-writer with the same target and flags, or ask in plain words ("write behavior tests for src/parser.go"). In Claude Code the skill runs in a forked general-purpose subagent; on other agents it runs in the main loop with the same workflow (see "Agent compatibility" in skills/test-writer/SKILL.md).

Features

  • Behavior-first testing — tests survive refactoring, catch real bugs
  • Table-driven by default — when 3+ cases share the same assertion shape
  • Mock discipline — only external boundaries, max 2 mocks per test
  • Review mode — detect 10 anti-patterns in existing tests
  • Multi-language — Go, Python, TypeScript, Java, Rust

Philosophy

Test what the code does, not how it does it. If you refactor internals and tests break — the tests are wrong, not the code.

References

  • skills/test-writer/references/testing-principles.md — core testing principles knowledge base
  • skills/test-writer/references/language-patterns.md — idiomatic table-driven patterns per language