Communitygithub.com

LucioLiu/user-md

あなたのユーザー像をあなた自身のファイルで管理。AIがあなたへの理解を、手書き領域とエージェントの学習領域の二重構造で蓄積し、フォルダ移動にも追従します。

user-md とは?

このスキル「LucioLiu/user-md」は、AIエージェント(Claude Code、Cursor、Codexなど)がユーザー個人の特性・嗜好・現在の状況を、ユーザー自身が所有・管理できるファイル群で整理・活用するための規律(ディシプリン)を提供します。中心となるのは `USER.md`(全セッションで注入される軽量なメイン画像ファイル)、`USER.local.md`(そのマシン固有の設定)、`user/*.md`(詳細をオフロードする補助ファイル)の3つのファイルです。ファイル内はユーザーが直接記述する手書き領域と、エージェントが観察から学習した内容を追加のみできる沈殿領域に分かれており、エージェントによる無言の書き換えは一切行われません。各エントリには日付と出典が記録され、単発の観察には「未検証」マークが付与されるため、間違った情報が永続化されるリスクを低減します。このスキルは特定のエージェントのランタイムや自動パイプラインを含まず、あくまでファイルの構造と運用ルールを定義するものであり、`references/curation.md`(育成ルールと閾値)、`references/layering.md`(階層分類と判定基準)などの詳細を参照することで、プロジェクトやチームの規模に応じて柔軟に適用できます。プライバシーにも配慮しており、`USER.local.md` は `.gitignore` 必須、公開リポジトリへのプッシュ前の確認、平文パスワードやAPIキーの直接記載禁止といったルールが定められています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add LucioLiu/user-md

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

user-md:ユーザープロファイルファイルの規律

AIがあなたについて理解したことは、あなた自身が所有するファイルに存在すべきです——特定ベンダーのクラウドアカウントにロックされるものではありません。この文書はプロファイルファイルの規律(agentにこのファイルの作成、育成、使用方法を教えるもの)であり、メモリシステム(ランタイムや自動パイプラインを含まない)ではありません。詳細は必要に応じて references/ を参照:育成詳細 curation.md、階層判定基準とホスト関係 layering.md。全ファイルのサイズと頻度の閾値は references/curation.md の閾値テーブルのみで一度定義され、この文書や他のファイルはそれを参照し、数値を複製しません。

核心理念(四箇条)

  1. ファイルはあなたが所有する:プレーンテキストMarkdown。任意のエディタで読み取り、編集、削除可能。フォルダとともに移動します(moves when you move)。
  2. 二重構造が明確:手書き領域はユーザー専用。agentは提案のみ可能で、書き換えは不可。沈殿領域はagent専用で、追記のみ、すべてに痕跡を残す。
  3. 無言の書き換えなし:書き換えには必ず痕跡を残す(変更記録1行)。すべての内容はユーザーから可視、編集可能、削除可能。
  4. 事実を捏造しない:沈殿領域には真の観察のみを記録。単発の観察には「未検証」マークを必須とする。観察されていないことは書かない。

一、作成:ファイルファミリーと五つのセクション

ファイルファミリー三種類

ファイル内容特性
USER.mdマシンやプロジェクトを超えて成立するユーザープロファイル移植可能。セッションごとに全体を注入。軽量に保つ必要あり(閾値は references/curation.md 参照)
USER.local.mdマシンを変えると無効になる内容:環境/パス/ツールチェーン/認証情報ポインタマシンローカル。必ず gitignore に追加
user/*.md オーバーフロー補助ファイル沈殿領域が沈下ラインを超えた際に移される詳細メインファイルには1行のインデックスを残し、必要に応じてロード

USER.md 五つのセクション(確定構造。テンプレートは templates/USER.md)

  1. ## Who I am — アイデンティティの事実:役割/背景/呼称。事実と嗜好は別に保存(この分離は複数の製品グレードメモリシステムで共通するプラクティス)。
  2. ## How I work — 嗜好とスタイル:コミュニケーション方法/成果物基準/承認習慣/デフォルトの許可範囲。
  3. ## Our relationship — 関係と協業:何を聞くべきか、何を直接実行するか、フィードバックの方法。
  4. ## What I'm up to — 動的認識レイヤー:現在の目標と進行中のタスク——明示的に修正可能な仮説、証拠に基づいて更新、期限切れは削除。
  5. ## 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 参照)

  1. マシンを変えると無効になる → USER.local.md。
  2. プロジェクトや役割を変えると成立しなくなる → そのプロジェクト自身のローカルファイル。
  3. それ以外 → 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 ファイルファミリーはスキルの更新の影響を受けません——それはあなたのデータであり、スキルの一部ではありません。

関連スキル