Performance optimization guidelines and coding standards for Angular applications, designed for AI agents and LLMs.
npx skills add https://github.com/develite98/angular-best-practices --skill angular-best-practices-v20CLI を使用してこのスキルをインストールし、ワークスペースで SKILL.md ワークフローの使用を開始します。
Performance optimization guidelines and coding standards for Angular applications, designed for AI agents and LLMs.
Install a skill into your Angular project:
npx skills add develite98/angular-best-practices
Select the skill that matches your needs:
| Skill | Description | Rules |
|---|---|---|
angular-best-practices-v20 |
Performance optimization for Angular 20+ (Signals, httpResource, @defer, @for/@if) | 35+ rules, 8 categories |
angular-best-practices-legacy |
Performance optimization for Angular 12-16 (NgModules, RxJS, *ngFor/*ngIf) | 19+ rules, 8 categories |
angular-css-bem-best-practices |
BEM CSS methodology for Angular (component-scoped blocks, flat selectors, proper decomposition) | 6 rules |
the-art-of-naming |
Naming conventions for TypeScript & Angular (casing, S-I-D, prefixes, P/HC/LC, A/HC/LC patterns) | 7 rules |
20+ rules across 8 categories:
| Priority | Category | Impact |
|---|---|---|
| 1 | Change Detection | CRITICAL |
| 2 | Bundle & Lazy Loading | CRITICAL |
| 3 | RxJS Optimization | HIGH |
| 4 | Template Performance | HIGH |
| 5 | Dependency Injection | MEDIUM-HIGH |
| 6 | HTTP & Caching | MEDIUM |
| 7 | Forms Optimization | MEDIUM |
| 8 | General Performance | LOW-MEDIUM |
6 rules for applying BEM methodology in Angular:
| Priority | Rule | Impact |
|---|---|---|
| 1 | Block = Component Selector | CRITICAL |
| 2 | Max 2 Levels of Nesting | CRITICAL |
| 3 | Split Child Components | CRITICAL |
| 4 | Element Naming Conventions | HIGH |
| 5 | Modifier Patterns | HIGH |
| 6 | No Cascading Selectors | HIGH |
7 rules for consistent, self-documenting names:
| Priority | Rule | Impact |
|---|---|---|
| 1 | Casing Convention (camelCase, PascalCase, UPPER_CASE) | CRITICAL |
| 2 | S-I-D + No Contractions | CRITICAL |
| 3 | Prefix Conventions (I, _, T) | HIGH |
| 4 | Boolean Naming (is/has/should) | HIGH |
| 5 | Context Duplication | HIGH |
| 6 | Function Pattern (A/HC/LC) | HIGH |
| 7 | Variable Pattern (P/HC/LC) | MEDIUM |
angular-best-practices/
├── skills/ # Published skills
│ ├── angular-best-practices-v20+/
│ │ ├── SKILL.md # Skill metadata (for skills CLI)
│ │ ├── AGENTS.md # Compiled rules (AI reads this)
│ │ ├── metadata.json # Build metadata
│ │ └── rules/ # Version-specific rules
│ │ ├── change-signals.md
│ │ ├── bundle-defer.md
│ │ └── http-resource.md
│ │
│ ├── angular-best-practices-legacy/
│ │ ├── SKILL.md
│ │ ├── AGENTS.md
│ │ ├── metadata.json
│ │ └── rules/
│ │ ├── change-rxjs-state.md
│ │ ├── bundle-ngmodule.md
│ │ └── bundle-scam.md
│ │
│ ├── angular-css-bem-best-practices/
│ │ ├── SKILL.md
│ │ ├── AGENTS.md
│ │ ├── metadata.json
│ │ └── rules/
│ │ ├── bem-block-selector.md
│ │ ├── bem-max-nesting.md
│ │ └── bem-split-components.md
│ │
│ └── the-art-of-naming/
│ ├── SKILL.md
│ ├── AGENTS.md
│ ├── metadata.json
│ └── rules/
│ ├── naming-casing-convention.md
│ ├── naming-sid.md
│ └── naming-function-pattern.md
│
├── shared/ # Shared source (not published)
│ └── rules/ # Rules common to all versions
│ ├── _sections.md # Section definitions
│ ├── template-trackby.md
│ ├── rxjs-async-pipe.md
│ └── di-provided-in-root.md
│
├── build/ # Build tooling
│ └── src/
│ ├── build.ts # Compiles rules → AGENTS.md
│ ├── validate.ts # Validates rule format
│ └── extract-tests.ts # Extracts test cases
│
└── package.json
┌─────────────────┐ ┌──────────────────────┐
│ shared/rules/ │ │ skills/v20+/rules/ │
│ (common rules) │ │ (v20+ specific) │
└────────┬────────┘ └──────────┬───────────┘
│ │
└───────────┬─────────────┘
↓
pnpm run build
↓
┌───────────────────────┐
│ skills/v20+/AGENTS.md │
│ (merged & compiled) │
└───────────────────────┘
↓
AI Agent reads
Key points:
shared/rules/ contains rules that work for ALL Angular versionsskills/*/rules/ contains version-specific rulesAGENTS.mdAGENTS.md (the compiled output)pnpm install
Compile all skills:
pnpm run build
Build specific version:
pnpm run build-agents -- v20+
pnpm run build-agents -- legacy
Check rule format and structure:
pnpm run validate
pnpm run dev # build + validate
Create a new .md file in the appropriate directory:
shared/rules/ - For rules that apply to ALL versionsskills/angular-best-practices-v20+/rules/ - For v20+ onlyskills/angular-best-practices-legacy/rules/ - For legacy only# Rule Title
**Impact:** CRITICAL | HIGH | MEDIUM | LOW
Brief explanation of why this rule matters.
## Bad
\`\`\`typescript
// Incorrect implementation
\`\`\`
Why this is problematic.
## Good
\`\`\`typescript
// Correct implementation
\`\`\`
Why this is better.
## References
- https://angular.dev/guide/...
Use the category prefix:
| Category | Prefix | Example |
|---|---|---|
| Change Detection | change- |
change-signals.md |
| Bundle & Lazy Loading | bundle- |
bundle-defer.md |
| RxJS Optimization | rxjs- |
rxjs-async-pipe.md |
| Template Performance | template- |
template-trackby.md |
| Dependency Injection | di- |
di-provided-in-root.md |
| HTTP & Caching | http- |
http-resource.md |
| Forms Optimization | forms- |
forms-reactive.md |
| General Performance | ssr- / perf- |
ssr-hydration.md |
| BEM CSS | bem- |
bem-block-selector.md |
| Naming | naming- |
naming-sid.md |
pnpm run dev
MIT