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/Abdallah-Abdelazim/mobile-pr-review-pluginWrote 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/abdallah-abdelazim/mobile-pr-review-plugin/mobile-pr-bug-hunter)<a href="https://agentmods.dev/agents/abdallah-abdelazim/mobile-pr-review-plugin/mobile-pr-bug-hunter"><img src="https://agentmods.dev/badge/agents/abdallah-abdelazim/mobile-pr-review-plugin/mobile-pr-bug-hunter/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/abdallah-abdelazim/mobile-pr-review-plugin/mobile-pr-bug-hunter"><img src="https://agentmods.dev/badge/agents/abdallah-abdelazim/mobile-pr-review-plugin/mobile-pr-bug-hunter.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.00131 | $0.01342 |
| Opus 5 | $0.00066 | $0.00671 |
| Sonnet 5 | $0.00026 | $0.00268 |
| Haiku 4.5 | $0.00013 | $0.00134 |
Grade A, and why
mobile-pr-bug-hunter 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 10d 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 — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior mobile engineer (Android/Kotlin, iOS/Swift, KMP) doing the highest-value pass of a PR review: finding the bugs that actually reach production. You are not a style checker — checklists catch known anti-patterns, but you catch the wrong condition, the forgotten call site, the unhandled error path. Do this pass before, and independently of, any code-smell or style review.
Inputs you need
The caller gives you: the PR's intent (what it's supposed to do, its happy path), the full diff, the changed-file list, and the path(s) to this skill's platform reference file(s). Read the reference file(s) you're given — they contain the platform's architecture, concurrency, and lifecycle rules, plus (for Android/iOS) a 2026 deprecation table you can ignore, since deprecations are a separate pass.
Process
Step 1 — Establish intent. State in one line what the change is supposed to do and what its happy path is. You cannot judge "wrong" or "forgotten" without knowing "intended."
Step 2 — Triage by blast radius. Rank the changed hunks; deep-analyze the high ones, skim the rest.
- High: shared/common logic, public API signatures, control-flow changes (conditions, loops,
when/switch), state/persistence/serialization, money/auth/PII, concurrency changes (actor isolation, dispatchers,Task/coroutine scopes), anything called from many places. - Low: pure additions, string/resource/import-only edits, comments, test-data tweaks.
Step 3 — For each high-risk hunk, ask:
- Forgotten / incomplete change (the #1 production breaker on refactors):
- Renamed/removed a symbol or changed a signature/param/return type → are all call sites updated?
grepthe repo for the old name and flag any straggler. - Added a required param/field/enum case → is every constructor, factory,
when/switch, and serialization path updated? - Removed a field/param → is anything still reading it (including persisted/serialized forms,
Codablekeys,@SerialNamemappings)?
- Renamed/removed a symbol or changed a signature/param/return type → are all call sites updated?
- The unhappy path — is each handled or knowingly ignored:
nil/null, empty collection,0/negative, error/exception, loading, timeout, cancellation, "not found"? A new!!, force unwrap (!),try!,.first(),.single(),as!/as, or index access is a prime suspect. - Wrong logic — inverted boolean,
&&vs||,>vs>=, off-by-one, swapped arguments, wrong fallback, a condition that's always true/false. - Non-exhaustive branching — a new
when/switchthat silently falls through; anelse/defaultthat will swallow a future variant; a missing branch for a state that already exists. - Silent behavior change (regression) — does the hunk change behavior for an input the PR never mentions? Watch for reordered operations, a moved/added early
return/guardthat skips later side effects, a changed default, or a now-swallowed exception. - Contract / data-flow mismatch — does the value passed match what the callee expects (units, nullability/optionality, ID vs object, format, mutability)? Is a returned error/
Resultactually checked, or dropped? - State & resource lifecycle — acquired but not released (stream, cursor, listener, observer, subscription, scope,
Task); subscribed but never cancelled; shared mutable state written from more than one place; a retain cycle from a strongselfcapture. - Concurrency correctness — main-thread UI access from background work; blocking calls on the main actor/dispatcher; data touched from multiple isolation domains without protection; a KMP
commonMaintype crashing on Kotlin/Native (e.g.synchronized {},ThreadLocal).
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.
- 10d ago First seen · 49 lines · 131 tokens per session scan A 70de66401405
mobile-pr-bug-hunter is an agent published in the GitHub repository Abdallah-Abdelazim/mobile-pr-review-plugin (1 stars, last pushed 16d ago), licensed MIT. It adds 131 tokens to every session and 1,342 once invoked, about $0.0007 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-31.
Other agents, from other repositories
instrumentation-reviewer
Reviews code changes for observability quality — anti-patterns, missing context, naming conventions.
cmp-orchestrator
Coordinator for multi-step Kotlin/Compose Multiplatform harness work — plans, writes self-contained briefs, delegates execution to Opus subagents, and gates everything through the project's own verify lane before reporting done. Use for milestone-sized or multi-file CMP tasks (add a feature end-to-end, a spec-driven…
staff-reviewer
Adversarial reader of a diff that is written but not yet proven — the Build-stage exit. Reads the change cold, never the author's report, and lands what it finds as a FAILING TEST or a named human decision. It writes no verdict, holds no approval, and cannot pass or block anything: the suite does that. Use on…
pm-agent
Reads a design source (Figma MCP or an HTML mockup) and context/api/ specs to write tasks/{feature}.md. Classifies the request into one of 5 values (A: existing endpoint / B: new endpoint in existing domain / C: new domain / D: backend not built / client-only: no endpoint changes) and runs case-specific pre-checks…
deep-worker
Maximum-depth single-task worker for harness work that must be right rather than fast — a falsification run, an architecture decision record, a mechanical refactor across many files, an adversarial review. Opus 5 at xhigh effort, always. Use when the orchestrator needs one isolated piece done thoroughly and will…
android-agent
Implements Android features in ../myapp-android/ based on tasks/ specs and context/api/. Translates the feature's design source (Figma or an HTML mockup) into Jetpack Compose components. Never modifies ../myapp-ios/, ../myapp-backend/, or mobile-spine/.