Source: https://reporules.fyi/nestjs/

# NestJS: Perch rule pack

2 saved requirements for NestJS. Inspect the selectors and adapt the example paths to your repository.

```
- name: unknown-mutation-fields-rejected
  where: "src/main.ts"
  ensure: >-
    The global ValidationPipe must enable both whitelist and forbidNonWhitelisted to reject unknown mutation fields instead of silently accepting or stripping them.

- name: outbox-transaction-manager
  where: "src/confirm-order.ts"
  ensure: >-
    The Order and OutboxEvent writes both use the transaction callback parameter named manager. In particular, OutboxEvent is saved with manager.save(OutboxEvent, ...). Saving it with db.manager.save uses the global manager and violates the shared transaction requirement.
```

[Download the rule pack ZIP](https://reporules.fyi/nestjs/rule-pack.zip) · [Download YAML](https://reporules.fyi/nestjs/rules.yaml) · [Agent repair task](https://reporules.fyi/nestjs/agent-task.txt) · [Implementation, integration requirements and captured checks](https://frameworkrecipes.dev/nestjs/)

## Install the rule without replacing your configuration

```
npm install -g @lakeday/perch
perch login
curl -fL 'https://reporules.fyi/nestjs/rule-pack.zip' -o 'perch-guide-nestjs.zip'
unzip -n 'perch-guide-nestjs.zip'
```

Keep your existing perch.yaml. Extraction preserves existing files and adds .perch/rules/perch-guide-nestjs.yaml. Review each where selector before running a check on your application.

## Configure your coding agent

```
perch setup claude-code
perch setup codex
perch setup cursor
perch setup pi
```

Choose the setup command for the agent you use.

## Check the edit, fix the finding, check again

```
perch check src/main.ts --rules unknown-mutation-fields-rejected --json
perch check src/confirm-order.ts --rules outbox-transaction-manager --json
```

Run the check after an agent edit. Read the finding and affected code, repair the implementation, and repeat the identical command. Keep the application regression tests as separate gates.

Exit 3 means a finding. Exit 1 or 2 means the check did not complete. A pass does not prove application correctness. Fresh judgments can vary; unchanged requests reuse cached answers. Relevant source is sent to the configured model service.

[Pack manifest and SHA-256 hash](https://reporules.fyi/nestjs/rule-pack.json) · [Pack README](https://reporules.fyi/nestjs/rule-pack-readme.md)

**Repo Rules**

Requirements that stay in the repo.

Published by Perch · © 2026 Verglas LLC. Repo Rules is a Perch publication.

Perch’s MIT license covers the CLI; hosted model analysis is a paid service. Relevant source is sent to the configured model service.

[Perch CLI MIT license](https://github.com/lakeday-org/perch/blob/main/LICENSE) · [Article text](https://reporules.fyi/nestjs/index.md) · [Resource index](https://reporules.fyi/llms.txt)
