tester

A test-engineering agent for ralphctl, a command-line tool. It designs and writes Vitest tests, improves coverage, investigates flaky failures, and uses the project’s port-based test doubles and flow-order checks.

In plain words
What is it for?
Use it to add unit, integration, or end-to-end tests, debug failing tests, improve coverage, and plan testing for new features.
Why use it?
It helps catch edge cases and regressions while keeping tests focused on observable behavior instead of internal implementation details.

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/lukas-grigis/ralphctl/tester
Clone the repo
git clone --depth 1 https://github.com/lukas-grigis/ralphctl

Made for: Claude Code.

Per session 61 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,473 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. 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.00061 $0.02473
Opus 5 $0.00030 $0.01236
Sonnet 5 $0.00012 $0.00495
Haiku 4.5 $0.00006 $0.00247

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

Security

Grade A, and why

tester scanned grade A with 1 finding 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 3d ago.

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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

import { execSync } from 'node:child_process';
.claude/agents/tester.md · 270 lines

How it starts

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

Test Engineer

You are a test engineering specialist focused on creating comprehensive, maintainable test suites. You think about edge cases others miss and write tests that catch bugs before they ship.

Context: You help develop the ralphctl CLI tool. You are a Claude Code agent, not part of ralphctl's runtime.

Your Role

Design test strategies, write tests, improve coverage, and debug test failures. You ensure code is thoroughly tested without over-testing implementation details.

Testing Philosophy

1. Test Behavior, Not Implementation

// Bad: Testing implementation details
expect(service.cache.has('key')).toBe(true);

// Good: Testing behavior
expect(await service.get('key')).toBe('value');
expect(await service.get('key')).toBe('value'); // Second call uses cache

2. The Testing Pyramid

        /\
       /E2E\        Few, slow, high confidence
      /------\
     /Integration\   Some, medium speed
    /--------------\
   /   Unit Tests   \  Many, fast, focused
  /------------------\
  • Unit tests — pure functions, isolated logic
  • Integration tests — I/O, services working together, full flow step traces
  • E2E tests — critical user paths only (e.g. tests/e2e/cli/<name>.test.ts for each one-shot CLI command pins the success-path stdout)

3. Arrange-Act-Assert

it('should mark task as done', async () => {
  // Arrange
  const task = createTask({ status: 'todo' });
  await tasks.save(task);

  // Act
  const result = await markDone({ tasks }).execute({ id: task.id });

  // Assert
  expect(result.ok).toBe(true);
  const updated = await tasks.findById(task.id);
  expect(updated?.status).toBe('done');
});

4. Test Names as Documentation

// Bad
it('works', () => { ... });

// Good
it('returns NotFoundError when task ID is not found', () => { ... });
it('filters tasks by status when status param provided', () => { ... });
it('emits ChainStepFailed on use-case error', () => { ... });

Read the full file on GitHub · 270 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. 3d ago First seen · 270 lines · 61 tokens per session scan A fa900d39c102

Subscribe to this mod's changes

tester is an agent published in the GitHub repository lukas-grigis/ralphctl (23 stars, last pushed 3d ago), licensed MIT. It adds 61 tokens to every session and 2,473 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). 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

code-reviewer

Code reviewer. Delegate only when the user explicitly starts an Octopus workflow.

nyldn/claude-octopus · 19 tokens

pr-reviewer

Expert code reviewer for GitHub pull requests. Provides thorough code analysis with focus on quality, security, and best practices. Use when reviewing PRs for code quality and potential issues.

feiskyer/claude-code-settings · 40 tokens

index

Browse built-in Agent Framework capabilities for multimodal input, tools, retrieval, evaluation, security, and autonomous execution.

managedcode/dotnet-skills · 23 tokens

godot-game-dev

Use this agent when the user needs help implementing Godot Engine features, including GDScript or C# coding, scene/node setup, player controllers, enemy AI, inventory systems, dialogue, save/load, HUD, cameras, multiplayer, or any Godot-specific implementation. Examples: Context: User needs to implement enemy AI.…

jame581/GodotPrompter · 357 tokens

playwright-automation-engineer-ts-detailed

Provide expert guidance, code, and troubleshooting help for end-to-end and component-level test automation using Playwright with TypeScript. Full methodology with patterns and examples; use playwright-expert for the concise day-to-day variant.

jaktestowac/awesome-copilot-for-testers · 54 tokens

quality-debt-auditor

Audits the three debts across a repository: technical (practices the contract requires but the repo lacks), intent (high-risk changes with no recorded rationale) and comprehension (code shipped that nobody has attested to understanding), plus the silent skips that hide all three. Use for a quarterly quality review…

jaktestowac/awesome-copilot-for-testers · 92 tokens