| 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 ã䜿ããã»ãã·ã§ã³ãã°ããæ§é åããŒã¿ãæœåºã
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 è§£æ
ã»ãã·ã§ã³äžã®ã³ãŒã倿ŽãååŸã
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 ã®ãã³ãã¬ãŒããé©çšããŠããããªãã£ãããšããæ€åºã
ããã»ã¹:
- 倿Žãã¡ã€ã«ã®çš®é¡ã«å¿ããŠé¢é£ããåäºå®ããã³ãããéžæ
- AI ãåããã³ããã«åçããèŠèœãšããæŽãåºã
- ããã®ã¿ã¹ã¯ã§å¥ã®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 圢åŒã§çæãããã€ãçµç±ã§ä¿å:
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 èšå®äŸ