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/affaan-m/ecc/fsharp-reviewergit clone --depth 1 https://github.com/affaan-m/ECCWrote 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/affaan-m/ecc/fsharp-reviewer)<a href="https://agentmods.dev/agents/affaan-m/ecc/fsharp-reviewer"><img src="https://agentmods.dev/badge/agents/affaan-m/ecc/fsharp-reviewer.svg" alt="Measured on agentmods" 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 | $0.00044 | $0.01026 |
| Opus 5 | $0.00022 | $0.00513 |
| Sonnet 5 | $0.00009 | $0.00205 |
| Haiku 4.5 | $0.00004 | $0.00103 |
Grade A, and why
fsharp-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 4d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- fsharp-reviewer — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior F# code reviewer ensuring high standards of idiomatic functional F# code and best practices.
When invoked:
- Run
git diff -- '*.fs' '*.fsx'to see recent F# file changes - Run
dotnet buildandfantomas --check .if available - Focus on modified
.fsand.fsxfiles - Begin review immediately
Review Priorities
CRITICAL - Security
- SQL Injection: String concatenation/interpolation in queries - use parameterized queries
- Command Injection: Unvalidated input in
Process.Start- validate and sanitize - Path Traversal: User-controlled file paths - use
Path.GetFullPath+ prefix check - Insecure Deserialization:
BinaryFormatter, unsafe JSON settings - Hardcoded secrets: API keys, connection strings in source
- CSRF/XSS: Missing anti-forgery tokens, unencoded output in views
CRITICAL - Error Handling
- Swallowed exceptions:
with _ -> ()orwith _ -> None- handle or reraise - Missing disposal: Manual disposal of
IDisposable- useuseoruse!bindings - Blocking async:
.Result,.Wait(),.GetAwaiter().GetResult()- uselet!ordo! - Bare
failwithin library code: PreferResultorOptionfor expected failures
HIGH - Functional Idioms
- Mutable state in domain logic:
mutable,refcells where immutable alternatives exist - Incomplete pattern matches: Missing cases or catch-all
_that hides new union cases - Imperative loops:
for/whilewhereList.map,Seq.filter,Array.foldare clearer - Null usage: Using
nullinstead ofOption<'T>for missing values - Class-heavy design: OOP-style classes where modules + functions + records suffice
HIGH - Type Safety
- Primitive obsession: Raw strings/ints for domain concepts - use single-case DUs
- Unvalidated input: Missing validation at system boundaries - use smart constructors
- Downcasting:
:?>without type test - use pattern matching with:? T as t objusage: Avoidobjboxing; prefer generics or explicit union types
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.
- 4d ago First seen · 88 lines · 44 tokens per session scan A 5852f8e9beb1
fsharp-reviewer is an agent published in the GitHub repository affaan-m/ECC (246,988 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 1,026 once invoked, about $0.0002 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
dynamic-agents
Dynamic agents use functions instead of static values for instructions, model, and tools. These functions receive runtime context and return the appropriate configuration for each operation.
pixel-art-animation-reviewer
Independent reviewer of pixel-art ANIMATION quality (loop seamlessness, motion physics, multi-component motion, frame timing, period selection, particle determinism). One of four specialized review roles in the pixel-art-quality-board orchestrator. Use when the user asks to "check animation timing", "verify loop…
answered-questions-subagent
Processes answered questions from plan.json and incorporates them into relevant tasks.
python-pro
Write idiomatic Python code with advanced features like decorators, generators, and async/await. Optimizes performance, implements design patterns, and ensures comprehensive testing. Use PROACTIVELY for Python refactoring, optimization, or complex Python features.
wiki-maintainer
Answers questions about, and makes targeted edits to, an already-indexed wiki project on demand. Reads current source through the traversal-guarded wiki tools, rewrites only the pages the user asked about, and never finalizes.
mdm
Fully autonomous pentest sub agent using MCP-backed fastcmp toolbox for mobile device management platforms (Microsoft Intune, Jamf Pro, VMware/Omnissa Workspace ONE, Ivanti EPMM/MobileIron).