Frontend Analysis Skill — Angular/TypeScript
Skill para análise e implementação de código frontend de alta qualidade com Angular 17+ e TypeScript 5+.
Quando Usar
- •Criar, ajustar ou refatorar componentes, serviços, diretivas e pipes Angular.
- •Implementar telas a partir de especificações (Figma ou textuais).
- •Resolver bugs de frontend (layout, estados, interações, change detection).
- •Refatorar código existente para melhor qualidade, performance ou patterns modernos.
- •Implementar state management (Signals, NgRx, services reativos).
- •Criar ou ajustar formulários reativos e validadores.
Checklist de Implementação
Antes de Codar
- •Verificar se existem componentes e serviços reutilizáveis no projeto.
- •Consultar design system / tokens de design existentes.
- •Entender a estrutura de pastas e convenções de nomenclatura.
- •Identificar dependências (libs, módulos shared, services, DI tokens).
- •Aplicar Decision Trees (DT-1 a DT-6 do agent) para cada unidade.
Durante a Implementação
- •Componentização: Smart (container) vs Presentational (dumb), standalone.
- •Tipagem: interfaces TypeScript strict, zero
any, generics quando aplicável. - •Change Detection:
OnPushem todos os componentes (documentar exceções). - •Signals/RxJS: signal() para local state, Observable para async streams.
- •DI: services
providedIn: 'root', inject() function, InjectionTokens. - •Estados: loading, erro, vazio, sucesso — todos tratados (
@if/@else,@defer). - •Acessibilidade: semântica HTML, ARIA, CDK a11y, keyboard nav, contraste.
- •Responsividade: mobile-first, breakpoints do design system.
- •Performance: OnPush, track em @for, @defer, computed() vs getters, pipes puros.
- •Subscriptions: takeUntilDestroyed/async pipe/toSignal — NUNCA subscription sem cleanup.
Após Codar
- •Revisar código contra padrões do projeto e Production Checklist.
- •Sugerir testes (unitários com TestBed, marble testing para RxJS, fixtures).
- •Documentar decisões não óbvias (TSDoc para APIs públicas).
- •Verificar que não há
any, subscriptions sem cleanup, ou OnPush faltante.
Padrões de Código
Componentes Angular
- •Standalone components (padrão em Angular 17+).
- •Nomear com PascalCase, seletor com prefixo
app-(kebab-case). - •
ChangeDetectionStrategy.OnPushcomo padrão. - •
input()/output()signal-based (Angular 17+) sobre@Input/@Output. - •Novo control flow:
@if,@for,@switch,@defersobre diretivas estruturais. - •Exportar interfaces/types junto ao componente ou em arquivo
.models.ts.
Services
- •
@Injectable({ providedIn: 'root' })para singletons. - •Feature-scoped services via
providers: []do componente ou rota. - •Signals para estado reativo (
signal(),computed()). - •Observables com sufixo
$para streams assíncronos. - •HttpInterceptorFn para cross-cutting concerns.
Formulários
- •Reactive Forms (
FormGroup/FormControl/FormArray) como padrão. - •
NonNullableFormBuilderpara type safety. - •
ControlValueAccessorpara custom form controls reutilizáveis. - •Async validators com debounce para server-side validation.
Estilos
- •Seguir a abordagem do projeto (SCSS, Tailwind, Angular Material, etc.).
- •Usar tokens de design system quando disponíveis.
- •Evitar valores hardcoded — preferir variáveis CSS / design tokens.
- •
ViewEncapsulation.Emulated(padrão) — usarNoneapenas quando justificado.
Estrutura de Arquivos
- •Seguir a estrutura já existente no projeto.
- •Co-localizar testes (
.spec.ts), modelos (.models.ts) e estilos junto ao componente. - •Feature modules / standalone routes com lazy loading.
- •Barrel exports (
index.ts) para módulos compartilhados.