test-writer

A Go test-writing agent for unit tests and integration tests. It follows the codebase’s documented testing patterns, including table-driven tests and controlled API calls.

In plain words
What is it for?
Use it to add Go tests beside source files or in the integration-test directory. It supports tests using mocks and tests that call real APIs with rate limiting.
Why use it?
It reduces the manual work of designing and writing tests after code changes. It also helps keep tests consistent with the project’s existing conventions.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/nylas/cli/test-writer
Clone the repo
git clone --depth 1 https://github.com/nylas/cli

Made for: Claude Code.

Per session 32 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 785 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00032 $0.00785
Opus 5 $0.00016 $0.00392
Sonnet 5 $0.00006 $0.00157
Haiku 4.5 $0.00003 $0.00078

Measured yesterday against content hash 3e24a9c74a66, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

test-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/test-writer.md · 122 lines

How it starts

The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Test Writer Agent

You are an expert test writer for the Nylas CLI Go codebase. You write comprehensive tests across two domains:

Parallelization

⚠️ LIMITED parallel safety - Writes test files, potential conflicts.

Can run with Cannot run with
codebase-explorer, code-reviewer Another test-writer (same package)
code-writer (different package) mistake-learner

Rule: Only parallelize if writing tests for DIFFERENT packages.

  1. Go Unit Tests - Table-driven, with mocks
  2. Go Integration Tests - Real API calls, rate-limited

Shared Patterns:

  • Go unit tests: .claude/shared/patterns/go-test-patterns.md
  • Integration tests: .claude/shared/patterns/integration-test-patterns.md

See also: .claude/commands/generate-tests.md for interactive test generation workflow.


Quick Reference

Go Unit Tests

  • Location: Alongside source (*_test.go)
  • Pattern: Table-driven with t.Run(tt.name, ...)
  • Assertions: Use testify/assert and testify/require

Go Integration Tests

  • Location: internal/cli/integration/
  • Build tags: //go:build integration
  • CRITICAL: Always use acquireRateLimit(t) for API calls

Coverage & Categories

Coverage Goals: See .claude/rules/testing.md

Test Categories: Happy path, error cases, edge cases, boundary conditions


Workflow

  1. Analyze - Read the code to test
  2. Identify cases - Happy path, errors, edge cases
  3. Check patterns - Read shared patterns files above
  4. Write tests - One test function per behavior
  5. Run tests - Verify they pass
  6. Check coverage - Identify gaps

Pipeline Position

This agent is the tester in the development pipeline:

[code-writer] → [test-writer] → [code-reviewer]
  implement        test            review

Handoff signals:

  • Receive: Implementation complete from code-writer
  • Emit: Tests pass, ready for review

Gate criteria:

  • All tests pass (make test-unit)
  • Coverage meets targets (see .claude/rules/testing.md)
  • No race conditions (make test-race)

Read the full file on GitHub · 122 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 122 lines · 32 tokens per session scan A 3e24a9c74a66

Subscribe to this mod's changes

test-writer is an agent published in the GitHub repository nylas/cli (68 stars, last pushed 13d ago), licensed MIT. It adds 32 tokens to every session and 785 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

test-runner

Runs tests in the api-gateway Maven reactor — full/module unit runs, isolating a single core test class, or a single distribution/tutorial example test. Use this whenever tests need to be run, checked, or verified after a change, since naive -Dtest/-Dit.test invocations silently run (or skip) the wrong thing in this…

membrane/api-gateway · 82 tokens

guidance-system

Date: February 2, 2026 Status: Phase 1 Complete (Backend Core) Priority: P0 - Critical Production Blocker.

rush86999/atom · 0 tokens

pim-assistant

Personal Information Management assistant for calendars, reminders, contacts, and local mail. Use this agent when: User mentions scheduling, appointments, meetings, events, or calendar User mentions reminders, tasks, todos, "remind me", or "don't forget" User asks about contacts, people, email addresses, phone numbers…

omarshahine/apple-pim · 436 tokens

debug-integracao

Especialista em diagnóstico de problemas em integrações com a API da Tray. Utilize quando encontrar erros de autenticação, tokens expirados, limites de requisições excedidos, respostas inesperadas da API ou problemas de validação de dados.

tray-tecnologia/tray-api-ai-plugin · 52 tokens

mcp-crate-engineer

name: mcp-crate-engineer description: Use this agent when editing any files within the crates/mcp directory. This includes modifications to the MCP router implementation, tool discovery, search functionality, or execution routing. The agent should be automatically triggered for any file changes in this directory to…

Nexus-Router/nexus · 288 tokens

symfony-reviewer

Review stage gatekeeper. Last line of defense before merge. Reads .claude/last-api-{plan,dev-report,test-report}.md, classifies the diff (code/docs/config × API Platform area × surface), applies the API Platform 4.3 + Symfony 7.4+ anti-pattern checklist (16 + 8 rules embedded), emits ===EVIDENCE=== block, caps…

gerard-labs/superpowers-api-platform · 146 tokens