Day 9: Powers活用
今日学ぶこと
- Powersとは何か
- 動的コンテキストローディング
- パートナーPowersの活用
- カスタムPowersの作成
Powersとは
Powersは、MCP、Steering、Hooksを1つのパッケージにまとめた再利用可能な機能拡張です。ワンクリックで専門知識をKiroに追加できます。
flowchart TB
subgraph Power["Powerパッケージ"]
A["POWER.md\nエントリーポイント"]
B["MCP設定"]
C["Steeringファイル"]
D["Hooks"]
end
subgraph Kiro["Kiro IDE"]
E["AIエージェント"]
end
A --> E
B --> E
C --> E
D --> E
style Power fill:#8b5cf6,color:#fff
style Kiro fill:#3b82f6,color:#fff
PowersとMCPの違い
| 特徴 | MCP | Powers |
|---|---|---|
| 構成要素 | ツールのみ | MCP + Steering + Hooks |
| コンテキスト | 常にロード | 動的にロード |
| 専門知識 | ツールの使い方のみ | ベストプラクティス込み |
| 設定 | JSON手動設定 | ワンクリック |
動的コンテキストローディング
Powersの革新的な点は動的コンテキストローディングです。必要なときだけ関連するコンテキストをロードします。
flowchart LR
subgraph User["ユーザーの発言"]
A["データベースの\nスキーマを設計して"]
end
subgraph Context["コンテキスト"]
B["Neon Power\n活性化"]
C["他のPowers\n非活性化"]
end
subgraph Tools["ロードされるツール"]
D["Neon MCP"]
E["DB設計の\nベストプラクティス"]
end
A --> B
B --> D
B --> E
A --> C
style B fill:#22c55e,color:#fff
style C fill:#9ca3af,color:#fff
従来のアプローチの問題
flowchart TB
subgraph Traditional["従来のMCP"]
A["全ツールを\n常時ロード"]
B["大量の\nトークン消費"]
C["コンテキスト\nの混乱"]
end
subgraph Powers["Powersアプローチ"]
D["関連ツールのみ\n動的ロード"]
E["トークン\n節約"]
F["クリアな\nコンテキスト"]
end
style Traditional fill:#ef4444,color:#fff
style Powers fill:#22c55e,color:#fff
パートナーPowers
Kiroは主要なテクノロジーパートナーと連携したPowersを提供しています。
利用可能なPowers
| Power | カテゴリ | 提供機能 |
|---|---|---|
| Supabase | Backend | DB操作、認証、ストレージ |
| Neon | Database | PostgreSQL、ブランチング |
| Stripe | Payment | 決済、サブスクリプション |
| Netlify | Deployment | デプロイ、サーバレス |
| Postman | API | APIテスト、ドキュメント |
| Datadog | Monitoring | モニタリング、ログ |
| Dynatrace | Observability | パフォーマンス分析 |
| Figma | Design | デザインシステム |
| Amazon Aurora | Database | AWS DB |
| Strands Agents | AI | AIエージェント開発 |
Powersのインストール
方法1: Kiro IDE から
- Kiroパネルで「Powers」タブを開く
- 利用可能なPowersを閲覧
- 「Install」をクリック
- 必要に応じてAPIキーを設定
方法2: kiro.dev から
- kiro.dev/powers にアクセス
- 目的のPowerを選択
- 「Add to Kiro」をクリック
Powerの使用例
例1: Supabase Power
Supabaseでユーザー認証を実装してください。
- メール/パスワード認証
- Google OAuth
- セッション管理
Kiroは自動的に:
- Supabase Powerをアクティブ化
- Supabase MCPツールを使用
- Supabaseのベストプラクティスに従ったコードを生成
例2: Neon Power
Neonでデータベースのブランチを作成し、
新しいマイグレーションをテストしてください。
Kiroは:
- Neon Powerをアクティブ化
- ブランチ作成のワークフローを案内
- マイグレーションのベストプラクティスを適用
例3: Stripe Power
Stripeでサブスクリプション決済を実装してください。
- 月額プランと年額プラン
- トライアル期間
- Webhook処理
Kiroは:
- Stripe Powerをアクティブ化
- Stripe APIの最新の推奨パターンを適用
- Webhookのセキュリティベストプラクティスを含める
Powerの構造
Powerは以下のファイルで構成されます。
my-power/
├── POWER.md # エントリーポイント
├── mcp.json # MCP設定
├── steering/
│ ├── best-practices.md
│ └── patterns.md
└── hooks/
└── auto-validate.yaml
POWER.md
Powerのエントリーポイントとなるファイルです。
---
name: My Custom Power
version: 1.0.0
description: Custom power for specific workflows
triggers:
- "database"
- "schema"
- "migration"
---
# My Custom Power
## Available Tools
This power provides the following MCP tools:
- `db_query`: Execute database queries
- `db_migrate`: Run migrations
## Best Practices
When working with databases:
1. Always use transactions for multiple operations
2. Add indexes for frequently queried columns
3. Use prepared statements to prevent SQL injection
## Activation
This power activates when you mention:
- Database operations
- Schema design
- Migrations
トリガーキーワード
triggers で指定したキーワードがプロンプトに含まれると、Powerが自動的にアクティブ化されます。
カスタムPowersの作成
チーム固有のワークフローをPowerとしてパッケージ化できます。
Step 1: ディレクトリ構造の作成
mkdir -p .kiro/powers/my-team-power
cd .kiro/powers/my-team-power
Step 2: POWER.md の作成
---
name: My Team Power
version: 1.0.0
description: Team-specific development workflows
triggers:
- "api"
- "endpoint"
- "rest"
---
# My Team API Power
## Purpose
Standardize API development across the team.
## Tools
- Custom API validation
- Auto-documentation generation
- Contract testing
## Guidelines
### API Design
- Use RESTful conventions
- Version APIs with /v1/ prefix
- Return consistent error formats
### Response Format
```json
{
"data": {},
"meta": {
"timestamp": "ISO-8601",
"version": "1.0"
}
}
Error Format
{
"error": {
"code": "ERROR_CODE",
"message": "Human readable message",
"details": {}
}
}
### Step 3: Steeringファイルの追加
```markdown
<!-- .kiro/powers/my-team-power/steering/api-patterns.md -->
---
inclusion: always
---
# API Development Patterns
## Endpoint Naming
- Use plural nouns: `/users`, `/products`
- Use kebab-case: `/user-profiles`
- Avoid verbs in URLs
## HTTP Methods
| Method | Usage |
|--------|-------|
| GET | Retrieve resources |
| POST | Create new resource |
| PUT | Full update |
| PATCH | Partial update |
| DELETE | Remove resource |
Step 4: Hooksの追加
# .kiro/powers/my-team-power/hooks/validate-api.yaml
name: Validate API
trigger: onSave
pattern: "src/api/**/*.ts"
action: agent
instructions: |
Validate the API endpoint against team standards:
1. Check response format matches specification
2. Verify error handling is consistent
3. Ensure proper HTTP status codes
Powersの共有
チーム内共有
# Gitで管理
git add .kiro/powers/my-team-power
git commit -m "Add team API power"
git push
コミュニティ共有
GitHub URLからPowersをインポートできます:
Power URL: https://github.com/myorg/my-power
Powersのベストプラクティス
1. 明確なトリガー設定
# 良い例: 具体的なトリガー
triggers:
- "supabase"
- "auth"
- "realtime"
# 悪い例: 曖昧なトリガー
triggers:
- "database" # 他のDB Powerと競合
2. 段階的なコンテキスト
# POWER.md
## Quick Reference
(基本的な使い方を簡潔に)
## Detailed Guide
(詳細な説明は参照時のみ)
3. バージョン管理
---
name: My Power
version: 2.0.0
breaking_changes:
- "Removed deprecated tool X"
- "Changed response format"
---
まとめ
| 概念 | 説明 |
|---|---|
| Powers | MCP + Steering + Hooksのパッケージ |
| 動的ロード | 必要なときだけコンテキストをロード |
| トリガー | キーワードでPowerを自動アクティブ化 |
| パートナー | 主要サービスとの公式連携 |
重要ポイント
- Powersでワンクリック機能追加
- 動的ローディングでコンテキスト最適化
- チーム固有のワークフローをPower化
- トリガーで必要なときだけアクティブ化
練習問題
問題1: 基本
利用可能なパートナーPowersを確認し、1つをインストールしてください。そのPowerの機能を使って簡単なタスクを実行してください。
問題2: 応用
以下の要件を満たすカスタムPowerを作成してください:
- トリガー: "component", "ui", "react"
- 内容: Reactコンポーネント開発のベストプラクティス
- Hook: コンポーネント保存時の自動チェック
チャレンジ問題
チームの開発ワークフローをPowerとしてパッケージ化してください:
- API開発ガイドライン
- テスト戦略
- コードレビューチェックリスト
GitHubリポジトリで共有できる形式で作成してください。
参考リンク
次回予告: Day 10では「Kiro CLI & 総合演習」を学びます。CLIの使い方と、これまで学んだすべてを組み合わせた実践的なワークフローを習得しましょう。