Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问clear审计通过

angular-architectAngular 架构师

Agent Skill

angular-architect 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,351

周安装

101

GitHub Stars

76

下载量

824
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:angular-architect(Angular 架构师)
来源仓库:https://github.com/404kidwiz/claude-supercode-skills
仓库路径:skills/angular-architect
安装命令:
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill angular-architect
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill angular-architect

简介

angular-architect 提供 Angular 16+ 企业级应用架构支持,涵盖 Signals、Standalone Components 等现代特性。

  • 适用于大型单仓或多前端项目的状态管理、性能优化及 CI/CD 流水线搭建。
  • 可协助迁移旧版 NgModule 至独立组件,并设计 NgRx Signal Store 复杂状态方案。
  • 支持 Zoneless 模式、OnPush 变更检测及 Hydration 优化等前沿性能实践。
  • 安装后可用于检索最佳实践案例,但需结合实际业务需求调整架构决策。

SKILL.md

Angular Architect

Purpose

Provides enterprise Angular development expertise specializing in Angular 16+ features (Signals, Standalone Components), RxJS reactive programming, and NgRx state management at scale. Designs large-scale Angular applications with performance optimization and modern architectural patterns.

When to Use

  • Architecting a large-scale Angular application (Monorepo, Micro-frontends)
  • Implementing Signals for fine-grained reactivity (Angular 16+)
  • Migrating legacy Modules (NgModule) to Standalone Components
  • Designing complex state management with NgRx or NgRx Signal Store
  • Optimizing performance (Zoneless, OnPush, Hydration)
  • Setting up enterprise CI/CD with Nx or Turborepo


2. Decision Framework

State Management Strategy

What is the complexity level?
│
├─ **Local State (Component)**
│  ├─ Simple? → **Signals (`signal`, `computed`)**
│  └─ Complex streams? → **RxJS (`BehaviorSubject`)**
│
├─ **Global Shared State**
│  ├─ Lightweight? → **NgRx Signal Store** (Modern, functional)
│  ├─ Enterprise/Complex? → **NgRx Store (Redux)** (Strict actions/reducers)
│  └─ Entity Collections? → **NgRx Entity**
│
└─ **Server State**
   └─ Caching/Deduplication? → **TanStack Query (Angular)** or **RxJS + Cache Operator**

Architecture Patterns

PatternUse CaseProsCons
StandaloneDefault for 15+Less boilerplate, tree-shakableLearning curve for legacy devs
Nx MonorepoMulti-app enterpriseShared libs, affected buildsTooling complexity
Micro-FrontendsDifferent teams/stacksIndependent deploymentRuntime complexity, shared deps hell
ZonelessHigh performanceNo Zone.js overheadRequires explicit Change Detection

Red Flags → Escalate to performance-engineer:

  • "ExpressionChangedAfterItHasBeenCheckedError" appearing frequently
  • Bundle size > 5MB initial load
  • Change detection cycles running constantly (Zone.js thrashing)
  • Memory leaks in RxJS subscriptions (forgotten takeUntilDestroyed)


Workflow 2: NgRx Signal Store (Modern State)

Goal: Manage feature state with less boilerplate than Redux.

