Agent skill

Modern Csharp

by managedcode in managedcode/dotnet-skills

Write modern, version-aware C for .NET repositories while staying compatible with the repo's target framework and language-version policy.

MITAuto-check passedAgent Workflows

Install Modern Csharp

skills CLI
$ npx skills add managedcode/dotnet-skills --skill modern-csharp -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install managedcode/dotnet-skills modern-csharp --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/managedcode/dotnet-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/catalog/Tools/Modern-CSharp/skills/modern-csharp .claude/skills/modern-csharp && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
modern-csharp
GitHub stars
486
Token cost
~1.5k tokens
SKILL.md length
749 words
Files
5 (incl. references)
Skills in repo
81
Repo updated
First seen
Licence
MIT

At a glance

Write modern, version-aware C for .NET repositories while staying compatible with the repo's target framework and language-version policy.

  • Works in 3 steps: Read the nearest AGENTS.md and confirm… → Run this skill's Workflow through the… → Return the Required Result Format with…
  • : modern idiomatic C code
  • SKILL.md covers Trigger On, Value, Do Not Use For and Inputs, plus 9 more sections
  • Calls dotnet and rg

What it does

Modern Csharp is an agent skill from managedcode/dotnet-skills. Write modern, version-aware C for .NET repositories while staying compatible with the repo's target framework and language-version policy. USE FOR: modern idiomatic C code; language-version compatibility decisions; upgrading or reviewing C feature usage across versions. DO NOT USE FOR: non-C .NET languages such as F or VB; analyzer-only or formatter-only setup with no language feature choice. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands…

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `manifest.json`, `references/csharp-modern-features.md` and `references/migration.md`). Compatibility notes: Requires a C or .NET repository; respects explicit LangVersion and target framework settings.

It sits in Agent Workflows, covering Linting and formatting and Codebase knowledge for agents. It works with C# and .NET. The repository describes itself as: Installable .NET skill catalog and CLI for Codex, Claude Code, GitHub Copilot, and Gemini. The licence is MIT.

When your agent uses it

  • : modern idiomatic C code
  • Language-version compatibility decisions
  • Reviewing C feature usage across versions
  • : non-C .NET languages such as F

Example prompts

  • “/modern-csharp”

Requirements

  • Compatibility (from SKILL.md): Requires a C# or .NET repository; respects explicit `LangVersion` and target framework settings.

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Read the nearest AGENTS.md and confirm scope and constraints.
  2. Run this skill's Workflow through the Ralph Loop until outcomes are acceptable.
  3. Return the Required Result Format with concrete artifacts and verification evidence.

What it can do on your machine

Read from SKILL.md and the folder at commit 535dd55. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet
    • rg

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires a C# or .NET repository; respects explicit `LangVersion` and target framework settings.

    From compatibility in the SKILL.md frontmatter.

Context cost

Modern Csharp loads about 1.5k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 140 tokens; SKILL.md has 749 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~140
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from managedcode/dotnet-skills at commit 535dd55, republished under its MIT licence (© managedcode). 749 words, ~1,508 tokens.

Download SKILL.mdSave it as .claude/skills/modern-csharp/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
modern-csharp
description
Write modern, version-aware C# for .NET repositories while staying compatible with the repo's target framework and language-version policy. USE FOR: modern idiomatic C# code; language-version compatibility decisions; upgrading or reviewing C# feature usage across versions. DO NOT USE FOR: non-C# .NET languages such as F# or VB; analyzer-only or formatter-only setup with no language feature choice. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.
compatibility
Requires a C# or .NET repository; respects explicit `LangVersion` and target framework settings.

Modern C# for .NET

Trigger On

  • the repo wants more modern idiomatic C# code
  • a change depends on language-version compatibility
  • the team is upgrading or reviewing C# feature usage across versions
  • you need to know whether a C# 13 or C# 14 feature is safe to use

Value

  • produce a concrete project delta: code, docs, config, tests, CI, or review artifact
  • reduce ambiguity through explicit planning, verification, and final validation skills
  • leave reusable project context so future tasks are faster and safer

Do Not Use For

  • non-C# .NET languages such as F# or VB
  • analyzer-only or formatter-only setup with no language feature choice

Inputs

  • target TFM or TFMs
  • explicit LangVersion, if any
  • current SDK version
  • team style rules in .editorconfig and AGENTS.md

Quick Start

  1. Read the nearest AGENTS.md and confirm scope and constraints.
  2. Run this skill's Workflow through the Ralph Loop until outcomes are acceptable.
  3. Return the Required Result Format with concrete artifacts and verification evidence.

