Code Review
jonathanpeppers/dotnes
Review dotnes pull requests against established repository rules.
Pre-merge code review for .NET 10 pull requests. An agent skill from fmflurry/settings-opencode.
$ npx skills add fmflurry/settings-opencode --skill dotnet-cop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fmflurry/settings-opencode dotnet-cop --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/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dotnet-cop .claude/skills/dotnet-cop && 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 "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .claude/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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/fmflurry/settings-opencode/tree/master/skills/dotnet-copType 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 fmflurry/settings-opencode --skill dotnet-cop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fmflurry/settings-opencode dotnet-cop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dotnet-cop .agents/skills/dotnet-cop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .agents/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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 fmflurry/settings-opencode --skill dotnet-cop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fmflurry/settings-opencode dotnet-cop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dotnet-cop .cursor/skills/dotnet-cop && 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 "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .cursor/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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/fmflurry/settings-opencode.git --path skills/dotnet-cop--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 fmflurry/settings-opencode --skill dotnet-cop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fmflurry/settings-opencode dotnet-cop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dotnet-cop .gemini/skills/dotnet-cop && 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 "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .gemini/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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 fmflurry/settings-opencode dotnet-copInstalls 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 fmflurry/settings-opencode --skill dotnet-cop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dotnet-cop .github/skills/dotnet-cop && 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 "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .github/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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 fmflurry/settings-opencode --skill dotnet-cop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fmflurry/settings-opencode dotnet-cop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dotnet-cop .opencode/skills/dotnet-cop && 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 "dotnet-cop" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/dotnet-cop into .opencode/skills/dotnet-cop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dotnet-cop", 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.
dotnet-copPre-merge code review for .NET 10 pull requests. An agent skill from fmflurry/settings-opencode.
Dotnet Cop is an agent skill from fmflurry/settings-opencode. Pre-merge code review for .NET 10 pull requests. Ground truth: Minimal API + IModule (reflection-based isolation) + hexagonal per module (Domain/Application/Infrastructure). Persistence is chosen per bounded context — EF Core CRUD and event-sourced Marten stores are both first-class, with no global default. Optional additive: DDD / CQRS per module. Diffs current branch against a target branch, applies .NET-specific checklists (Minimal API endpoints, modular isolation, ports & adapters, schema-per-module + RLS, C…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files (for example `cross-module-communication.md`, `ef-core.md` and `enforcement-tooling.md`).
It sits in Development, covering Domain-driven design, Event-driven systems and Agent instruction files. It works with .NET and C#. The repository describes itself as: Custom OpenCode settings. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0e6c33c. 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:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Dotnet Cop loads about 2k tokens when it runs. Until then it costs about 199 tokens; SKILL.md has 581 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 fmflurry/settings-opencode at commit 0e6c33c, republished under its MIT licence (© fmflurry). 581 words, ~1,962 tokens.
.claude/skills/dotnet-cop/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.Pre-merge review. Compares HEAD vs origin/<target>. Minimal-API-first, SoT-aware. Project-aware (reads AGENTS.md). Tooling-aware (runs dotnet build + dotnet format --verify-no-changes).
code-reviewer for .NET guidance during /cop-review/cop-review <target> on a .NET repo| Arg | Required | Default | Meaning |
|---|---|---|---|
<target> | yes | — | Target branch (e.g. main, develop, release/x) |
--level | no | auto | junior (verbose teaching) or senior (terse). Auto = senior. |
--scope | no | all | Comma list: minimal-api,isolation,ports-adapters,ef-core,csharp,result,ddd + optional cqrs,event-sourcing. ddd auto-enables when the diff touches domain files; pass ddd to force it on. |
--no-tools | no | false | Skip dotnet build + format check (static review only) |
git merge-base HEAD origin/<target>..HEAD. Never review changes already on target.❓ q: instead of speculative 🔴 bug:.AGENTS.md overrides this skill. Re-read on every run; do not cache between sessions.1. Parse args -> target, level, scope
2. git fetch <remote> <target> (silent; --quiet)
3. base = git merge-base HEAD <remote>/<target>
4. changed = git diff --name-status base..HEAD
5. Load <repo>/AGENTS.md (if exists) -> project rules
6. For each changed file:
- Skim full file (not just hunk) for context
- Apply relevant sub-checklists by path/role:
*Module.cs / *Extensions.cs -> modular-isolation.md
Infrastructure/Events/*.cs / *DbContext.cs -> cross-module-communication.md
*Endpoint.cs (Minimal API) -> minimal-api.md
**/Ports/Incoming/*.cs -> ports-adapters.md
**/Ports/Outgoing/*.cs -> ports-adapters.md
Infrastructure/Adapter/*.cs -> ports-adapters.md
*DbContext.cs / Migrations/** -> ef-core.md
*.cs (any) -> csharp-strict.md
- Apply skill `comment-judge` (REVIEW mode) to every added/changed comment
- If ddd is in scope OR the diff touches domain files (paths under **/*.Domain/** or **/Domain/**): load [[dotnet-ddd]] (review-checklist.md); defer deep CQRS/ES to optional-cqrs.md / optional-event-sourcing.md. ddd is auto-enabled for domain diffs; --scope=ddd forces it on when no domain file is detected.
- If --scope includes cqrs && module signals use: optional-cqrs.md
- If --scope includes event-sourcing && module signals use: optional-event-sourcing.md
7. If !--no-tools:
- dotnet build --nologo -clp:ErrorsOnly (the solution if one exists, else the relevant project(s) — fail fast)
- dotnet format --verify-no-changes (capture exit code)
8. Aggregate findings -> render via output-format.md| Tag | Meaning | Action |
|---|---|---|
| 🔴 bug | broken behavior, runtime crash, data loss | BLOCK merge |
| 🟠 sec | security risk (unvalidated input, leaked secret, tenant-data leak) | BLOCK merge |
| 🟡 risk | works today, fragile tomorrow (N+1, missing filter, scope violation) | Fix before merge |
| 🟢 arch | violates mandatory architecture rule (SoT) or AGENTS.md-escalated opt-in rule | Fix before merge |
| 🔵 nit | style, naming, micro-optim | Optional |
| ❓ q | genuine question | Author decides |
Promote to BLOCK if AGENTS.md flags the category as mandatory.
Model/ convention. Illustrated with the Sales module.Result/Result<T>, never thrown; Error defined in Domain; no HTTP coupling in Domain/Application.Always:
test -f AGENTS.md && cat AGENTS.md
test -f .agent/AGENTS.md && cat .agent/AGENTS.mdParse rule blocks. Where this skill and AGENTS.md disagree, AGENTS.md wins. Cite the AGENTS.md line in the finding: (AGENTS.md §<section>).
Single markdown document, sections in fixed order:
APPROVE / APPROVE-WITH-CHANGES / BLOCK.See [[dotnet-cop-output-format]] for full templates.
tdd workflow / tdd-guide).© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files in skills/dotnet-cop of fmflurry/settings-opencode.
Open the folder on GitHubat commit 0e6c33c
Dotnet Cop 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 |
|---|---|---|---|---|---|---|
| Dotnet Cop this skillfmflurry/settings-opencode | 171 | — | ~2k | Automated safety check: Pass | MIT | |
| Code Reviewjonathanpeppers/dotnes | 780 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Code Reviewsortie-ai/sortie | 196 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Code Reviewyaklang/yakit | 7.8k | — | ~1.4k | Automated safety check: Notes | AGPL-3.0 | |
| Analyzing .NET Performancedotnet/skills | 5.6k | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Code Reviewdotnet/macios | 2.9k | — | ~1.7k | Automated safety check: Pass | Custom licence |
jonathanpeppers/dotnes
Review dotnes pull requests against established repository rules.
sortie-ai/sortie
Reviews pull requests in this repository for the defect classes a mechanical checklist misses: documentation that outlived the code it describes, reaction and retry state that leaks or clobbers a…
yaklang/yakit
对 Yakit 仓库的代码改动做规范化 code review:按代码逻辑、TS 定义、UI 引用与 Props、CSS 样式、依赖版本、配置项六个维度审查,检查测试用例缺失,强制执行 tsc 类型检查与 vitest 测试验证,输出「结果汇总 / 明细解释 / 合并结论」三块报告,经用户确认后写入文件。当用户要求 review、审查、评审代码改动,或在提交、合并、提 PR…
dotnet/skills
Scans C# and .NET code for about 50 performance anti-patterns and reports prioritized findings with concrete fixes, at a scan depth you choose.
dotnet/macios
Review dotnet/macios PRs against established rules. An agent skill from dotnet/macios.
dotnet/maui
Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.
fmflurry/settings-opencode
Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result).
fmflurry/settings-opencode
Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.
fmflurry/settings-opencode
A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.
fmflurry/settings-opencode
Audit and fix common accessibility issues in Angular templates and Angular Material components.
fmflurry/settings-opencode
Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…
fmflurry/settings-opencode
Pre-merge code review for Angular + TypeScript pull requests.
Categories
Pre-merge code review for .NET 10 pull requests. An agent skill from fmflurry/settings-opencode. Dotnet Cop is an agent skill from fmflurry/settings-opencode.NET 10 pull requests.
Dotnet Cop fits situations like: user runs /cop-review; says pre-merge review; invokes dotnet-cop.
Run `npx skills add fmflurry/settings-opencode --skill dotnet-cop -a claude-code`. Or copy the skill folder (skills/dotnet-cop in fmflurry/settings-opencode) into .claude/skills/dotnet-cop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fmflurry/settings-opencode --skill dotnet-cop -a codex`. Or copy the skill folder (skills/dotnet-cop in fmflurry/settings-opencode) into .agents/skills/dotnet-cop 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 fmflurry/settings-opencode --skill dotnet-cop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dotnet-cop, .gemini/skills/dotnet-cop, .github/skills/dotnet-cop and .opencode/skills/dotnet-cop in your project.
Going by SKILL.md and its folder, Dotnet Cop needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Dotnet Cop is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k 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 Dotnet Cop: Code Review (jonathanpeppers/dotnes, 780 stars), Code Review (sortie-ai/sortie, 196 stars), Code Review (yaklang/yakit, 7.8k stars) and Analyzing .NET Performance (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.
Source: fmflurry/settings-opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.