Skip to main content

hurikaeri

Session retrospective with AI-KPT framework. Reviews AI autonomous actions, detects omissions via counterfactual reasoning, persists learnings. Use when user says "振り返り", "retrospective", "KPT", "session review", "/hurikaeri".

معلومات المصدر

المستودع
sizukutamago/dev-tools-plugin
آخر نشاط في المصدر
٨ فبراير ٢٠٢٦ في ١١:٠٠
لغة SKILL.md المكتشفة
اليابانية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
8 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
hurikaeri
description
Session retrospective with AI-KPT framework. Reviews AI autonomous actions, detects omissions via counterfactual reasoning, persists learnings. Use when user says "振り返り", "retrospective", "KPT", "session review", "/hurikaeri".
version
1.0.0
# hurikaeri(振り返り) セッション単位でAIの行動・判断を振り返り、学びを永続化するスキル。 ## 概要 ``` ┌─────────────────────────────────────────────────────────────┐ │ hurikaeri パイプライン │ │ │ │ Phase 1: Trace (データ収集) │ │ ┌──────────┬──────────┬──────────┐ │ │ │ JSONL │ git diff │ AI memory│ │ │ │ 解析 │ 解析 │ 回想 │ │ │ └────┬─────┴────┬─────┴────┬─────┘ │ │ └──────────┼──────────┘ │ │ ▼ │ │ Phase 2: Reflect (分析) │ │ ┌──────────────────────────────┐ │ │ │ AI-KPT + 反事実推論 │ │ │ │ (Keep/Problem/Try + Omission)│ │ │ └──────────────┬───────────────┘ │ │ ▼ │ │ Phase 3: Crystallize (永続化) │ │ ┌──────────────────────────────┐ │ │ │ 学習メモ保存 │ │ │ │ + CLAUDE.md/SKILL.md 更新 │ │ │ │ + prompt-improver 連携(任意) │ │ │ └──────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## prompt-improver との差別化 | 観点 | prompt-improver | hurikaeri | |------|----------------|-----------| | 対象 | 複数セッションの蓄積 | 今のセッション | | 視点 | 指示(入力)の改善 | 行動(プロセス)の改善 | | 分析手法 | 統計パターン | AI-KPT + 反事実推論 | | 不作為検出 | なし | あり(「何をしなかったか」) | | 出力 | ファイルパッチ | 振り返りレポート + 改善提案 | --- ## Phase 1: Trace(データ収集) 3つのデータソースからセッションの事実を抽出する。 ### 1a. トランスクリプト JSONL 解析 `extract_session_trace.py` を使い、セッションログから構造化データを抽出。 ```bash # 最新セッションのトランスクリプトを探索 TRANSCRIPT=$(ls -t ~/.claude/projects/*/sessions/*/*.jsonl 2>/dev/null | head -1) # トレース抽出 python3 "${SKILL_DIR}/scripts/extract_session_trace.py" "$TRANSCRIPT" ``` **抽出する情報:** | カテゴリ | 内容 | |---------|------| | `metrics` | ターン数、ツール使用数、変更ファイル数 | | `tool_timeline` | ツール使用の時系列(ターン、ツール名、入力サマリー、成功/失敗) | | `search_paths` | 検索・探索の軌跡(Grep/Glob/Read の対象パス) | | `changed_files` | 変更ファイル一覧(Write/Edit経由) | | `backtrack_events` | やり直し検出(同一ファイルの複数回編集) | | `errors` | ツール実行エラー | | `user_corrections` | ユーザーの修正指示 | ### 1b. git diff 解析 セッション中のコード変更を取得。 ```bash # セッション開始時の HEAD からの差分 git diff --stat HEAD~5..HEAD # 直近の変更概要 git diff HEAD~5..HEAD # 詳細な変更内容 ``` ### 1c. AI 記憶ベースの回想 AI 自身がコンテキストウィンドウ内の記憶を元に以下を列挙: - セッションで行った判断とその理由 - 迷った点や方針変更した箇所 - 暗黙に置いた前提条件 - ユーザーに確認せずに進めたこと --- ## Phase 2: Reflect(AI-KPT + 反事実推論) Phase 1 のデータを入力として、4つの観点で分析。 ### 2a. Keep(継続すべき行動) 成功パターンを特定し、根拠とともに記録。 **分析観点:** - エラーなく完了したタスク - ユーザーの修正指示が不要だった領域 - 効率的なツール使用パターン - 適切な判断が行われた箇所 ### 2b. Problem(問題のあった行動) AI の行動に問題があった箇所を特定。 **分析観点:** - `errors` に記録されたエラーとその原因 - `user_corrections` で検出された修正指示 - `backtrack_events` で見つかったやり直し - 非効率なツール使用(同じ検索の繰り返し等) - ユーザーへの確認なしで行った影響の大きい判断 **カテゴリ:** error | inefficiency | misunderstanding | oversight | wrong_approach ### 2c. Omission(不作為 — 反事実推論で検出) `references/counterfactual_prompts.md` のテンプレートを適用して「やらなかったこと」を検出。 **プロセス:** 1. 変更ファイルの種類に応じて関連する反事実プロンプトを選択 2. AI が各プロンプトに回答し、見落としを洗い出す 3. 「このタスクで別の3つのアプローチを挙げ、なぜ採用しなかったか述べよ」 **重要:** 反事実推論は `references/counterfactual_prompts.md` の必須プロンプト3つ(ベテランエンジニア視点/テスト観点/代替案検討)を必ず実施。変更内容に応じて条件付きプロンプトを追加選択。 ### 2d. Try(次回の改善アクション) Problem と Omission から具体的な改善アクションを生成。 **各 Try には以下を含める:** - 対応する Problem/Omission の ID - スコープ(immediate / session / project / global) - 永続化先の提案(CLAUDE.md / SKILL.md / メモリ) ### 2e. ユーザー確認 AskUserQuestion を使用して振り返り結果を確認: - 「この分析結果は正しいですか? 追加の気づきはありますか?」 - ユーザーのフィードバックを反映して最終化 --- ## Phase 3: Crystallize(知見の永続化) 振り返りで得た知見を永続化する。 ### 3a. KPT レポート保存 Phase 2 の分析結果を `kpt_schema.md` に準拠した YAML 形式で生成し、パイプ経由で保存: ```bash # KPT YAML を生成して標準入力経由で保存 echo "$KPT_YAML_CONTENT" | "${SKILL_DIR}/scripts/persist_learnings.sh" ``` 保存先: `~/.claude/hurikaeri/kpt-YYYYMMDD-NNN.yaml` ### 3b. CLAUDE.md / SKILL.md への改善追記 Try で「global」スコープの改善アクションがあれば、該当ファイルへの追記を提案。 **重要:** 自動適用はしない。必ず AskUserQuestion でユーザー承認を得てから適用する。 ### 3c. prompt-improver 連携(オプション) AskUserQuestion で連携するか確認: - Yes の場合: Problem を `~/.claude/feedback/` の YAML に変換して保存 - No の場合: KPT レポートのみ保存 **変換ルール:** - `problem` → `issues` (type は problem.category からマッピング) - `try` → `proposed_actions` - `metrics` → `stats` ### 3d. 振り返りサマリー表示 最終的な振り返りサマリーを出力。 ``` 【セッション振り返り】 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📋 タスク: {task_summary} ⏱ {turns}ターン / ツール{tool_count}回 ── Keep(継続) ── ✅ {keep_items} ── Problem(問題) ── ⚠️ {problem_items} ── Omission(不作為) ── 🔍 {omission_items} ── Try(次回) ── 💡 {try_items} 📁 保存先: ~/.claude/hurikaeri/kpt-YYYYMMDD-NNN.yaml ``` --- ## Stop hook(振り返り提案) セッション終了時に複雑度を判定し、振り返りを提案する。 ### 判定基準 | 条件 | 閾値 | |------|------| | JSONL行数 >= 50 かつ ツール使用 >= 10 | 実質的なセッション | | コード変更(Write/Edit)>= 5 | 多くのファイル変更 | | エラー >= 3 | 問題の多いセッション | | JSONL行数 < 20 | 除外(軽微なセッション) | ### 出力 ``` 🔄 複雑なセッションでした(turns:50, tools:15, changes:8) → /hurikaeri で振り返りを実行できます ``` --- ## 保存先 ``` ~/.claude/hurikaeri/ ├── kpt-20260208-001.yaml ├── kpt-20260208-002.yaml └── ... ``` ## 依存関係 標準Unixツール + Python 3.x 標準ライブラリ(json, re, sys, os, collections) ## コマンド | コマンド | 説明 | |---------|------| | `/hurikaeri` | セッション振り返りを実行 | ## リソース ### scripts/ - `extract_session_trace.py`: トランスクリプト JSONL からセッショントレースを抽出 - `suggest_hurikaeri.sh`: Stop hook 判定スクリプト - `persist_learnings.sh`: KPT レポート永続化ヘルパー ### references/ - `kpt_schema.md`: AI-KPT 出力の完全スキーマ定義 - `counterfactual_prompts.md`: 反事実推論プロンプト集 ### assets/ - `hooks/hurikaeri_hook.json`: Stop hook 設定例
عرض على GitHub