Workflow

  1. Detect the real language ceiling from the repo's target framework and explicit LangVersion.
  2. Prefer stable features that the current repo actually supports.
  3. Use modern syntax when it reduces ceremony, improves correctness, or makes invariants clearer.
  4. Do not mass-rewrite a codebase into newer syntax unless the repo wants that churn.
  5. Treat preview features as opt-in only. Never assume preview because the current machine has a newer SDK.
  6. Pay special attention to C# 13 and C# 14:
    • C# 13 is the stable language for .NET 9
    • C# 14 is the stable language for .NET 10
  7. When feature selection changes architecture, style rules, or generated-code patterns, coordinate with:
    • dotnet
    • analyzer-config
    • architecture
  8. After feature-driven refactors, run the repo's .NET quality pass through dotnet.

Current Upstream Notes

  • .NET runtime v10.0.11 is servicing. It should not by itself justify language-feature rewrites.
  • .NET SDK v10.0.400 is the current 10.0.4xx feature band and expands file-based app behavior, but language features still depend on the compiler selected by the repository. Do not use C# 13 or C# 14 syntax in a repo pinned to an older toolset unless it explicitly configures a compatible compiler and LangVersion.

Bootstrap When Missing

If the requested C# feature depends on SDK or language support the repo does not have yet:

  1. Detect current state:
    • dotnet --list-sdks
    • rg -n "TargetFramework|LangVersion|TargetFrameworks" -g '*.csproj' -g 'Directory.Build.*' .
  2. Confirm whether the repo wants to stay on the current stable language level or intentionally upgrade.
  3. If the feature requires a newer supported SDK or target framework, upgrade the repo toolchain deliberately instead of relying on the local machine by accident.
  4. If the repo needs explicit LangVersion, record it in project or shared MSBuild config.
  5. Run dotnet build SOLUTION_OR_PROJECT after the feature or toolchain change and return status: configured or status: improved.
  6. If the repo intentionally stays below the required language level, return status: not_applicable.
Show full SKILL.md (271 more words)Show less

Deliver

  • modern C# code that fits the repo's real language version
  • fewer obsolete patterns when a newer stable feature is clearer
  • no accidental preview or unsupported-language drift

Validate

  • the chosen syntax is supported by the repo's TFM and LangVersion
  • the feature improves clarity, correctness, or maintainability
  • preview-only features are used only when the repo explicitly opted in
  • style and analyzer rules still agree with the new syntax

Ralph Loop

Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.

  1. Plan first (mandatory):
    • analyze current state
    • define target outcome, constraints, and risks
    • write a detailed execution plan
    • list final validation skills to run at the end, with order and reason
  2. Execute one planned step and produce a concrete delta.
  3. Review the result and capture findings with actionable next fixes.
  4. Apply fixes in small batches and rerun the relevant checks or review steps.
  5. Update the plan after each iteration.
  6. Repeat until outcomes are acceptable or only explicit exceptions remain.
  7. If a dependency is missing, bootstrap it or return status: not_applicable with explicit reason and fallback path.
Required Result Format
  • status: complete | clean | improved | configured | not_applicable | blocked
  • plan: concise plan and current iteration step
  • actions_taken: concrete changes made
  • validation_skills: final skills run, or skipped with reasons
  • verification: commands, checks, or review evidence summary
  • remaining: top unresolved items or none

For setup-only requests with no execution, return status: configured and exact next commands.

Load References

Example Requests

  • "Make this C# code more modern."
  • "Which features can we use on .NET 9?"
  • "Review this repo for C# 13 or C# 14 opportunities."

© managedcode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in catalog/Tools/Modern-CSharp/skills/modern-csharp of managedcode/dotnet-skills.

  • SKILL.md
  • manifest.json
  • references/csharp-modern-features.md
  • references/migration.md
  • references/patterns.md

Open the folder on GitHubat commit 535dd55

Compare with similar skills

