npx skills add ...
npx skills add amirtaherkhani/nestjs-skills --skill nestjs-professional-software-engineering
Designs, implements, refactors, debugs, reviews, and verifies production-quality NestJS and TypeScript software. Use for NestJS feature development, bug fixes, APIs, libraries, testing, maintainability, developer experience, idiomatic syntax, or syntactic sugar. It inspects the current project and official version-appropriate documentation before selecting syntax, preserves public behavior, and tests the result. When other skills also apply, reconcile ownership before mutation.
npx skills add amirtaherkhani/nestjs-skills --skill nestjs-professional-software-engineering
Produce correct, idiomatic, secure, readable, maintainable, testable, and extensible NestJS software while respecting the existing project.
Before editing files or running any state-changing command, reconcile active instructions. Read-only inspection may continue.
Inspect repository instructions, working tree, manifests, installed versions, source/callers, contracts, conventions, and checks. Preserve unrelated changes. Verify uncertain or version-sensitive syntax against installed types/source and official documentation; never invent an API. Read other active skills only when their decisions overlap.
This skill owns project inspection, minimal implementation, version-compatible syntax, API ergonomics, testing, and verification. When installed and relevant, coordinate with:
nestjs-architecture-principles: module, dependency, data, and transaction boundaries.nestjs-oop-design-patterns: object responsibilities, invariants, and patterns.nestjs-features-performance: lifecycle, API/security, testing, runtime, and performance.nestjs-code-audit: read-only quality evidence and deduplicated reporting.nestjs-feature-audit: branch-specific roadmap gate and feature reporting.nestjs-git-commit-pr-message: authorized Git publication and CI follow-up.These are decision boundaries, not required dependencies. Retain domain ownership when handing work to another workflow.
Check for incompatible edits/contracts, command order or side effects, competing owners, and unmet version, evidence, authorization, or repository prerequisites. Resolve using explicit user intent, repository contracts, verified runtime constraints, then the narrowest owner. Assign one lead per decision; do not create parallel designs to satisfy incompatible advice. If a material conflict remains, stop before mutation and ask for the smallest missing decision. Audits stay read-only; explicit fix authorization applies in a distinct implementation phase.
Before scaffolding or introducing a new boundary, record the project profile. Follow healthy local conventions and verify the installed generator/version contract.
For implementation requests, complete the workflow through mutation and verification. For review or diagnosis requests, inspect and report evidence without modifying files unless the user also authorizes implementation.
Do not begin with a broad rewrite. Establish current behavior before changing it.
Define:
Ask only when a missing decision materially affects architecture, public behavior, security, data, cost, or compatibility.
Use this evidence order:
Compare at least the direct, explicit form with any convenient syntax. Prefer modern idioms when they are supported, familiar in the project, and clearer at the call site and implementation site.
Load syntax-and-idioms.md when selecting language or framework syntax.
The design must be:
For public APIs, make common operations obvious and invalid usage difficult. Prefer progressive disclosure: a convenient path for common cases and a lower-level path only when callers need meaningful control.
Load syntactic-sugar.md for the decision test and API examples.
Add or update deterministic tests for observable behavior, relevant edge cases, invalid input, failure paths, security-sensitive behavior, regressions, and public compatibility.
Run the checks appropriate to the change:
Do not weaken tests or controls to obtain a pass. Do not claim a check passed unless it ran successfully.
Load implementation-verification.md for risk-based verification.
Lead with the completed outcome, then state:
Keep the report concise and distinguish verified facts from assumptions or unrun checks.
Use syntactic sugar only when it:
Reject sugar that merely shortens code, creates a private mini-language, overloads ambiguous inputs, relies on surprising coercion, or makes stack traces and errors harder to understand.
For implementation work, report the delivered behavior and verification. When syntax choice is central, also state:
Do not return only a proposed snippet when the user requested implementation.
| Task | Load |
|---|---|
| Choose idiomatic, version-compatible syntax | syntax-and-idioms.md |
| Design or review syntactic sugar and public API ergonomics | syntactic-sugar.md |
| Scope implementation and select verification depth | implementation-verification.md |