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 skills add SSWConsulting/SSW.VerticalSliceArchitecture --skill add-entitygit clone --depth 1 https://github.com/SSWConsulting/SSW.VerticalSliceArchitectureWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sswconsulting/ssw.verticalslicearchitecture/add-entity)<a href="https://agentmods.dev/skills/sswconsulting/ssw.verticalslicearchitecture/add-entity"><img src="https://agentmods.dev/badge/skills/sswconsulting/ssw.verticalslicearchitecture/add-entity.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Agent Snooping · line 81 Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
What 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.1 | $0.00116 | $0.01740 |
| Opus 5 | $0.00058 | $0.00870 |
| Sonnet 5 | $0.00023 | $0.00348 |
| Haiku 4.5 | $0.00012 | $0.00174 |
Grade A, and why
add-entity 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 8d 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 — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add an Entity
A new persisted domain type in this template is never one file. It's a domain object, a strongly typed ID, an EF configuration, a DbSet, a converter registration, and a migration — spread across two folders. Miss one and you get anything from a compile error to an app that won't start.
The trap this skill exists to close
Every strongly typed ID must be registered in src/WebApi/Common/Persistence/VogenEfCoreConverters.cs.
Forget it and nothing complains at compile time. dotnet build is green, the architecture tests are green, and the app throws on startup when EF Core tries to map a HeroId it has no converter for. That is the single most expensive thing to forget in this repo, so step 5 below is not optional and the verification step checks for it explicitly.
Read the live reference first
Before generating anything, read the canonical aggregate and its persistence wiring:
src/WebApi/Common/Domain/Heroes/Hero.cs— aggregate root, Vogen ID,field-keyword setter guardssrc/WebApi/Common/Domain/Teams/Team.cs— an aggregate that returnsErrorOr<Success>from behavioursrc/WebApi/Common/Persistence/Heroes/HeroConfiguration.cs— EF configurationsrc/WebApi/Common/Persistence/VogenEfCoreConverters.cs— the registration list
The templates in references/ follow these files, but the repo is the source of truth. If the two disagree, the repo wins — follow it and update the template (see Keeping this skill honest at the bottom).
One deliberate divergence: the aggregate template gives properties a private set plus a named mutator, following Team.cs. Hero.cs uses a public set instead, so UpdateHeroEndpoint can assign hero.Name directly. Both keep the guard in the setter, which is the part that matters; prefer the Team.cs shape for new work, because it keeps the aggregate in charge of how it changes.
What you need to know before scaffolding
Ask the user for anything not already stated:
| Input | Notes |
|---|---|
| Entity name | Singular, PascalCase (Hero, Mission). The folder and pluralised DbSet derive from it. |
| Aggregate or child entity? | Aggregate root if it's the transactional boundary or raises domain events. Child entity if it only ever lives inside another aggregate (Mission inside Team). |
| Owning aggregate | For a child entity — which aggregate holds it, and via what collection. |
| Properties | Name, type, required/optional, and a max length for every string. |
| Behaviour | The methods that mutate it. Guards go in the property setter, business rules go in the method. |
| Domain events | Does any mutation need to trigger work elsewhere? Aggregate roots only. |
What ships with it
2 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.
- 8d ago First seen · 94 lines · 116 tokens per session scan A 8453e148cd2a
add-entity is a skill published in the GitHub repository SSWConsulting/SSW.VerticalSliceArchitecture (398 stars, last pushed 1mo ago), licensed MIT. It adds 116 tokens to every session and 1,740 once invoked, about $0.0006 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
nw-ddd-eventsourcing
Event Sourcing and CQRS as DDD implementation patterns — when to use, aggregate event streams, projections, snapshots, sagas, upcasting, conflict resolution.
nw-sd-patterns
Core distributed systems patterns - load balancing, caching, sharding, consistent hashing, message queues, rate limiting, CDN, Bloom filters, ID generation, replication, conflict resolution, CAP theorem.
new-entity
Create a backend entity with EF Core configuration and migration.
sod
Use when needing a multi-paradigm .NET ORM with SQL-MAP (MyBatis-style XML mapping), OQL (Object Query Language), and traditional ORM. PDF.NET SOD: combines ORM + SQL-MAP + OQL for flexible .NET data access.
codegen
Use for .NET code generation work with Roslyn, Microsoft.OpenApi, Razor templates, DTO/manager/controller generation, REST API generation, C# HttpClient generation, Angular/Axios TypeScript request clients, generated formatting, and deterministic output.
orchardcore-data
Skill for configuring the Orchard Core data layer. Covers database provider selection, YesSql configuration options, connection string setup, DbConnection access, SQL dialect abstraction, table prefix conventions, Dapper integration, and data access patterns. Use this skill when requests mention Orchard Core Data…