blueprint-generate-rules について
製品要件ドキュメント(PRD)からプロジェクト固有のルールを抽出し、分野別のファイルとして生成するエージェントスキルです。要件に基づくアーキテクチャ、テスト、実装の指針を整備したいプロジェクト向けです。
主な機能
- 01複数の PRD からパターンを集約
- 024 分野のルールファイルを生成
- 03ファイルパスに応じたルール適用
- 04生成状況と PRD ハッシュを記録
活用シーン
- 01既存 PRD からプロジェクトルールを作成
- 02テストやソース向けのルールを限定
- 03変更済みの生成ルールを確認・処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill blueprint-generate-rulesインストール後、Claude Code で/blueprint-generate-rulesを入力して読み込まれたか確認します。
詳細
製品要件定義書からプロジェクト固有のルールを生成します。
このスキルを使用するタイミング
| このスキルを使用する場合... | 代替手段を使用する場合... |
|---|---|
| 既存の PRD からルールを生成する必要がある | /blueprint:rules を使用してルールを手動で作成・編集する |
| 特定のファイル形式を対象とするパススコープ付きルールが必要 | /blueprint:claude-md を使用して一般的なプロジェクト指示を作成する |
| 要件からルールの作成を自動化する | PRD を参照せずにカスタムルールを作成する |
| PRD からアーキテクチャやテストのパターンを抽出する | 特定のコンテキスト向けの単発のルールを作成する必要がある |
ルールは、structure.generated_rules_path で設定されたディレクトリに生成されます(フィールドがない場合のデフォルトは .claude/rules/ です)。paths フロントマターを含むルールは、一致するファイルを作業する際に条件付きで読み込まれます。
手順
前提条件:
docs/prds/ディレクトリが存在するdocs/prds/に PRD ファイルが少なくとも 1 つある
-
出力先のパスを解決する:
docs/blueprint/manifest.jsonからstructure.generated_rules_pathを読み取ります(デフォルトは.claude/rules/):RULES_DIR=$(jq -r '.structure.generated_rules_path // ".claude/rules/"' docs/blueprint/manifest.json) mkdir -p "$RULES_DIR"以降のすべての読み取り/書き込みには
$RULES_DIRを使用します。これにより、Blueprint が管理するルールと、親の.claude/rules/ディレクトリに手書きされたファイルを分離できます(issue #1043)。 -
すべての PRD を探して読み込む:
- Glob を使用して
docs/prds/内のすべての.mdファイルを検索する - 各 PRD ファイルを読み込む
- PRD が見つからない場合は、エラーを報告して、先に PRD を作成するよう提案する
- Glob を使用して
-
既存の生成済みルールを確認する:
ls "$RULES_DIR" 2>/dev/null- 競合チェックの対象は
$RULES_DIR配下のファイルのみにする。親の.claude/rules/は決して対象にしない。$RULES_DIRの外にある手書きファイルは、このチェックでは認識されません。 - ルールが存在する場合は、マニフェストでコンテンツハッシュを確認する
- 現在のコンテンツハッシュと保存されたハッシュを比較する
- 変更されている場合は、上書き、スキップ、バックアップの選択肢を提示する
- 競合チェックの対象は
-
PRD を分析して情報を抽出する(すべての PRD から集約):
アーキテクチャのパターン:
- プロジェクトの構成と編成
- アーキテクチャのスタイル(MVC、レイヤード、ヘキサゴナルなど)
- デザインパターン
- 依存性注入の方式
- エラー処理の方針
- コード編成の規約
- 統合パターン
テスト戦略:
- TDD ワークフローの要件
- テストの種類(ユニット、統合、E2E)
- モックのパターン
- カバレッジ要件
- テストの構成と編成
- テストコマンド
実装ガイド:
- API/エンドポイントの実装方法
- UI コンポーネントの実装方法(該当する場合)
- データベース操作のパターン
- 外部サービス統合のパターン
- バックグラウンドジョブのパターン(該当する場合)
品質基準:
- コードレビュー用チェックリスト
- パフォーマンスのベースライン
- セキュリティ要件(OWASP、バリデーション、認証)
- コードスタイルとフォーマット
- ドキュメント要件
- 依存関係の管理
-
集約された 4 つのドメインルールを生成する:
$RULES_DIR(設定されたstructure.generated_rules_path)に作成します:architecture-patterns.md:- すべての PRD から集約したパターン
- PRD から抽出したプロジェクト固有のパターンを記入する
- 可能な場合はコード例を含める
- 特定のファイル/ディレクトリを参照する
testing-strategies.md:- すべての PRD から集約したテスト要件
- PRD の TDD 要件を記入する
- カバレッジ要件を含める
- プロジェクトのテストコマンドを含める
- テストが特定のディレクトリにある場合は
pathsフロントマターを追加する:--- paths: - "tests/**/*" - "**/*.{test,spec}.*" ---
implementation-guides.md:- すべての PRD から集約した実装パターン
- 機能の種類ごとの段階的なパターンを記入する
- コード例を含める
- 該当する場合はソースパスを対象にする:
--- paths: - "src/**/*" - "lib/**/*" ---
quality-standards.md:- すべての PRD の品質要件を集約します
- PRD からパフォーマンスのベースラインを記入します
- PRD からセキュリティ要件を記入します
- プロジェクト固有のチェックリストを作成します
パスのスコープ指定に関するガイダンス:ルールが特定のファイル形式やディレクトリにのみ適用される場合は、
pathsフロントマターを追加します。これによりコンテキストのノイズが減り、Claude は一致するファイルを扱うときにのみルールを読み込みます。簡潔なパターンには、波括弧展開を使用します:*.{ts,tsx}、src/{api,routes}/**/*。 -
生成状況の追跡情報でマニフェストを更新します:
generated_rules_pathの変更後もレジストリが安定するよう、ファイル名は$RULES_DIRからの相対パスで保存します。パス自体はstructure.generated_rules_pathに格納し、ここでのキーにはディレクトリを含まないファイル名を指定します。{ "generated": { "rules": { "architecture-patterns.md": { "source": "docs/prds/*", "source_hash": "sha256:...", "generated_at": "[ISO timestamp]", "plugin_version": "3.0.0", "content_hash": "sha256:...", "status": "current" }, "testing-strategies.md": { ... }, "implementation-guides.md": { ... }, "quality-standards.md": { ... } } } } -
タスクレジストリを更新します:
docs/blueprint/manifest.jsonのタスクレジストリ項目を更新します:jq --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ --argjson processed "${PRDS_READ:-0}" \ --argjson created "${RULES_GENERATED:-0}" \ '.task_registry["generate-rules"].last_completed_at = $now | .task_registry["generate-rules"].last_result = "success" | .task_registry["generate-rules"].context.source_prd_hashes = ($source_prd_hashes // {}) | .task_registry["generate-rules"].stats.runs_total = ((.task_registry["generate-rules"].stats.runs_total // 0) + 1) | .task_registry["generate-rules"].stats.items_processed = $processed | .task_registry["generate-rules"].stats.items_created = $created' \ docs/blueprint/manifest.json > tmp.json && mv tmp.json docs/blueprint/manifest.jsonsource_prd_hashesについては、各 PRD ファイルのsha256sumを計算し、--argjsonで JSON オブジェクトとして渡します。 -
報告します:
Rules generated from PRDs! Created in $RULES_DIR (configured via structure.generated_rules_path): - architecture-patterns.md - testing-strategies.md - implementation-guides.md - quality-standards.md PRDs analyzed: - docs/prds/[List PRD files] Key patterns extracted: - Architecture: [Brief summary] - Testing: [Brief summary] - Implementation: [Brief summary] - Quality: [Brief summary] Rules are immediately available - Claude auto-discovers them based on context! -
次のアクションを確認します(AskUserQuestion を使用):
question: "Rules generated. What would you like to do next?" options: - label: "Generate workflow commands (Recommended)" description: "Create /project:continue and /project:test-loop commands" - label: "Update CLAUDE.md" description: "Regenerate project overview document with new rules" - label: "Review generated rules" description: "I'll examine and refine the rules manually" - label: "I'm done for now" description: "Exit - rules are already available"選択に応じて実行します:
- 「ワークフローコマンドを生成する」→
/blueprint:generate-commandsを実行します - 「CLAUDE.md を更新する」→
/blueprint:claude-mdを実行します - 「生成したルールを確認する」→ ルールファイルの場所を表示して終了します
- 「今回はここまで」→ 終了します
- 「ワークフローコマンドを生成する」→
重要:
- ルールは、明確な見出しを含む Markdown ファイルにしてください
- ルールの内容は具体的で、焦点を絞ってください
- パターンを具体化するコード例を含めてください
- 追跡可能性を確保するため、PRD のセクションを参照してください
- ルールは単なるドキュメントではなく、実行可能な内容にしてください
エラー処理:
- PRD が見つからない場合 → まず計画を導出するようユーザーに案内します(
/blueprint:derive-plans) - PRD が未完成の場合 → 欠落しているセクションに TODO マーカーを付けてルールを生成します
- 既存のルールが変更されている場合 → 上書き前にバックアップするか確認します