Steps:

  1. Define Store import {signalStore, withState, withMethods, patchState} from '@ngrx/signals'; export const UserStore = signalStore({providedIn: 'root'}, withState({users: [], loading: false, query: ''}), withMethods((store) => ({setQuery(query: string) {patchState(store, {query});}, async loadUsers() {patchState(store, {loading: true}); const users = await fetchUsers(store.query()); patchState(store, {users, loading: false});}})));
  2. Use in Component export class UserListComponent {readonly store = inject(UserStore); constructor() {// Auto-load when query changes (Effect) effect(() => {this.store.loadUsers();});}}


Workflow 4: Zoneless Applications (Angular 18+)

Goal: Remove Zone.js for smaller bundles and better debugging.

Steps:

  1. Bootstrap Config // main.ts bootstrapApplication(AppComponent, {providers: [provideExperimentalZonelessChangeDetection()]});
  2. State Management (Signals Only)

- Do NOT use ApplicationRef.tick() manually. - Use signal() for all state. - Events automatically trigger change detection.

  1. Integrations

- RxJS: Use AsyncPipe (still works) or toSignal. - Timers: setInterval does NOT trigger CD automatically. Use signal updates inside the timer.



Core Capabilities

Enterprise Angular Architecture

  • Designs large-scale Angular application architectures
  • Implements modular design patterns (Nx monorepos, micro-frontends)
  • Establishes coding standards and best practices for teams
  • Creates scalable folder structures and module organization

Modern Angular Development

  • Implements Signals for fine-grained reactivity (Angular 16+)
  • Migrates legacy NgModule-based code to Standalone Components
  • Optimizes Change Detection with OnPush and Zoneless strategies
  • Leverages new Angular features (deferrable views, hydration)

State Management

  • Designs NgRx Store architectures for enterprise applications
  • Implements NgRx Signal Store for lightweight state management
  • Creates custom state management solutions for complex requirements
  • Integrates server state with TanStack Query or RxJS patterns

Performance Engineering

  • Optimizes bundle size with tree-shaking and lazy loading
  • Implements code splitting and differential loading
  • Creates performance monitoring and metrics collection
  • Develops optimization strategies for large Angular applications


5. Anti-Patterns & Gotchas

❌ Anti-Pattern 1: Nested Subscriptions ("Callback Hell")

What it looks like:

this.route.params.subscribe(params => {
  this.service.getData(params.id).subscribe(data => {
    this.data = data; // Manual assignment
  });
});

Why it fails:

  • Race conditions (if params change fast).
  • Memory leaks (if not unsubscribed).

Correct approach:

  • SwitchMap: this.data$ = this.route.params.pipe(switchMap(params => this.service.getData(params.id)));
  • Use AsyncPipe or toSignal in template.

❌ Anti-Pattern 2: Logic in Templates

What it looks like:

<div *ngIf="user.roles.includes('ADMIN') && user.active && !isLoading">

Why it fails:

  • Hard to test.
  • Runs on every change detection cycle.

Correct approach:

  • Computed Signal / Getter: isAdmin = computed(() => this.user().roles.includes('ADMIN')); <div *ngIf="isAdmin()">

❌ Anti-Pattern 3: Shared Module Bloat

What it looks like:

  • One massive SharedModule importing everything (Material, Utils, Components).

Why it fails:

  • Breaks tree-shaking.
  • Increases initial bundle size.

Correct approach:

  • Standalone Components: Import exactly what you need in the component's imports: [] array.


7. Quality Checklist

Architecture:

  • Standalone: No NgModules for new features.
  • Lazy Loading: All feature routes are lazy loaded (loadComponent).
  • State: Local state uses Signals, Shared state uses Store.

Performance:

  • Change Detection: OnPush enabled everywhere.
  • Bundle: Initial bundle < 200KB.
  • Defer: @defer used for heavy components below the fold.

Code Quality:

  • Strict Mode: strict: true in tsconfig.
  • No Subscriptions: AsyncPipe or toSignal used instead of .subscribe().
  • Security: Inputs verified, no innerHTML without sanitization.

Examples

Example 1: Enterprise E-Commerce Platform Architecture

Scenario: A retail company needs to architect a large-scale e-commerce platform handling 100K+ concurrent users, with separate modules for catalog, cart, checkout, and user management.

Architecture Decisions:

  1. Nx Monorepo Structure: Split into apps (storefront, admin, api) and shared libraries (ui, utilities, data-access)
  2. State Management: NgRx Signal Store for cart/user state, TanStack Query for server state
  3. Performance Strategy: Deferrable views for below-fold content, OnPush everywhere, lazy loading for feature modules
  4. Micro-frontend Ready: Module Federation configured for potential future separation

Key Implementation Details:

  • Cart Service using Signals with computed totals and persisted state
  • Product Catalog with TanStack Query caching and optimistic updates
  • Checkout flow with multi-step wizard and form validation
  • Admin panel with separate build and deployment pipeline

Example 2: Legacy NgModule to Standalone Migration

Scenario: A financial services company has a 5-year-old Angular application using NgModules and wants to modernize to Angular 18 with Standalone Components.

Migration Strategy:

  1. Incremental Approach: Migrate one feature module at a time, never breaking the app
  2. Dependency Analysis: Use ng-dompurify to find all module dependencies
  3. Component Conversion: Convert components to standalone with proper imports
  4. Service Refactoring: Remove module-level providedIn, use root or feature-level injection

Migration Results:

  • Reduced initial bundle size by 40% through tree-shaking
  • Eliminated 200+ lines of boilerplate NgModule code
  • Improved change detection performance by 60%
  • Enabled adoption of new Angular features (defer blocks, zoneless)

Example 3: Real-Time Dashboard with Signals

Scenario: A SaaS company needs a monitoring dashboard showing real-time metrics with 1-second updates, requiring fine-grained reactivity without Zone.js overhead.

Implementation Approach:

  1. Zoneless Bootstrap: Enable experimental zoneless change detection
  2. Signal-Based State: All dashboard state managed through Signals
  3. RxJS Interop: Use toSignal for converting Observables to Signals
  4. WebSocket Integration: Push updates directly to Signals

Performance Results:

  • 30% reduction in bundle size (no Zone.js)
  • 50% improvement in change detection cycles
  • Smooth 60fps updates with complex data visualizations
  • Improved debugging with clearer change detection logs

Best Practices

Architecture Design

  • Design for Scale: Plan folder structures and module boundaries before writing code
  • Embrace Standalone: Default to Standalone Components for all new development
  • Lazy Load Everything: Feature modules, routes, and heavy components
  • Separate Concerns: Smart containers vs. dumb presentational components
  • Define Boundaries: Clear interfaces between layers (data, domain, presentation)

State Management

  • Local State = Signals: Use signal() and computed() for component-level state
  • Global State = Signal Store: NgRx Signal Store for shared feature state
  • Server State = TanStack Query: Never manually manage server state caching
  • Avoid Subscriptions: Use AsyncPipe, toSignal, or takeUntilDestroyed pattern
  • Immutable Updates: Always create new references for state changes

Performance Engineering

  • OnPush Everywhere: Default ChangeDetectionStrategy.OnPush for all components
  • Defer Loading: Use @defer blocks for heavy components and dependencies
  • Optimize Images: Lazy load images, use modern formats (WebP, AVIF)
  • Bundle Analysis: Regular webpack bundle analysis to identify bloat
  • Preload Strategically: Preload critical routes, lazy load everything else

Code Quality

  • Strict Mode: Enable and maintain TypeScript strict mode
  • Strict Null Checks: Never allow undefined/null without explicit handling
  • Document APIs: Clear JSDoc for public methods and interfaces
  • Centralize Configuration: Feature flags, environment configs in one place
  • Automated Linting: ESLint with angular-specific rules and auto-fix

Testing Strategy

  • Unit Tests: Jest or Vitest for component and service testing
  • Integration Tests: Cypress or Playwright for critical user flows
  • Test Coverage: Target 80%+ coverage for business logic
  • Component Testing: Angular Testing Library for behavioral tests
  • E2E Smoke Tests: Automated smoke tests on every deployment

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

28.23%
按下载量换算233

Codex

25.09%
按下载量换算207

OpenCode

19.81%
按下载量换算163

Cursor

12.23%
按下载量换算101

Gemini CLI

7.57%
按下载量换算62

windsurf

3.41%
按下载量换算28

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills