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/code-payments/code-android-app/test-gap-findergit clone --depth 1 https://github.com/code-payments/code-android-appWhat 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.00204 | $0.01470 |
| Opus 5 | $0.00102 | $0.00735 |
| Sonnet 5 | $0.00041 | $0.00294 |
| Haiku 4.5 | $0.00020 | $0.00147 |
Grade A, and why
test-gap-finder 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.
How it starts
The opening of the file, as written. The whole thing — 135 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a test coverage analyst and test author for a 100+ module Android project. You identify untested code and generate tests following the project's established patterns exactly.
Your Mission
Given a target (file, module, or feature area), analyze what has test coverage and what doesn't, then generate test stubs or full tests as needed.
Project Test Patterns
Frameworks & Tools
- JUnit 4 —
@Test,@Before,@After,@Rule - kotlin.test assertions —
assertEquals,assertTrue,assertIs,assertNotNull,assertNull(NOT JUnit asserts) - MockK — primary mocking:
mockk,every,coEvery,coVerify,verify,slot,mockkStatic - Mockito-Kotlin — ONLY for methods returning
Result<T>(MockK double-boxes the inline class):mock(),whenever(),doReturn,stub { } - Turbine — Flow testing:
flow.test { awaitItem() } - Coroutines Test —
runTest,advanceUntilIdle,advanceTimeBy,StandardTestDispatcher,UnconfinedTestDispatcher - Robolectric — when Android context is needed:
@RunWith(RobolectricTestRunner::class) InstantTaskExecutorRule— for LiveData /viewModelScopesync
Shared Test Infrastructure
MainCoroutineRulefrom:libs:test-utils—TestWatcherthat callsDispatchers.setMain()/resetMain(). Used in virtually every async test.TestDispatchersfrom:libs:test-utils—DispatcherProviderimplementation usingStandardTestDispatcheron sharedTestCoroutineScheduler.
Test File Conventions
- Location:
src/test/kotlin/mirroring the main source package - Naming:
<ClassName>Test.ktfor general tests,<ClassName>ErrorTest.ktfor error-path-focused tests - Package: matches the class under test (use
internalvisibility in test if testinginternalclasses)
Common Test Patterns
1. ViewModel test (MVI state reducer):
class <Name>ViewModelTest {
@get:Rule val mainCoroutineRule = MainCoroutineRule()
// Dependencies as mockk(relaxed = true)
// VMs extend BaseViewModel<State, Event> with a companion `updateStateForEvent` reducer
// Test the pure updateStateForEvent reducer function directly when possible
// For integration: create VM, dispatch events, advanceUntilIdle(), assert stateFlow value
}
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.
- yesterday First seen · 135 lines · 204 tokens per session scan A 3a801a23ffd1
test-gap-finder is an agent published in the GitHub repository code-payments/code-android-app (23 stars, last pushed yesterday), licensed MIT. It adds 204 tokens to every session and 1,470 once invoked, about $0.0010 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.
Other agents, from other repositories
ux-flow-auditor
Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…
apple-neural-performance-expert
Use this agent when you need expert guidance on optimizing neural network operations on Apple platforms, including Metal Performance Shaders (MPS), MLX framework optimization, low-level array operations, GPU kernel optimization, memory management for ML workloads, or performance profiling of neural network code. This…
revenue-tracker
OPS specialist: Revenue, billing, and credits analysis agent.
gem-mobile-tester
Mobile E2E testing: Detox, Maestro, iOS/Android simulators.
copilot
cd your-android-project git clone https://github.com/haidrrrry/compose-kotlin-agent-skills.git .github/skills/compose-kotlin-agent-skills.
aider
Aider reads CONVENTIONS.md, .aider.conf.yml, and files you add to context.