あらゆる用途に1つの汎用AIアシスタントを使うのをやめましょう。5つの専門エージェントを設定して、完全なAPIを構築します。バックエンドアーキテクトがシステムを設計し、データベースオプティマイザーがスキーマをレビューし、フロントエンドデベロッパーがクライアントを構築し、コードレビュアーがセキュリティをチェックし、そしてリアリティチェッカーが出荷前に検証します。
迅速にAPIを構築する必要があります。その誘惑:1つのAIにあらゆることをさせようとすること。それはデータベースを設計し、エンドポイントを書き、フロントエンドを構築し、コードをレビューし、結果をテストするでしょう。
その結果どうなるかというと、データベースにはインデックスが不足し、エンドポイントにはセキュリティの脆弱性があり、フロントエンドはエラー状態を無視し、「見た目は問題なさそう」というテストが行われることになります。
専門のエージェントがこれを解決します。各エージェントは自身の専門領域を知っています。各エージェントはチェックリストを持っています。各エージェントは特定の成果物を生成します。バックエンドアーキテクトは拡張性を考えます。データベースオプティマイザーは不足しているインデックスを見つけます。コードレビュアーは脆弱性を発見します。リアリティチェッカーは証拠を要求します。
このチュートリアルでは、The Agencyコレクションから5つのエージェントを設定し、完全なAPI構築ワークフローを実行します。APIのテストとドキュメンテーションのためにApidogと連携し、デプロイ前にエンドポイントがOpenAPI仕様に照らして検証されることを保証します。
使用する5つのエージェント
| エージェント | 部門 | 責任 |
|---|---|---|
| Backend Architect (バックエンドアーキテクト) | Engineering (エンジニアリング) | API設計、データベーススキーマ、認証 |
| Database Optimizer (データベースオプティマイザー) | Engineering (エンジニアリング) | インデックス推奨、クエリ最適化 |
| Frontend Developer (フロントエンドデベロッパー) | Engineering (エンジニアリング) | Reactコンポーネント、APIクライアント、状態管理 |
| Code Reviewer (コードレビュアー) | Engineering (エンジニアリング) | セキュリティ監査、型安全性、エラー処理 |
| Reality Checker (リアリティチェッカー) | Testing (テスト) | 証拠に基づく検証、スクリーンショット証明 |
エージェントをインストールします:
# The Agencyリポジトリをクローン
git clone https://github.com/msitarzewski/agency-agents.git
cd agency-agents
# エージェントをClaude Codeにコピー
cp engineering/engineering-backend-architect.md ~/.claude/agents/
cp engineering/engineering-database-optimizer.md ~/.claude/agents/
cp engineering/engineering-frontend-developer.md ~/.claude/agents/
cp engineering/engineering-code-reviewer.md ~/.claude/agents/
cp testing/testing-reality-checker.md ~/.claude/agents/
ステップ1: バックエンドアーキテクトがシステムを設計
新しいClaude Codeセッションを開始します:
Activate Backend Architect mode. (バックエンドアーキテクトモードをアクティブ化)
Design a REST API for an e-commerce platform with: (以下の機能を備えたEコマースプラットフォーム向けREST APIを設計してください。)
- User authentication (JWT with refresh tokens) (ユーザー認証 (リフレッシュトークン付きJWT))
- Product catalog with categories and filtering (カテゴリとフィルタリングを備えた製品カタログ)
- Shopping cart management (ショッピングカート管理)
- Order processing with status tracking (ステータス追跡付き注文処理)
- Payment webhook integration (支払いWebhook統合)
Output: (出力:)
1. OpenAPI 3.0 specification (OpenAPI 3.0仕様)
2. PostgreSQL database schema with relationships (関連付けのあるPostgreSQLデータベーススキーマ)
3. Project folder structure (Express.js + TypeScript) (プロジェクトフォルダ構造 (Express.js + TypeScript))
4. Authentication flow diagram (認証フロー図)
期待される成果物:
バックエンドアーキテクトは以下を出力します:
OpenAPI仕様 (一部):
openapi: 3.0.0
info:
title: E-commerce API
version: 1.0.0
paths:
/auth/login:
post:
summary: User login
requestBody:
content:
application/json:
schema:
type: object
properties:
email: { type: string, format: email }
password: { type: string, minLength: 8 }
responses:
'200':
description: JWT tokens
content:
application/json:
schema:
type: object
properties:
accessToken: { type: string }
refreshToken: { type: string }
データベーススキーマ:
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL CHECK (price >= 0),
category_id UUID REFERENCES categories(id),
inventory_count INTEGER DEFAULT 0,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE TABLE orders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
total_amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(50) DEFAULT 'pending',
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
フォルダ構造:
src/
├── controllers/
│ ├── auth.controller.ts
│ ├── products.controller.ts
│ └── orders.controller.ts
├── middleware/
│ ├── auth.middleware.ts
│ └── validation.middleware.ts
├── routes/
│ ├── auth.routes.ts
│ ├── products.routes.ts
│ └── orders.routes.ts
├── services/
│ ├── auth.service.ts
│ ├── products.service.ts
│ └── orders.service.ts
├── models/
│ ├── User.ts
│ ├── Product.ts
│ └── Order.ts
└── index.ts
出力を保存します。次のエージェントに渡します。
ステップ2: データベースオプティマイザーがスキーマをレビュー
新しいセッションを開きます:
Activate Database Optimizer mode. (データベースオプティマイザーモードをアクティブ化)
Review this PostgreSQL schema for an e-commerce API: (EコマースAPIのこのPostgreSQLスキーマをレビューしてください。)
[Paste the schema from Step 1] ([ステップ1からのスキーマを貼り付け])
Check for: (以下を確認してください:)
1. Missing indexes on foreign keys and frequently queried columns (外部キーおよび頻繁にクエリされる列におけるインデックスの不足)
2. Query performance on product search (name, category, price range) (製品検索 (名前、カテゴリ、価格範囲) におけるクエリパフォーマンス)
3. Proper constraints for data integrity (データ整合性のための適切な制約)
4. Missing tables for common e-commerce features (reviews, wishlists) (一般的なEコマース機能 (レビュー、ウィッシュリスト) におけるテーブルの不足)
5. Soft delete patterns for audit trails (監査証跡のためのソフトデリートパターン)
Output specific ALTER TABLE statements and new table definitions. (具体的なALTER TABLEステートメントと新しいテーブル定義を出力してください。)
期待される成果物:
インデックスの推奨事項:
-- Add indexes on foreign keys (外部キーにインデックスを追加)
CREATE INDEX idx_products_category_id ON products(category_id);
CREATE INDEX idx_orders_user_id ON orders(user_id);
-- Add index for product search (製品検索用のインデックスを追加)
CREATE INDEX idx_products_name_search ON products USING gin(to_tsvector('english', name));
CREATE INDEX idx_products_price ON products(price) WHERE inventory_count > 0;
-- Add composite index for category filtering (カテゴリフィルタリング用の複合インデックスを追加)
CREATE INDEX idx_products_category_price ON products(category_id, price);
不足しているテーブル:
CREATE TABLE reviews (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
product_id UUID REFERENCES products(id),
user_id UUID REFERENCES users(id),
rating INTEGER CHECK (rating >= 1 AND rating <= 5),
comment TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(product_id, user_id)
);
CREATE TABLE cart_items (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(id),
product_id UUID REFERENCES products(id),
quantity INTEGER DEFAULT 1 CHECK (quantity > 0),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(user_id, product_id)
);
追加すべき制約:
-- Email format validation (メール形式の検証)
ALTER TABLE users ADD CONSTRAINT chk_email_format
CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
-- Soft delete column (ソフトデリート列)
ALTER TABLE products ADD COLUMN deleted_at TIMESTAMP WITH TIME ZONE NULL;
CREATE INDEX idx_products_deleted_at ON products(deleted_at) WHERE deleted_at IS NULL;
これらの推奨事項をスキーマに適用します。
ステップ3: フロントエンドデベロッパーがクライアントを構築
新しいセッションを開きます:
Activate Frontend Developer mode. (フロントエンドデベロッパーモードをアクティブ化)
Build a React dashboard for this e-commerce API: (このEコマースAPI用のReactダッシュボードを構築してください。)
[Paste OpenAPI spec from Step 1] ([ステップ1からのOpenAPI仕様を貼り付け])
Requirements: (要件:)
- TypeScript with strict mode (厳格モードのTypeScript)
- React Query for server state management (サーバーの状態管理のためのReact Query)
- Product list with filters (category, price range, search) (フィルター (カテゴリ、価格範囲、検索) 付き製品リスト)
- Shopping cart with real-time updates (リアルタイム更新付きショッピングカート)
- Order history with status tracking (ステータス追跡付き注文履歴)
- Proper error handling and loading states (適切なエラー処理とロード状態)
- Responsive design (mobile, tablet, desktop) (レスポンシブデザイン (モバイル、タブレット、デスクトップ))
Output: (出力:)
1. Project setup (Vite + React + TypeScript) (プロジェクトセットアップ (Vite + React + TypeScript))
2. API client with React Query hooks (React Queryフック付きAPIクライアント)
3. Core components (ProductList, ProductCard, Cart, OrderHistory) (コアコンポーネント (ProductList, ProductCard, Cart, OrderHistory))
4. Error boundary and loading skeletons (エラーバウンダリとローディングスケルトン)
期待される成果物:
APIクライアント:
// src/lib/api-client.ts
import { QueryClient, useQuery, useMutation } from '@tanstack/react-query';
const API_BASE = 'http://localhost:3000/api';
async function fetcher<T>(endpoint: string, options?: RequestInit): Promise<T> {
const response = await fetch(`${API_BASE}${endpoint}`, {
...options,
headers: {
'Content-Type': 'application/json',
...options?.headers,
},
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.message || 'Request failed');
}
return response.json();
}
export function useProducts(filters?: ProductFilters) {
const params = new URLSearchParams(filters as Record<string, string>);
return useQuery({
queryKey: ['products', filters],
queryFn: () => fetcher<Product[]>(`/products?${params}`),
});
}
export function useAddToCart() {
return useMutation({
mutationFn: (item: CartItem) =>
fetcher<CartItem>('/cart', {
method: 'POST',
body: JSON.stringify(item),
}),
});
}
製品リストコンポーネント:
// src/components/ProductList.tsx
import { useProducts } from '@/lib/api-client';
import { ProductCard } from './ProductCard';
import { FilterSidebar } from './FilterSidebar';
import { Skeleton } from './ui/skeleton';
export function ProductList() {
const [filters, setFilters] = useState<ProductFilters>({});
const { data: products, isLoading, error } = useProducts(filters);
if (error) {
return <Alert variant="destructive">{error.message}</Alert>;
}
return (
<div className="flex gap-4">
<FilterSidebar filters={filters} onFilterChange={setFilters} />
<div className="flex-1 grid grid-cols-1 md:grid-cols-3 gap-4">
{isLoading ? (
Array.from({ length: 6 }).map((_, i) => (
<Skeleton key={i} className="h-64" />
))
) : products?.length === 0 ? (
<EmptyState message="No products found" />
) : (
products?.map(product => (
<ProductCard key={product.id} product={product} />
))
)}
</div>
</div>
);
}
エラーバウンダリ:
// src/components/ErrorBoundary.tsx
export class ErrorBoundary extends React.Component<
{ children: React.ReactNode },
{ hasError: boolean; error: Error | null }
> {
constructor(props: { children: React.ReactNode }) {
super(props);
this.state = { hasError: false, error: null };
}
static getDerivedStateFromError(error: Error) {
return { hasError: true, error };
}
render() {
if (this.state.hasError) {
return (
<div className="p-4 bg-red-50 border border-red-200 rounded">
<h2 className="text-lg font-semibold text-red-800">何か問題が発生しました</h2>
<p className="text-red-600">{this.state.error?.message}</p>
<Button onClick={() => window.location.reload()} className="mt-2">
再読み込み
</Button>
</div>
);
}
return this.props.children;
}
}
ステップ4: コードレビュアーがすべてをチェック
新しいセッションを開きます:
Activate Code Reviewer mode. (コードレビュアーモードをアクティブ化)
Review this codebase for: (このコードベースを以下についてレビューしてください:)
1. Security vulnerabilities: (セキュリティの脆弱性:)
- SQL injection risks (SQLインジェクションのリスク)
- XSS vulnerabilities (XSSの脆弱性)
- CSRF protection (CSRF保護)
- Authentication bypass possibilities (認証バイパスの可能性)
2. TypeScript strict mode compliance: (TypeScript厳格モードの準拠:)
- No implicit any (暗黙のanyがないこと)
- Proper type definitions (適切な型定義)
- Null/undefined handling (null/undefinedの処理)
3. Error handling gaps: (エラー処理のギャップ:)
- Uncaught promise rejections (捕捉されないPromiseの拒否)
- Missing try/catch blocks (try/catchブロックの不足)
- Silent failures (サイレントエラー)
[Paste the code from Steps 1-3] ([ステップ1〜3のコードを貼り付け])
Output a report with severity ratings (Critical, High, Medium, Low) and specific fixes. (重大度評価 (Critical, High, Medium, Low) と具体的な修正を含むレポートを出力してください。)
期待される成果物:
セキュリティレポート:
## 致命的な問題 (Critical Issues)
### 1. 製品検索におけるSQLインジェクション
**場所:** `src/controllers/products.controller.ts:24`
**問題:** ユーザー入力がSQLクエリに直接連結されている
```typescript
// VULNERABLE
const query = `SELECT * FROM products WHERE name LIKE '%${search}%'`;
```修正: パラメータ化クエリを使用する
const query = 'SELECT * FROM products WHERE name LIKE $1';
await db.query(query, [`%${search}%`]);
```重大な問題 (High Issues)
重大な問題 (High Issues)2. CSRF保護の不足
2. CSRF保護の不足場所: src/index.ts問題: 状態変更操作に対するCSRFミドルウェアがない 修正: csurfミドルウェアを追加する
import csrf from 'csurf';
app.use(csrf({ cookie: true }));
```中程度の問題 (Medium Issues)
中程度の問題 (Medium Issues)3. API応答における暗黙のany
3. API応答における暗黙のany場所: src/lib/api-client.ts:8問題: fetcher関数の汎用的なany型 修正: 適切な型制約を追加する
async function fetcher<T extends Record<string, unknown>>(
endpoint: string,
options?: RequestInit
): Promise<T> { ... }
```
**型安全性レポート:**
```markdown
## TypeScript違反 (TypeScript Violations)
1. `products.controller.ts:45` - 戻り値の型アノテーションが不足
2. `auth.middleware.ts:12` - catchブロック内の暗黙のany
3. `orders.service.ts:78` - オブジェクトが未定義である可能性あり
`tsc --noEmit`を実行して全リストを確認してください。デプロイ前に修正してください。
続行する前に修正を適用します。
ステップ5: リアリティチェッカーが出荷前に検証
ステップ5: リアリティチェッカーが出荷前に検証新しいセッションを開きます:
Activate Reality Checker mode. (リアリティチェッカーモードをアクティブ化)
This e-commerce API is ready for production validation. (このEコマースAPIは本番検証の準備ができています。)
Run your mandatory reality check process: (必須のリアリティチェックプロセスを実行してください:)
1. Verify files exist (ファイルが存在することを確認)
2. Cross-reference claimed features with actual code (主張されている機能を実際のコードと照合)
3. Require screenshot evidence from Playwright tests (Playwrightテストからのスクリーンショット証拠を要求)
4. Review test-results.json for performance metrics (test-results.jsonでパフォーマンスメトリクスをレビュー)
Project URL: http://localhost:3000
Test results: ./public/qa-screenshots/test-results.json
Output: PASS or NEEDS WORK with specific blocking issues. (出力: PASS または特定のブロッキング問題を含むNEEDS WORK)
期待される成果物:
リアリティチェックコマンド:
# 1. Verify files exist (ファイルが存在することを確認)
ls -la src/controllers/ src/services/ src/routes/
ls -la src/components/ src/lib/
# 2. Cross-reference claimed features (主張されている機能を照合)
grep -r "jwt\|jsonwebtoken" . --include="*.ts" || echo "NO JWT FOUND" (JWTが見つかりません)
grep -r "bcrypt\|argon2" . --include="*.ts" || echo "NO PASSWORD HASHING FOUND" (パスワードハッシュが見つかりません)
grep -r "rateLimit\|express-rate-limit" . --include="*.ts" || echo "NO RATE LIMITING FOUND" (レート制限が見つかりません)
# 3. Run Playwright screenshot capture (Playwrightスクリーンショットキャプチャを実行)
npx playwright test --config=qa-playwright.config.ts --grep "@screenshot"
# 4. Review test results (テスト結果をレビュー)
cat public/qa-screenshots/test-results.json
検証レポート:
## リアリティチェック結果 (Reality Check Results)
### ファイル検証: PASS (合格)
- すべてのコントローラーファイルが存在
- すべてのコンポーネントファイルが存在
### 機能検証: NEEDS WORK (作業が必要)
- JWT認証: FOUND (見つかりました)
- パスワードハッシュ: FOUND (見つかりました)
- レート制限: NOT FOUND (見つかりません) (ブロッキング)
### スクリーンショット証拠: NEEDS WORK (作業が必要)
- デスクトップレイアウト: PASS (合格)
- タブレットレイアウト: PASS (合格)
- モバイルレイアウト: FAIL (失敗) (製品グリッドが375pxで破損)
### パフォーマンスメトリクス: NEEDS WORK (作業が必要)
- 平均ロード時間: 2.3秒 (目標: <1秒)
- コンソールエラー: 3個 (目標: 0個)
- 失敗したネットワークリクエスト: 1個 (目標: 0個)
## 最終ステータス: NEEDS WORK (作業が必要)
### ブロッキング問題:
1. レート制限が実装されていない
2. 製品リストのモバイルレイアウトが破損している
3. 3つのコンソールエラーを修正する必要がある
4. ロード時間が目標の1秒を超えている
### 非ブロッキング問題:
- 注文履歴にローディングスケルトンを追加
- エラーメッセージを改善
ブロッキング問題を修正し、リアリティチェッカーを再度実行します。
ワークフロー概要
ワークフロー概要┌─────────────────────────────────────────────────────────────────┐
│ Backend Architect (バックエンドアーキテクト) │
│ → OpenAPI仕様、データベーススキーマ、フォルダ構造 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Database Optimizer (データベースオプティマイザー) │
│ → インデックス推奨、不足しているテーブル、制約 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Frontend Developer (フロントエンドデベロッパー) │
│ → Reactコンポーネント、APIクライアント、エラー処理 │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Code Reviewer (コードレビュアー) │
│ → セキュリティ監査、型安全性、エラー処理のギャップ │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ Reality Checker (リアリティチェッカー) │
│ → 証拠に基づく検証、スクリーンショット証明、PASS/FAIL │
└─────────────────────────────────────────────────────────────────┘
並列エージェント実行 (上級)
並列エージェント実行 (上級)エージェントを並列で実行して、合計時間を短縮します:
# Terminal 1: Backend Architect
claude "Activate Backend Architect. Design e-commerce API..." (バックエンドアーキテクトをアクティブ化。EコマースAPIを設計...)
# Terminal 2: Database Optimizer (wait for schema output)
claude "Activate Database Optimizer. Review this schema..." (データベースオプティマイザーをアクティブ化。このスキーマをレビュー...)
# Terminal 3: Frontend Developer (wait for API spec)
claude "Activate Frontend Developer. Build React dashboard..." (フロントエンドデベロッパーをアクティブ化。Reactダッシュボードを構築...)
# Terminal 4: Code Reviewer (wait for code)
claude "Activate Code Reviewer. Review this codebase..." (コードレビュアーをアクティブ化。このコードベースをレビュー...)
# All terminals: Reality Checker (final validation)
claude "Activate Reality Checker. Run mandatory checks..." (リアリティチェッカーをアクティブ化。必須チェックを実行...)
並列実行により、ワークフローを6~8時間ではなく2~4時間で完了できます。
構築したもの
構築したもの| 成果物 | エージェント | 出力 |
|---|---|---|
| API設計 | Backend Architect (バックエンドアーキテクト) | OpenAPI仕様、データベーススキーマ、フォルダ構造 |
| スキーマ最適化 | Database Optimizer (データベースオプティマイザー) | インデックス推奨、追加テーブル、制約 |
| フロントエンド | Frontend Developer (フロントエンドデベロッパー) | Reactコンポーネント、APIクライアント、エラーバウンダリ |
| セキュリティ監査 | Code Reviewer (コードレビュアー) | 脆弱性レポート、型安全性修正 |
| 最終検証 | Reality Checker (リアリティチェッカー) | スクリーンショット証拠、PASS/FAIL認証 |
次のステップ
次のステップAPIをデプロイする:
接続プールを備えた本番PostgreSQLをセットアップするシークレット用の環境変数を設定するヘルスチェックエンドポイントを追加する監視 (Prometheus、Grafana) をセットアップする
ワークフローを拡張する:
負荷テスト用にPerformance Benchmarkerエージェントを追加するドキュメント作成用にTechnical Writerエージェントを追加するCI/CDパイプライン用にDevOps Automatorエージェントを追加する
パターンを再利用する:
プロンプトをテンプレートとして保存するエージェントセッションを連結するワークフロースクリプトを作成するチームと共有する
5つの専門エージェント。1つの完全なAPI。汎用的なアドバイスは不要。
これが専門化の力です。各エージェントは自身の専門領域を知っています。各エージェントはチェックリストを持っています。各エージェントは特定の成果物を生成します。
あなたの番です。プロジェクトを選び、エージェントをアクティブ化し、より迅速に出荷しましょう。
主なポイント
主なポイント専門エージェントは汎用アシスタントよりも優れています — 各エージェントは専門知識、チェックリスト、具体的な成果物を持っていますシーケンシャルなワークフローが品質を保証します — バックエンドアーキテクトが設計し、データベースオプティマイザーがレビューし、フロントエンドデベロッパーが構築し、コードレビュアーが監査し、リアリティチェッカーが検証します証拠に基づいた承認がバグを防ぎます — リアリティチェッカーは、PASS認証の前にスクリーンショットの証拠、grep結果、パフォーマンスメトリクスを要求します並列実行が合計時間を短縮します — 4つのターミナルを同時に実行することで、6〜8時間ではなく2〜4時間で完了できますプロンプトをテンプレートとして保存します — 同じエージェントアクティベーションを再利用して、プロジェクト全体で一貫した結果を得ることができます
よくある質問
よくある質問開発者向けAIエージェントとは何ですか?AIエージェントは、ドメイン知識を持つ専門のAIアシスタントです。汎用チャットボットとは異なり、バックエンドアーキテクトやコードレビュアーのようなエージェントは、特定のチェックリストを持ち、一貫した成果物を生成します。
The Agencyのエージェントをインストールするにはどうすればよいですか?github.com/msitarzewski/agency-agentsからリポジトリをクローンし、.mdファイルをClaude Codeの~/.claude/agents/にコピーするか、他のツール用にインストールスクリプトを使用します。
Reality Checkerエージェントとは何ですか?Reality Checkerは、証拠なしには作業を承認しない、証拠に基づくQAエージェントです。PASS認証を与える前に、スクリーンショット、grep結果、パフォーマンスメトリクスを要求します。
複数のエージェントを並列で実行できますか?はい。複数のターミナルを開き、それぞれで異なるエージェントをアクティブ化します。出力をコピーするか、MCPメモリを使用して自動ハンドオフすることで、成果物を渡します。
エージェント間でコンテキストを渡すにはどうすればよいですか?あるエージェントからの出力をコピーし、次のエージェントの入力として貼り付けます。自動ハンドオフの場合、MCPメモリを使用して、次のエージェントが呼び出すことができる成果物を保存します。
エージェントがNEEDS WORKと言ったらどうすればよいですか?エージェントが特定したブロッキング問題を修正し、エージェントを再実行します。Reality Checkerは、PASS認証の前に修正する必要があるものを具体的にリストアップします。
すべてのプロジェクトに5つのエージェントすべてが必要ですか?いいえ。APIプロジェクトの場合はバックエンドアーキテクトとコードレビュアーから始めます。複雑なスキーマにはデータベースオプティマイザーを、UI作業にはフロントエンドデベロッパーを、出荷前にはリアリティチェッカーを追加します。
