Skip to main content

self-improve

Analyze accumulated blueprint usage logs and generate improvement PRs for the plugin itself. Use when the user wants to "improve blueprint plugin", "analyze blueprint logs", "self-improve", "check improvement opportunities", "generate improvement PR", "review plugin usage patterns", "blueprint-improve", or "show blueprint stats". Also use when the user says "blueprint改善", "ログ分析", "自己改善", "改善PRを出す", "プラグインを改善する", "使用パターンを分析", or "ログの統計を見せて". This skill reads usage logs from ~/.claude/blueprint-logs/ and identifies recurring patterns, common errors, and user correction frequencies to propose concrete improvements to the blueprint-plugin's core specs, skills, and templates.

インストールへ移動

ソース情報

リポジトリ
sizukutamago/blueprint-plugin
ソースの最終更新活動
2026年3月14日 15:27
検出された SKILL.md の言語
日本語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
4 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
self-improve
description
Analyze accumulated blueprint usage logs and generate improvement PRs for the plugin itself. Use when the user wants to "improve blueprint plugin", "analyze blueprint logs", "self-improve", "check improvement opportunities", "generate improvement PR", "review plugin usage patterns", "blueprint-improve", or "show blueprint stats". Also use when the user says "blueprint改善", "ログ分析", "自己改善", "改善PRを出す", "プラグインを改善する", "使用パターンを分析", or "ログの統計を見せて". This skill reads usage logs from ~/.claude/blueprint-logs/ and identifies recurring patterns, common errors, and user correction frequencies to propose concrete improvements to the blueprint-plugin's core specs, skills, and templates.
version
1.1.0
core_ref
core/self-improve.md
# Self-Improve スキル (Claude Code) blueprint パイプラインの使用ログを分析し、改善案を PR として提出するスキル。 ログは SessionEnd Hook で自動収集され、このスキルで分析・改善サイクルを回す。 ## 仕様参照 分析ポリシーは `core/self-improve.md` に定義。 ログスキーマは `{baseDir}/references/log-schema.md` を参照。 分析サマリースキーマは `{baseDir}/references/analysis-schema.md` を参照。 ## 前提条件 | 条件 | 必須 | 説明 | |------|------|------| | 未分析ログ | ○ | `~/.claude/blueprint-logs/` に `triage.status: open` のログが 1 件以上 | | `gh` CLI | △ | PR 作成時のみ必要 | | blueprint-plugin リポジトリ | △ | PR 作成時のみ。パスは自動検出(`$CLAUDE_PLUGIN_ROOT`) | ## ツール | ツール | 用途 | |--------|------| | Bash | `analyze_logs.sh` 実行、`gh pr create`、git 操作 | | Read | ログファイル読み込み、改善対象ファイル読み込み | | Write/Edit | 改善案の適用 | | Glob | ログファイルの検索 | | AskUserQuestion | 改善案のユーザー承認 | ## 出力 | 出力 | 説明 | |------|------| | 統計レポート | YAML 形式のログ分析サマリー(stdout 表示) | | 改善 PR | `sizukutamago/blueprint-plugin` への GitHub PR | | 分析サマリー | `~/.claude/blueprint-logs/analysis/analysis-{YYYYMMDD}.yaml` | | トリアージ更新 | 対象ログの `triage.status` を `pr_created` に更新 | ## コマンドオプション | オプション | 説明 | ワークフロー | |-----------|------|-------------| | `/blueprint-improve` | 分析 → 改善案提示 → PR 作成 | Step 1〜6 全実行 | | `/blueprint-improve --stats` | 統計レポートのみ表示 | Step 1 のみ実行して終了 | | `/blueprint-improve --cleanup` | 期限切れログの削除 | 専用フローを実行(下記参照) | ## ワークフロー ### Step 0: モード判定 引数を確認し、モードに応じて分岐する: - `--stats` → Step 1 のみ実行して統計レポートを表示し終了 - `--cleanup` → 期限切れログ削除フローへ(下記「cleanup モード」参照) - 引数なし → Step 1〜6 を順に実行 ### Step 1: ログ読み込みと統計レポート生成 ```bash # 未分析ログ数の確認 bash "${baseDir}/scripts/analyze_logs.sh" --count # 統計レポートの生成 bash "${baseDir}/scripts/analyze_logs.sh" --details ``` 未分析ログが 0 件の場合は「分析対象のログがありません」と報告して終了。 統計レポートの出力を読み取り、以下を把握: - ログ件数と期間(log_range の from / to) - Gate findings の P0/P1/P2 分布 - エラー数とユーザー修正数 - category 別・phase 別・stage 別の分布 `--stats` モードの場合はここで統計レポートをユーザーに表示して終了。 ### Step 2: パターン分析 `core/self-improve.md` の分析ポリシーに従い、統計レポートから改善パターンを特定する。 1. **recurring_findings の検出**: category 別集計から閾値(3 回以上)を超えるパターンを抽出 2. **common_errors の検出**: phase 別集計から反復エラーを抽出 3. **user_corrections の検出**: stage 別修正頻度から生成品質の問題を特定 検出したパターンから、改善対象ファイルを `core/self-improve.md` の「改善案のカテゴリ」表に従い特定する: | パターン種別 | 対象ファイル | 改善カテゴリ | |-------------|-------------|-------------| | Gate の category 反復 | `core/review-criteria.md` | review_criteria_update | | /requirements 関連の修正 | `core/requirements.md`, `skills/requirements/SKILL.md` | requirements_update | | /spec 関連の修正 | `core/spec.md` | spec_update | | Contract 関連の指摘 | `core/contract-schema.md` | schema_update | | 実装規約のエラー | `core/defaults/` | default_update | | テンプレート品質 | `skills/*/references/` | template_update | | スキル手順の問題 | `skills/*/SKILL.md` | skill_update | 改善対象ファイルを Read ツールで読み込み、具体的な改善案を生成する。 ### Step 3: 改善案提示 + ユーザー承認 AskUserQuestion で改善案を一覧提示する。以下のフォーマットで提示: ``` ## 改善案一覧({count} 件) 分析期間: {from} ~ {to}({log_count} セッション) ### [1] {改善タイトル} ⬆ {priority} - 根拠: {category} が {count} 回検出 - 対象: {target_file} - 内容: {description} ### [2] ... --- 採用する改善案の番号を選択してください(例: 1,3) 全て採用: all / 全て棄却: none ``` ユーザーが採用/棄却を選択。全棄却の場合はログの triage.status を `analyzed` に更新して終了。 ### Step 4: 変更適用 + PR 作成 ブランチ作成前に、blueprint-plugin リポジトリの状態を確認する: ```bash PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT}" # 作業ディレクトリの状態確認(未コミット変更があれば警告) git -C "$PLUGIN_ROOT" status --short # feature branch を作成(日時で一意性を保証) BRANCH_NAME="self-improve/$(date +%Y%m%d-%H%M%S)" git -C "$PLUGIN_ROOT" checkout -b "$BRANCH_NAME" ``` 未コミット変更がある場合はユーザーに警告し、続行するか確認する。 承認された改善を Edit/Write ツールで適用した後: ```bash # 変更したファイルのみを明示的に add(git add -A は使わない) git -C "$PLUGIN_ROOT" add <変更したファイルパス1> <変更したファイルパス2> ... git -C "$PLUGIN_ROOT" commit -m "$(cat <<'EOF' self-improve: [改善の要約] EOF )" # push + PR 作成 git -C "$PLUGIN_ROOT" push -u origin "$BRANCH_NAME" PR_URL=$(gh pr create --repo sizukutamago/blueprint-plugin \ --title "self-improve: [改善の要約]" \ --body "$(cat <<'EOF' ## Summary Blueprint self-improvement: {改善の要約} ## Evidence - 分析期間: {from} ~ {to} ({count} セッション) - 検出パターン: {patterns} ## Changes - {file}: {変更概要} --- Auto-generated by `/blueprint-improve` EOF )") ``` `PR_URL` を後続の Step 5 で使用するため保持する。 ### Step 5: トリアージ更新 Step 1 で分析対象となったログのみを更新する。統計レポートの `log_range.from` / `log_range.to` を使い、対象範囲を特定する: ```bash # Step 1 で取得した対象ログ一覧を使用(analyze_logs.sh が処理した open ログ) FIRST_LOG="<log_range.from の値>" LAST_LOG="<log_range.to の値>" # 対象ログのみ更新(全 open ログではなく、分析対象に含まれたもののみ) for log_file in ~/.claude/blueprint-logs/bl-*.yaml; do [ -f "$log_file" ] || continue LOG_ID=$(basename "$log_file" .yaml) # log_range 内のログのみ対象 if [[ "$LOG_ID" >= "$FIRST_LOG" && "$LOG_ID" <= "$LAST_LOG" ]] && grep -q 'status: open' "$log_file"; then sed -i '' 's/status: open/status: pr_created/' "$log_file" sed -i '' "s/analysis_range: \"\"/analysis_range: \"${FIRST_LOG} ~ ${LAST_LOG}\"/" "$log_file" sed -i '' "s|pr_url: \"\"|pr_url: \"${PR_URL}\"|" "$log_file" fi done ``` ### Step 6: 分析サマリー保存 `~/.claude/blueprint-logs/analysis/analysis-{YYYYMMDD}.yaml` に分析結果を保存。 ディレクトリが存在しない場合は作成する。 スキーマは `{baseDir}/references/analysis-schema.md` を参照。 --- ## cleanup モード `/blueprint-improve --cleanup` で実行。期限切れログ(`privacy.expires_at` が現在日時より前)を削除する。 ```bash # 期限切れログの検出 EXPIRED_COUNT=0 for log_file in ~/.claude/blueprint-logs/bl-*.yaml; do [ -f "$log_file" ] || continue EXPIRES=$(grep 'expires_at:' "$log_file" | head -1 | sed 's/.*: *//' | tr -d '"') if [ -n "$EXPIRES" ] && [[ "$(date -u +%Y-%m-%dT%H:%M:%SZ)" > "$EXPIRES" ]]; then echo "期限切れ: $(basename "$log_file") (expires: $EXPIRES)" EXPIRED_COUNT=$((EXPIRED_COUNT + 1)) fi done ``` 期限切れログがある場合、AskUserQuestion で削除確認を取ってから `rm` で削除する。 `triage.status` が `analyzed` 以降のログは TTL に関わらず保持する(`core/self-improve.md` のポリシーに従う)。 ## 原則 - **ユーザー承認必須**: PR 作成前に必ず改善案の承認を取得する - **最小変更**: 1 PR に含める改善は関連するパターンのみ。無関係な改善は分割する - **エビデンス駆動**: 全ての改善案に検出パターンと件数の根拠を添える - **重複防止**: fingerprint と analysis_range で同一ログの再分析を防ぐ - **明示的ステージング**: `git add` は変更したファイルのパスを明示的に指定する(`-A` は使わない) ## エラーハンドリング | 状況 | 対応 | |------|------| | ログ 0 件 | 「分析対象のログがありません」と報告して終了 | | `gh` CLI 未インストール | 改善案の表示まで行い、PR 作成はスキップ。手動手順を案内 | | blueprint-plugin リポが見つからない | `$CLAUDE_PLUGIN_ROOT` でフォールバック | | 分析スクリプトエラー | エラー内容を表示し、ログファイルの直接読み込みにフォールバック | | リポに未コミット変更あり | ユーザーに警告し、続行するか確認 | | ブランチ名衝突 | 日時ベースの命名(`%Y%m%d-%H%M%S`)で回避 |
GitHubで見る