By marafiq
Flat skill library for C#/.NET work — ASP.NET MVC 5.3 + Web Forms + EF6 on .NET Framework 4.8 (C# 8.0) and ASP.NET Core MVC + EF Core on .NET 10 (C# 14). Each skill declares its own target stack. Installable in Claude Code via the dotnet-skills marketplace and in OpenAI Codex via the install-codex.sh helper.
Use when refactoring a C# symbol or concept and you need every usage caught reliably (typed C# + Razor `.cshtml` + string-typed name-variants), assembled into a structured knowledge graph the LLM navigates before deciding the refactor strategy. Closes the gaps that typed find-references misses by design — Razor string-typed helpers (`@Html.Partial("X")`, `@RenderSection`, `asp-action`), `ViewBag.X`, `ViewData["X"]`, HTML `name=` attributes, `[Bind(Include="...")]`, `[JsonProperty("X")]`, EF mapping strings, and case-variant drift (`PictureFileName` vs `pictureFileName` vs `picturefilename`). Applies to .NET / ASP.NET MVC 5 (legacy .NET Framework 4.x) and ASP.NET Core MVC code; the scripts have no project-load dependency, so they work on legacy and modern solutions alike. Do NOT use for refactor execution — Roslynator CLI, IDE refactorings, dotnet format, try-convert, and the GitHub Copilot modernization agent already cover that downstream.
Measure and validate a modular monolith design in .NET 10 — afferent coupling (who calls into this module), efferent coupling (what this module calls out to), cohesion (do this module's types address one purpose). Names god modules (high efferent coupling everywhere) and false splits (two modules coupled tightly enough that they're one module pretending). One tool in the modular-monolith toolbox — reach for it to validate a design before implementation, or to re-evaluate one that has accumulated drift. Use when the user asks "is this design coherent", "should I split this module", "should I merge these two modules", "is this module doing too much", or any post-design validation question. Status: placeholder. Target stack: .NET 10 / C# 14.
Classify a legacy .NET Framework 4.8 codebase one feature slice at a time, producing a reviewable artifact that names candidate modules, *deep modules* (Ousterhout sense — narrow public surface, deep implementation) and *hierarchical / nested modules* (parent-of-children), dependency relationships, and touched areas. The classifier is a *deep-thinking interactive skill*: it studies legacy code carefully, asks one question at a time, builds shared understanding with whoever knows the slice, and embraces progressive disclosure — a 2.5-million-line codebase cannot be held in any one head, so the classifier works slice by slice and accumulates a map. Pragmatic, not dogmatic; uses Ousterhout depth or nesting hierarchy or both, whichever lens fits the slice. Pairs with `mvc-ui-behaviors` (behavioral classification) during modernization. Use when the user asks "what natural module seams already exist", "find deep modules in our .NET 4.8 source", "carve a new module out of MVC 5", "what bounded contexts are hiding in this legacy app", "study this legacy slice with me", "let's classify the X area", or is planning incremental modernization of legacy ASP.NET MVC 5 / Web Forms code into a .NET 10 modular monolith. Status: placeholder; the artifact schema and worked examples are to be written. Input is .NET Framework 4.8 source; output feeds .NET 10 modular design.
Decide where DDD tactical patterns (aggregates, value objects, domain services, specifications) earn their keep in a .NET 10 modular monolith, and where they are ceremony. One tool in the modular-monolith toolbox — reach for it to decide the internal shape of a module after the topology is set. Use when the user asks "should this be an aggregate", "do I need a value object here", "is this a domain service or an application service", "where do invariants live", or reaches for DDD vocabulary on a CRUD-shaped module. Status: placeholder — uses the orchestrator's working summary until deep content is written. Target stack: .NET 10 / C# 14 / EF Core 10.
Inventory candidate modules in a .NET 10 modular monolith — name them, draw the dependency graph, decide module physicality (.csproj vs folder vs namespace). One tool in the modular-monolith toolbox — reach for it to decide what the modules ARE and what they are called. Use when the user asks "how should I split this into modules", "what should this module be called", "should this be a separate project", or any topology-shaping question. Status: placeholder — uses the orchestrator's working summary until deep content is written. Target stack: .NET 10 / C# 14 / ASP.NET Core MVC 10.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A flat library of C#/.NET skills for agent runtimes — installable in Claude Code as a plugin and in OpenAI Codex CLI via an install script. The same SKILL.md files serve both.
Each skill declares its own target stack in its frontmatter description. There is no dotnet-48 vs dotnet-10 directory split; skills targeting legacy ASP.NET MVC 5 / Web Forms / EF6 on .NET Framework 4.8 sit side-by-side with skills targeting ASP.NET Core MVC / EF Core on .NET 10.
Out of scope: Blazor, Razor Pages, desktop UI (WPF / WinForms / MAUI / Avalonia / Uno), F#, VB.NET, mobile, game dev.
| Skill | Target stack | What it does |
|---|---|---|
code-usage-knowledge-graph | .NET Framework 4.x and .NET 10 (no project-load needed) | Build a knowledge graph of every usage of a C# symbol — typed C# + Razor + string-typed name-variants — before refactoring. |
mvc-ui-behaviors | .NET Framework 4.8 / ASP.NET MVC 5.3 | Extract user-visible behaviors from a legacy MVC 5 slice into a Markdown artifact a separate session uses to re-implement it on .NET 10. |
modular-monolith | .NET 10 / C# 14 / EF Core 10 | Design a modular monolith using the in-tenant-vs-cross-system discriminator (sync DomainEvent vs IntegrationEvent + outbox). Orchestrator for the modular-* family. |
modular-design | .NET 10 / C# 14 | Inventory modules, draw the dependency graph, decide module physicality (.csproj vs folder vs namespace). |
modular-shared-language | .NET 10 | Align the ubiquitous language across modules; place anti-corruption layers where they earn rent. |
modular-ddd | .NET 10 / C# 14 / EF Core 10 | Decide where DDD tactical patterns earn their keep, and where they are ceremony. |
modular-ddd-classifier | Input: legacy .NET 4.8 source · Output: .NET 10 design | Classify a legacy codebase one feature slice at a time — deep modules (Ousterhout) and hierarchical modules — for incremental modernization. |
modular-solid | .NET 10 modular monoliths | Apply SOLID at module boundaries — surface shrinking, dependency rotation; pressure-test via blind review. |
modular-vertical-slice | ASP.NET Core MVC 10 | Organize features as MVC Areas without renaming /Areas/ to /Features/; co-locate mediator handlers next to their actions. |
modular-coupling-cohesion | .NET 10 modular monoliths | Measure afferent/efferent coupling and cohesion; name god modules and false splits. |
/plugin marketplace add marafiq/dotnet-skills
/plugin install dotnet@dotnet-skills
Skills become available namespaced as /dotnet:<name> and also auto-trigger when relevant. The marketplace points at this repo; the single plugin is named dotnet.
git clone https://github.com/marafiq/dotnet-skills.git
claude --plugin-dir ./dotnet-skills
After local edits, /reload-plugins.
Codex discovers skills from ~/.agents/skills/ (personal scope) and <repo>/.agents/skills/ (per-repo scope). Clone this repo, then run the install script:
git clone https://github.com/marafiq/dotnet-skills.git
cd dotnet-skills
bash scripts/install-codex.sh
This creates one symlink per skill under ~/.agents/skills/. The script is idempotent — re-run it after git pull to pick up new skills; the symlinks resolve to the latest source automatically.
Useful flags:
bash scripts/install-codex.sh --copy # copy instead of symlink (Windows / restricted FS)
bash scripts/install-codex.sh --target ~/.codex/skills # alternative Codex skills dir
bash scripts/install-codex.sh --target /path/to/repo/.agents/skills # per-repo install
bash scripts/install-codex.sh --dry-run # print what would happen
bash scripts/install-codex.sh --uninstall # remove only links created by this script
Restart Codex if it does not pick up the new skills automatically.
See CLAUDE.md for editorial standards, scope per stack, and the conventions for adding skills (and where to put agents, commands, hooks, or MCP servers). AGENTS.md is the Codex-facing pointer at the same content.
MIT — see LICENSE.
npx claudepluginhub marafiq/dotnet-skillsSkills for ASP.NET Core MVC on .NET 10 with C# 14, Entity Framework Core 10, and modern .NET runtime patterns (DI, hosting, configuration, async).
Memory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.