/memory-seed
Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed.
$ npx -y skills add baodq97/tencentdb-agent-memory --skill memory-seed --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/memory-seed
Context preview
The summary Claude sees to decide when to auto-load this skill.
Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed.
SKILL.md
memory-seed.SKILL.mdname: memory-seed
description: Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed.
disable-model-invocation: true
Memory Seeding
Read conversation transcripts from `~/.claude/projects/` and extract structured L1 memory atoms. You perform all extraction — no external LLM needed.
Workflow
1. Find pending sessions
tmem sessions
If no pending sessions, tell the user and stop.
2. For each pending session
Read the conversation:
tmem read-session SESSION_FILE_PATH
3. Extract memories
Read the extraction guide for detailed rules:
cat ${CLAUDE_PLUGIN_ROOT}/skills/memory-seed/references/extraction-guide.mdAnalyze the conversation and produce a JSON array of memories. Each memory needs `content`, `type`, `priority`, `scene_name`, `source_message_ids`, `metadata`.
**Grounding (important):** populate `source_message_ids` with the actual transcript message `uuid`s the memory was drawn from. `tmem write-l1 --session` runs a deterministic grounding check — an atom whose `content` does not overlap its cited source messages is **dropped as confabulation**. Leaving `source_message_ids` empty skips the check (atom kept ungated), so cite real ids to get protection, and never invent facts absent from the source. Note: the check is lexical (shared words), so a heavily paraphrased/normalized atom (e.g. expanding an acronym the source never spelled out) can be dropped even when truthful — keep some of the source's own wording in `content`, or leave `source_message_ids` empty if you must paraphrase far.
**Three types with scope routing:**
- **persona** (priority 50-100) → stored globally. Stable user attributes, preferences.
- **episodic** (priority 60-100) → stored per-project. Events, decisions, plans.
- **instruction** (priority 70-100) → stored globally. AI behavior rules.
**Filtering — skip these:**
- Greetings, filler, one-time requests
- AI tool outputs, error messages
- Anything already covered by existing memories (check with `tmem search <keyword>` if unsure)
If a session has no extractable memories, mark it done and move to the next.
4. Write atoms
Write the JSON array to a temp file to avoid shell escaping issues, then pipe it:
cat <<'ATOMS_EOF' | tmem write-l1 --session SESSION_ID
[{"content": "...", "type": "persona", "priority": 80, "scene_name": "...", "source_message_ids": ["<real-uuid-from-transcript>"], "metadata": {}}]
ATOMS_EOF5. Verify and hint
tmem status
tmem changelog --last 10
After seeding, tell the user: **Next: use the memory-consolidate skill** to group atoms into scenes and synthesize persona.
Read more
name: memory-seed description: Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed. disable-model-invocation: true
Memory Seeding
Read conversation transcripts from `~/.claude/projects/` and extract structured L1 memory atoms. You perform all extraction — no external LLM needed.
Workflow
1. Find pending sessions
tmem sessions
If no pending sessions, tell the user and stop.
2. For each pending session
Read the conversation:
tmem read-session SESSION_FILE_PATH
3. Extract memories
Read the extraction guide for detailed rules:
cat ${CLAUDE_PLUGIN_ROOT}/skills/memory-seed/references/extraction-guide.mdAnalyze the conversation and produce a JSON array of memories. Each memory needs `content`, `type`, `priority`, `scene_name`, `source_message_ids`, `metadata`.
**Grounding (important):** populate `source_message_ids` with the actual transcript message `uuid`s the memory was drawn from. `tmem write-l1 --session` runs a deterministic grounding check — an atom whose `content` does not overlap its cited source messages is **dropped as confabulation**. Leaving `source_message_ids` empty skips the check (atom kept ungated), so cite real ids to get protection, and never invent facts absent from the source. Note: the check is lexical (shared words), so a heavily paraphrased/normalized atom (e.g. expanding an acronym the source never spelled out) can be dropped even when truthful — keep some of the source's own wording in `content`, or leave `source_message_ids` empty if you must paraphrase far.
**Three types with scope routing:**
- **persona** (priority 50-100) → stored globally. Stable user attributes, preferences.
- **episodic** (priority 60-100) → stored per-project. Events, decisions, plans.
- **instruction** (priority 70-100) → stored globally. AI behavior rules.
**Filtering — skip these:**
- Greetings, filler, one-time requests
- AI tool outputs, error messages
- Anything already covered by existing memories (check with `tmem search <keyword>` if unsure)
If a session has no extractable memories, mark it done and move to the next.
4. Write atoms
Write the JSON array to a temp file to avoid shell escaping issues, then pipe it:
cat <<'ATOMS_EOF' | tmem write-l1 --session SESSION_ID
[{"content": "...", "type": "persona", "priority": 80, "scene_name": "...", "source_message_ids": ["<real-uuid-from-transcript>"], "metadata": {}}]
ATOMS_EOF5. Verify and hint
tmem status tmem changelog --last 10
After seeding, tell the user: **Next: use the memory-consolidate skill** to group atoms into scenes and synthesize persona.
Four-layer long-term memory (L0 Conversation → L1 Atom → L2 Scene → L3 Persona) for Claude Code, inspired by Tencent/TencentDB-Agent-Memory. Fully local — no external Gateway, no paid API, no Python.
Repo: baodq97/tencentdb-agent-memory
Other skills on tencentdb-agent-memory.
- /contrib-consolidate
Internal phase — consolidate a contributor's L1 atoms into an L3 persona (11 dimensions). Invoked by contrib-profile / `/contrib build`.
Open skill - /contrib-ingest
Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`.
Open skill - /contrib-profile
Orchestrator for Contributor Intelligence. Trigger when the user pastes a GitHub profile/repo URL or handle and asks to profile, analyze, learn from, or study an engineer (EN/VI — "phân tích người này", "học từ người này"). Runs add→ingest→build→playbook end-to-end via the
Open skill - /contrib-synthesize
Internal phase — synthesize learnable playbooks, cross-engineer common capabilities, and you-vs-role-model comparisons from built personas. Invoked by contrib-profile / `/contrib playbook|compare`.
Open skill - /memory-consolidate
Consolidate L1 memory atoms into L2 scene blocks and L3 persona. Invoked by the memory-consolidator agent, or manually via /memory-consolidate.
Open skill - /memory-view
Open the memory visualiser in the browser — a health check on the memory store: is it working, what is wrong, and what to run to fix it. Run manually via /memory-view.
Open skill

