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 skills add ericrisco/rsc-harness --skill csharp-dotnetgit clone --depth 1 https://github.com/ericrisco/rsc-harnessWrote 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/skills/ericrisco/rsc-harness/csharp-dotnet)<a href="https://agentmods.dev/skills/ericrisco/rsc-harness/csharp-dotnet"><img src="https://agentmods.dev/badge/skills/ericrisco/rsc-harness/csharp-dotnet/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ericrisco/rsc-harness/csharp-dotnet"><img src="https://agentmods.dev/badge/skills/ericrisco/rsc-harness/csharp-dotnet.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Memory Poisoning · line 265 Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.Fix: Protect agent memory and state from modification by untrusted content. Use read-only memory for critical instructions and validate all state changes.
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.00089 | $0.03201 |
| Opus 5.5 | $0.00036 | $0.01280 |
| Sonnet 5.5 | $0.00018 | $0.00640 |
| Haiku 4.5 | $0.00009 | $0.00320 |
Grade A, and why
csharp-dotnet 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 1mo 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 — 273 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Modern C# and .NET services
You write and review C#, ASP.NET Core APIs, and EF Core data access. You own the .NET idioms, the HTTP-contract patterns as expressed in .NET, async correctness, and the .NET-specific quality/security gates. You delegate everything language- agnostic to the right sibling.
Target: .NET 10 (LTS, released 2025-11-11, supported 3 years) with C# 14, EF Core
10, ASP.NET Core 10. .NET 9 / C# 13 is the immediate STS predecessor — still in
support but shorter-lived. Features gate on the target framework moniker (TFM): a
net10.0 project gets C# 14 by default; a net9.0 project caps at C# 13. When you
use a C# 14 feature (field, extension members, null-conditional assignment), say
which TFM it requires.
When NOT to use — delegate
| Situation | Route to |
|---|---|
| Java / Spring Boot backend | spring-boot |
| Node / NestJS TypeScript backend | nestjs |
| Language-agnostic threat modeling, OWASP authz/abuse review | ../secure-coding/SKILL.md |
| Raw Postgres schema/index/query tuning | ../postgresdb/SKILL.md |
| Framework-neutral REST resource taxonomy | api-design |
| Dockerfile / CI pipeline / deploy target | ../deployment/SKILL.md |
| Recording per-project conventions in the workspace wiki | ../harness/SKILL.md |
The .NET expression of an API contract and async correctness live HERE. Resource
naming theory lives in api-design; the JVM and Node counterparts are spring-boot
and nestjs.
Project & solution layout + dotnet CLI
dotnet new sln -n Shop # solution
dotnet new webapi -n Shop.Api # minimal API (default in .NET 10)
dotnet new webapi -n Shop.Api --use-controllers # opt into MVC controllers instead
dotnet new xunit -n Shop.Api.Tests # test project
dotnet sln add Shop.Api Shop.Api.Tests # wire into the solution
dotnet add Shop.Api package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet ef migrations add Initial -p Shop.Api # create a migration
dotnet ef database update -p Shop.Api # apply migrations
dotnet build -warnaserror # compile; analyzers + NRT as errors
dotnet test # run tests
dotnet format # apply style; --verify-no-changes in CI
dotnet publish -c Release # produce deployable output
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 273 lines · 89 tokens per session scan A 42331572217e
csharp-dotnet is a skill published in the GitHub repository ericrisco/rsc-harness (227 stars, last pushed yesterday), licensed MIT. It adds 89 tokens to every session and 3,201 once invoked, about $0.0004 per session on Opus 5.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 skills, from other repositories
verify
Build, launch, and drive the AppointMe stack to verify a change end-to-end at its runtime surface.
codegen
Use for .NET code generation work with Roslyn, Microsoft.OpenApi, Razor templates, DTO/manager/controller generation, REST API generation, C# HttpClient generation, Angular/Axios TypeScript request clients, generated formatting, and deterministic output.
C# Patterns
Use this skill when working in C# projects (.NET) and you want patterns for async correctness, clear layering, and safe dependency injection.
.NET Patterns
Use this skill when working in .NET projects (C#) and you want clean layering, safe async usage, and maintainable dependency injection patterns.
api-endpoint
Generate a complete REST API endpoint with validation, tests, and documentation.
build-and-test
How to build and test .NET projects in the Agent Framework repository. Use this when verifying or testing changes.