From architecture-angular
Gera todos os elementos da camada Core de uma solução Angular com SignalR, RxJS e NgRx. Use sempre que o usuário mencionar "criar core Angular", "camada core", "core service", "core hub", "SignalR Angular", "interceptor Angular", "guard Angular", "resolver Angular", "http service Angular", "error handler Angular", "model Angular", "interface Angular", "criar estrutura core", "core module", "base service", "base hub". Também dispara quando o usuário pedir para criar qualquer um destes itens: CoreService, CoreHubService, HttpService, Interceptor, Guard, Resolver, ErrorHandler, Model ou Interface em contexto Angular. NÃO use para camadas de Feature ou Shared — apenas para a camada Core.
How this skill is triggered — by the user, by Claude, or both
Slash command
/architecture-angular:angular-core-layerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Skill para geração da **camada Core** de uma solução Angular seguindo Clean Architecture, com SignalR, RxJS e NgRx integrados.
Skill para geração da camada Core de uma solução Angular seguindo Clean Architecture, com SignalR, RxJS e NgRx integrados.
A camada Core contém tudo que é singleton e inicializado uma vez na aplicação. Todos os serviços são providos com providedIn: 'root' ou no CoreModule.
core/
├── services/ → Core Services (lógica de negócio singleton)
├── hubs/ → SignalR Hubs (tempo real)
├── http/ → HTTP Services (chamadas REST)
├── interceptors/ → Interceptors (auth, error, logging)
├── guards/ → Guards (proteção de rotas)
├── resolvers/ → Resolvers (pré-carregamento de dados)
├── models/ → Models e Interfaces (contratos TypeScript)
└── error-handler/ → Error Handler global
Antes de gerar, identifique qual item o usuário quer criar. Consulte o arquivo de referência correspondente:
| Item | Arquivo de referência | Quando usar |
|---|---|---|
| Core Service | references/core-service.md | Lógica de negócio, estado com BehaviorSubject |
| Core Hub (SignalR) | references/core-hub.md | Comunicação tempo real com .NET SignalR |
| HTTP Service | references/core-http.md | Chamadas REST com HttpClient + RxJS |
| Interceptor | references/core-interceptor.md | Auth token, error handling, logging |
| Guard / Resolver | references/core-guard-resolver.md | Proteção de rotas e pré-carregamento |
| Model / Interface | references/core-model.md | Contratos TypeScript, DTOs, enums |
| Error Handler | references/core-error-handler.md | Tratamento global de erros |
Pergunte ao usuário qual item da camada Core deseja criar, caso não esteja claro na solicitação.
Colete os dados necessários para o item:
User, Notification, Auth)Leia o arquivo de referência do item solicitado e gere o código TypeScript completo seguindo os padrões documentados.
Entregue:
.ts gerado com path correto (src/app/core/...)app.config.ts se necessáriokebab-case.tipo.ts (ex: auth.service.ts, notification.hub.ts)AuthService, NotificationHub)inject() (Angular 17+), não via constructorrxjs e rxjs/operators separadossignal() e computed() do @angular/core quando o estado for localtakeUntilDestroyed: sempre usar em subscriptions de componentesprovidedIn: 'root': padrão para todos os Core ServicesSignalR não conecta
Program.cswithUrl(url, { transport: HttpTransportType.WebSockets })Interceptor não intercepta
app.config.ts via withInterceptors([...])withInterceptorsFromDi()Guard retorna sempre false
AuthService está injetado corretamentelocalStorage ou sessionStoragenpx claudepluginhub brunocesharp/claude --plugin architecture-angularCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.