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 commands/thisissadeghi/kmpilot/test-featuregit clone --depth 1 https://github.com/ThisIsSadeghi/KMPilotWhat 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.00008 | $0.02329 |
| Opus 5 | $0.00004 | $0.01164 |
| Sonnet 5 | $0.00002 | $0.00466 |
| Haiku 4.5 | $0.00001 | $0.00233 |
Grade A, and why
test-feature 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 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.
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 — 241 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generate Feature Tests
Usage: /test-feature {featurename}
Phase 1: Discovery (Direct Execution)
1.1 Detect Namespaces
grep "namespace" feature/{featurename}/build.gradle.kts # PKG_PREFIX
grep "namespace" core/common/build.gradle.kts # CORE_COMMON_PKG
grep "namespace" core/data/build.gradle.kts # CORE_DATA_PKG
1.2 Extract Context (YAML Only)
Glob: feature/{featurename}/src/commonMain/kotlin/**/*.kt
Extract 5-line YAML summaries (not full code):
entities: [{name, fields}]
dataSource: {interface, implementation, methods}
repository: {interface, implementation, dependencies}
viewModel: {class, dependencies, actions, flow_name, state_slot} # see detection rules
screen: {composable, rootComposable, callbacks}
# Capability flags (drive conditional template sections):
hasDto: true|false # true if data/model/*Dto.kt exists OR DTO class found alongside entities
hasPagination: true|false # true if {Feature}Response with results/count/next/previous fields exists
successValueShape: list|single # list = repository returns Either<List<T>>; single = Either<T> (non-list)
Detection rules:
flow_name: read the ViewModel's public flow property — matchval (\w+)\s*=\s*_\w+\.asStateFlow\(\). Under Rule 11 convention, this isuiModel. Pass the matched name (e.g.uiModel, oruiStatefor legacy features) to all presentation agents.state_slot: read{Feature}UiModel.ktforval (\w+)State:\s*UiState<— the slot prefix (e.g.data,submit,fetch) is what test agents substitute for{state}. If multiple slots exist, pass the primary one; defaultdata.hasDto: globfeature/{featurename}/src/commonMain/kotlin/**/model/*Dto.kt→ if any match, true.hasPagination: grepdata class .*Response.*results.*countindata/model/*.kt.successValueShape: read the repository interface return type.Either<List<...>>→list;Either<...>(anything else) →single. (Repository returnsEither<DTO>directly — Rule 11.)
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.
- 3d ago First seen · 241 lines · 8 tokens per session scan A bae0ca8dff1a
test-feature is a command published in the GitHub repository ThisIsSadeghi/KMPilot (56 stars, last pushed 25d ago), licensed MIT. It adds 8 tokens to every session and 2,329 once invoked, about $0.0000 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 commands, from other repositories
extract
Extract a composable from amethyst to shared code.
desktop-run
Build and run the desktop app.
review-android
Guided Android code review workflow through context gathering, Android-specific review, and output.
work-on-android
Guided Android development workflow through all lifecycle phases.
mobile-verify
Run automated verification loops with pass@k metrics for mobile testing. Executes tests multiple times to detect flakiness.
mobile-checkpoint
Save and restore mobile development checkpoints. Capture build variants, test states, and project state before risky operations.