memory-graph
個人の生活、プロジェクト、ツールなどの情報をMarkdown形式で記録し、必要に応じて検索・更新することで、エージェントのリセットや切り替え後も一貫したコンテキストを提供し、作業効率を向上させるSkill。
📜 元の英語説明(参考)
Agent-agnostic personal knowledge graph stored as markdown files with YAML frontmatter. Use when you need persistent context about the user's life, projects, tools, people, concepts, or decisions — especially across agent resets or switches. Also use when logging significant activity, searching for context before starting work, creating knowledge nodes for new topics, discovering connections between existing nodes (backfill), or rebuilding indexes. Triggers include needing user context, logging work, "remember this", "what do I know about X", creating/updating knowledge entries, and periodic memory maintenance.
🇯🇵 日本人クリエイター向け解説
個人の生活、プロジェクト、ツールなどの情報をMarkdown形式で記録し、必要に応じて検索・更新することで、エージェントのリセットや切り替え後も一貫したコンテキストを提供し、作業効率を向上させるSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o memory-graph.zip https://jpskill.com/download/10032.zip && unzip -o memory-graph.zip && rm memory-graph.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10032.zip -OutFile "$d\memory-graph.zip"; Expand-Archive "$d\memory-graph.zip" -DestinationPath $d -Force; ri "$d\memory-graph.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
memory-graph.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
memory-graphフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
メモリグラフ
~/memory/ にあるファイルベースの個人知識グラフです。どのエージェントも読み書きできます。人間が閲覧可能です。
構造
~/memory/
├── README.md # アーキテクチャ全体のドキュメント
├── graph/ # 知識ノード
│ ├── people/
│ ├── projects/
│ ├── concepts/
│ ├── places/
│ ├── tools/
│ └── <任意のカテゴリ>/ # 自由に拡張可能
├── log/ # 毎日のアクティビティログ
│ └── YYYY-MM-DD.md
├── indexes/ # 計算済み — 直接編集しないでください
│ ├── memory.db # SQLite (プライマリインデックス、FTS5検索)
│ └── graph.html # インタラクティブなグラフの可視化
├── backfill/ # 接続の発見
│ ├── suggestions.md
│ └── history.md
└── scripts/ # スキルの scripts/ ディレクトリへのシンボリックリンク
├── rebuild-indexes.js # 完全または増分インデックスの再構築
├── suggest-backfill.js # スコープされた接続の発見 (+ QMD セマンティック)
├── query.js # CLI構造クエリツール
├── briefing.js # エージェントのコンテキストアセンブリ
├── lint.js # グラフの検証とヘルスチェック
├── visualize.js # D3.js グラフ可視化ジェネレーター
├── commit.js # graph/log の変更に対する git 自動コミット
└── promote.js # log-to-node プロモーションの提案
スクリプトの場所: スクリプトはスキルディレクトリ (scripts/) に存在します。~/memory/scripts/ にはそれらへのシンボリックリンクが含まれています。すべてのスクリプトは MEMORY_ROOT 環境変数をサポートしています(デフォルトは ~/memory)ので、インストール場所に関係なくパスを正しく解決します。
セットアップ
~/memory/ が存在しない場合は、references/setup.md を読み、スキャフォールディングの手順に従ってください。これにより、フォルダ構造が作成され、スクリプトがシンボリックリンクされ、初期ノードがシードされ、インデックスが構築されます。
~/memory/ が既に存在する場合は、以下の操作に進んでください。
ノード形式
すべてのノードは YAML frontmatter を持つ Markdown ファイルです。
---
type: project
created: 2026-03-20
updated: 2026-03-20
tags: [side-project, saas]
status: active
relations:
- { to: people/someone, type: owner }
- { to: tools/nextjs, type: built-with }
---
# タイトル
自由形式の本文。
## 変更履歴
- 2026-03-20: ノードを作成
必須フィールド
type— 親フォルダ名と一致created— ISO日付
推奨フィールド
updated— ISO日付、ノードの内容が有意義に変更された最終日時。鮮度追跡に使用されます。
オプションフィールド
tags— 分類のためのフラットなリストstatus—active、archived、idea、doneなどrelations—{ to, type }オブジェクトのリスト。toはgraph/内の相対パス(.mdなし)。typeは任意の文字列。- その他のフィールドは自由に追加できます — 不明なフィールドは保持されます
関係タイプ分類
推奨される標準タイプ(非標準タイプは情報レベルの lint 警告をトリガーします):
- 構造:
uses、built-with、part-of、contains - 所有権:
creator、owner、maintainer - 概念:
related-to、inspired-by、alternative-to、core-concept-of、core-value-of - 時間:
led-to、preceded-by、evolved-into - コンテキスト:
home-of、lives-in、works-at
双方向性
片側のみに関係を記述します。インデックススクリプトが逆方向を計算します。
変更履歴の慣例
ノードは本文の最後に ## Changelog セクションを持つことができます。形式:
- YYYY-MM-DD: 変更内容の説明
ノードテンプレート
一般的なノードタイプのテンプレートは、スキルの templates/ ディレクトリにあります。
person.md、project.md、tool.md、concept.md、place.md
新しいノードを作成する際の出発点としてこれらを使用してください。コピーして編集してください — テンプレート自体は変更しないでください。
操作
1. コンテキストの読み取り (セッション開始)
# 最近のアクティビティを確認
cat ~/memory/log/$(date +%Y-%m-%d).md
# ノードのコンテキストブリーフィング (完全なコンテンツ + 関係 + 最近のログ)
node ~/memory/scripts/briefing.js --node projects/flowmind
# トピックブリーフィング (検索ベース)
node ~/memory/scripts/briefing.js --topic "immutability"
# セマンティック検索 (QMD がインストールされている場合 — 自然言語クエリに最適)
qmd vsearch "trust and data integrity" # ベクトル類似度
qmd query "what connects X and Y" # ハイブリッド + リランキング
# 構造検索
node ~/memory/scripts/query.js --search "keyword"
# すべての関係を含むノードの詳細
node ~/memory/scripts/query.js --node projects/flowmind
# 何かに関連するすべてのノード
node ~/memory/scripts/query.js --related-to people/abdullah
# タイプとステータスでフィルタリング
node ~/memory/scripts/query.js --type project --status active
# タグで参照
node ~/memory/scripts/query.js --tag side-project
# 最近変更されたノード
node ~/memory/scripts/query.js --recent 7
# 古いノード (N日以内に更新されていない)
node ~/memory/scripts/query.js --stale 30
# グラフの概要
node ~/memory/scripts/query.js --stats
2. ノードの作成
- ノードが既に存在するかどうかを確認:
ls ~/memory/graph/<category>/ - スキルの
templates/ディレクトリから~/memory/graph/<category>/<name>.mdにテンプレートをコピー - frontmatter + 本文を入力 (
createdとupdatedを今日に設定) - 潜在的な関係 (共有タグ、言及) について既存のノードをスキャン
- 不確かな場合は
type: suggestedで発見された関係を追加 - 今日のアクティビティログに作成を記録
- インデックスを再構築:
node ~/memory/scripts/rebuild-indexes.js --incremental - QMD がインストールされている場合:
qmd update && qmd embed(セマンティック検索を更新)
3. ノードの更新
- 現在のノードを読み取る
- frontmatter および/または 本文を更新
updatedフィールドを今日の日付に更新- 重要な場合は
## Changelogセクションにエントリを追加 - 更新をログに記録
- インデックスを再構築:
node ~/memory/scripts/rebuild-indexes.js --incremental
4. アクティビティのログ記録
~/memory/log/YYYY-MM-DD.md に追加 (必要に応じて作成):
- **HH:MM** [agent-name] 説明 {ref: path/to/node, path/to/other}
{ref: ...} 参照はバックフィルシグナルです — ノード間の接続のヒントになります。
5. バックフィル (欠落している接続の発見)
# インデックスを再構築
(原文がここで切り詰められています) 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Memory Graph
A file-based personal knowledge graph at ~/memory/. Any agent can read/write. Human-browsable.
Structure
~/memory/
├── README.md # full architecture doc
├── graph/ # knowledge nodes
│ ├── people/
│ ├── projects/
│ ├── concepts/
│ ├── places/
│ ├── tools/
│ └── <any-category>/ # extend freely
├── log/ # daily activity logs
│ └── YYYY-MM-DD.md
├── indexes/ # computed — NEVER edit directly
│ ├── memory.db # SQLite (primary index, FTS5 search)
│ └── graph.html # interactive graph visualization
├── backfill/ # connection discovery
│ ├── suggestions.md
│ └── history.md
└── scripts/ # symlinks → skill's scripts/ directory
├── rebuild-indexes.js # full or incremental index rebuild
├── suggest-backfill.js # scoped connection discovery (+ QMD semantic)
├── query.js # CLI structural query tool
├── briefing.js # context assembly for agents
├── lint.js # graph validation and health checks
├── visualize.js # D3.js graph visualization generator
├── commit.js # git auto-commit for graph/log changes
└── promote.js # log-to-node promotion suggestions
Script location: Scripts live in the skill directory (scripts/). ~/memory/scripts/ contains symlinks to them. All scripts support MEMORY_ROOT env var (defaults to ~/memory) so they resolve paths correctly regardless of where they're installed.
Setup
If ~/memory/ does not exist, read references/setup.md and follow the scaffolding steps. This creates the folder structure, symlinks scripts, seeds initial nodes, and builds indexes.
If ~/memory/ already exists, proceed to Operations below.
Node Format
Every node is a markdown file with YAML frontmatter:
---
type: project
created: 2026-03-20
updated: 2026-03-20
tags: [side-project, saas]
status: active
relations:
- { to: people/someone, type: owner }
- { to: tools/nextjs, type: built-with }
---
# Title
Free-form body.
## Changelog
- 2026-03-20: Created node
Required Fields
type— matches parent folder namecreated— ISO date
Recommended Fields
updated— ISO date, last time node content was meaningfully changed. Used for staleness tracking.
Optional Fields
tags— flat list for categorizationstatus—active,archived,idea,done, etc.relations— list of{ to, type }objects.tois relative path withingraph/(no.md).typeis any string.- Add any other fields freely — unknown fields are preserved
Relation Type Taxonomy
Suggested standard types (non-standard types trigger info-level lint warnings):
- Structural:
uses,built-with,part-of,contains - Ownership:
creator,owner,maintainer - Conceptual:
related-to,inspired-by,alternative-to,core-concept-of,core-value-of - Temporal:
led-to,preceded-by,evolved-into - Contextual:
home-of,lives-in,works-at
Bidirectionality
Write a relation on one side only. The index script computes the reverse.
Changelog Convention
Nodes can have a ## Changelog section at the bottom of the body. Format:
- YYYY-MM-DD: description of what changed
Node Templates
Templates for common node types are in the skill's templates/ directory:
person.md,project.md,tool.md,concept.md,place.md
Use these as starting points when creating new nodes. Copy and edit — don't modify the templates themselves.
Operations
1. Read for Context (Session Start)
# Check recent activity
cat ~/memory/log/$(date +%Y-%m-%d).md
# Context briefing for a node (full content + relations + recent logs)
node ~/memory/scripts/briefing.js --node projects/flowmind
# Topic briefing (search-based)
node ~/memory/scripts/briefing.js --topic "immutability"
# Semantic search (if QMD is installed — best for natural language queries)
qmd vsearch "trust and data integrity" # vector similarity
qmd query "what connects X and Y" # hybrid + reranking
# Structural search
node ~/memory/scripts/query.js --search "keyword"
# Node details with all relations
node ~/memory/scripts/query.js --node projects/flowmind
# All nodes related to something
node ~/memory/scripts/query.js --related-to people/abdullah
# Filter by type and status
node ~/memory/scripts/query.js --type project --status active
# Browse by tag
node ~/memory/scripts/query.js --tag side-project
# Recently modified nodes
node ~/memory/scripts/query.js --recent 7
# Stale nodes (not updated in N days)
node ~/memory/scripts/query.js --stale 30
# Graph overview
node ~/memory/scripts/query.js --stats
2. Create a Node
- Check if node already exists:
ls ~/memory/graph/<category>/ - Copy a template from the skill's
templates/directory to~/memory/graph/<category>/<name>.md - Fill in frontmatter + body (set
createdandupdatedto today) - Scan existing nodes for potential relations (shared tags, mentions)
- Add discovered relations with
type: suggestedif uncertain - Log the creation in today's activity log
- Rebuild indexes:
node ~/memory/scripts/rebuild-indexes.js --incremental - If QMD is installed:
qmd update && qmd embed(refreshes semantic search)
3. Update a Node
- Read the current node
- Update frontmatter and/or body
- Update the
updatedfield to today's date - Add entry to
## Changelogsection if significant - Log the update
- Rebuild indexes:
node ~/memory/scripts/rebuild-indexes.js --incremental
4. Log Activity
Append to ~/memory/log/YYYY-MM-DD.md (create if needed):
- **HH:MM** [agent-name] Description {ref: path/to/node, path/to/other}
{ref: ...} references are backfill signals — they hint at connections between nodes.
5. Backfill (Discover Missing Connections)
# Rebuild indexes first (if not recently done)
node ~/memory/scripts/rebuild-indexes.js --incremental
# Generate suggestions (scoped — uses tags, FTS, log co-refs, + QMD semantic)
node ~/memory/scripts/suggest-backfill.js # all nodes
node ~/memory/scripts/suggest-backfill.js --scope recent # last 7 days only
node ~/memory/scripts/suggest-backfill.js --scope node:projects/flowmind # specific node
node ~/memory/scripts/suggest-backfill.js --no-qmd # skip semantic search
# Rebuild with automatic scoped backfill on changed nodes
node ~/memory/scripts/rebuild-indexes.js --incremental --with-backfill
Review ~/memory/backfill/suggestions.md. Accept by adding the relation to the node's frontmatter. Reject by logging in backfill/history.md.
6. Lint (Validate Graph Health)
node ~/memory/scripts/lint.js # check for issues
node ~/memory/scripts/lint.js --fix # auto-fix (adds missing updated fields)
Checks: missing required fields, broken relations, orphan nodes, duplicate titles, non-standard relation types.
7. Visualize
node ~/memory/scripts/visualize.js # generates ~/memory/indexes/graph.html
open ~/memory/indexes/graph.html # view in browser
Interactive D3.js force-directed graph. Nodes colored by type, sized by connections. Click for details.
8. Git Backing
node ~/memory/scripts/commit.js # auto-commit graph/ and log/ changes
node ~/memory/scripts/commit.js --message "custom msg" # with custom message
Stages graph/, log/, backfill/history.md, and README.md changes, commits with descriptive message. Does NOT auto-push.
9. Log Promotion
node ~/memory/scripts/promote.js # find recurring topics without nodes
node ~/memory/scripts/promote.js --min 5 # raise mention threshold
node ~/memory/scripts/promote.js --days 30 # only recent logs
Scans logs for entities mentioned 3+ times without existing nodes. Suggests node creation.
10. Add a New Category
Create a folder under graph/. No config changes. Indexes adapt on rebuild.
Rules
- Read before writing. Check if a node exists before creating a duplicate.
- Log significant work. Append to
log/YYYY-MM-DD.mdwhen you do something significant. - Use refs in logs. If your work touches existing concepts/projects, add
{ref: ...}. - Scan for connections. When creating a node, check for related nodes (shared tags, mentions).
- Never edit
indexes/. Run the rebuild script instead. - Add fields freely. If a node needs a field that doesn't exist yet, just add it.
- Add categories freely. Need
graph/recipes/? Create the folder. No config changes. - Preserve unknown fields. If a node has fields you don't recognize, leave them.
- Use
suggestedtype for uncertain relations. Let a human or another agent confirm. - One-side relations only. Write on whichever node feels natural. Index computes the reverse.
- Keep the body useful. Frontmatter is for machines. The markdown body is for humans.
- Set
updatedon changes. Keep theupdatedfield current for temporal tracking. - Use standard relation types. Prefer the taxonomy above. Run
lint.jsto check.