user-md:ユーザープロファイルファイルの規律
AIがあなたについて理解したことは、あなた自身が所有するファイルに存在すべきです——特定ベンダーのクラウドアカウントにロックされるものではありません。この文書はプロファイルファイルの規律(agentにこのファイルの作成、育成、使用方法を教えるもの)であり、メモリシステム(ランタイムや自動パイプラインを含まない)ではありません。詳細は必要に応じて
references/を参照:育成詳細curation.md、階層判定基準とホスト関係layering.md。全ファイルのサイズと頻度の閾値はreferences/curation.mdの閾値テーブルのみで一度定義され、この文書や他のファイルはそれを参照し、数値を複製しません。
核心理念(四箇条)
- ファイルはあなたが所有する:プレーンテキストMarkdown。任意のエディタで読み取り、編集、削除可能。フォルダとともに移動します(moves when you move)。
- 二重構造が明確:手書き領域はユーザー専用。agentは提案のみ可能で、書き換えは不可。沈殿領域はagent専用で、追記のみ、すべてに痕跡を残す。
- 無言の書き換えなし:書き換えには必ず痕跡を残す(変更記録1行)。すべての内容はユーザーから可視、編集可能、削除可能。
- 事実を捏造しない:沈殿領域には真の観察のみを記録。単発の観察には「未検証」マークを必須とする。観察されていないことは書かない。
一、作成:ファイルファミリーと五つのセクション
ファイルファミリー三種類
| ファイル | 内容 | 特性 |
|---|---|---|
USER.md | マシンやプロジェクトを超えて成立するユーザープロファイル | 移植可能。セッションごとに全体を注入。軽量に保つ必要あり(閾値は references/curation.md 参照) |
USER.local.md | マシンを変えると無効になる内容:環境/パス/ツールチェーン/認証情報ポインタ | マシンローカル。必ず gitignore に追加 |
user/*.md オーバーフロー補助ファイル | 沈殿領域が沈下ラインを超えた際に移される詳細 | メインファイルには1行のインデックスを残し、必要に応じてロード |
USER.md 五つのセクション(確定構造。テンプレートは templates/USER.md)
## Who I am— アイデンティティの事実:役割/背景/呼称。事実と嗜好は別に保存(この分離は複数の製品グレードメモリシステムで共通するプラクティス)。## How I work— 嗜好とスタイル:コミュニケーション方法/成果物基準/承認習慣/デフォルトの許可範囲。## Our relationship— 関係と協業:何を聞くべきか、何を直接実行するか、フィードバックの方法。## What I'm up to— 動的認識レイヤー:現在の目標と進行中のタスク——明示的に修正可能な仮説、証拠に基づいて更新、期限切れは削除。## Learned by your agent— agent沈殿領域(ルールは次節の二重構造ルールを参照)。
命名規則:セクション名は facts / preferences の系列に沿う。persona という単語は全文で禁止——UX文脈では架空のユーザープロトタイプ、agent文脈ではagent自身の人格を指し、二重に占用され、使用すると曖昧になる。
スタートアップ:templates/ から2つのテンプレートを作業ディレクトリのルートにコピーし、USER.local.md を .gitignore に追加、最初の4セクションを5分で埋める。空のままでも動作するが、agentはセッションごとにあなたについてゼロ知識となる。
二、育成:二重構造と沈殿の規律
二重構造
-
手書き領域(最初の4セクション):ユーザー直筆。agentが内容の陳腐化や矛盾を発見した場合、提案のみ(提案テキストと理由を添える)。ユーザー自身が手動で、または明確な同意の後に変更し、変更後はファイル末尾の変更記録に1行残す。
-
沈殿領域(第5セクション):agentが追記。各エントリの形式:
- 【YYYY-MM-DD · 出典イベント】ルール本文。【単発観察・未検証】日付+出典は各エントリの出生証明。単発観察には「未検証」マークを必須とする。同型の観察が再発し、昇格閾値に達した場合(閾値は
references/curation.md参照)のみ昇格提案を発行可能。ユーザー確認後に手書き領域へ移動。完全な形式とフローはreferences/curation.md参照。
シグナルと誤報
- 沈殿可能なシグナルは三種類:修正(ユーザーがあなたのやり方や理解を修正した)、繰り返しの嗜好(同じ要求が異なる場面で再現)、明示的な表明(ユーザーが「覚えておいて」「今後は常に…」と直接言った)。
- 即時追記のハードルール:三種類のシグナルに合致し、誤報フィルターを通過 → 即時に沈殿領域へ追記——バッチ処理せず、セッション終了まで記憶に頼って後から書かない。認識したのに書かないのは、この規律がないのと同じ。
- 誤報フィルター:一回きりの文脈は沈殿しない(このタスク特有の要求 ≠ 長期的な嗜好)。極端に短いメッセージはデフォルトで無視(フィルター線は
references/curation.md参照)。感情的な瞬間の発言は信頼度を低く設定。タスクに強く結びついた指示はタスクに帰属し、プロファイルには帰属しない。
統合とサイズ管理
- 定期的な統合と重複排除(周期は
references/curation.mdの閾値テーブル参照):同義のエントリをマージ、期限切れのエントリをクリーンアップ。統合と昇格による移動は、沈殿領域を書き換える唯一の合法シナリオであり、いずれも変更記録に痕跡を残す必要がある。 - メインファイルがサイズ目標を超えた場合、または沈殿領域が沈下ラインを超えた場合(閾値はすべて
references/curation.md参照)→ 詳細をuser/*.md補助ファイルに沈下させ、メインファイルにはインデックス行を残す。
三、使用:注入と振り分け
セッションごとの注入
メインファイルを軽量に保つ意義はここにある:各セッションで全体を注入できるほど小さいこと。ホストに応じて以下のいずれかを選択(各ホストの詳細は README の互換性セクション参照):
- 命令ファイルの参照行:例:Claude Code の CLAUDE.md に
@USER.mdを1行追加。 - 参照機構がないホスト:システムプロンプトやルールファイルに「セッション開始時にまず USER.md を読む」と1行追加。
- session-startフックが利用可能な場合(オプションの実装方法——このスキル自体はランタイムを持たず、フックを設定しなくても規律は成立する)。Claude Code の設定例:
{
"hooks": {
"SessionStart": [
{ "hooks": [ { "type": "command", "command": "cat USER.md" } ] }
]
}
}
(POSIX の例。Windows や他のホストでは同等のコマンドに置き換え。フックの設定有無と方法はユーザーが決定)。
振り分け判定基準(三行。弱モデルのフォールバック。詳細は references/layering.md 参照)
- マシンを変えると無効になる →
USER.local.md。 - プロジェクトや役割を変えると成立しなくなる → そのプロジェクト自身のローカルファイル。
- それ以外 →
USER.md。
ポインタの規律:既に信頼できるソースに存在する事実は複製せず、ポインタ行のみを配置(「詳細は某ファイルを参照」)——二重ソースのずれを防止。判例は references/layering.md 参照。
プライバシーに関するレッドライン
- このファイルファミリーは本質的にすべてPIIです——最も機密性の高い情報として扱ってください。
USER.local.mdは必ず gitignore に追加し、決してリポジトリにコミットしないでください。USER.mdを公開リポジトリにプッシュする前には必ず人手で確認:本名、連絡先、雇用先の内部情報、認証情報ポインタを一つずつチェック。- 平文のパスワード / APIキー / トークンは決してこのファイルファミリーに書き込まない——「認証情報の場所と呼び出し方法」というポインタのみを記述。
- テンプレートには実際の内容を事前に記入しない——このスキルが提供するテンプレートはすべてプレースホルダーと架空の例です。
簡単な例
- ユーザーが再び「返信は結論から先に」と言った場合、沈殿領域の同型未検証エントリが昇格閾値に達している(
references/curation.md参照)→ 昇格提案を作成(一文に統合し、How I work に配置する案)、ユーザーの確認を待って移動。 - ユーザーが「このマシンでは pnpm を使って、npm は使わないで」と言った場合 → マシンを変えると無効になるため、
USER.local.mdに記録。 - ユーザーが特定のリポジトリで「このプロジェクトのコミットメッセージはスペイン語で」と言った場合 → プロジェクトを変えると成立しないため、そのプロジェクトのローカルファイルに記録し、
USER.mdには書かない。 - ユーザーが深夜に愚痴をこぼした「もううんざりだ、長い返信は全部やめてくれ」→ 感情的な瞬間 → 単発観察として沈殿、信頼度を低く設定、手書き領域を直接変更せず、ましてや鉄則として扱わない。
- ユーザーが手書き領域に「Xプロジェクトをやっている」と書いているが、三ヶ月間言及がない場合 → agentは What I'm up to セクションの更新を提案し、理由を添える。ユーザーがうなずくまでは一文字も変更しない。
バージョンと更新の自己チェック
- 現在のバージョン:1.0.0(
plugin.jsonと一致)。 - リポジトリ:
https://github.com/LucioLiu/user-md - 自己チェック:プラグインとしてインストールされている場合、ホストの更新メカニズムがバージョン番号に追従します。手動クローン/テンプレートコピーの場合、このファイルとリポジトリの main ブランチを diff すれば、最新かどうかがわかります。あなた自身の
USER.mdファイルファミリーはスキルの更新の影響を受けません——それはあなたのデータであり、スキルの一部ではありません。