angular-20
Angular 20の開発、アーキテクチャ、コンポーネント、ルーティング、状態管理、テスト、デプロイに関する最新の知識とベストプラクティスを提供するSkill。
📜 元の英語説明(参考)
Angular 20 knowledge and best practices. Use this skill when asked about Angular 20 development, architecture, components, routing, state management, performance, testing, and deployment. Includes standalone components, signals, and modern Angular patterns.
🇯🇵 日本人クリエイター向け解説
Angular 20の開発、アーキテクチャ、コンポーネント、ルーティング、状態管理、テスト、デプロイに関する最新の知識とベストプラクティスを提供するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o angular-20.zip https://jpskill.com/download/6827.zip && unzip -o angular-20.zip && rm angular-20.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6827.zip -OutFile "$d\angular-20.zip"; Expand-Archive "$d\angular-20.zip" -DestinationPath $d -Force; ri "$d\angular-20.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
angular-20.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
angular-20フォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Angular 20 スキル
ルール
コンポーネントアーキテクチャ
スタンドアロンコンポーネントを必須とします。
- すべての新しいコンポーネントはスタンドアロンでなければなりません。
- コンポーネントはデコレータで
standalone: trueを使用しなければなりません。 - コンポーネントは
imports配列で依存関係を明示的にインポートしなければなりません。
新しいコードでは NgModule ベースのコンポーネントを使用してはなりません。
- 新しいコンポーネントに対する NgModule 宣言は禁止されています。
状態管理
ローカル状態には Signals を使用することを必須とします。
- コンポーネントレベルのリアクティブな状態には
signal()を使用します。 - 派生状態には
computed()を使用します。 - 副作用には
effect()を使用します。
グローバル状態には @ngrx/signals を使用することを必須とします。
- 一元化されたアプリケーション状態は @ngrx/signals を使用しなければなりません。
- カスタムの状態管理ソリューションを使用してはなりません。
ルーティング
大規模モジュールには遅延ロードされたルートを使用することを必須とします。
- フィーチャーモジュールは遅延ロードされなければなりません。
- ルーティングには
loadChildrenまたはloadComponentを使用します。
プリフェッチ戦略を実装することを必須とします。
- パフォーマンス最適化のためにプリロード戦略を設定します。
HTTP & API
型付きレスポンスを持つ HttpClient を使用することを必須とします。
- すべての HTTP 呼び出しはレスポンスの型を指定しなければなりません。
- API サービスは HTTP ロジックを一元化しなければなりません。
- すべての HTTP 呼び出しに対してエラーハンドリングを実装しなければなりません。
テスト
単体テストを含めることを必須とします。
- 単体テストには Jasmine/Karma または Jest を使用します。
- コンポーネントには対応する spec ファイルがなければなりません。
重要なフローには E2E テストを含めることを必須とします。
- E2E テストには Playwright を使用します。
パフォーマンス
本番環境では AOT コンパイルを使用することを必須とします。
- 本番ビルドでは AOT を使用して
ng buildを実行しなければなりません。
該当する場合は OnPush 変更検知を使用することを必須とします。
- Signals を使用するコンポーネントは
ChangeDetectionStrategy.OnPushを使用すべきです。
アクセシビリティ
アクセシビリティ (a11y) ガイドラインを強制することを必須とします。
- テンプレートは WCAG 標準に従わなければなりません。
- インタラクティブな要素はキーボードでアクセス可能でなければなりません。
ビルドとデプロイ
ビルドには Angular CLI を使用することを必須とします。
ng buildを使用して本番成果物を作成します。
環境固有の設定を構成することを必須とします。
- 開発、ステージング、本番用に設定を分離します。
コンテキスト
目的
このスキルは、Angular 20 開発のための構造化されたガイダンスとベストプラクティスを提供します。これには、一般的なワークフロー、共通パターン、品質基準、およびサンプルテンプレートが含まれます。
Angular 20 のコアコンセプト
- Angular 20 の機能と変更点
- TypeScript ファーストアーキテクチャ
- スタンドアロンコンポーネント
- Signals とリアクティビティ
- Composition API
- Angular CLI ワークフロー
このスキルを使用するタイミング
このスキルは、次の場合に使用します。
- Angular 20 アプリケーションを開発している場合
- 新しい Angular プロジェクトをセットアップしている場合
- コンポーネント、ルーティング、状態管理を実装している場合
- パフォーマンスを最適化している場合
- テストを作成している場合
- Angular アプリケーションをデプロイしている場合
主要なタスクとワークフロー
1) 新しい Angular 20 アプリを作成する
Angular CLI を使用してプロジェクトをブートストラップします。
ng new your-app --routing --style=scss
2) コンポーネントとテンプレートのパターン
- 可能な限りスタンドアロンコンポーネントを使用します。
- テンプレートをクリーンで簡潔に保ちます。
- アクセシビリティ (a11y) ガイドラインを強制します。
3) ルーティングとナビゲーション
- ルートを持つ RouterModule をセットアップします。
- 大規模モジュールには遅延ロードされたルートを使用します。
- パフォーマンスのためにプリフェッチ戦略を実装します。
4) 状態とリアクティビティ
- ローカル状態には Signals を優先します。
- グローバル状態には @ngrx/signals を検討します。
- effects/rx ワークフローを慎重に管理します。
5) HTTP と REST
- 型付きレスポンスを持つ HttpClient を使用します。
- エラーハンドリングを備えた API サービスレイヤーを一元化します。
6) テスト
- Jasmine/Karma または Jest で単体テストを行います。
- Playwright で E2E テストを行います。
7) パフォーマンス
- AOT コンパイルを使用します。
ng buildでバンドルを最適化します。- 該当する場合は OnPush 変更検知を使用します。
8) デプロイ
- ビルド成果物:
ng build - 静的ホスト/CDN で提供します。
- 環境固有の設定を構成します。
📌 例とコードスニペット
スタンドアロンコンポーネントの例
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-example',
standalone: true,
imports: [CommonModule],
template: `
@if (showContent()) {
<div>Content here</div>
}
`
})
export class ExampleComponent {
showContent = signal(true);
}
リアクティブフォームの例
import { Component, inject } from '@angular/core';
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
@Component({
selector: 'app-form',
standalone: true,
imports: [ReactiveFormsModule],
template: `
<form [formGroup]="form">
<input formControlName="name" />
</form>
`
})
export class FormComponent {
private fb = inject(FormBuilder);
form = this.fb.group({
name: ['', Validators.required]
});
}
API サービスの例
import { Injectable, inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({ providedIn: 'root' })
export class ApiService {
private http = inject(HttpClient);
getData(): Observable<any[]> {
return this.http.get<any[]>('/api/data');
}
}
進化するベストプラクティスについては、公式の Angular ドキュメントとコミュニティ標準を参照してください。
📂 インストールパス
🎯 プロジェクト固有のスキル
.github/skills/angular-20/SKILL.md
🎯 個人のグローバルスキル
~/.github/skills/angular-20/SKILL.md
💡 Copilot は、プロンプトの内容に基づいてこのスキルを自動的にロードします。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Angular 20 Skill
Rules
Component Architecture
MUST use standalone components:
- All new components MUST be standalone
- Components MUST use
standalone: truein decorator - Components MUST explicitly import dependencies in
importsarray
MUST NOT use NgModule-based components in new code:
- NgModule declarations are forbidden for new components
State Management
MUST use Signals for local state:
- Use
signal()for component-level reactive state - Use
computed()for derived state - Use
effect()for side effects
MUST use @ngrx/signals for global state:
- Centralized application state MUST use @ngrx/signals
- MUST NOT use custom state management solutions
Routing
MUST use lazy-loaded routes for large modules:
- Feature modules MUST be lazy loaded
- Use
loadChildrenorloadComponentfor routing
MUST implement prefetching strategies:
- Configure preloading strategy for performance optimization
HTTP & API
MUST use HttpClient with typed responses:
- All HTTP calls MUST specify response types
- API services MUST centralize HTTP logic
- Error handling MUST be implemented for all HTTP calls
Testing
MUST include unit tests:
- Use Jasmine/Karma or Jest for unit testing
- Components MUST have corresponding spec files
MUST include E2E tests for critical flows:
- Use Playwright for E2E testing
Performance
MUST use AOT compilation for production:
- Production builds MUST use
ng buildwith AOT
MUST use OnPush change detection where applicable:
- Components with Signals SHOULD use
ChangeDetectionStrategy.OnPush
Accessibility
MUST enforce accessibility (a11y) guidelines:
- Templates MUST follow WCAG standards
- Interactive elements MUST be keyboard accessible
Build & Deployment
MUST use Angular CLI for builds:
- Use
ng buildto create production artifacts
MUST configure environment-specific settings:
- Separate configurations for development, staging, and production
Context
Purpose
This skill provides structured guidance and best practices for Angular 20 development, including typical workflows, common patterns, quality standards, and example templates.
Angular 20 Core Concepts
- Angular 20 features & changes
- TypeScript-first architecture
- Standalone components
- Signals and reactivity
- Composition API
- Angular CLI workflows
When to Use This Skill
Use this skill when:
- Developing Angular 20 applications
- Setting up new Angular projects
- Implementing components, routing, state management
- Optimizing performance
- Writing tests
- Deploying Angular applications
Key Tasks & Workflows
1) Create a new Angular 20 app
Use Angular CLI to bootstrap projects:
ng new your-app --routing --style=scss
2) Component & Template Patterns
- Use standalone components where possible
- Keep templates clean & concise
- Enforce accessibility (a11y) guidelines
3) Routing & Navigation
- Setup RouterModule with routes
- Use lazy-loaded routes for large modules
- Implement prefetching strategies for performance
4) State & Reactivity
- Prefer Signals for local state
- Consider @ngrx/signals for global state
- Manage effects/rx workflows carefully
5) HTTP & REST
- Use HttpClient with typed responses
- Centralize API service layer with error handling
6) Testing
- Unit test with Jasmine/Karma or Jest
- E2E tests with Playwright
7) Performance
- Use AOT compilation
- Optimize bundle with
ng build - Use OnPush change detection where applicable
8) Deployment
- Build artifacts:
ng build - Serve with static hosts / CDNs
- Configure environment-specific settings
📌 Examples & Code Snippets
Example Standalone Component
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-example',
standalone: true,
imports: [CommonModule],
template: `
@if (showContent()) {
<div>Content here</div>
}
`
})
export class ExampleComponent {
showContent = signal(true);
}
Example Reactive Form
import { Component, inject } from '@angular/core';
import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
@Component({
selector: 'app-form',
standalone: true,
imports: [ReactiveFormsModule],
template: `
<form [formGroup]="form">
<input formControlName="name" />
</form>
`
})
export class FormComponent {
private fb = inject(FormBuilder);
form = this.fb.group({
name: ['', Validators.required]
});
}
Example API Service
import { Injectable, inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({ providedIn: 'root' })
export class ApiService {
private http = inject(HttpClient);
getData(): Observable<any[]> {
return this.http.get<any[]>('/api/data');
}
}
Refer to official Angular docs and community standards for evolving best practices.
📂 Installation Path
🎯 Project-specific skill
.github/skills/angular-20/SKILL.md
🎯 Personal global skill
~/.github/skills/angular-20/SKILL.md
💡 Copilot will automatically load this skill based on your prompt content.