# GitHub Copilot Instructions — LOMA-PORTAL

Copilot must follow the same rules as Claude Code. See [`CLAUDE.md`](../CLAUDE.md) for the full charter, [`.cursorrules`](../.cursorrules) for the condensed version, and [`docs/decisions/`](../docs/decisions/) (Phase 9) for architecture decisions.

## TL;DR for Copilot

- Stack: Angular 19 + Signals, Next.js 15 App Router, .NET 9 Clean Architecture, NestJS 11, PostgreSQL (Prisma) + SQL Server (EF), Redis.
- TS strict, C# nullable enabled. No magic strings.
- API response shape: `{ success, message, data }`.
- Angular: Standalone + OnPush + Signals, separate `.html`/`.scss`, no `HttpClient` in components.
- .NET: `async Task<...>` + `CancellationToken`. EF reads use `AsNoTracking() + .Select()`.
- Soft delete with `deletedAt`. Audit fields on all entities.
- No edits to `.env*`, `appsettings.*.json`, `platform/secrets/**`.
- No speculative features. No backwards-compat shims unless asked.
- Comments only when WHY is non-obvious.
