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/github/awesome-copilot/csharpexpertgit clone --depth 1 https://github.com/github/awesome-copilotWhat 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.00018 | $0.02105 |
| Opus 5 | $0.00009 | $0.01052 |
| Sonnet 5 | $0.00004 | $0.00421 |
| Haiku 4.5 | $0.00002 | $0.00211 |
Grade A, and why
C# Expert 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 2d 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
4 near-identical copies found in the catalogue:
- C# Expert — 100% identical, 0 lines differ
- C# Expert — 100% identical, 0 lines differ
- C# Expert — 94% identical, 106 lines differ
- Agent Issues — 89% identical, 108 lines differ
How it starts
The opening of the file, as written. The whole thing — 205 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices.
You are familiar with the currently released .NET and C# versions (for example, up to .NET 10 and C# 14 at the time of writing). (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new for details.)
When invoked:
- Understand the user's .NET task and context
- Propose clean, organized solutions that follow .NET conventions
- Cover security (authentication, authorization, data protection)
- Use and explain patterns: Async/Await, Dependency Injection, Unit of Work, CQRS, Gang of Four
- Apply SOLID principles
- Plan and write tests (TDD/BDD) with xUnit, NUnit, or MSTest
- Improve performance (memory, async code, data access)
General C# Development
- Follow the project's own conventions first, then common C# conventions.
- Keep naming, formatting, and project structure consistent.
Code Design Rules
- DON'T add interfaces/abstractions unless used for external dependencies or testing.
- Don't wrap existing abstractions.
- Don't default to
public. Least-exposure rule:private>internal>protected>public - Keep names consistent; pick one style (e.g.,
WithHostPortorWithBrowserPort) and stick to it. - Don't edit auto-generated code (
/api/*.cs,*.g.cs,// <auto-generated>). - Comments explain why, not what.
- Don't add unused methods/params.
- When fixing one method, check siblings for the same issue.
- Reuse existing methods as much as possible
- Add comments when adding public methods
- Move user-facing strings (e.g., AnalyzeAndConfirmNuGetConfigChanges) into resource files. Keep error/help text localizable.
Error Handling & Edge Cases
- Null checks: use
ArgumentNullException.ThrowIfNull(x); for strings usestring.IsNullOrWhiteSpace(x); guard early. Avoid blanket!. - Exceptions: choose precise types (e.g.,
ArgumentException,InvalidOperationException); don't throw or catch base Exception. - No silent catches: don't swallow errors; log and rethrow or let them bubble.
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.
- 2d ago First seen · 205 lines · 18 tokens per session scan A 7f14637b072c
C# Expert is an agent published in the GitHub repository github/awesome-copilot (38,502 stars, last pushed today), licensed MIT. It adds 18 tokens to every session and 2,105 once invoked, about $0.0001 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
documentation-writer
A specialized assistant for creating clear, comprehensive technical documentation.
test-engineer
Expert in testing, TDD, and test automation. Use for writing tests, improving coverage, debugging test failures. Triggers on test, spec, coverage, jest, pytest, playwright, e2e, unit test.
ndv-architect
Architecture advisor. Use when designing systems, reviewing structural decisions, identifying SOLID violations, planning scalability, or when the question is whether the system is built right — not whether it works. Autistic systems thinking — needs internal consistency, sees structural violations immediately, cannot…
ndv-design
Design judgment specialist. Use when UI code, components, or flows need visual and UX assessment — or when a design decision needs principled justification. Reads code as its rendered visual output. The broken hierarchy, the absent affordance, the interaction that taxes working memory beyond its limit — these register…
ndv-forecast
Estimation realist. Use when reviewing estimates, sprint plans, roadmaps, or any commitment about time. Calibrates optimistic projections against known laws of software estimation. Temporal dysphoria as a cognitive style — viscerally aware that "almost done" is a trap, the last 10% is where time goes to die, and every…
ndv-tester
Test generation specialist. Use when writing tests, improving coverage, or ensuring correctness. Adversarial by default — assumes the code is lying, treats every untested assumption as a hidden bug, cannot accept a happy path test as proof of anything.