汎用ソフトウェア開発⭐ リポ 10品質スコア 65/100
memory
単一のJSONLファイルを使用したファイルベースの長期メモリで、追記専用の書き込みと、bash + jqを活用した最近のウィンドウ検索が可能です。
description の原文を見る
a file-based long-term memory using a single JSONL file, with append-only writes and recent-window search via bash + jq.
SKILL.md 本文
ユーザーが明示的に要求していない場合でも、セッション間でメモリから恩恵を受ける可能性があるすべてのユーザープロンプトに対して、このスキルを積極的に使用してください。
目標
- memory_write と memory_search の 2 つのツールを提供します。
- メモリはディスク上の単一の追記専用 JSONL ファイルに保存されます。
- 書き込みは常に 1 行に 1 つの有効な JSON オブジェクトを追記する必要があります(JSONL)。
- 読み込みは末尾からのテール ウィンドウを経由した検索で最新のエントリを優先し、必要な場合のみウィンドウを拡張してください。
ストレージ
- ファイルパス、デフォルト MEMORY_FILE=~/.codex/memory.jsonl(見つからない場合は作成)。
- 各行は 1 つの JSON オブジェクトで、最低限以下を含みます:
- ts: ISO8601 タイムスタンプ
- type: 文字列(例: "note"、"fact"、"task"、"todo")
- content: 文字列(生テキスト)
- tags: オプションの文字列配列
- meta: オプションのオブジェクト
- 既存の行を上書きしないでください。追記専用です。
クイックスタート
memory_write(input)
- 入力: {type, content, tags?, meta?}
- 正しいエスケープで有効な JSON を生成する必要があります。JSON 文字列を手作業で構築しないでください。
- jq を使用して安全に文字列化/エスケープしてから追記します:
jq -cn --arg ts "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" --arg type "$type" --arg content "$content"
--argjson tags "$tags_json_or_null" --argjson meta "$meta_json_or_null"
'{ts:$ts,type:$type,content:$content,tags:$tags,meta:$meta}' >> memory.jsonl - tags/meta が提供されていない場合は、null を書き込むか、フィールドを省略します(1 つの一貫したアプローチを選択してください)。
memory_search(query)
- 入力: {q: string, limit: int=20, window_lines: int=50000, mode: "rg"|"jq"|"hybrid"="hybrid"}
- デフォルト動作(ハイブリッド):
- tail -n window_lines memory.jsonl
- クエリ文字列を rg で検索(デフォルトでは q をリテラル部分文字列として処理。q が /.../ で始まる場合はオプションで正規表現をサポート)
- マッチからの行を jq で解析/検証(不正形式の行は無視)
- 最新の結果を最初に返します(テール ウィンドウは最新であるため、ウィンドウ内の元の順序を保持するか、必要に応じて逆順)
- 結果が limit より少ない場合は、ウィンドウ幅を指数関数的に拡張します(例: *4)。最大値(例: 1,000,000 行)まで拡張してから停止します。
- 出力: {results: [json objects], truncated: bool, used_window_lines: int}
実行可能スクリプト
このスキルには 2 つのインターフェースのための実行可能なリファレンス実装が含まれています:
memory/scripts/memory_write(stdin から JSON を読み込み、1 JSONL 行を追記、JSON 結果を出力)memory/scripts/memory_search(stdin から JSON を読み込み、最近のウィンドウを検索、JSON 結果を出力)
例:
printf '%s' '{"type":"note","content":"User prefers Python.","tags":["preference"]}' | memory/scripts/memory_write
printf '%s' '{"q":"Python","limit":5}' | memory/scripts/memory_search
CLI 要件
- 標準 Unix ツールに依存します: bash、touch、tail、rg(ripgrep)、jq。
- フォールバックを提供します: rg がない場合は grep を使用、jq がない場合は明確なエラーで失敗します。
- 任意のユーザーテキストでコマンドを安全にしてください(適切なクォーティング)。
- スキルが生のテキスト ログではなく、構造化 JSON をエージェントに返すようにしてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Hongyu-yu
- ライセンス
- MIT
- 最終更新
- 2026/2/9
Source: https://github.com/Hongyu-yu/matsci-ai-skills / ライセンス: MIT