| name | prompt-improver |
| description | Collect feedback on task completion to improve prompts, CLAUDE.md, and skills. Use when the user says "improve prompts", "analyze feedback", "reflect on task", "/improve", or when Stop hook triggers for feedback collection. Enables continuous improvement loop for Claude Code configurations. |
| version | 1.1.0 |
Prompt Improver
ã¿ã¹ã¯å®äºæã®ãã£ãŒãããã¯ãåéã»åæããCLAUDE.md/SKILL/hooksã®ç¶ç¶çæ¹åãæ¯æŽããã¹ãã«ã
æŠèŠ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â èªå·±æ¹åã«ãŒã â
â â
â ã¿ã¹ã¯å®è¡ â Stop hook â ãã£ãŒãããã¯åé â ä¿å â
â â â
â æ¹åé©çš â æ¹åææ¡çæ â ãã¿ãŒã³åæ â èç©ããŒã¿ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ã¢ãŒããã¯ãã£
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â prompt-improver â
ââââââââââââââââ¬ââââââââââââââââââ¬ââââââââââââââââââââââââ€
â Collection â Analysis â Recommendation â
â (èªå) â (/improve) â (ã€ã³ã¿ã©ã¯ãã£ã) â
ââââââââââââââââŒââââââââââââââââââŒââââââââââââââââââââââââ€
â Stop hook â analyze_ â generate_ â
â collect_ â feedback.sh â improvements.sh â
â feedback.sh â â recommend_ â
â â â structure.py â
ââââââââââââââââŽââââââââââââââââââŽââââââââââââââââââââââââ
| Part | ããªã¬ãŒ | å
¥å | åºå |
|---|
| Collection | Stop hookïŒèªåïŒ | ãã©ã³ã¹ã¯ãªãã | feedback/*.yaml |
| Analysis | /improve | feedback/*.yaml | ãã¿ãŒã³ã¬ããŒã |
| Recommendation | ã€ã³ã¿ã©ã¯ãã£ã | ãã¿ãŒã³ã¬ããŒã | æ¹åææ¡ã»é©çš |
Part 1: ãã£ãŒãããã¯åéïŒCollectionïŒ
Stop hookã§ã¿ã¹ã¯å®äºæã«æ¡ä»¶ã倿ããŠèªååéã
å鿡件ïŒããããã«è©²åœããå Žåã®ã¿ïŒ
- Write/Edit/Bashã§å®è³ªçãªã³ãŒã倿Žãè¡ã£ã
- ã¹ãã«ïŒ/hearing, /architecture, /apiçïŒã䜿çšãã
- ãŠãŒã¶ãŒããä¿®æ£æç€ºã»äžæºã»ææããã£ã
- ãšã©ãŒãäºæããªã倱æãçºçãã
- 3ã¹ããã以äžã®è€éãªã¿ã¹ã¯ãå®è¡ãã
ã¹ãããæ¡ä»¶ïŒä»¥äžã®ã¿ã®å Žåã¯åéããªãïŒ
- 質åãžã®åçã»èª¬æã®ã¿
- git status/Read/Globçã®é²èЧæäœã®ã¿
- 1-2ã¿ãŒã³ã®è»œåŸ®ãªå¯Ÿè©±
- èšå®ç¢ºèªãæ
å ±è¡šç€ºã®ã¿
åéããæ
å ±
- ã¿ã¹ã¯ã®èŠçŽãšçµæïŒæå/éšåæå/倱æïŒ
- åé¡ç¹ãšé¢é£ããããã³ãã/SKILLãžã®çŽä»ã
- ãŠãŒã¶ãŒããã®ææïŒããã°ïŒ
- æ¹åã®ç€ºå
Part 2: ãã£ãŒãããã¯åæïŒAnalysisïŒ
/improve ã³ãã³ãã§èµ·åãèç©ããããã£ãŒãããã¯ããã¿ãŒã³åæã
çµ±èšã»ãã¿ãŒã³åæ
./scripts/analyze_feedback.sh --stats
./scripts/analyze_feedback.sh
./scripts/analyze_feedback.sh --target CLAUDE.md
æ§é æ¹ååè£ã®æœåº
ãã£ãŒãããã¯ãã¿ãŒã³ãããæ°ã¹ãã«äœæãæ¢åã¹ãã«åå²ã®æšå¥šãçæã
python3 ~/.claude/skills/prompt-improver/scripts/recommend_structure.py
åºå:
- æ°ã¹ãã«åè£: æ¢åã«ãããã§ããªã課é¡ãã¿ãŒã³ïŒ3å以äžã®ç¹°ãè¿ããäœä¿¡é ŒåºŠïŒ
- åå²åè£: 1ã¹ãã«å
ã§ç¬ç«ããŒãã忣ïŒJaccardé¡äŒŒåºŠãäœãã¯ã©ã¹ã¿ãŒïŒ
å€æåºæº:
| åè£çš®å¥ | æ¡ä»¶ |
|---|
| æ°ã¹ãã« | å系統ããŒã¯ãŒãã3å以äžãavg_confidence < 0.5ãlinked_target ãªã |
| åå² | åäžã¹ãã«ãžã®ææã2+ã¯ã©ã¹ã¿ãŒã«åæ£ãã¯ã©ã¹ã¿ãŒéé¡äŒŒåºŠ < 0.3 |
æ¡åŠå€æ:
- æ°ã¹ãã«æšå¥š â ãäœæãã / ä¿çãããã確èª
- å岿šå¥š â ãåå²ãã / æ¢åã«è¿œèšã§æžãŸãããã確èª
Part 3: æ¹åææ¡ïŒRecommendationïŒ
åæçµæããå
·äœçãªæ¹åæ¡ãçæããã€ã³ã¿ã©ã¯ãã£ãã«é©çšã
æ¹åæ¡ã®çæãšé©çš
./scripts/generate_improvements.sh
./scripts/update_triage.sh fb-20260201-001 --status fixed --fix-ref "commit:abc123"
ãã£ãŒãããã¯ããŒã¿æ§é
~/.claude/feedback/ ã« YAML 圢åŒã§ä¿åã詳现㯠references/feedback_schema.md åç
§ã
å¿
é ãã£ãŒã«ã
id: fb-20260201-001
created_at: 2026-02-01T12:00:00Z
task_summary: "èªèšŒæ©èœã®å®è£
"
outcome:
success: false
score: 0.6
rationale: "åºæ¬æ©èœã¯åäœããããšããžã±ãŒã¹æªå¯Ÿå¿"
issues:
- issue_id: issue-001
type: prompt_unclear
description: "CLAUDE.mdã®æç€ºãææ§ã§èª€è§£ãã"
target:
type: claude_md
path: ~/.claude/CLAUDE.md
section: "## ã³ãŒãã£ã³ã°èŠçŽ"
severity: high
æšå¥šãã£ãŒã«ã
context:
skill_name: architecture
skill_version: 1.2.0
prompt_hash: abc123
model: claude-opus-4-5-20251101
source: user
user_feedback: "ãã£ãšå
·äœçãªäŸã欲ããã£ã"
proposed_actions:
- scope: skill
change_summary: "architectureã¹ãã«ã«ã³ãŒãäŸã远å "
expected_impact: high
effort: low
triage:
status: open
priority: high
labels: [documentation, example]
hooksèšå®
Stop hookïŒã¿ã¹ã¯å®äºæãã£ãŒãããã¯åéïŒ
type: "command" ã䜿çšããŠã·ã§ã«ã¹ã¯ãªããã§ç¢ºå®ã«åéã
1. ã¹ã¯ãªããé
眮
~/.claude/scripts/collect_feedback.sh ãäœæïŒå®è¡æš©éä»äžå¿
é ïŒã
ã¹ã¯ãªããã¯ä»¥äžãè¡ã:
- æšæºå
¥åãããã©ã³ã¹ã¯ãªããæ
å ±ãåãåã
- å鿡件ãå€å®ïŒã³ãŒã倿޿°ãããŒã«äœ¿çšæ°ãã¡ãã»ãŒãžæ°ïŒ
- æ¡ä»¶ãæºããå Žåã®ã¿ãã£ãŒãããã¯ãã¡ã€ã«ãçæ
2. settings.json ã«è¿œå
{
"hooks": {
"Stop": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "~/.claude/scripts/collect_feedback.sh"
}
]
}
]
}
}
å鿡件ïŒã¹ã¯ãªããå
ã§å€å®ïŒ
- Write/Edit/Bash ããŒã«äœ¿çšïŒã³ãŒã倿ŽïŒããã£ã
- ããŒã«äœ¿çšã3å以äžïŒè€éãªã¿ã¹ã¯ïŒ
- ã¡ãã»ãŒãžäº€æã6å以äžïŒå®è³ªçãªã»ãã·ã§ã³ïŒ
- ãã ãã¡ãã»ãŒãž4åæªæºã¯ã¹ããã
Note: äºåã«ä»¥äžãå®è¡:
mkdir -p ~/.claude/feedback ~/.claude/scripts
chmod +x ~/.claude/scripts/collect_feedback.sh
èªåéç¥æ©èœ
ãã£ãŒãããã¯ãéŸå€ïŒããã©ã«ã5ä»¶ïŒä»¥äžæºãŸããšãã¿ã¹ã¯çµäºæã«éç¥ã衚瀺:
ð æªåŠçãã£ãŒãããã¯: 7ä»¶ â /improve ã§æ¹åé©çš
éŸå€ã¯ç°å¢å€æ°ã§å€æŽå¯èœ:
export FEEDBACK_THRESHOLD=10
䜿çšäŸ
ãã£ãŒãããã¯åéã®æµãïŒåéãããå ŽåïŒ
User: "èªèšŒæ©èœãå®è£
ããŠ"
Claude: [å®è£
äœæ¥... Write/Edit ã§è€æ°ãã¡ã€ã«å€æŽ]
[ã¿ã¹ã¯å®äº â Stop hookçºç« â å鿡件ã«è©²åœ]
Claude: æ¯ãè¿ããå®è¡ããŸã...
- çµæ: éšåæåïŒåºæ¬æ©èœOKããšããžã±ãŒã¹æªå¯Ÿå¿ïŒ
- åé¡: architectureã¹ãã«ã«JWTèªèšŒã®å
·äœäŸããªãã£ã
- æ¹åæ¡: skills/architecture/SKILL.md ã«èªèšŒãã¿ãŒã³äŸã远å
ãã£ãŒãããã¯ãä¿åããŸãã: ~/.claude/feedback/fb-20260201-001.yaml
ã¹ããããããå Žå
User: "git status èŠããŠ"
Claude: [git status å®è¡ãçµæè¡šç€º]
[ã¿ã¹ã¯å®äº â Stop hookçºç« â ã¹ãããæ¡ä»¶ã«è©²åœ]
ïŒäœãåºåããçµäºïŒ
æ¹ååæã®å®è¡
User: "/improve"
Claude: ãã£ãŒãããã¯ãåæããŸã...
ãé »åºãã¿ãŒã³ã
1. "å
·äœäŸäžè¶³" - 5ä»¶ïŒarchitecture, api, databaseïŒ
2. "ææ§ãªæç€º" - 3ä»¶ïŒCLAUDE.mdïŒ
ãåªå
æ¹å察象ã
1. skills/architecture/SKILL.md
- åé¡: èªèšŒã»ã»ãã¥ãªãã£ãã¿ãŒã³ã®äŸãäžè¶³
- ææ¡: JWT/OAuth2ã®å®è£
äŸã远å
- 圱é¿åºŠ: high / å·¥æ°: low
2. ~/.claude/CLAUDE.md
- åé¡: "é©åã«åŠç"ãªã©ã®ææ§è¡šçŸ
- ææ¡: å
·äœçãªå€æåºæºãæèš
- 圱é¿åºŠ: medium / å·¥æ°: medium
ã³ãã³ã
| ã³ãã³ã | 説æ |
|---|
/improve | ãã£ãŒãããã¯åæãšæ¹åææ¡ãå®è¡ |
/improve --stats | ãã£ãŒãããã¯çµ±èšã衚瀺 |
Note: æ¹åé©çšã¯ AskUserQuestion ã䜿çšããŠã€ã³ã¿ã©ã¯ãã£ãã«å®æœ
äŸåé¢ä¿
æšæºUnixããŒã«ã®ã¿ïŒè¿œå ã€ã³ã¹ããŒã«äžèŠïŒ:
- bash, awk, grep, sed, date, sort, uniq, head, stat, mv, mkdir
ãã©ã€ãã·ãŒæ³šæ
â ïž ãã£ãŒãããã¯èšé²æã®æ³šæ:
- APIããŒããã¹ã¯ãŒãçã®ç§å¯æ
å ±ã¯èšé²ããªã
- å¿
èŠã«å¿ããŠ
privacy.redacted: true ãèšå®
- å人æ
å ±ã¯äŒãåã«ãã
ãªãœãŒã¹
scripts/
collect_feedback.sh: ãã£ãŒãããã¯åéã»ä¿åïŒååçIDçæïŒ
analyze_feedback.sh: ãã¿ãŒã³åæïŒ--stats, --target察å¿ïŒ
generate_improvements.sh: æ¹åææ¡çæ
recommend_structure.py: æ§é æ¹åã¬ããŒãçæïŒæ°ã¹ãã«åè£/åå²åè£ïŒ
update_triage.sh: ããªã¢ãŒãžã¹ããŒã¿ã¹æŽæ°ïŒtriageæªèšå®æã¯èªå远å ïŒ
archive_feedback.sh: æ¹åæžã¿/å€ããã°ãã¢ãŒã«ã€ã
ã¢ãŒã«ã€ãæ©èœ
æ¹åæžã¿ãå€ããã£ãŒãããã¯ãæŽç:
./scripts/archive_feedback.sh --all-fixed
./scripts/archive_feedback.sh --status verified
./scripts/archive_feedback.sh --older-than 30
./scripts/archive_feedback.sh --all-fixed --dry-run
ã¢ãŒã«ã€ãå
: ~/.claude/feedback/archive/
references/
feedback_schema.md: ãã£ãŒãããã¯ããŒã¿ã®å®å
šã¹ããŒãå®çŸ©
assets/
hooks/stop_hook.json: Stop hookèšå®äŸ