Claude Code のスキルつくりって楽しいじゃないですが。しかし作るときはいいが、そのあと何があったけなを覚えきれません。覚えていなければ発動もできない。
そんなことをpostしたところ
そろそろ何のためになんてスキルつくったっけを思い出すスキルが必要になってかた
— bash (@bash0C7) 2026年4月2日
わかるw わしは esa 関連の skill が結構多いので、esa のカテゴリ README に skill の README を書いてもらってますね
— taea🐶 (@ken_c_lo) 2026年4月2日
とmentionをいただき、それだ!と。
スキルもそうだし、忘れたくないことを永続記憶として残しておきたい。
こうして、esa を使った個人永続記憶システムを作ることにしました。
長期記憶との違い
先日の記事 Claudeに長期記憶のMCPサーバーRubyで自作した - 自戒、点検、内省では、SQLite とベクトル検索を使った長期記憶システムを作りました。あちらは「会話を自動的に蓄積し、長期記憶として関連する文脈を自動で引き出す」しくみです。RAG に近い考え方で、Claude が勝手に覚えて勝手に思い出してくれます。また長期記憶なので薄れていくことも仕組みの一つです。
今回作った永続記憶は、それとは別のものです。
長期記憶はある程度受動的・自動的ですが、に厳選したものを忘れてはならないこととして能動的に記録し、思い出せるようにすることを狙っています。
「覚えておきたい」と判断したものだけを、自分の言葉で残す。将来の自分が読んで文脈を取り戻せるように。
なぜ esa か
esa は2014年から普段使いして慣れているサービスです。タグで整理できて、Markdown で書けて、MCP サーバーもある。新しいインフラを立てるより、使い慣れた場所に乗せるほうが摩擦が少なくて済みます。
思い出したんですが、そんな10年代前半の導入当時、飲み会の熱い議論が翌日に忘れられる揮発問題を esa で解決しようとしていたのでした。今回も本質は同じです。「忘れる問題」を esa で解く。
なお、ストレージの設計はシンプルにしました。自分のesaにタグ 永続 をつけて保存する。それだけです。
5 つのスキルの役割
操作は CRUD + 整理の 5 つに分けました。
| スキル | 役割 |
|---|---|
permanent-memory-new |
新しい永続記憶を作る |
permanent-memory-read |
記憶を読み込んでコンテキストに展開する |
permanent-memory-update |
既存の記憶を更新する |
permanent-memory-archive |
不要になった記憶を Archived/ に退避する |
permanent-memory-organize |
全記憶を棚卸しして重複・陳腐化を整理する |
タイトルは [キーワード][キーワード] 内容の概要 という形式にしました。検索性とインデックスとしての可読性を両立させるためです。
ハマったこと:スキルの description 最適化
スキルは、Claude が「このスキルを今使うべきか」を description だけで判断します。description が曖昧だと誤トリガーや無視が起きます。
特に困ったのが、長期記憶 DB との混同でした。「記憶を読んで」と言ったとき、長期記憶 DB へのアクセスを指しているのか、esa の永続記憶を指しているのか、Claude が迷ってしまいます。
これを解決するために、run_loop.rb という Ruby スクリプトを自作しました。20 クエリを用意して、claude -p でトリガー率を計測し、Claude に description の改善を依頼する ─ というループを回します。
2 イテレーションで 100% に到達しました。決め手になった記述はこれです。
Use ONLY when explicitly references esa posts, 永続タグ, or this specific skill. Do NOT trigger for long-term memory databases, vector DBs.
最初の記憶
動作確認として、自分の作業ディレクトリのルートにおいてる CLAUDE.md の内容を永続記憶として保存しました。
「ちゃんと保存できた」を確認したとき、小さくですが手応えを感じました。これで Claude は、わたしの作業スタイルや制約を、セッションをまたいで参照できるようになりました。
これから
まずは使い続けることと、permanent-memory-organizeで棚卸しすることです。永続なのでずっと残るので"忘れる" "まとめる"は自分でやる必要があります。