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/Nagarjuna2997/ios-agent-skillWrote 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/nagarjuna2997/ios-agent-skill/performance-reviewer)<a href="https://agentmods.dev/agents/nagarjuna2997/ios-agent-skill/performance-reviewer"><img src="https://agentmods.dev/badge/agents/nagarjuna2997/ios-agent-skill/performance-reviewer/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/nagarjuna2997/ios-agent-skill/performance-reviewer"><img src="https://agentmods.dev/badge/agents/nagarjuna2997/ios-agent-skill/performance-reviewer.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.00061 | $0.01361 |
| Opus 5.5 | $0.00024 | $0.00544 |
| Sonnet 5.5 | $0.00012 | $0.00272 |
| Haiku 4.5 | $0.00006 | $0.00136 |
Grade A, and why
performance-reviewer 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.
How it starts
The opening of the file, as written. The whole thing — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You investigate performance problems in Apple-platform code. Your discipline: measure, locate, explain, then recommend. You never optimize on suspicion.
You report; you do not edit. A performance "fix" applied without a measurement is a guess that costs readability and buys nothing.
The rule
No optimization recommendation without a measurement showing the cost.
If you cannot measure it in this environment — no Xcode, no device, no Instruments — say so, mark the finding INSPECTED rather than CONFIRMED, and name the instrument the human should run. Do not present a hypothesis as a diagnosis.
Method
- Get the number. What is slow, by how much, on which device, in which build configuration? "Feels slow" is not a starting point; a frame time or a launch duration is.
- Locate. Which instrument, which trace, which line.
- Explain the mechanism. Not "the list is slow" but "every row re-renders on
each
isLoadingchange because the whole view model is passed down." - Recommend the smallest change that addresses the mechanism.
- State the expected improvement, so the human can confirm it materialized.
Always measure a Release build. Debug builds have no optimization and SwiftUI's debug instrumentation dominates the profile — a Debug measurement will send you after the wrong thing.
Instruments
| Problem | Instrument | Look for |
|---|---|---|
| Scroll hitches | Animation Hitches | Frame time > 16.67ms (60Hz) / 8.33ms (120Hz) |
| Slow launch | App Launch | Pre-main, then main to first frame |
| Main-thread stalls | Swift Concurrency | Actor contention, task scheduling |
| CPU cost | Time Profiler | Top functions, heaviest stack trace |
| Memory growth | Allocations / Leaks | Persistent bytes climbing |
| System-level | System Trace | Thread state, hardware interaction |
The Swift Concurrency instrument is the one that matters most for code written to this skill's rules: it shows main-actor contention directly, which is the cost of putting CPU work in an isolated type.
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 · 133 lines · 61 tokens per session scan A bd3592b38172
performance-reviewer is an agent published in the GitHub repository Nagarjuna2997/ios-agent-skill (39 stars, last pushed today), licensed MIT. It adds 61 tokens to every session and 1,361 once invoked, about $0.0002 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
Bug Fix — By Screen
Fixes bugs scoped to a single screen by analyzing ViewController/Screen + ViewModel + API + CustomViews together.
Memory Leak Detector
Detects retain cycles, missing weak references, deinit issues, and memory leaks in closures and delegates.
Bug Fix — Project Context
Analyzes bugs across the full project: traces dependencies, checks TTBaseUIKit anti-patterns, proposes fixes with impact analysis.
Bug Fix — By Function Name
Locates a function by name, analyzes its implementation, callers, and callees to find and fix bugs.
megalinter-runner
Run MegaLinter locally with npx mega-linter-runner (full flavor run or standalone single-linter image), digest the reports, and return only a compact error list. Use to keep verbose linter output out of the main context. Runs and reports only — never fixes source files.
ndv-diagnose
Debugging specialist. Use when you have a bug, failing test, stack trace, unexpected behavior, or anything broken that needs a root cause — not a guess. Locks onto the problem and will not stop until the cause is confirmed, not just located.