rule-creator
Creates new rule files and library skills following project conventions, prefix-to-section mapping, and template standards.
SKILL.md
Full skill instructions
Rule Creator Agent
You create new Angular best practice rules and optional library skills following the exact project conventions.
Capabilities
1. Create a New Rule
When asked to create a rule:
- Determine the prefix from the rule filename (e.g.,
material-imports.md→ prefixmaterial) - Look up the section number in
packages/angular-best-practices-build/src/config.ts→sectionMap - Place the file in the correct
rules/subdirectory based on the prefix:test-*→rules/testing/a11y-*,ui-*,loading-*,dialogs-*,theming-*→rules/ui/http-*,mapper-*→rules/data/ts-*→rules/typescript/opt-*,bundle-*,async-*→rules/optimization/arch-*→rules/core/- Everything else (signals, components, forms, rxjs, ngrx, material, primeng, spartan, transloco, etc.) →
rules/angular/
- Copy the template from
rules/_template.md - Fill in the frontmatter and content following these rules:
- Title: Verb + Subject (e.g., "Use Signal Inputs")
- Description: 1 sentence max
- Code blocks: 0-2 max (incorrect + correct, or just correct)
- Code per block: 3-5 lines max
- Total length: Under 50 lines (ideal 30-40)
- No installation commands, configuration dumps, or folder structures
- Validate with the
rules-reviewerskill
2. Create a New Library Skill
When asked to create a new optional library skill:
- Choose the next available section number (check
SECTION_TITLESin config.ts) - Update
packages/angular-best-practices-build/src/config.ts:- Add prefix → section number in
sectionMap - Add section title in
SECTION_TITLES - Add section impact in
SECTION_IMPACTS - Add entry in
OPTIONAL_SKILLSarray
- Add prefix → section number in
- Add section definition in
rules/_sections.md - Create
skills/<skill-name>/SKILL.mdwith frontmatter (name, description, metadata, tags, globs) - Create initial rule files in
rules/angular/with the skill's prefix - Run
npm run buildto generate AGENTS.md files
Prefix → Section Mapping (Current)
| Prefix | Section | Title |
|---|---|---|
async, opt-async | 1 | Eliminating Waterfalls |
bundle | 2 | Bundle Optimization |
opt, performance | 3 | JavaScript Performance |
ts | 4 | TypeScript Best Practices |
signal | 5 | Signals & Reactivity |
component | 6 | Component Patterns |
rxjs | 7 | RxJS Patterns |
cd | 8 | Change Detection |
template | 9 | Template Optimization |
ssr | 10 | SSR & Hydration |
form | 11 | Forms |
ngrx | 12 | NgRx State Management |
signalstore | 13 | SignalStore |
tanstack | 14 | TanStack Query |
arch | 15 | Architecture |
test | 16 | Testing |
core, di, error-handling, observability, pattern, routing, security | 17 | Infrastructure |
ui, a11y, loading, dialogs, theming | 18 | UI & Accessibility |
http, mapper | 19 | Data Handling |
material | 20 | Angular Material |
primeng | 21 | PrimeNG |
spartan | 22 | Spartan UI |
transloco | 23 | Internationalization |
File Placement
| Subdirectory | Prefixes |
|---|---|
rules/angular/ | signal, component, rxjs, cd, template, ssr, form, ngrx, signalstore, tanstack, material, primeng, spartan, transloco |
rules/testing/ | test |
rules/ui/ | ui, a11y, loading, dialogs, theming |
rules/typescript/ | ts |
rules/optimization/ | opt, bundle, async, performance |
rules/core/ | arch, core, di, error-handling, observability, pattern, routing, security |
rules/data/ | http, mapper |
Template Reference
---
title: Verb + Subject
impact: MEDIUM
impactDescription: Brief metric (e.g., "2-10x faster", "O(n) to O(1)")
tags: tag1, tag2
---
## Verb + Subject
One sentence explaining the rule.
**Incorrect:**
\`\`\`typescript
// 3-5 lines max
\`\`\`
**Correct:**
\`\`\`typescript
// 3-5 lines max
\`\`\`
Build Commands
npm run build # Regenerate all AGENTS.md files
npm run build:skip-validation # Skip validation during development
