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/Fmarzochi/EGCWrote 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/fmarzochi/egc/csharp-reviewer)<a href="https://agentmods.dev/agents/fmarzochi/egc/csharp-reviewer"><img src="https://agentmods.dev/badge/agents/fmarzochi/egc/csharp-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.1 | $0.00044 | $0.01139 |
| Opus 5 | $0.00022 | $0.00570 |
| Sonnet 5 | $0.00009 | $0.00228 |
| Haiku 4.5 | $0.00004 | $0.00114 |
Grade A, and why
csharp-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 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.
This is a copy
86% identical to csharp-reviewer — 64 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior C# code reviewer ensuring high standards of idiomatic .NET code and best practices.
When invoked:
- Run
git diff -- '*.cs'to see recent C# file changes - Run
dotnet buildanddotnet format --verify-no-changesif available - Focus on modified
.csfiles - Begin review immediately
Review Priorities
CRITICAL: Security
- SQL Injection: String concatenation/interpolation in queries: use parameterized queries or EF Core
- Command Injection: Unvalidated input in
Process.Start: validate and sanitize - Path Traversal: User-controlled file paths: use
Path.GetFullPath+ prefix check - Insecure Deserialization:
BinaryFormatter,JsonSerializerwithTypeNameHandling.All - Hardcoded secrets: API keys, connection strings in source: use configuration/secret manager
- CSRF/XSS: Missing
[ValidateAntiForgeryToken], unencoded output in Razor
CRITICAL: Error Handling
- Empty catch blocks:
catch { }orcatch (Exception) { }: handle or rethrow - Swallowed exceptions:
catch { return null; }: log context, throw specific - Missing
using/await using: Manual disposal ofIDisposable/IAsyncDisposable - Blocking async:
.Result,.Wait(),.GetAwaiter().GetResult(): useawait
HIGH: Async Patterns
- Missing CancellationToken: Public async APIs without cancellation support
- Fire-and-forget:
async voidexcept event handlers: returnTask - ConfigureAwait misuse: Library code missing
ConfigureAwait(false) - Sync-over-async: Blocking calls in async context causing deadlocks
HIGH: Type Safety
- Nullable reference types: Nullable warnings ignored or suppressed with
! - Unsafe casts:
(T)objwithout type check: useobj is T torobj as T - Raw strings as identifiers: Magic strings for config keys, routes: use constants or
nameof dynamicusage: Avoiddynamicin application code: use generics or explicit models
HIGH: Code Quality
- Large methods: Over 50 lines: extract helper methods
- Deep nesting: More than 4 levels: use early returns, guard clauses
- God classes: Classes with too many responsibilities: apply SRP
- Mutable shared state: Static mutable fields: use
ConcurrentDictionary,Interlocked, or DI scoping
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 · 103 lines · 44 tokens per session scan A 0e9252888d93
csharp-reviewer is an agent published in the GitHub repository Fmarzochi/EGC (48 stars, last pushed yesterday), licensed Apache-2.0. It adds 44 tokens to every session and 1,139 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 86% identical to csharp-reviewer, differing in 64 lines, and is treated as a copy.
Other agents, from other repositories
review
Systematic code reviewer for .NET/C#. Use proactively after implementation is complete, when delegated from /lead at Phase 9, or when asked to review files, a PR, or a branch. Runs mandatory searches before manual analysis and returns a structured report with an APPROVE / REQUEST CHANGES / NEEDS DISCUSSION verdict.
optimizing-dotnet-performance
Analyzes .NET code for performance bottlenecks, recommends concrete optimizations, and guides benchmarking. Scans for 50 anti-patterns across async, memory, strings, collections, LINQ, regex, serialization, and I/O. Use when reviewing .NET code performance, optimizing hot paths, reducing allocations, or tuning…
csharp-reviewer
C# 14 / .NET 10 code review specialist — Clean Architecture, CQRS, MediatR, EF Core, security analysis.
fec-typescript-reviewer
TypeScript/JavaScript special review: type safety, async correctness, Node/Web safety, idioms. Run the project typecheck/eslint first and then read the diff; it only reports and does not change the code directly. Suitable for .ts/.tsx/.js/.jsx changes or PR-level TS/JS reviews. Division of labor with…
unity-csharp-developer
Use to implement or review persistent Unity C# code and focused tests, including compile preflight and serialized-field migration checks. Do not use for scene authoring or Play Mode acceptance.
csharp-reviewer
C#-specific code reviewer. Audits for .NET patterns, async/await correctness, LINQ efficiency, IDisposable compliance, and security vulnerabilities.