このキットは机上で設計したものではありません。私が毎日 Claude Code に同じ指摘を繰り返して、そのたびにルールを1行ずつ足していった結果です。
「さっきも言ったよね」を何十回も打ち込んで、分かったことが1つあります。私が悪いのでもAIが悪いのでもなく、約束をファイルに書いていなかっただけでした。
同じ説明を毎回している。指摘したことが翌日には消えている。「できました」と言われたものが動いていない。
この3つは、情報の置き場所と、読まれるタイミングの問題です。置き場所を設計すると止まります。
私は自分の環境でこれを作り、100本以上のメモリファイルと4本のフックで運用しています。その設定一式を、そのまま導入できる形にしました。node install.mjs を叩けば5分で入る、25個のファイルです。
なぜ忘れるのか(ここが分かれば自作もできます)
Claude Codeが情報を保持する場所は3つあり、寿命がまったく違います。
- 会話の中の発言 … その場だけ。セッション終了で消滅
- CLAUDE.md … セッション開始時に一度だけ読まれる
- フックが注入するテキスト … 毎プロンプト。常に最前列
「前も言いましたよね」が通じないのは、前回の発言が1番目の寿命だからです。
そして多くの人が引っかかるのは2番目です。CLAUDE.mdに書いたのに、長い会話の後半で破られる。
理由は単純です。セッション開始時、CLAUDE.mdはコンテキストの先頭付近に置かれます。そこから会話が進むと、あなたの発言・コードの中身・コマンドの出力・エラーログが後ろに積まれます。100往復した時点で、CLAUDE.mdは数万トークン前の話です。モデルは古い指示より直前の文脈を優先します。仕様です。
つまり、対策は2つに絞られます。ルールを短く保つこと。そして重要なものは毎回入れ直すこと。2つ目をやるのがフックです。
3層構造
役割を混ぜないのが要点です。
- 強制層(hooks) … 文章では止まらないものをコードで止める
- ルール層(CLAUDE.md) … どう振る舞うか。ミスを指摘されたら即書き換える
- 記憶層(memory/) … 誰か・何のプロジェクトか・何が決まったか
作る順番は下からです。記憶が無いままルールを増やすと、ルールが状況説明で膨らみ、長さのせいで読まれなくなります。
昇格という運用
ルールは、破られた回数に応じて上の層へ上げます。
- 1回目の指摘 → CLAUDE.mdに「やらかし・原因・次の動き」の3点で追記
- 2回目の指摘 → ルールの書き方が悪い。機械的に従える手順に書き直す
- それでも破る → rules.mdに1行昇格(毎プロンプトに注入される)
- 文章で無理 → フックにする(コードで止める)
最初から強制層に入れてあるのは2つだけです。未検証の完了報告と、破壊的コマンド。どちらも文章では止まらないと分かっているものです。
入っているもの
- ~/.claude/CLAUDE.md … ルール本体。第0条〜第3条
- ~/.claude/kioku/rules.md … 毎プロンプトに注入されるルール。長い会話でも効く
- ~/.claude/memory/ … 永続メモリ。1メモリ=1ファイル、索引だけ常時ロード
- ~/.claude/hooks/kioku-*.js … フック4本
- ~/.claude/skills/ … /session-start /session-end /memory-save /revise-rules
解説ドキュメント6本、インストーラ、アンインストーラ、フックの単体テストが付きます。
フック4本の中身
- ルール注入(UserPromptSubmit) … rules.mdに書いた内容を毎プロンプトに差し込む
- 危険コマンド遮断(PreToolUse) … rm -rf /、force push、DROP TABLE、dd of=/dev/ など14パターンを実行前に止める
- 完了報告の検問(Stop) … 「できました」と書いて終わろうとしたのに、そのターンで一度も検証していない場合だけ差し戻す
- 索引の自動読み込み(SessionStart) … /session-start を打たなくてもメモリの目次が載る
3つ目が、作ってみて一番効いたものです。
完了報告の検問について
やっていることは3ステップです。
- 会話ログから、直前のあなたの発言以降を「今回のターン」として切り出す
- そのターンのAIの発言に完了表現(完了しました / 動きます / works now など)があるか
- 同じターン内で検証系ツール(Bash / Read / Grepなど)が使われたか
2番目がYesで3番目がNoのときだけ差し戻します。
誤爆させない仕掛けが3つ入っています。無限ループ防止(stop_hook_active を見る)、同一セッションで1回だけ、そして自分で「未検証」「失敗しました」と書いている場合は素通り。正直な報告を罰しません。
検証済みです
インストーラは最後に自己テストを5件走らせ、全部PASSしてから完了と表示します。真っさらなホームディレクトリにZIPから導入して確認済みです。
PASS ルール注入 (UserPromptSubmit) ルール 595 文字を注入
PASS 破壊的コマンド遮断 (PreToolUse) 危険=exit 2(期待2) / 安全=exit 0(期待0)
PASS 完了報告の検問 (Stop) exit 0 / 誤爆なし
PASS メモリ索引の自動読み込み (SessionStart) 索引 1049 文字を注入
PASS settings.json の整合性 4/4 件のフックが登録済み検問フックには単体テストが付いています。判定語を自分で足したあとに走らせてください。9 passed, 0 failed の状態で出荷しています。
既存の設定は壊しません
- settings.json はバックアップを取ってからフックだけを追記します。あなたが入れている他のフック、permissions、statusLine はそのまま残ります
- 既にCLAUDE.mdがある場合、上書きせず CLAUDE.kioku-suggested.md として提案版を置きます
- --dry-run で、何が起きるかだけ先に確認できます
- 2回実行しても重複登録されません
- uninstall.mjs で元に戻ります。メモリとルールは残ります
- 環境変数 KIOKU_RULES=off などで、フックごとに一時的に切れます
動作環境
Claude Code(一度起動したことがあるもの)と Node.js 18以上。Windows / macOS / Linux。追加のnpmパッケージは不要です。
向いている人
- Claude Codeを毎日使っていて、同じ説明を繰り返している
- CLAUDE.mdは書いたが、守られない場面がある
- フックの存在は知っているが、何をどう書けばいいか決まっていない
- 未検証の「できました」で時間を溶かしたことがある
向いていない人
- Claude Codeを触ったことがない(先に1週間使ってください。痛みが分かってからの方が効きます)
- 自分でフックとメモリ構造を設計済みで、運用が回っている
- コピペで動く完成品より、考え方だけ知りたい(ここまでの無料部分がそれです)
価格と返金
3,980円の買い切りです。v1.xの更新は追加費用なしで受け取れます。導入して合わないと感じた場合、購入から14日以内なら理由を問わず返金します。uninstall.mjs で元に戻せる作りにしてあるので、試すコストはほぼゼロです。
以下、購入後にZIPと導入手順が表示されます。
