# Research Memory Sync

> Sync important Q&A, research discussions, experiment results, code-change summaries, decisions, and learning notes into a user-specified Markdown or Obsidian knowledge base. Use when the user explicitly asks to save, sync, archive,沉淀,整理到知识库/Obsidian/笔记库, or update research memory from the current conversation. Must ask for a knowledge-base path if none is provided.

- Skill: `lichang-12/research-memory-sync` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add lichang-12/research-memory-sync`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lichang-12/research-memory-sync/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Lichang-12 (https://skillmd.com/u/lichang-12)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/lichang-12/research-memory-sync

---


# Research Memory Sync

Use this skill to turn the current discussion or workspace findings into durable Markdown notes inside a user-specified knowledge base, including Obsidian vaults.

## Non-negotiable path rule

Never write to a default knowledge-base path.

Before writing, require one of:

- a path explicitly provided in the current user request;
- a path explicitly provided earlier in the same active task and clearly still in scope.

If no path is available, stop and ask the user for the knowledge-base path. Do not guess from previous unrelated projects, environment history, or common Obsidian locations.

Accept examples:

```text
用 research-memory-sync 同步到 D:\Obsidian\documents\PLC
把这次问答沉淀到 C:\Users\admin\Documents\KnowledgeBase
```

Reject / ask for path:

```text
同步到我的知识库
整理进 Obsidian
把这次内容沉淀一下
```

## Workflow

1. Confirm the destination path.
   - If missing, ask for it.
   - If present, verify whether it exists.
   - If missing on disk, ask before creating unless the user explicitly said to create it.
2. Inspect the existing folder structure.
   - Preserve existing files and naming conventions where obvious.
   - Do not reorganize unrelated notes.
3. Classify the content.
   - Use `Projects/<project-name>/...` for project-specific research.
   - Use `Learning/<topic>/...` for general learning.
   - Use `Literature/<paper-or-author>/...` for paper reading.
   - Use `Inbox/...` when classification is unclear.
4. Write concise, reusable Markdown notes.
   - Separate facts, interpretations, decisions, open questions, and next actions.
   - Prefer tables for metrics and comparisons.
   - Preserve commands, file paths, experiment versions, and concrete dates.
5. Update or create local indexes.
   - Create `00_Index/Home.md` if the target path is empty or lacks an index.
   - Update the nearest relevant index for the note category.
6. Report exactly what changed.
   - List created/updated files.
   - Mention if anything was intentionally not captured.

## Recommended structure

For a general knowledge base:

```text
<kb-path>/
  00_Index/
  Inbox/
  Projects/
  Learning/
  Literature/
  Methods/
  Reports/
  Slides/
```

For a single-project knowledge base:

```text
<kb-path>/
  00_Index/
  Concepts/
  QA/
  Experiments/
  Decisions/
  Prompts/
  Reports/
  Slides/
```

Use the existing structure if the target already has one.

## Note quality rules

- Do not dump the full chat transcript unless the user asks for a transcript.
- Capture durable knowledge: conclusions, definitions, metrics, tradeoffs, commands, and decisions.
- Mark judgments explicitly as judgments.
- Mark uncertain items or future work as open questions / TODOs.
- Use Chinese by default when the user is speaking Chinese.
- Use Obsidian wiki links when helpful, but keep files valid plain Markdown.
- Use YAML frontmatter with at least `type`, `created`, `updated`, and useful tags.

## Safety and overwrite rules

- Never delete or rewrite existing notes unless the user explicitly asks.
- Prefer appending a dated section to an existing note when the same topic already exists.
- When creating a new note, use a clear slug and avoid filename collisions.
- If a collision exists and the content is unrelated, create a suffixed filename.
- For large changes, state the planned files before writing if there is ambiguity.

## Optional helper script

Use `scripts/sync_markdown_note.py` when you want deterministic directory creation, filename sanitization, and index updates. The script requires `--kb-path`; it has no default path.

Read `references/note-schema.md` when you need the preferred note templates or category mapping.

