angular-developer
Angularのコードを生成し、アーキテクチャに関するガイダンスを提供します。プロジェクト・コンポーネント・サービスの作成時、またはリアクティビティ(signals、linkedSignal、resource)、フォーム、依存性注入、ルーティング、SSR、アクセシビリティ(ARIA)、アニメーション、スタイリング(コンポーネントスタイル、Tailwind CSS)、テスト、CLIツールのベストプラクティスが必要な際にトリガーされます。
description の原文を見る
Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.
SKILL.md 本文
Angular Developer Guidelines
-
コードを提供する前に、常にプロジェクトの Angular バージョンを確認してください。ベストプラクティスと利用可能な機能はバージョン間で大きく異なる場合があります。Angular CLI で新しいプロジェクトを作成する場合、ユーザーからの指示がない限りバージョンを指定しないでください。
-
コードを生成する際は、保守性とパフォーマンスのために Angular のスタイルガイドとベストプラクティスに従ってください。Angular CLI を使用してコンポーネント、サービス、ディレクティブ、パイプ、ルートをスキャフォールディングして、一貫性を確保してください。
-
コード生成が完了したら、
ng buildを実行してビルドエラーがないことを確認してください。エラーがある場合は、エラーメッセージを分析して修正してから進めてください。生成されたコードが正しく機能することを保証するため、このステップをスキップしないでください。
新規プロジェクトの作成
ユーザーからガイドラインが提供されない場合、新しい Angular プロジェクトを作成する際に従うべきデフォルトルールをいくつか紹介します:
- ユーザーが明示的に指定しない限り、最新の安定バージョンの Angular を使用してください。
- 新規プロジェクトではフォーム管理に Signal Forms を使用してください(Angular v21 以降で利用可能)
詳細を確認
ng new の実行ルール:
新しい Angular プロジェクトの作成を依頼されたら、以下の厳密なステップに従って正しい実行コマンドを決定する必要があります:
ステップ 1:明示的なユーザー版を確認します。
- もしユーザーが特定のバージョンを指定した場合(例:Angular 15)、ローカルインストールをバイパスして
npxを厳密に使用してください。 - コマンド:
npx @angular/cli@<requested_version> new <project-name>
ステップ 2:既存の Angular インストールをチェックします。
- もし特定のバージョンが要求されない場合、ターミナルで
ng versionを実行して、Angular CLI がシステムにすでにインストールされているかを確認してください。 - もしコマンドが成功してインストール済みバージョンが返される場合、ローカル/グローバルインストールを直接使用してください。
- コマンド:
ng new <project-name>
ステップ 3:最新版へのフォールバック。
- もし特定のバージョンが要求されず、かつ
ng versionコマンドが失敗した場合(Angular インストールが存在しないことを示す)、npxを使用して最新バージョンを取得する必要があります。 - コマンド:
npx @angular/cli@latest new <project-name>
コンポーネント
Angular コンポーネントを使用する際は、タスクに基づいて以下のリファレンスを参照してください:
- 基礎知識:構造、メタデータ、コアコンセプト、テンプレート制御フロー(@if、@for、@switch)。
components.mdを参照 - 入力:Signal ベースの入力、変換、モデル入力。
inputs.mdを参照 - 出力:Signal ベースの出力とカスタムイベントのベストプラクティス。
outputs.mdを参照 - ホスト要素:ホストバインディングと属性インジェクション。
host-elements.mdを参照
上記のリファレンスにない詳細なドキュメントが必要な場合は、https://angular.dev/guide/components のドキュメントをご覧ください。
リアクティビティとデータ管理
状態とデータリアクティビティを管理する場合、Angular Signals を使用して以下のリファレンスを参照してください:
- Signals 概要:コア Signal コンセプト(
signal、computed)、リアクティブコンテキスト、untracked。signals-overview.mdを参照 - 従属状態(
linkedSignal):ソース Signal にリンクされた書き込み可能な状態の作成。linked-signal.mdを参照 - 非同期リアクティビティ(
resource):非同期データを Signal 状態に直接フェッチ。resource.mdを参照 - 副作用(
effect):ロギング、サードパーティ DOM 操作(afterRenderEffect)、effect を使用すべきでない場合。effects.mdを参照
フォーム
ほとんどの新規アプリケーションでは、Signal Forms を優先してください。フォーム決定を下す場合は、プロジェクトを分析して以下のガイドラインを検討してください:
-
アプリケーションが v21 以降を使用していて、これが新規フォームの場合、Signal Forms を優先してください。
- 古いアプリケーションまたは既存フォームを使用している場合、アプリケーションの現在のフォーム戦略に合致する適切なフォームタイプを使用してください。
-
Signal Forms:フォーム状態管理に Signal を使用します。
signal-forms.mdを参照 -
Template-driven forms:シンプルなフォームに使用します。
template-driven-forms.mdを参照 -
Reactive forms:複雑なフォームに使用します。
reactive-forms.mdを参照
依存性インジェクション
Angular に依存性インジェクションを実装する場合、以下のガイドラインに従ってください:
- 基礎知識:依存性インジェクション、サービス、
inject()関数の概要。di-fundamentals.mdを参照 - サービスの作成と使用:サービスの作成、
providedIn: 'root'オプション、コンポーネントまたは他のサービスへのインジェクション。creating-services.mdを参照 - 依存性プロバイダーの定義:自動 vs 手動プロビジョニング、
InjectionToken、useClass、useValue、useFactory、スコープ。defining-providers.mdを参照 - インジェクションコンテキスト:
inject()が許可される場所、runInInjectionContext、assertInInjectionContext。injection-context.mdを参照 - 階層的インジェクター:
EnvironmentInjectorvsElementInjector、解決ルール、修飾子(optional、skipSelf)、providersvsviewProviders。hierarchical-injectors.mdを参照
Angular Aria
Accordion、Listbox、Combobox、Menu、Tabs、Toolbar、Tree、Grid のいずれかのパターン用にアクセシブルなカスタムコンポーネントを構築する場合は、以下のリファレンスを参照してください:
- Angular Aria Components:ヘッドレス、アクセシブルなコンポーネント(Accordion、Listbox、Combobox、Menu、Tabs、Toolbar、Tree、Grid)の構築と ARIA 属性のスタイリング。
angular-aria.mdを参照
ルーティング
Angular でナビゲーションを実装する場合は、以下のリファレンスを参照してください:
- ルートの定義:URL パス、静的 vs 動的セグメント、ワイルドカード、リダイレクト。
define-routes.mdを参照 - ルート読み込み戦略:Eager vs lazy loading、コンテキスト認識読み込み。
loading-strategies.mdを参照 - アウトレットでルートを表示:
<router-outlet>の使用、ネストされたアウトレット、名前付きアウトレット。show-routes-with-outlets.mdを参照 - ルートへのナビゲーション:
RouterLinkによる宣言的ナビゲーションとRouterによるプログラムナビゲーション。navigate-to-routes.mdを参照 - ガードでルートアクセスを制御:セキュリティのための
CanActivate、CanMatchおよび他のガードの実装。route-guards.mdを参照 - データリゾルバー:
ResolveFnでルート有効化前のデータプリフェッチ。data-resolvers.mdを参照 - ルーターのライフサイクルとイベント:ナビゲーションイベントの時系列順序とデバッグ。
router-lifecycle.mdを参照 - レンダリング戦略:CSR、SSG(プリレンダリング)、ハイドレーション付き SSR。
rendering-strategies.mdを参照 - ルート遷移アニメーション:View Transitions API の有効化とカスタマイズ。
route-animations.mdを参照
より深いドキュメントまたはより多くのコンテキストが必要な場合は、公式 Angular ルーティングガイド をご覧ください。
スタイリングとアニメーション
Angular にスタイリングとアニメーションを実装する場合は、以下のリファレンスを参照してください:
- Angular での Tailwind CSS の使用:Tailwind CSS を Angular プロジェクトに統合します。
tailwind-css.mdを参照 - Angular アニメーション:ネイティブ CSS(推奨)またはレガシー DSL を使用した動的エフェクト。
angular-animations.mdを参照 - コンポーネントのスタイリング:コンポーネントスタイルとカプセル化のベストプラクティス。
component-styling.mdを参照
テスト
テストを書くまたは更新する際は、タスクに基づいて以下のリファレンスを参照してください:
- 基礎知識:ユニットテスト(Vitest)、非同期パターン、
TestBedのベストプラクティス。testing-fundamentals.mdを参照 - コンポーネントハーネス:堅牢なコンポーネント相互作用のための標準パターン。
component-harnesses.mdを参照 - ルーターテスト:信頼性の高いナビゲーションテストのための
RouterTestingHarnessの使用。router-testing.mdを参照 - エンドツーエンド(E2E)テスト:Cypress を使用した E2E テストのベストプラクティス。
e2e-testing.mdを参照
ツーリング
Angular ツーリングを使用する場合は、以下のリファレンスを参照してください:
- Angular CLI:アプリケーションの作成、コード生成(コンポーネント、ルート、サービス)、サーブ、ビルド。
cli.mdを参照 - コード モダナイゼーション:マイグレーションを使用して最新の標準に自動的にリファクタリング。
migrations.mdを参照 - Angular MCP Server:利用可能なツール、設定、実験的機能。
mcp.mdを参照
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- angular
- リポジトリ
- angular/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/angular/skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。