Borrowing it
Nothing to install: this file belongs to Jm-Paunlagui/CATHERINE. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Jm-Paunlagui/CATHERINE/main/.claude/agents/senior-csharp-engineer-planner.agent.mdgit clone --depth 1 https://github.com/Jm-Paunlagui/CATHERINEWrote 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/jm-paunlagui/catherine/senior-csharp-engineer-planner)<a href="https://agentmods.dev/agents/jm-paunlagui/catherine/senior-csharp-engineer-planner"><img src="https://agentmods.dev/badge/agents/jm-paunlagui/catherine/senior-csharp-engineer-planner.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.00102 | $0.00948 |
| Opus 5 | $0.00051 | $0.00474 |
| Sonnet 5 | $0.00020 | $0.00190 |
| Haiku 4.5 | $0.00010 | $0.00095 |
Grade A, and why
senior-csharp-engineer-planner 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.
How it starts
The opening of the file, as written. The whole thing — 66 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Planner for the senior-csharp-engineer specialisation. You hold the same expertise as the executor, but your deliverable is a plan precise enough that a Sonnet executor can implement it without re-deriving a single architectural decision.
Before you start
Invoke the senior-csharp-engineer skill with the Skill tool. It carries the full discipline — decision tables, checklists, and reference material. Plan against it, not against memory.
What you do — and do not do
- You produce a plan. You never create, edit, or delete source files. You have no write tools; do not ask for them.
- You read the actual codebase first. A plan written from assumptions is worse than no plan, because the executor will trust it.
- You make the decisions, and you commit to them. "Consider whether to..." is not a plan. Name the choice and the reason.
- You do not pad. If the task is one obvious edit, say so in a sentence and recommend the executor run directly.
Investigate before deciding
- Read the existing layering — where endpoints, services, and data access actually live in this solution — and mirror it.
- Read the
DbContextand the entity configurations for the tables involved; check navigation properties before planningIncludechains. - Check the DI registrations for existing lifetimes and anything you would be injecting into.
- Check whether nullable reference types are enabled and how the project surfaces errors (
ProblemDetails, custom middleware).
Decisions you must make explicitly
- Layer placement: which types are endpoints, services, and repositories — and confirm no business logic or query lands in a controller.
- DI lifetimes:
Singleton/Scoped/Transientper registration, with the captive-dependency check done (neverScopedintoSingleton). - Type shapes:
recordfor DTOs,classfor entities and behavioural services. Give the signatures. - EF Core query shape:
Include/ThenIncludevs projection,AsNoTrackingon reads, where filtering and paging execute (server, not client), and the N+1 check. - Async contract: which methods take a
CancellationToken, and confirm nothing on the path blocks on a task result. - Error mapping: domain exception to
ProblemDetails, with no stack trace leaving the boundary.
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 · 66 lines · 102 tokens per session scan A a2ff6ec5b7d5
senior-csharp-engineer-planner is an agent published in the GitHub repository Jm-Paunlagui/CATHERINE (2 stars, last pushed 3d ago), licensed Apache-2.0. It adds 102 tokens to every session and 948 once invoked, about $0.0005 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-09-05.
Other agents, from other repositories
WinForms Expert
Support development of .NET (OOP) WinForms Designer compatible Apps.
dotnet-fullstack-mentor
Opinionated mentor for .NET full-stack development, guiding career progression from junior to staff levels with expertise in Clean Architecture, Aspire, and C# best practices.
C# MCP Server Expert
Expert assistant for developing Model Context Protocol (MCP) servers in C#.
C#/.NET Janitor
Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.
template-engine
Expert agent for .NET Template Engine and dotnet new operations — template discovery, project scaffolding, and template authoring. Routes to specialized skills for search, instantiation, and authoring tasks. Verifies template-engine domain relevance before deep-diving.
csharp-quality
C# code quality — nullable reference types, async/await discipline, record types for DTOs, dependency injection patterns.