mcpField
B
blueprint-generate-rules

blueprint-generate-rules

github.com/laurigatesエージェントワークフロー5956 回インストール1 日前に更新
リポジトリ

blueprint-generate-rules について

製品要件ドキュメント(PRD)からプロジェクト固有のルールを抽出し、分野別のファイルとして生成するエージェントスキルです。要件に基づくアーキテクチャ、テスト、実装の指針を整備したいプロジェクト向けです。

主な機能

  1. 01複数の PRD からパターンを集約
  2. 024 分野のルールファイルを生成
  3. 03ファイルパスに応じたルール適用
  4. 04生成状況と PRD ハッシュを記録

活用シーン

  1. 01既存 PRD からプロジェクトルールを作成
  2. 02テストやソース向けのルールを限定
  3. 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 つある
  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)。

  2. すべての PRD を探して読み込む:

    • Glob を使用して docs/prds/ 内のすべての .md ファイルを検索する
    • 各 PRD ファイルを読み込む
    • PRD が見つからない場合は、エラーを報告して、先に PRD を作成するよう提案する
  3. 既存の生成済みルールを確認する:

    ls "$RULES_DIR" 2>/dev/null
    
    • 競合チェックの対象は $RULES_DIR 配下のファイルのみにする。親の .claude/rules/ は決して対象にしない。$RULES_DIR の外にある手書きファイルは、このチェックでは認識されません。
    • ルールが存在する場合は、マニフェストでコンテンツハッシュを確認する
    • 現在のコンテンツハッシュと保存されたハッシュを比較する
    • 変更されている場合は、上書き、スキップ、バックアップの選択肢を提示する
  4. PRD を分析して情報を抽出する(すべての PRD から集約):

    アーキテクチャのパターン:

    • プロジェクトの構成と編成
    • アーキテクチャのスタイル(MVC、レイヤード、ヘキサゴナルなど)
    • デザインパターン
    • 依存性注入の方式
    • エラー処理の方針
    • コード編成の規約
    • 統合パターン

    テスト戦略:

    • TDD ワークフローの要件
    • テストの種類(ユニット、統合、E2E)
    • モックのパターン
    • カバレッジ要件
    • テストの構成と編成
    • テストコマンド

    実装ガイド:

    • API/エンドポイントの実装方法
    • UI コンポーネントの実装方法(該当する場合)
    • データベース操作のパターン
    • 外部サービス統合のパターン
    • バックグラウンドジョブのパターン(該当する場合)

    品質基準:

    • コードレビュー用チェックリスト
    • パフォーマンスのベースライン
    • セキュリティ要件(OWASP、バリデーション、認証)
    • コードスタイルとフォーマット
    • ドキュメント要件
    • 依存関係の管理
  5. 集約された 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}/**/*。

  6. 生成状況の追跡情報でマニフェストを更新します:

    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": { ... }
        }
      }
    }
    
  7. タスクレジストリを更新します:

    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.json
    

    source_prd_hashes については、各 PRD ファイルの sha256sum を計算し、--argjson で JSON オブジェクトとして渡します。

  8. 報告します:

    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!
    
  9. 次のアクションを確認します(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 マーカーを付けてルールを生成します
  • 既存のルールが変更されている場合 → 上書き前にバックアップするか確認します

コメント