npx skills add ...
npx skills add somnio-software/somnio-ai-tools --skill nestjs-best-practices
Execute a micro-level NestJS code quality audit. Validates code against live GitHub standards for testing, architecture, DTO validation, error handling, and code implementation. Produces a detailed violations report with prioritized action plan. Use when the user asks to check NestJS code quality, validate best practices, or review backend code standards. Triggers on: 'nestjs best practices', 'backend code quality', 'code review', 'nestjs standards', 'dto validation', 'error handling review'.
npx skills add somnio-software/somnio-ai-tools --skill nestjs-best-practices
This plan executes a deep-dive analysis of the NestJS codebase focusing on Micro-Level Code Quality and adherence to specific architectural, testing, and coding standards.
Role: NestJS Micro-Code Quality Auditor
You are a master at:
agent-rules/rules/ (local if in the repo, else live from GitHub raw)
(testing-unit.md, testing-integration.md,
module-structure.md, service-patterns.md,
repository-patterns.md, dto-validation.md,
error-handling.md, typescript.md)Responsibilities:
Expected Behavior:
agent-rules/rules/nestjs/ (local if in the repo, else live from GitHub raw)
(testing-unit.md, testing-integration.md,
module-structure.md, service-patterns.md,
repository-patterns.md, dto-validation.md,
error-handling.md, typescript.md)Critical Rules:
agent-rules/rules/nestjs/ if present in the repo, otherwise WebFetch them
from the GitHub raw URL (https://raw.githubusercontent.com/somnio-software/somnio-ai-tools/main/agent-rules/rules/nestjs/)Goal: Evaluate conformance to nestjs-testing-unit.mdc and
nestjs-testing-integration.mdc.
Rule: Read and follow the instructions in references/testing-quality.md
Focus Areas:
Goal: Evaluate conformance to nestjs-module-structure.mdc,
nestjs-service-patterns.mdc, and nestjs-repository-patterns.mdc.
Rule: Read and follow the instructions in references/architecture-compliance.md
Focus Areas:
Goal: Evaluate conformance to nestjs-typescript.mdc.
Rule: Read and follow the instructions in references/code-standards.md
Focus Areas:
Goal: Evaluate conformance to nestjs-dto-validation.mdc.
Rule: Read and follow the instructions in references/dto-validation.md
Focus Areas:
Goal: Evaluate conformance to nestjs-error-handling.mdc.
Rule: Read and follow the instructions in references/error-handling.md
Focus Areas:
Goal: Aggregate all findings into a final Markdown report using the template. Rules:
references/best-practices-format-enforcer.mdreferences/best-practices-generator.md
Output: Final report following the template at
assets/report-template.mdRule Execution Order:
references/testing-quality.md {model: mid}references/architecture-compliance.md {model: mid}references/code-standards.md {model: mid}references/dto-validation.md {model: cheap}references/error-handling.md {model: cheap}references/best-practices-generator.md {model: frontier}This section describes the in-session path for Claude Code and compatible agents. The Rule Execution Order above remains the CLI path (somnio run). Both paths produce the same report; the subagent path uses tiered parallel dispatch for lower inference cost.
Entry point: agents/orchestrator.md (model: mid)
The orchestrator dispatches subagents in dependency-ordered waves. Within each wave, all agents run in parallel via the Agent tool.
| Wave | Agents (parallel) | Tier |
|---|---|---|
| Wave 1 | testing-quality-analyzer, architecture-compliance-analyzer, code-standards-analyzer | mid |
| Wave 2 | dto-validation-scanner, error-handling-scanner | cheap |
| Wave 3 | report-writer | frontier |
| Agent File | Tier | Reference Covered | Artifact |
|---|---|---|---|
agents/orchestrator.md | mid | — (routing only) | — |
agents/testing-quality-analyzer.md | mid | references/testing-quality.md | reports/.artifacts/nestjs-best-practices/step_01_testing_quality.md |
agents/architecture-compliance-analyzer.md | mid | references/architecture-compliance.md | reports/.artifacts/nestjs-best-practices/step_02_architecture_compliance.md |
agents/code-standards-analyzer.md | mid | references/code-standards.md | reports/.artifacts/nestjs-best-practices/step_03_code_standards.md |
agents/dto-validation-scanner.md | cheap | references/dto-validation.md | reports/.artifacts/nestjs-best-practices/step_04_dto_validation.md |
agents/error-handling-scanner.md | cheap | references/error-handling.md | reports/.artifacts/nestjs-best-practices/step_05_error_handling.md |
agents/report-writer.md | frontier | references/best-practices-format-enforcer.md + references/best-practices-generator.md | reports/<YYYY-MM-DD>-<project>-nestjs-best-practices.md |
The orchestrator validates each expected artifact before advancing to the next wave. On a missing artifact it retries once, then logs and skips dependent sections. The report-writer is the only agent that writes the final user-facing report.
All standards are sourced from:
agent-rules/rules/nestjs/ (somnio-ai-tools repo locally, or GitHub raw if installed standalone)
| Standard File | Purpose |
|---|---|
dto-validation.md | DTO structure, class-validator, Swagger |
service-patterns.md | Service layer patterns, transactions |
controller-patterns.md | Controller decorators, guards |
repository-patterns.md | Repository pattern, soft deletes |
testing-unit.md | Unit test patterns, mocking |
testing-integration.md | Integration tests, database setup |
error-handling.md | Exception filters, error enums |
module-structure.md | Module organization, imports/exports |
typescript.md | TypeScript standards, naming conventions |
The report file name is always:
<YYYY-MM-DD> — the date of this run.<project> — the git repository name slugified to kebab-case: lowercase,
with spaces, _, . and / turned into -, every other character dropped,
and repeated - collapsed. The name comes from the origin remote URL, so
it is the same whatever the checkout directory, worktree or subdirectory is
called; without a remote it is the main checkout's directory name, and
outside a git repo the current directory name.Derive it once, before writing anything:
Everywhere this skill writes reports/<YYYY-MM-DD>-<project>-nestjs-best-practices.md, it
means that resolved path.
When run through somnio run, the CLI computes the full report path and
passes it in the prompt. Use the path it gives you verbatim — do not recompute
it, or the runner will not find the report and the step will fail.
Every generated report MUST include a metadata block at the very end. This is non-negotiable — never omit it.
Copy the Report Metadata table from the template as the last block of the report. Keep the Generated by row exactly as written in the template — never change, guess or omit the version. Fill the remaining rows as described.
Include this block at the very end of the report:
## Report Metadata
| Field | Value |
|-------|-------|
| Generated by | Somnio CLI v3.2.8 |
| Skill | nestjs-best-practices |
| Date | [YYYY-MM-DD] |
| Somnio AI Tools | https://github.com/somnio-software/somnio-ai-tools |