Modern Csharp next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Modern Csharp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Modern Csharp this skillmanagedcode/dotnet-skills486—~1.5kAutomated safety check: PassMIT
Mcaf Dotnet Csharpiermanagedcode/Storage138—~961Automated safety check: PassMIT
Git HooksProrise-cool/Claude-Code-Multi-Agent305—~3.6kAutomated safety check: NotesNone
Precheckayutaz/piper-plus220—~647Automated safety check: PassMIT
Mcaf Dotnetmanagedcode/Storage138—~1.6kAutomated safety check: PassMIT
Nemo Rl Session MemoryNVIDIA/skills3.5k—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Mcaf Dotnet Csharpier

    managedcode/Storage

    Use the open-source free CSharpier formatter for C and XML. An agent skill from managedcode/Storage.

    138 GitHub stars~961 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Git Hooks

    Prorise-cool/Claude-Code-Multi-Agent

    Central authority on git hook implementations, modern best practices, and tooling for .NET/C, JavaScript/TypeScript, Python, and polyglot repositories.

    305 GitHub stars~3.6k tokensUpdated 22 days ago
    DevelopmentAuto-check: notes
  • Precheck

    ayutaz/piper-plus

    PR 作成前の lint + format + test 一括実行。引数で scope (python/rust/cs/go/js/cpp/all) を指定可能。未指定なら git diff から自動判定。

    220 GitHub stars~647 tokensUpdated today
    DevelopmentAuto-check passed
  • Mcaf Dotnet

    managedcode/Storage

    Primary entry skill for C and .NET tasks. An agent skill from managedcode/Storage.

    138 GitHub stars~1.6k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Official

    Manage durable working-session memory for coding agents. An agent skill from NVIDIA/skills.

    3.5k GitHub stars~1.4k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Init My Project

    MCSLTeam/MCServerLauncher-Future

    Bootstrap reusable project governance for a new or existing repo.

    121 GitHub stars~2.1k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed

More from managedcode/dotnet-skills

All 81 skills in this repo
  • Analyzer Config

    managedcode/dotnet-skills

    Use a repo-root .editorconfig to configure free .NET analyzer and style rules.

    486 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Archunitnet

    managedcode/dotnet-skills

    Use the open-source free ArchUnitNET library for architecture rules in .NET tests.

    486 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Aspire

    managedcode/dotnet-skills

    Build, upgrade, and operate Aspire 13.5.x C or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for…

    486 GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Aspnet Core

    managedcode/dotnet-skills

    Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET.

    486 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Asynkron Profiler

    managedcode/dotnet-skills

    Use the open-source free Asynkron.Profiler dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts.

    486 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Azure Functions

    managedcode/dotnet-skills

    Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns.

    486 GitHub stars~2.6k tokensUpdated today
    Auto-check passed

Works with

Questions about Modern Csharp

What does Modern Csharp do?

Write modern, version-aware C for .NET repositories while staying compatible with the repo's target framework and language-version policy. Modern Csharp is an agent skill from managedcode/dotnet-skills.NET repositories while staying compatible with the repo's target framework and language-version policy.

When should I use Modern Csharp?

Modern Csharp fits situations like: : modern idiomatic C code; language-version compatibility decisions; reviewing C feature usage across versions; : non-C .NET languages such as F.

How do I install Modern Csharp in Claude Code?

Run `npx skills add managedcode/dotnet-skills --skill modern-csharp -a claude-code`. Or copy the skill folder (catalog/Tools/Modern-CSharp/skills/modern-csharp in managedcode/dotnet-skills) into .claude/skills/modern-csharp in your project. Claude Code loads it when a task matches its description.

How do I install Modern Csharp in Codex?

Run `npx skills add managedcode/dotnet-skills --skill modern-csharp -a codex`. Or copy the skill folder (catalog/Tools/Modern-CSharp/skills/modern-csharp in managedcode/dotnet-skills) into .agents/skills/modern-csharp in your project. Codex loads it when a task matches its description.

Can I use Modern Csharp in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add managedcode/dotnet-skills --skill modern-csharp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modern-csharp, .gemini/skills/modern-csharp, .github/skills/modern-csharp and .opencode/skills/modern-csharp in your project.

What does Modern Csharp need to run?

Going by SKILL.md and its folder, Modern Csharp needs the command-line tools its instructions call (dotnet and rg). Compatibility (from SKILL.md): Requires a C# or .NET repository; respects explicit `LangVersion` and target framework settings..

Does Modern Csharp access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Modern Csharp safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Modern Csharp use?

Modern Csharp is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Modern Csharp use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.5k tokens, read only when the agent opens those files.

What are the alternatives to Modern Csharp?

Skills that share tags, products or a category with Modern Csharp: Mcaf Dotnet Csharpier (managedcode/Storage, 138 stars), Git Hooks (Prorise-cool/Claude-Code-Multi-Agent, 305 stars), Precheck (ayutaz/piper-plus, 220 stars) and Mcaf Dotnet (managedcode/Storage, 138 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Modern Csharp?

managedcode (a GitHub organization) maintains it in managedcode/dotnet-skills, which has 486 GitHub stars. The repository holds 81 skills in this directory. The repository was last updated on October 7, 2026.

Source: managedcode/dotnet-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.