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 agentmods add skills/fmflurry/settings-opencode/dotnet-clean-architecturenpx skills add fmflurry/settings-opencode --skill dotnet-clean-architecturegit clone --depth 1 https://github.com/fmflurry/settings-opencodeWhat 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 | $0.00086 | $0.02199 |
| Opus 5 | $0.00043 | $0.01099 |
| Sonnet 5 | $0.00017 | $0.00440 |
| Haiku 4.5 | $0.00009 | $0.00220 |
Grade A, and why
dotnet-clean-architecture 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 3d 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 — 199 lines — stays where its author put it; the contents beside it link to each section on GitHub.
.NET Clean + Hexagonal + Modular Architecture
When To Activate
- Scaffolding a new .NET REST API following modular hexagonal architecture
- Adding a new module or feature slice to an existing project
- Adding an endpoint/use-case with infrastructure integration (DB, HTTP, queue, filesystem)
- Refactoring code toward ports/adapters and module isolation
Architecture Overview
api/
├── Module/
│ ├── IModule.cs # Module contract
│ ├── ModuleExtensions.cs # Reflection-based auto-discovery
│ ├── <ModuleName>/
│ │ ├── <ModuleName>Module.cs # DI entrypoint (implements IModule)
│ │ ├── Application/ # Driving side (HTTP)
│ │ │ ├── Endpoint/ # MinimalApi.Endpoint implementations
│ │ │ └── Validator/ # FluentValidation rules (optional)
│ │ ├── Core/ # Domain hexagon (pure logic, zero infra deps)
│ │ │ ├── <UseCase>.cs # Use case implementation
│ │ │ ├── Exception/ # Module-specific domain exceptions
│ │ │ ├── Model/ # Domain models
│ │ │ │ └── Endpoint/ # Request/Response DTOs
│ │ │ └── Ports/
│ │ │ ├── Incoming/ # What domain exposes (use case interfaces)
│ │ │ └── Outgoing/ # What domain needs (infra abstractions)
│ │ └── Infrastructure/ # Driven side (DB, external services)
│ │ ├── Adapter/ # Implements outgoing ports
│ │ └── Mapping/ # Riok.Mapperly mapper classes
├── Core/ # Shared kernel
│ ├── Data/
│ │ ├── Entities/ # EF Core entities
│ │ └── Repositories/ # Repository interfaces + implementations
│ ├── Endpoint/ # Base request/response (CorrelationId)
│ └── Interface/ # Shared interfaces
├── Infrastructure/ # Cross-cutting infrastructure
│ ├── Context/ # DbContext + EF configurations
│ ├── Identity/ # Auth middleware, JWT, passwords
│ └── ExceptionHandler.cs # Global ProblemDetails handler
├── Shared/
│ └── Exceptions/ # Domain exception hierarchy
├── Constants/ # Auth, Roles, Policies constants
└── Program.cs # Composition root
tests/
├── narrow/ # Unit tests (mocked ports)
│ └── <ModuleName>/
└── wide/ # Integration tests (WebApplicationFactory)
└── <ModuleName>/
What ships with it
3 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.
- 3d ago First seen · 199 lines · 86 tokens per session scan A 967e61783821
dotnet-clean-architecture is a skill published in the GitHub repository fmflurry/settings-opencode (171 stars, last pushed 21d ago), licensed MIT. It adds 86 tokens to every session and 2,199 once invoked, about $0.0004 per session on Opus 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
agui-dotnet-streaming-chat
Get started with the AG-UI .NET SDK: bootstrap and run your first streaming-chat app (client + server) with the AG-UI .NET NuGet packages (AGUI.Client, AGUI.Server, AGUI.Formatting, AGUI.Abstractions). USE FOR: which packages to install and how to wire them; constructing an AGUIChatClient against an endpoint and…
agui-dotnet-shared-state
Share structured, evolving state between an AG-UI agent and its client with the AG-UI .NET SDK — the client seeds state on the request, the server reads it, mutates it, and streams the updated state back as snapshots or deltas alongside the chat. USE FOR: sending initial/working state from the client via…
agui-dotnet-sdk-docs
Author, update, and validate the AG-UI .NET SDK documentation pages on the docs.ag-ui.com Mintlify site (under docs/). USE FOR: adding or editing a ".NET SDK" docs page (sdk/dotnet//.mdx), wiring it into the docs.json ".NET" nav group and global anchor, running the docs site locally with mintlify dev…
agui-dotnet-multimodal
Send images and other binary/file content to an AG-UI agent with the AG-UI .NET SDK — attach pictures (or audio, PDFs, etc.) to a user message so a multimodal model can see them. USE FOR: building a user ChatMessage with mixed content parts (TextContent plus DataContent for inline bytes, or UriContent for a hosted…
mgmt-review-comment-resolution
Resolve review comments on Azure management-plane .NET SDK PRs. Handles renaming types/properties, changing property types, and other API surface adjustments by updating TypeSpec client.tsp and regenerating.
mpg-migration
Handles Azure SDK for .NET management-plane migrations from AutoRest/Swagger to TypeSpec; use for MPG, mgmt migration, or Azure.ResourceManager. migration requests.