Dotnet Backend Patterns
wshobson/agents
Master C/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications.
C code conventions covering .NET 8+/C 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security.
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Goldziher/ai-rulez csharp-conventions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .claude/skills/csharp-conventions && rm -rf skills-srcUse ~/.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/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .claude/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Goldziher/ai-rulez csharp-conventions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .agents/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .agents/skills/csharp-conventions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .agents/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Goldziher/ai-rulez csharp-conventions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .cursor/skills/csharp-conventions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .cursor/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Goldziher/ai-rulez.git --path internal/builtins/languages/csharp/skills/csharp-conventions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Goldziher/ai-rulez csharp-conventions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .gemini/skills/csharp-conventions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .gemini/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Goldziher/ai-rulez csharp-conventionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .github/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .github/skills/csharp-conventions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .github/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Goldziher/ai-rulez --skill csharp-conventions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Goldziher/ai-rulez csharp-conventions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Goldziher/ai-rulez.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/internal/builtins/languages/csharp/skills/csharp-conventions .opencode/skills/csharp-conventions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "csharp-conventions" agent skill from https://github.com/Goldziher/ai-rulez/tree/main/internal/builtins/languages/csharp/skills/csharp-conventions into .opencode/skills/csharp-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "csharp-conventions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
csharp-conventionsC code conventions covering .NET 8+/C 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security.
Csharp Conventions is an agent skill from Goldziher/ai-rulez. C code conventions covering .NET 8+/C 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security. Load when writing or reviewing C code.
Its SKILL.md is about 360 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Async programming and Unit testing. It works with C# and .NET. The repository describes itself as: One source of truth for AI assistant configs: 14 built-in presets (Claude, Cursor, Copilot, Codex, Gemini, Xum, …), full-parity custom presets, and distributable plugin bundles… The licence is MIT.
Read from SKILL.md and the folder at commit 01417cf. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
dotnetFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Csharp Conventions loads about 363 tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 127 words of instructions outside code blocks.
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.
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.
The full file from Goldziher/ai-rulez at commit 01417cf, republished under its MIT licence (© Goldziher). 127 words, ~363 tokens.
.claude/skills/csharp-conventions/SKILL.md (or your agent's skills folder).<Nullable>enable</Nullable>.dotnet format + Roslyn analyzers, <TreatWarningsAsErrors>true</TreatWarningsAsErrors>..editorconfig for consistent rules across team. Use an analyzer set (e.g., StyleCop.Analyzers or Roslynator).[Theory]/[InlineData], an assertion library (e.g., FluentAssertions), a coverage tool (e.g., coverlet) at 80%+.Stopwatch loops.record types for immutable data, required properties, pattern matching in switch expressions.async/await throughout — never .Result or .Wait(), ValueTask for hot paths, avoid deadlocks.dotnet list package --vulnerable for CVE scanning. Zero tolerance for critical/high.PackageReference, commit packages.lock.json, Directory.Build.props for shared config.[1, 2, 3]), required modifier, raw string literals for multi-line.dynamic, object params, unguarded catch (Exception), #pragma warning disable.© Goldziher, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in internal/builtins/languages/csharp/skills/csharp-conventions of Goldziher/ai-rulez.
Open the folder on GitHubat commit 01417cf
Csharp Conventions 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Csharp Conventions this skillGoldziher/ai-rulez | 158 | — | ~363 | Automated safety check: Pass | MIT | |
| Dotnet Backend Patternswshobson/agents | 40k | 8 repos | ~6.6k | Automated safety check: Pass | MIT | |
| Csharp Rulessoftspark/ai-toolkit | 179 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| ScottPlot Test RunnerScottPlot/ScottPlot | 6.8k | — | ~308 | Automated safety check: Pass | MIT | |
| Verifyvaldisiljuconoks/LocalizationProvider | 180 | — | ~159 | Automated safety check: Pass | Apache-2.0 | |
| Csharp Testingaffaan-m/ECC | 275k | 1 repos | ~2.2k | Automated safety check: Pass | MIT |
wshobson/agents
Master C/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications.
softspark/ai-toolkit
C/.NET coding rules: style, patterns, security, testing. An agent skill from softspark/ai-toolkit.
ScottPlot/ScottPlot
Run or add ScottPlot 5 tests. Use for unit-test and cookbook-test work; unless explicitly asked otherwise, restrict manual test execution to the Unit Tests…
valdisiljuconoks/LocalizationProvider
Build the solution and run unit tests to verify changes are correct.
affaan-m/ECC
C and .NET testing patterns with xUnit, FluentAssertions, mocking, integration tests, and test organization best practices.
affaan-m/ECC
xUnit、FluentAssertions、モッキング、統合テスト、テスト組織のベストプラクティスを使用したCと.NETのテストパターン。
Goldziher/ai-rulez
Manage AI assistant governance rules across 52 harnesses (Claude Code, Cursor, Codex, Copilot, Gemini CLI, OpenCode, Devin, and more) using ai-rulez.
Goldziher/ai-rulez
Concrete code-quality thresholds and anti-patterns: 120-char lines, max 20 cyclomatic complexity, max 4 nesting levels, max 50 lines per function, no magic numbers, no global state, composition over…
Goldziher/ai-rulez
Rust code conventions covering edition 2024, cargo fmt/clippy, Result-based error handling, unsafe discipline, async with tokio, API-guideline naming, trait implementations, benchmarking, and…
Goldziher/ai-rulez
How to write a good test: behaviour-describing names (shouldreturnerrorwheninputisempty, givenwhenthen), exact-value assertions over truthiness, snapshot and property-based testing…
Goldziher/ai-rulez
vite+ unified TypeScript toolchain conventions: the vp CLI for package/node management, oxlint/oxfmt, type-aware linting, vitest, rolldown/tsdown bundling, task caching, and migration.
Goldziher/ai-rulez
Cross-language binding architecture rules: bindings as minimal glue, canonical API surface ordering (core, ABI, language), per-language test suites in CI, generated-code discipline, and error/async…
Categories
C code conventions covering .NET 8+/C 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security. Csharp Conventions is an agent skill from Goldziher/ai-rulez.NET 8+/C 12, nullable reference types, Roslyn analyzers, xUnit, record types, async/await discipline, and dependency security.
Csharp Conventions fits situations like: tasks that involve Async programming; tasks that involve Unit testing.
Run `npx skills add Goldziher/ai-rulez --skill csharp-conventions -a claude-code`. Or copy the skill folder (internal/builtins/languages/csharp/skills/csharp-conventions in Goldziher/ai-rulez) into .claude/skills/csharp-conventions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Goldziher/ai-rulez --skill csharp-conventions -a codex`. Or copy the skill folder (internal/builtins/languages/csharp/skills/csharp-conventions in Goldziher/ai-rulez) into .agents/skills/csharp-conventions in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Goldziher/ai-rulez --skill csharp-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/csharp-conventions, .gemini/skills/csharp-conventions, .github/skills/csharp-conventions and .opencode/skills/csharp-conventions in your project.
Going by SKILL.md and its folder, Csharp Conventions needs the command-line tools its instructions call (dotnet).
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.
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.
Csharp Conventions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 363 tokens (SKILL.md is roughly 1.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Csharp Conventions: Dotnet Backend Patterns (wshobson/agents, 40k stars), Csharp Rules (softspark/ai-toolkit, 179 stars), ScottPlot Test Runner (ScottPlot/ScottPlot, 6.8k stars) and Verify (valdisiljuconoks/LocalizationProvider, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Goldziher (a GitHub user) maintains it in Goldziher/ai-rulez, which has 158 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.
Source: Goldziher/ai-rulez on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.