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/softtor/nestjs-hexagonal/domainnpx skills add Softtor/nestjs-hexagonal --skill domaingit clone --depth 1 https://github.com/Softtor/nestjs-hexagonalWhat 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.00055 | $0.04587 |
| Opus 5 | $0.00028 | $0.02294 |
| Sonnet 5 | $0.00011 | $0.00917 |
| Haiku 4.5 | $0.00006 | $0.00459 |
Grade A, and why
domain 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 2d 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 — 587 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Domain Layer
The domain layer contains the pure business logic of a bounded context. It has zero framework dependencies except @nestjs/cqrs for AggregateRoot (entity base class). No @Injectable, no PrismaService, no HTTP concerns.
Decision Tree
What are you creating?
Domain artifact needed?
│
├── An entity (aggregate root with lifecycle methods)
│ └── Go to: Entity Pattern
│
├── A simple value (email, amount, name, phone)
│ └── Go to: VO — Scalar
│
├── A grouped value (address, bank details, money)
│ └── Go to: VO — Composed
│
├── A fixed set of values (payment method, channel type)
│ └── Go to: VO — Enum
│
├── A status with allowed transitions (order status, withdrawal status)
│ └── Go to: VO — State Machine
│
├── The persistence contract for the entity
│ └── Go to: Repository Interface
│
├── Something that happened in the domain
│ └── Go to: Domain Events
│
├── Logic that belongs to the domain but not to one entity
│ └── Go to: Domain Services
│
├── A domain-specific error with context
│ └── Go to: Domain Errors
│
├── Entity invariant enforcement (field-level rules)
│ └── Go to: Validators
│
└── Fake data for tests
└── Go to: Data Builders
Entity Pattern
Full reference: references/entity-patterns.md
An entity is identified by its UniqueEntityID, not by its value. It extends AggregateRoot from @nestjs/cqrs so that events flow through the NestJS EventBus once committed.
Two factory methods are mandatory:
static create(props, id?)— for new instances; callsthis.apply(new XCreatedEvent(...))static restore(props, id)— for DB hydration; emits no events
Event lifecycle (every entity follows this):
entity.apply(event) // 1. records the event in memory
publisher.mergeObjectContext(entity) // 2. wires EventBus (in handler)
await repo.save(entity) // 3. persists
entity.commit() // 4. publishes events to EventBus
Condensed template:
What ships with it
8 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.
- references/data-builder-patterns.md 7.8 KB
- references/domain-error-patterns.md 7.8 KB
- references/domain-event-patterns.md 10 KB
- references/domain-service-patterns.md 9.2 KB
- references/entity-patterns.md 11 KB
- references/repository-interface.md 8.5 KB
- references/validator-patterns.md 9.7 KB
- references/value-object-patterns.md 17 KB
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.
- 2d ago First seen · 587 lines · 55 tokens per session scan A d2ad5e194883
domain is a skill published in the GitHub repository Softtor/nestjs-hexagonal (5 stars, last pushed 22d ago), licensed MIT. It adds 55 tokens to every session and 4,587 once invoked, about $0.0003 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-31.
Other skills, from other repositories
design-patterns
Full-spectrum Design Patterns skill: Detect anti-patterns in existing codebases, diagnose architectural debt, propose optimal patterns (GoF, SOLID, DDD, CQRS, Microservices, Cloud), and generate production-ready boilerplate code. Optimized for Next.js, FastAPI, NestJS, Django, Express, and Go.
clean-architecture
Implement Clean Architecture combined with CQRS for scalable NestJS applications.
new-skill
Scaffold a new brooks-lint analysis skill so it passes npm run validate and npm run evals on the first try — generates skills/{name}/SKILL.md (with the mandatory "Do NOT trigger for:" clause and a Process section citing guide step ranges) plus skills/{name}/{name}-guide.md (sequentially numbered steps), then appends…
brooks-sweep
Full-sweep mode: runs a unified analysis across all quality dimensions — code decay, architecture, tech debt, and test quality — then applies fixes directly to the codebase. Safe changes are auto-applied; risky changes are confirmed before execution. Drawing on twelve classic engineering books. Triggers when: user…
brooks-test
Test quality review drawing on twelve classic engineering books — with primary focus on xUnit Test Patterns, The Art of Unit Testing, How Google Tests Software, and Working Effectively with Legacy Code — that diagnoses structural problems in an existing test suite: brittleness, mock abuse, coverage illusions, slow…
frontend-conventions
Frontend convention reference (SvelteKit / Svelte 5). Auto-injected into frontend-aware agents - not user-invocable.