skills/angular-19/SKILL.md
# Angular 19 Code Review Skill ## Overview This skill provides code review guidelines for Angular 19 applications, focusing on modern patterns including signals, standalone components, and the new control flow syntax. ## Key Review Areas ### 1. Signal-Based Reactivity **Check for proper signal usage:** - Use `signal()` for reactive state instead of BehaviorSubject where appropriate - Use `computed()` for derived values - Use `effect()` sparingly and only for side effects - Prefer `input()`
npx skillsauth add danieldeusing/reviewr-templates skills/angular-19Install this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides code review guidelines for Angular 19 applications, focusing on modern patterns including signals, standalone components, and the new control flow syntax.
Check for proper signal usage:
signal() for reactive state instead of BehaviorSubject where appropriatecomputed() for derived valueseffect() sparingly and only for side effectsinput() and output() signal-based component APIs// Good: Signal-based state
private count = signal(0);
private doubled = computed(() => this.count() * 2);
// Avoid: BehaviorSubject for simple state
private count$ = new BehaviorSubject(0);
Verify standalone component best practices:
standalone: true)// Good: Standalone component
@Component({
selector: 'app-example',
standalone: true,
imports: [CommonModule, RouterModule],
template: `...`
})
export class ExampleComponent {}
Ensure usage of new template syntax:
@if instead of *ngIf@for instead of *ngFor with required track expression@switch instead of *ngSwitch@defer for lazy loading content<!-- Good: New control flow -->
@if (isLoading()) {
<app-spinner />
} @else {
@for (item of items(); track item.id) {
<app-item [data]="item" />
}
}
<!-- Avoid: Legacy structural directives -->
<app-spinner *ngIf="isLoading$ | async"></app-spinner>
Review DI patterns:
inject() function instead of constructor injectionprovidedIn: 'root' for singleton services// Good: inject() function
export class MyComponent {
private readonly http = inject(HttpClient);
private readonly route = inject(ActivatedRoute);
}
// Good: Functional guard
export const authGuard: CanActivateFn = () => {
const auth = inject(AuthService);
return auth.isAuthenticated();
};
Check HTTP client usage:
HttpClient with proper error handlingtoSignal() for converting observables to signalstakeUntilDestroyed() for subscription management// Good: Observable to signal conversion
private users = toSignal(this.http.get<User[]>('/api/users'), {
initialValue: []
});
// Good: Automatic cleanup
ngOnInit() {
this.data$.pipe(
takeUntilDestroyed(this.destroyRef)
).subscribe(data => this.processData(data));
}
Review for performance issues:
OnPush change detection strategytrackBy (or track in new syntax) is used in loops@defer for lazy loadingVerify testing practices:
.spec.ts filesTestBed.configureTestingModule with standalone component importssignal() in tests@for loopsdevelopment
# React 18 Code Review Skill ## Overview This skill provides code review guidelines for React 18 applications, focusing on hooks, concurrent features, Suspense, and modern patterns. ## Key Review Areas ### 1. Hooks Best Practices **Check for proper hook usage:** - Follow the Rules of Hooks (only call at top level, only in React functions) - Use appropriate hooks for the use case - Ensure custom hooks start with `use` prefix - Check dependency arrays for completeness and correctness ```type
development
# FastAPI Code Review Skill ## Overview This skill provides code review guidelines for FastAPI applications, focusing on async patterns, Pydantic v2 models, dependency injection, and API best practices. ## Key Review Areas ### 1. Pydantic Models **Check for proper model usage:** - Use Pydantic v2 syntax and features - Define proper validation rules - Use appropriate field types - Separate request/response models when needed ```python # Good: Pydantic v2 model with validation from pydantic
development
# Django 5 Code Review Skill ## Overview This skill provides code review guidelines for Django 5 applications, focusing on async views, Django REST Framework, security best practices, and modern patterns. ## Key Review Areas ### 1. Async Views and ORM **Check for proper async usage:** - Use async views for I/O-bound operations - Use `sync_to_async` for ORM operations in async views - Consider `aiterator()` for large querysets - Be aware of connection pool exhaustion ```python # Good: Async
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.