ぬにょす(挨拶)。
Claude に「そこ違う」と指摘すると、ちゃんと直してくれます。ただ、直るのはその成果物だけなんですよね。
次のセッションは同じ指示ファイルを読んで、同じところで同じように間違えます。で、私がまた同じ指摘をする、と。なんかイヤ。
と言うことで、指摘を受けたときの直し方を skill にしました。
この直し方を作るにあたっては、こちらの動画を大いに参考にさせていただきました。ありがとうございます。
回数で直し方を変える
キモは、同じ指摘を何回受けたかで、直す範囲を広げていくところです。
- 1回目: 成果物を直し、指摘ログに1行足す
- 2回目: 間違いを生んだ指示ファイル(AGENTS.md・CLAUDE.md・skill など)も直す
- 3回目: grep・lint・hook などの機械の検査にする
回数を数えるために、指摘ログを置いています。1行の形はこんな感じ。
- 2026-10-04 <指摘の要旨> → <そこから言える決まり>(原因の置き場)
これが1週間ほどで50件を超えました。我ながら、指摘しすぎじゃないですかね(´・_・`)
実例
ブログの下書きを Claude と作っていたときのことです。
Claude が例を5つも並べてきたので、「一例で十分」と返しました。そのあと今度は細かい注記をビッシリ書き込んできたので、「文章量が多くて正確だからいい記事ではない」と返しました。
すると Claude は、これを同じ趣旨の指摘の2回目と数え、下書きを削ったうえで、AGENTS.md の「ドキュメント・コメントの書き方」に1項目足しました。
- 読み手に向けた文章(記事・紹介文・説明)では、確かめた範囲・期間・数え方などの注記や例は、読み手の理解や判断を変えるものだけを書く。例は1つで足りるなら1つにする。
これで、次のセッションからは最初から削った形で書いてくれる、という寸法です。
書き漏らしを拾う
とはいえ、指摘したのに Claude がログに書かないこともあります。そこで、毎朝の定期ジョブに、前日の会話から指摘の候補を拾わせています。
仕組みは3つのファイルでできています。
feedback-draft.sh(ジョブのスクリプト): launchd が毎朝6時に呼ぶシェルスクリプト。やることは、claude -pを1回呼んで、その出力を日付のフォルダに保存するだけですfeedback-draft.md(claude -pへの指示): 「発言を集めるスクリプトを走らせる → 指摘ログを読んで、ログにまだ無い指摘だけを選ぶ → ログと同じ形の1行案を書く」という手順を書いてあります。同じ指摘の繰り返しなら「2回目以上」と書かせますcollect-user-turns.mjs(発言を集めるスクリプト): Claude Code の会話ログ(~/.claude/projects/の下の JSONL)から、直近24時間の私の発言と、その直前の Claude の発言の末尾を集めて、Markdown で出します。どれが指摘かは決めず、材料を並べるだけ。一文字の返事(y・pなど)は指摘にならないので落とします。これはジョブのスクリプトではなく、claude -pの中で Claude が自分で走らせます
ジョブのスクリプトの中身は、ほぼこの claude -p の呼び出しだけです。
claude -p --model sonnet --no-session-persistence \
--settings '{"disableAllHooks": true}' \
--permission-mode dontAsk \
--allowedTools "Bash(node scripts/collect-user-turns.mjs:*)" Read Grep Glob \
-- "$(cat scripts/jobs/feedback-draft.md)" </dev/null >"$dir/feedback-draft.md"
- 指示のファイルの中身をそのまま
claude -pに渡し、Claude の最後の応答を$dir(その日の日付のフォルダ)に書き出します --allowedToolsで、使えるのを発言を集めるスクリプトと読むだけのツールに絞っています。人のいない時間に動くので、ファイルの書き換えや git はさせません--no-session-persistenceは、このジョブ自身の会話を、次の日の材料に混ぜないためdisableAllHooksは、ふだんのセッション向けの hook(起動時の処理や、終わったときの通知音)を走らせないため
定期ジョブの出力は、こんな形です。
### 手順に待ちが入っているのに、今すぐできる分と分けずに頼んだ
- `- 2026-10-03 todo の手順が、登録完了のメールが届くまで進められない順序だったのに、「やること」として一括で頼んだ → 待ちが挟まる手順は、待たずにできる分と、待った後の分に分けて書く(AGENTS.md)`
- 「todo 読んだけどメールが届くまで進められないじゃん」(アプリ 1)
ログへの書き足しはさせず、案を出すまでにしています。取り込むかどうかは自分で決める、と。
skill の全文
手元のフォルダ構成に依存するところだけ、一般的な書き方に変えています。
---
name: fix-from-feedback
description: ユーザーやレビューの指摘で直すときに、成果物だけでなく間違いを生んだファイルまで直す手順。指摘を受けて直すとき、同じ指摘が繰り返されたときに使う。
---
# 指摘を受けたときの直し方
## 仕事
指摘の原因になったファイルを突き止め、同じ指摘を受けた回数に応じて、成果物・原因のファイル・機械の検査のどこまでを直すかを決めて直す。成果物だけ直すと、次のセッションも同じ所で間違える。
## やらないこと
- 指摘を確かめずに直す — 指摘はコード・一次資料・実例で確かめてから直すかを決める。
- 2回目の直しで原因のファイルを全文書き直す — 箇条書きの単位で足すか訂正する。全文を書き直すと、関係の無い決まりまで変わる。
## 出力
- 直した成果物。
- 回数に応じて、`feedback-log.md` の1行、原因のファイルの直し、検査のスクリプトや hook。
## 終わる条件
回数に応じた直しが全部済み、`feedback-log.md` に今回の1行がある。
## 止まる条件
次のときは推測で埋めずに止まり、ユーザーに聞く。
- 指示や資料が食い違うとき: 指摘が既存の決まりと食い違い、決まりの方を組み直すことになるとき(方針の変更になる)。
## 手順
1. 原因の置き場を決める。
- 事実の誤り: 事実を書いたファイル
- 全プロジェクトに共通する運用: 共通の `AGENTS.md`(Claude 固有なら `CLAUDE.md`)
- 1 プロジェクトの運用: そのリポジトリの指示ファイル
- skill のやり方: その skill
- 機械で拾える漏れ: 検査のスクリプトや hook
2. 同じ指摘を受けた回数を、`feedback-log.md` を grep して数える。
3. 回数で直し方を変える。
- 1回目: 成果物を直し、`feedback-log.md` に1行足す(指摘の要旨・そこから言える決まり・原因の置き場。形はファイルの冒頭)。
- 2回目: 1回目に加え、原因のファイルを直す。
- 3回目: 2回目に加え、grep・lint・hook などの機械の検査にする。機械で拾える指摘は1回目からそうする。機械が止めるようになった決まりは、文章からは消してよい。
## 合格条件
- 人が見る: 原因のファイルの直しが、指摘から言える決まりと合っている。全文を書き直していない。
- 機械が見る: `feedback-log.md` に今回の日付の行がある。機械の検査にしたなら、その検査が今回の間違いで落ちる。
まとめ
- 指摘の回数で、成果物 → 指示ファイル → 機械の検査と、直す範囲を広げる
- 回数は指摘ログで数える。書き漏らしは毎朝の定期ジョブに拾わせる
同じ間違いに同じ指摘をする、という無限ループからは抜け出せました。指示ファイルを育てたい方の参考になれば幸いです。
でわでわ。
