Playbooks System
注意: このページは、Constitutional Engineering 哲学の技術的実装について説明しています。まだ哲学的基盤について読んでいない場合は、まずそちらから始めて playbooks の「なぜ」を理解することをお勧めします。
Playbooks システムは、AI開発におけるコンテキスト問題に対する Hatcher の第二世代ソリューションです。Claude.md
のような静的ファイルが出発点を提供する一方で、Playbooks は、AIエージェントの真の Corporate Constitution として機能する、動的で集中管理され、ガバナンス可能なシステムを提供します。
Playbooks とは?
Playbooks は、チームの以下を捕捉する構造化された設定ファイルです:
- コーディング標準: フォーマット、命名規則、スタイルの好み
- アーキテクチャ決定: コンポーネントパターン、状態管理のアプローチ
- フレームワーク固有の事項: ライブラリ固有のベストプラクティスとパターン
- ビジネスルール: ドメイン固有のロジックと制約
Playbook の構造
基本的な Playbook は次の構造に従います:
{
"name": "Vue 3 Component Standards",
"version": "1.0.0",
"framework": "vue",
"rules": [
{
"category": "components",
"type": "naming",
"pattern": "PascalCase",
"description": "All Vue components must use PascalCase naming"
},
{
"category": "composition",
"type": "api",
"preference": "composition-api",
"description": "Prefer Composition API over Options API"
}
],
"examples": [
{
"title": "Standard Component Structure",
"code": "..."
}
]
}
組み込み Playbooks
Hatcher は、人気のあるフレームワーク用にキュレーションされた Playbooks を提供しています:
Vue.js Playbooks
- Vue 3 + TypeScript: モダンな composition パターン
- Nuxt.js: SSR とファイルベースのルーティング規約
- Pinia: 状態管理のベストプラクティス
React Playbooks
- React + TypeScript: 関数コンポーネントと hooks
- Next.js: App Router とサーバーコンポーネント
- Zustand: 軽量な状態管理
ユニバーサル Playbooks
- TypeScript Standards: 型定義とジェネリクス
- CSS-in-JS: Styled-components と emotion パターン
- Testing: Jest と Cypress の規約
カスタム Playbooks の作成
チーム固有のルール
チーム独自の規約を捕捉する Playbooks を作成します:
{
"name": "Acme Corp Standards",
"extends": ["vue3-typescript"],
"rules": [
{
"category": "api",
"type": "structure",
"pattern": "services/api/*.service.ts",
"description": "All API calls must go through service layer"
},
{
"category": "components",
"type": "props",
"requirement": "interfaces",
"description": "Component props must use TypeScript interfaces"
}
]
}
プロジェクト固有のコンテキスト
プロジェクト固有の知識を追加します:
{
"name": "E-commerce Dashboard",
"extends": ["acme-corp-standards"],
"context": {
"domain": "e-commerce",
"entities": ["Product", "Order", "Customer"],
"apis": [
{
"name": "OrdersAPI",
"baseUrl": "/api/orders",
"methods": ["GET", "POST", "PUT", "DELETE"]
}
]
}
}
Playbook の継承
Playbooks は、スケーラブルな設定のために継承をサポートしています:
Universal TypeScript
↓
Vue 3 + TypeScript
↓
Acme Corp Standards
↓
Project-Specific Rules
AI統合
Hatcher は、関連する Playbook コンテキストをAIプロンプトに自動的に注入します:
コンテキストの選択
- 自動: ファイルタイプとプロジェクト構造に基づく
- 手動: 使用する Playbooks を明示的に指定
- スマート: 時間の経過とともに好みから学習
プロンプトの強化
AIエンジンは次のような構造化されたコンテキストを受け取ります:
CONTEXT: Vue 3 Component Creation
PLAYBOOK: vue3-typescript, acme-corp-standards
RULES:
- Use Composition API with <script setup>
- Props must use TypeScript interfaces
- Components must be PascalCase
- API calls go through service layer
マーケットプレイスと共有
コミュニティ Playbooks
コミュニティによって作成された Playbooks を閲覧してインストールします:
- フレームワーク固有: 人気のあるライブラリに最適化されたパターン
- 業界固有: さまざまなセクターのドメイン知識
- チームでテスト済み: 成功したプロジェクトからの実世界の規約
Playbooks の公開
チームの専門知識を共有します:
hatcher playbook publish acme-corp-standards
バージョン管理
- セマンティックバージョニング: 変更と互換性を追跡
- 更新通知: コミュニティの改善を最新の状態に保つ
- ロールバックサポート: 問題のある更新を安全に元に戻す
設定
グローバル Playbooks
すべてのプロジェクトのデフォルト Playbooks を設定します:
{
"globalPlaybooks": ["typescript-standards", "git-conventions"]
}
プロジェクトオーバーライド
hatcher.config.json
でプロジェクト固有の Playbooks を指定します:
{
"playbooks": ["vue3-typescript", "team-standards", "./custom-playbook.json"]
}
条件付き読み込み
コンテキストに基づいて異なる Playbooks を読み込みます:
{
"conditional": {
"**/*.test.ts": ["testing-standards"],
"src/components/**": ["component-standards"],
"src/api/**": ["api-standards"]
}
}
ベストプラクティス
シンプルから始める
フレームワークの基本から始めて、徐々にチーム固有のルールを追加します:
- フレームワーク Playbook をインストール: 即座に80%のカバレッジを取得
- チームルールを追加: 独自の規約を捕捉
- 時間をかけて洗練: 実際の使用に基づいて更新
最新の状態を保つ
- 定期的なレビュー: パターンが進化するにつれて Playbooks を更新
- チームフィードバック: Playbook のメンテナンスにチーム全体を巻き込む
- バージョン管理: コードと一緒に Playbook の変更を追跡
影響を測定する
- 一貫性メトリクス: 定義されたパターンへの準拠を追跡
- 速度の改善: 開発速度の向上を測定
- 品質指標: コードレビューフィードバックの削減を監視
将来の機能
AI生成 Playbooks
既存のコードベースを分析することで Playbooks を自動生成します。
リアルタイム検証
コーディング中のライブフィードバックで、Playbook の準拠を保証します。
チームコラボレーション
Playbook の更新のための協力的な編集と承認ワークフロー。
Playbooks システムは、AIを汎用的なコードジェネレーターから、正確な要件と規約を理解するチームの専門メンバーに変換します。
最初の Playbook を作成
AIを正確な標準に従う専門のチームメンバーに変換しましょう