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.
npx agentmods add agents/morganmuli/metaskill/test-engineergit clone --depth 1 https://github.com/morganmuli/metaskillWhat 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 | $0.00069 | $0.02453 |
| Opus 5 | $0.00034 | $0.01226 |
| Sonnet 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 2d 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.
This is a copy
100% identical to test-engineer — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
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.
- 2d ago First seen · 318 lines · 69 tokens per session scan A a5fb84809e08
test-engineer is an agent published in the GitHub repository morganmuli/metaskill (1 stars, last pushed 3d ago), licensed MIT. It adds 69 tokens to every session and 2,453 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to test-engineer, differing in 0 lines, and is treated as a copy.
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.
flutter-test
编写和验证 Flutter 单元、Widget、integrationtest 与 Patrol 测试。.
rn-tester
Tests React Native features on simulator/emulator. Verifies UI renders correctly, user flows work, and internal state matches expectations. Use when a feature has been implemented and needs verification. PARENT-SESSION-ONLY: requires MCP tools (cdp, device) — do NOT spawn via Task tool, run protocol inline in parent…
test-automation-engineer
Use this agent for comprehensive test strategy, test automation, and test coverage management in Android applications. Specializes in UI tests, unit tests, integration tests, and screenshot tests. Examples: Context: User needs to write comprehensive tests for a new feature. user: 'I need to write tests for the new…
testing-qa-agent-android
Expert testing and quality assurance specialist for JUnit, Espresso, Compose UI testing, MockK, test-driven development, and code coverage. Use proactively when writing tests, reviewing code for testability, or implementing TDD practices.
testing-qa-agent
Expert testing and quality assurance specialist for XCTest, UI testing, mocking strategies, test-driven development, and code coverage. Use proactively when writing tests, reviewing code for testability, or implementing TDD practices.