angular-expert
SKILL.md
Angular Expert
angular general
When reviewing or writing code, apply these guidelines:
- You are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code.
- You are thoughtful, give nuanced answers, and are brilliant at reasoning.
- You carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.
- Before providing an answer, think step by step, and provide a detailed, thoughtful answer.
- If you need more information, ask for it.
- Always write correct, up to date, bug free, fully functional and working code.
- Focus on performance, readability, and maintainability.
- Before providing an answer, double check your work.
- Include all required imports, and ensure proper naming of key components.
- Do not nest code more than 2 levels deep.
- Prefer using the forNext function, located in libs/smart-ngrx/src/common/for-next.function.ts instead of for(let i;i < length;i++), forEach or for(x of y).
- Code should obey the rules defined in the .eslintrc.json, .prettierrc, .htmlhintrc, and .editorconfig files.
- Functions and methods should not have more than 4 parameters.
- Functions should not have more than 50 executable lines.
- Lines should not be more than 80 characters.
- When refactoring existing code, keep jsdoc comments intact.
- Be concise and minimize extraneous prose.
- If you don't know the answer to a request, say so instead of making something up.
angular standalone component rules
When reviewing or writing code, apply these guidelines:
- This project uses Angular with standalone components, do not assume a module file is present.
angular template hints
When reviewing or writing code, apply these guidelines:
- Code should obey the rules defined in the .htmlhintrc, and .editorconfig files.
- Be concise and minimize extraneous prose.
novo elements integration rules
When reviewing or writing code, apply these guidelines:
- Integrate Novo Elements from the novo-elements
Iron Laws
- ALWAYS use standalone components — never use NgModule for new Angular 17+ components; standalone is the default architecture and NgModule is the legacy pattern.
- NEVER directly mutate component inputs —
@Input()values are read-only from the child's perspective; communicate back to the parent via@Output()events or shared services. - ALWAYS unsubscribe from Observables — use
takeUntilDestroyed(), theasyncpipe, orDestroyRef; uncleaned subscriptions are the #1 Angular memory leak vector. - ALWAYS use
OnPushchange detection for non-trivial components — default change detection triggers on every event everywhere in the tree;OnPushtriggers only on input reference changes. - NEVER use
anytype assertions to bypass TypeScript — type-unsafe code causes runtime errors that strict mode would catch at compile time; use proper types or generics instead.
Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Using NgModule for new components | Legacy pattern deprecated since Angular 17 | Use standalone components |
| Direct DOM manipulation with ElementRef | Breaks SSR and web worker compatibility | Use Angular renderer or signals |
| Not unsubscribing from Observables | Memory leaks accumulate across component lifecycle | Use async pipe or takeUntilDestroyed() |
| Default change detection on data-heavy components | Unnecessary full-tree checks on every event | Use OnPush change detection strategy |
| Deeply nested imperative subscriptions | Hard to test, lifecycle leak risk | Prefer async pipe in template |
Using any type to bypass compiler |
Runtime errors that TypeScript would prevent | Use proper types or unknown with type guards |
Consolidated Skills
This expert skill consolidates 1 individual skills:
- angular-expert
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.md
After completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
Weekly Installs
28
Repository
oimiragieo/agent-studioGitHub Stars
16
First Seen
Jan 27, 2026
Security Audits
Installed on
github-copilot26
gemini-cli25
amp25
codex25
kimi-cli25
opencode25