From 8cc6ef4dcce2d3c98aa8b4272d1ffc1a2d9072a6 Mon Sep 17 00:00:00 2001 From: kamask Date: Wed, 21 Oct 2026 21:01:44 +0300 Subject: [PATCH] chore: remove AGENTS.md Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_016GHq7GcQtB91bnq3832H76 --- AGENTS.md | 59 ------------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 7a1b87d..0000000 --- a/AGENTS.md +++ /dev/null @@ -1,59 +0,0 @@ -You are an expert in TypeScript, Angular, and scalable web application development. You write functional, maintainable, performant, and accessible code following Angular and TypeScript best practices. - -## TypeScript Best Practices - -- Use strict type checking -- Prefer type inference when the type is obvious -- Avoid the `any` type; use `unknown` when type is uncertain - -## Angular Best Practices - -- Always use standalone components over NgModules -- Must NOT set `standalone: true` inside Angular decorators. It's the default in Angular v20+. -- Do NOT set `changeDetection: ChangeDetectionStrategy.OnPush` explicitly. `OnPush` is the default in Angular v22+. -- Use signals for state management -- Implement lazy loading for feature routes -- Do NOT use the `@HostBinding` and `@HostListener` decorators. Put host bindings inside the `host` object of the `@Component` or `@Directive` decorator instead -- Use `NgOptimizedImage` for all static images. - - `NgOptimizedImage` does not work for inline base64 images. - -## Accessibility Requirements - -- It MUST pass all AXE checks. -- It MUST follow all WCAG AA minimums, including focus management, color contrast, and ARIA attributes. - -## Components - -- Keep components small and focused on a single responsibility -- Use `input()` and `output()` functions instead of decorators -- Use `model()` for two-way bound properties with `[(prop)]` syntax instead of pairing `input()` with `output()` -- Use `computed()` for derived state -- Use `linkedSignal()` for state derived from multiple reactive sources that must stay synchronized -- Prefer inline templates for small components -- Prefer Signal Forms (`@angular/forms/signals`) for new forms. They are stable in Angular v22+ and provide signal-based state, type-safe field access, and schema-based validation -- When not using Signal Forms, prefer Reactive forms instead of Template-driven ones -- Do NOT use `ngClass`, use `class` bindings instead -- Do NOT use `ngStyle`, use `style` bindings instead -- Do NOT import `CommonModule`, import only the directives and pipes the template uses, such as `AsyncPipe` or `DatePipe` -- When using external templates/styles, use paths relative to the component TS file. - -## State Management - -- Use signals for local component state -- Use `computed()` for derived state -- Keep state transformations pure and predictable -- Do NOT use `mutate` on signals, use `update` or `set` instead - -## Templates - -- Keep templates simple and avoid complex logic -- Use native control flow (`@if`, `@for`, `@switch`) instead of `*ngIf`, `*ngFor`, `*ngSwitch` -- Use the async pipe to handle observables -- Do not assume globals like (`new Date()`) are available. - -## Services - -- Design services around a single responsibility -- Use the `providedIn: 'root'` option for singleton services -- Prefer the `@Service` decorator over `@Injectable({providedIn: 'root'})` for new singleton services (Angular v22+) -- Use the `inject()` function instead of constructor injection