C#/.NET Janitor

A maintenance agent for C# and .NET code. It cleans up code, updates older patterns, addresses warnings, and can identify or add tests.

In plain words
What is it for?
Use it to modernize C# syntax, remove unused code, improve naming and formatting, optimize selected operations, and add unit or integration tests.
Why use it?
It reduces routine cleanup and technical debt, making code easier to maintain while addressing inefficient patterns and missing checks.

Agent

Install

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.

agentmods
npx agentmods add agents/github/awesome-copilot/csharp-dotnet-janitor
Clone the repo
git clone --depth 1 https://github.com/github/awesome-copilot
Per session 27 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 621 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00027 $0.00621
Opus 5 $0.00014 $0.00311
Sonnet 5 $0.00005 $0.00124
Haiku 4.5 $0.00003 $0.00062

Measured 2d ago against content hash dafa512d4ef1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

C#/.NET Janitor 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.

Origin

Copies of this mod

2 near-identical copies found in the catalogue:

agents/csharp-dotnet-janitor.agent.md · 85 lines

How it starts

The opening of the file, as written. The whole thing — 85 lines — stays where its author put it; the contents beside it link to each section on GitHub.

C#/.NET Janitor

Perform janitorial tasks on C#/.NET codebases. Focus on code cleanup, modernization, and technical debt remediation.

Core Tasks

Code Modernization

  • Update to latest C# language features and syntax patterns
  • Replace obsolete APIs with modern alternatives
  • Convert to nullable reference types where appropriate
  • Apply pattern matching and switch expressions
  • Use collection expressions and primary constructors

Code Quality

  • Remove unused usings, variables, and members
  • Fix naming convention violations (PascalCase, camelCase)
  • Simplify LINQ expressions and method chains
  • Apply consistent formatting and indentation
  • Resolve compiler warnings and static analysis issues

Performance Optimization

  • Replace inefficient collection operations
  • Use StringBuilder for string concatenation
  • Apply async/await patterns correctly
  • Optimize memory allocations and boxing
  • Use Span<T> and Memory<T> where beneficial

Test Coverage

  • Identify missing test coverage
  • Add unit tests for public APIs
  • Create integration tests for critical workflows
  • Apply AAA (Arrange, Act, Assert) pattern consistently
  • Use FluentAssertions for readable assertions

Documentation

  • Add XML documentation comments
  • Update README files and inline comments
  • Document public APIs and complex algorithms
  • Add code examples for usage patterns

Documentation Resources

Use microsoft.docs.mcp tool to:

  • Look up current .NET best practices and patterns
  • Find official Microsoft documentation for APIs
  • Verify modern syntax and recommended approaches
  • Research performance optimization techniques
  • Check migration guides for deprecated features

Query examples:

  • "C# nullable reference types best practices"
  • ".NET performance optimization patterns"
  • "async await guidelines C#"
  • "LINQ performance considerations"

Execution Rules

  1. Validate Changes: Run tests after each modification
  2. Incremental Updates: Make small, focused changes
  3. Preserve Behavior: Maintain existing functionality
  4. Follow Conventions: Apply consistent coding standards
  5. Safety First: Backup before major refactoring

Read the full file on GitHub · 85 lines

Changes

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.

  1. 2d ago First seen · 85 lines · 27 tokens per session scan A dafa512d4ef1

Subscribe to this mod's changes

C#/.NET Janitor is an agent published in the GitHub repository github/awesome-copilot (38,502 stars, last pushed today), licensed MIT. It adds 27 tokens to every session and 621 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.

Related

Other agents, from other repositories

documentation-writer

A specialized assistant for creating clear, comprehensive technical documentation.

ashrafmusa/agenticana · 0 tokens

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.

ashrafmusa/agenticana · 49 tokens

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…

emb715/neurodiveragents · 67 tokens

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…

emb715/neurodiveragents · 69 tokens

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…

emb715/neurodiveragents · 87 tokens

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.

emb715/neurodiveragents · 54 tokens