Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Angular コードを生成し、アーキテクチャ ガイダンスを提供します。プロジェクトの作成、コンポーネント、またはサービスを作成するとき、または反応性(シグナル、linkedSignal、リソース)、フォーム、依存性注入、ルーティング、SSR、アクセシビリティ(ARIA)、アニメーション、スタイリング(コンポーネント スタイル、Tailwind CSS)、テスト、または CLI ツール作成のベスト プラクティスについてトリガーされます。
.claude/skills/affaan-m-angular-developer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 308% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 167% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 143% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 158% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 816% | 0% |
linkedSignal、または resource で反応性を実装するときng build を実行してビルド エラーがないか確認してください。エラーがある場合は、エラー メッセージを分析して修正してから続行してください。生成されたコードが正しく機能することを確認するために、このステップをスキップしないことが重要です。ユーザーがガイドラインを提供しない場合は、新しい Angular プロジェクトを作成するときに、これらのデフォルトを使用してください。
ng new の実行ルール: 新しい Angular プロジェクトを作成するよう求められたとき、以下の厳密な手順に従って正しい実行コマンドを決定する必要があります。
ステップ 1: ユーザーが明示的にバージョンを指定しているか確認します。
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 コンポーネントで作業するとき、タスクに基づいて次のリファレンスを参照してください。
より詳細なドキュメントが上記のリファレンスで見つからない場合は、https://angular.dev/guide/components のドキュメントを参照してください。
状態とデータ反応性を管理する場合、Angular シグナルを使用し、次のリファレンスを参照してください。
signal、computed)、反応的コンテキスト、および untracked。signals-overview.md を読んでください。linkedSignal): ソース シグナルにリンクされた書き込み可能な状態を作成します。linked-signal.md を読んでください。resource): シグナル状態に非同期データを直接フェッチします。resource.md を読んでください。effect): ロギング、サードパーティ DOM 操作(afterRenderEffect)、および副作用を使用しないテーム。effects.md を読んでください。ほとんどの場合、新しいアプリケーション では シグナル フォームを優先してください。フォーム決定を行うときは、プロジェクトを分析し、次のガイドラインを検討してください。
Angular に依存性注入を実装するときは、次のガイドラインに従ってください。
inject() 関数。di-fundamentals.md を読んでください。providedIn: 'root' オプション、およびコンポーネントまたは他のサービスへの注入。creating-services.md を読んでください。InjectionToken、useClass、useValue、useFactory、およびスコープ。defining-providers.md を読んでください。inject() が許可される場所、runInInjectionContext、および assertInInjectionContext。injection-context.md を読んでください。EnvironmentInjector と ElementInjector、解決ルール、修飾子(optional、skipSelf)、および providers と viewProviders。hierarchical-injectors.md を読んでください。Accordion、Listbox、Combobox、Menu、Tabs、Toolbar、Tree、Grid などのパターン用のアクセシブルなカスタム コンポーネントを構築する場合は、次のリファレンスを参照してください。
Angular にナビゲーションを実装する場合は、次のリファレンスを参照してください。
<router-outlet>、ネストされたアウトレット、および名前付きアウトレットの使用。show-routes-with-outlets.md を読んでください。RouterLink による宣言的ナビゲーションと Router による プログラマティック ナビゲーション。navigate-to-routes.md を読んでください。CanActivate、CanMatch などのガードを実装してセキュリティを確保します。route-guards.md を読んでください。ResolveFn によるルート有効化前のデータ プリフェッチ。data-resolvers.md を読んでください。より詳細なドキュメントまたは詳細なコンテキストが必要な場合は、公式 Angular ルーティング ガイド をご覧ください。
Angular でスタイリングとアニメーションを実装する場合は、次のリファレンスを参照してください。
テストを作成または更新するときは、タスクに基づいて次のリファレンスを参照してください。
TestBed のベスト プラクティス。testing-fundamentals.md を読んでください。RouterTestingHarness を使用します。router-testing.md を読んでください。Angular ツール作成で作業するときは、次のリファレンスを参照してください。
null または undefined を使用する — 代わりに ''、0、または [] を使用してください。form.field.valid() — 代わりに form.field().valid() を使用してください。[formField] 入力に min、max、value、disabled、または readonly HTML アトリビュートを設定する — 代わりにこれらをスキーマ ルールとして定義してください。inject() を呼び出す — 必要な場合は runInInjectionContext を使用してください。effect() を使用する — 代わりに computed() を使用してください。@for ループで $parent.$index を参照する — Angular は $parent をサポートしていません。代わりに let outerIdx = $index を使用してください。tdd-workflow — Angular コンポーネントおよびサービスに適用可能なテスト駆動開発ワークフロー。security-review — Angular 固有の懸念を含む Web アプリケーションのセキュリティ チェックリスト。frontend-patterns — React/Next.js アプローチのコンテキスト用の一般的なフロントエンド パターン。| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 9,949 | 9,051 | -9% | 1 | 1 | 0% | 1,913 | 4,942 | +158% | 0 | 0 | — |
case-01 | fail→fail | 6,842 | 5,192 | -24% | 1 | 1 | 0% | 1,216 | 3,377 | +178% | 0 | 0 | — |
case-02 | fail→fail | 24,631 | 24,863 | +1% | 1 | 1 | 0% | 6,187 | 9,297 | +50% | 0 | 0 | — |
case-03 | fail→fail | 20,298 | 20,237 | -0% | 1 | 1 | 0% | 4,941 | 7,989 | +62% | 0 | 0 | — |
case-04 | pass→pass | 2,315 | 2,430 | +5% | 1 | 1 | 0% | 377 | 3,453 | +816% | 0 | 0 | — |
case-05 | pass→pass | 8,767 | 4,939 | -44% | 1 | 1 | 0% | 1,666 | 4,018 | +141% | 0 | 0 | — |
case-07 | fail→pass | 4,985 | 4,164 | -16% | 1 | 1 | 0% | 974 | 3,978 | +308% | 0 | 0 | — |
case-08 | pass→pass | 9,819 | 3,371 | -66% | 1 | 1 | 0% | 1,838 | 3,646 | +98% | 0 | 0 | — |
case-09 | fail→pass | 9,010 | 4,731 | -47% | 1 | 1 | 0% | 1,495 | 3,989 | +167% | 0 | 0 | — |
case-10 | fail→pass | 10,047 | 6,781 | -33% | 1 | 1 | 0% | 1,791 | 4,349 | +143% | 0 | 0 | — |
case-11 | pass→pass | 12,742 | 11,025 | -13% | 1 | 1 | 0% | 2,491 | 5,333 | +114% | 0 | 0 | — |
case-12 | fail→fail | 8,338 | 9,629 | +15% | 1 | 1 | 0% | 1,491 | 4,982 | +234% | 0 | 0 | — |
case-13 | pass→pass | 2,377 | 2,703 | +14% | 1 | 1 | 0% | 439 | 3,553 | +709% | 0 | 0 | — |
case-14 | pass→pass | 10,736 | 7,337 | -32% | 1 | 1 | 0% | 2,038 | 4,569 | +124% | 0 | 0 | — |
case-15 | pass→pass | 13,084 | 11,355 | -13% | 1 | 1 | 0% | 2,247 | 4,912 | +119% | 0 | 0 | — |
case-16 | pass→pass | 4,207 | 4,766 | +13% | 1 | 1 | 0% | 697 | 4,004 | +474% | 0 | 0 | — |
case-17 | pass→pass | 9,772 | 8,296 | -15% | 1 | 1 | 0% | 1,990 | 4,863 | +144% | 0 | 0 | — |
case-18 | pass→pass | 4,863 | 6,498 | +34% | 1 | 1 | 0% | 951 | 4,382 | +361% | 0 | 0 | — |
case-19 | pass→pass | 5,559 | 4,631 | -17% | 1 | 1 | 0% | 1,058 | 4,017 | +280% | 0 | 0 | — |
case-20 | pass→pass | 10,750 | 8,482 | -21% | 1 | 1 | 0% | 1,800 | 4,620 | +157% | 0 | 0 | — |
case-21 | pass→pass | 17,566 | 18,411 | +5% | 1 | 1 | 0% | 3,414 | 6,624 | +94% | 0 | 0 | — |
case-22 | pass→pass | 16,950 | 16,900 | -0% | 1 | 1 | 0% | 2,748 | 6,120 | +123% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.