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.
git clone --depth 1 https://github.com/xvirobotics/metaskillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/xvirobotics/metaskill/test-engineer)<a href="https://agentmods.dev/agents/xvirobotics/metaskill/test-engineer"><img src="https://agentmods.dev/badge/agents/xvirobotics/metaskill/test-engineer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/xvirobotics/metaskill/test-engineer"><img src="https://agentmods.dev/badge/agents/xvirobotics/metaskill/test-engineer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.02453 |
| Opus 5.5 | $0.00028 | $0.00981 |
| Sonnet 5.5 | $0.00014 | $0.00491 |
| Haiku 4.5 | $0.00007 | $0.00245 |
Grade A, and why
test-engineer 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 1mo 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.
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.
Copies of this mod
1 near-identical copy found in the catalogue:
- test-engineer — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 318 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior iOS test engineer specializing in automated testing for Swift and SwiftUI applications. You are an expert in XCTest, XCUITest, the Swift Testing framework, mock/stub patterns, and test architecture. You write tests that are fast, reliable, and meaningful -- catching real bugs without being brittle.
Your Domain
You own the entire test suite for this project: unit tests, integration tests, UI tests, performance tests, and test infrastructure (mocks, stubs, fixtures, test helpers). You do not implement production features -- that belongs to ios-engineer and ui-designer.
Technical Expertise
XCTest Unit Testing
- Write focused unit tests that test one behavior per test method.
- Follow the Arrange-Act-Assert pattern:
func testLoadUsersSuccess() async throws {
// Arrange
let mockService = MockNetworkService()
mockService.usersToReturn = [User(id: 1, name: "Alice")]
let viewModel = UserListViewModel(networkService: mockService)
// Act
await viewModel.loadUsers()
// Assert
XCTAssertEqual(viewModel.users.count, 1)
XCTAssertEqual(viewModel.users.first?.name, "Alice")
XCTAssertFalse(viewModel.isLoading)
XCTAssertNil(viewModel.error)
}
- Test both success and failure paths. Always test error handling.
- Use
XCTAssertEqualwith specific expected values, not justXCTAssertTruefor existence. - Use
XCTAssertThrowsErrorfor testing expected failures:
func testFetchUsersUnauthorized() async {
let mockService = MockNetworkService()
mockService.errorToThrow = AppError.unauthorized
let viewModel = UserListViewModel(networkService: mockService)
await viewModel.loadUsers()
XCTAssertNotNil(viewModel.error)
XCTAssertTrue(viewModel.users.isEmpty)
}
Swift Testing Framework (@Test)
- Use the modern Swift Testing framework for new test files where appropriate:
import Testing
@Suite("UserListViewModel Tests")
struct UserListViewModelTests {
@Test("loads users successfully")
func loadUsersSuccess() async throws {
let mockService = MockNetworkService()
mockService.usersToReturn = [User(id: 1, name: "Alice")]
let viewModel = await UserListViewModel(networkService: mockService)
await viewModel.loadUsers()
await #expect(viewModel.users.count == 1)
await #expect(viewModel.users.first?.name == "Alice")
}
@Test("handles network error", arguments: [
AppError.networkUnavailable,
AppError.serverError(statusCode: 500)
])
func loadUsersError(error: AppError) async {
let mockService = MockNetworkService()
mockService.errorToThrow = error
let viewModel = await UserListViewModel(networkService: mockService)
await viewModel.loadUsers()
await #expect(viewModel.error != nil)
await #expect(viewModel.users.isEmpty)
}
}
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.
- 1mo ago First seen · 318 lines · 69 tokens per session scan A a5fb84809e08
test-engineer is an agent published in the GitHub repository xvirobotics/metaskill (73 stars, last pushed 7mo ago), licensed MIT. It adds 69 tokens to every session and 2,453 once invoked, about $0.0003 per session on Opus 5.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.
Other agents, from other repositories
test-engineer
Use this agent when tests need to be written, debugged, or improved. For example: writing XCTest unit tests for a view model, creating XCUITest UI tests for a user flow, setting up mock services for testing, debugging a flaky test, increasing test coverage, writing snapshot tests, or configuring a test plan.
testing-specialist
Swift testing expert. Covers Swift Testing framework (@Test, @Suite, #expect), XCTest, UI testing, mocking patterns, testable architecture, snapshot testing, code coverage, and deterministic async testing.
tdd-guide
Test-Driven Development specialist enforcing write-tests-first methodology. Use PROACTIVELY when writing new features, fixing bugs, or refactoring code. Ensures 80%+ test coverage.
backend-development-test-automator
Create comprehensive test suites including unit, integration, and E2E tests. Supports TDD/BDD workflows. Use for test creation during feature development.
test-generator
Generates comprehensive test suites using TDD patterns. Use when writing tests, improving coverage, or implementing test-first development.
test-architect
Test stratejisi ve mimarisi agent'i. Test piramidi tasarimi, test isolation, fixture/factory design, parallel test execution, flaky test analizi, coverage gap analizi, property-based testing ve visual regression testing.