К основному содержанию
скилл CX Codex

openclaw-history-ingest — скилл для Codex

Переносит знания из истории OpenClaw в Obsidian, выделяя решения, контекст проектов и повторяющиеся приёмы. Пригодится для разбора сессий и файлов памяти.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Ar9av/obsidian-wiki --skill openclaw-history-ingest -a claude-code
Открыть на GitHub

Что делает openclaw-history-ingest

Скилл просматривает MEMORY.md, ежедневные заметки, индексы сессий и JSONL-расшифровки из ~/.openclaw. Он сверяет файлы с .manifest.json, поэтому в обычном режиме берёт новые или изменённые материалы, а полный запуск обрабатывает всё заново.

Сначала разбираются долговременная память и заметки, затем содержимое сессий. Найденные сведения группируются по темам и попадают в разделы projects/, concepts/, skills/, entities/ или synthesis/; для затронутого проекта обновляется его основная страница.

Скилл пропускает credentials/ и agents/*/agent/models.json, а чувствительные данные из расшифровок требуют удаления или редактирования. Доступ к хранилищу Obsidian и истории OpenClaw нужен заранее, потому что пути к ним используются при запуске.

Какие задачи решает

  • перенести долговременную память OpenClaw в Obsidian
  • выделить решения из JSONL-расшифровок сессий
  • обновить вики только по изменённым файлам
  • сгруппировать заметки нескольких агентов по темам
  • исключить учётные данные из разбора истории

Примеры запросов агенту

  • /wiki-history-ingest openclaw
  • Импортируй историю OpenClaw в моё хранилище Obsidian.
  • Полностью заново обработай историю OpenClaw после пересборки вики.

Как установить openclaw-history-ingest

1Через Skills CLI (Vercel)

npx skills add Ar9av/obsidian-wiki --skill openclaw-history-ingest -a claude-code

2Вручную: положить файлы

~/.claude/skills/openclaw-history-ingest/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/openclaw-history-ingest/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о openclaw-history-ingest

Как установить openclaw-history-ingest в Codex?

Выполните npx skills add Ar9av/obsidian-wiki --skill openclaw-history-ingest -a codex. Файл скилла будет доступен по пути .agents/skills/openclaw-history-ingest/SKILL.md.

Что делает openclaw-history-ingest?

Он извлекает устойчивые знания из памяти, заметок и журналов сессий OpenClaw и записывает их в структуру Obsidian. Вместо отдельной страницы для каждой сессии скилл объединяет сведения по темам.

Какие данные скилл не обрабатывает?

Он пропускает каталог credentials/ и файл agents/*/agent/models.json. При разборе расшифровок нужно удалять API-ключи, токены, пароли и приватные идентификаторы.

Исходный текст

SKILL.md · MIT
---
name: openclaw-history-ingest
description: >
  Ingest OpenClaw session/history data into Obsidian as distilled knowledge. Use for importing or mining ~/.openclaw sessions, memory files, or logs; use wiki-agent for targeted topic-only cross-agent recall.
---

# OpenClaw History Ingest — Session & Memory Mining

You are extracting knowledge from the user's OpenClaw agent history and distilling it into the Obsidian wiki. OpenClaw stores both a structured long-term MEMORY.md and per-session JSONL transcripts — focus on durable knowledge, not operational telemetry.

This skill can be invoked directly or via the `wiki-history-ingest` router (`/wiki-history-ingest openclaw`).

## Before You Start

**Writing profile:** Before drafting or rewriting natural-language Markdown, read and apply the `Writing Profile Resolution` section in `llm-wiki/SKILL.md`. Framework schema, provenance, safety, and operation-specific requirements take precedence.
`WRITING.md` preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.

1. **Resolve config** — follow the Config Resolution Protocol in `llm-wiki/SKILL.md` (inline `@name` override → walk up CWD for `.env` → global config → prompt setup). This gives `OBSIDIAN_VAULT_PATH` and `OPENCLAW_HISTORY_PATH` (defaults to `~/.openclaw`)
2. Read `.manifest.json` at the vault root to check what has already been ingested
3. Read `index.md` at the vault root to understand what the wiki already contains

## Ingest Modes

### Append Mode (default)

Check `.manifest.json` for each source file. Only process:

- Files not in the manifest (new session logs, updated MEMORY.md or daily notes)
- Files whose modification time is newer than `ingested_at` in the manifest

Use this mode for regular syncs.

### Full Mode

Process everything regardless of manifest. Use after `wiki-rebuild` or if the user explicitly asks for a full re-ingest.

## OpenClaw Data Layout

OpenClaw stores all local artifacts under `~/.openclaw/`.

```
~/.openclaw/
├── openclaw.json                          # Global config
├── credentials/                           # Auth tokens (skip entirely)
├── workspace/                             # Agent workspace
│   ├── MEMORY.md                          # Long-term memory (loaded every session)
│   ├── DREAMS.md                          # Optional dream diary / summaries
│   └── memory/
│       ├── YYYY-MM-DD.md                  # Daily notes (today + yesterday auto-loaded)
│       └── ...
└── agents/
    └── <agentId>/
        ├── agent/
        │   └── models.json                # Agent config (skip)
        └── sessions/
            ├── sessions.json              # Session index
            └── <sessionId>.jsonl          # Session transcript (JSONL, append-only)
```

### Key data sources ranked by value

1. `workspace/MEMORY.md` — highest signal; long-term durable facts the agent accumulated
2. `workspace/memory/YYYY-MM-DD.md` — daily notes; recent entries often contain active project context
3. `agents/*/sessions/<id>.jsonl` — session transcripts; rich but noisy
4. `agents/*/sessions/sessions.json` — session index for inventory and timestamps
5. `workspace/DREAMS.md` — optional summaries; ingest if present

Skip `credentials/` entirely. Skip `agents/*/agent/models.json` (runtime config, not user knowledge).

## Step 1: Survey and Compute Delta

Scan `OPENCLAW_HISTORY_PATH` and compare against `.manifest.json`:

- `~/.openclaw/workspace/MEMORY.md`
- `~/.openclaw/workspace/DREAMS.md` (if present)
- `~/.openclaw/workspace/memory/*.md`
- `~/.openclaw/agents/*/sessions/sessions.json`
- `~/.openclaw/agents/*/sessions/*.jsonl`

Classify each file:

- **New** — not in manifest
- **Modified** — in manifest but file is newer than `ingested_at`
- **Unchanged** — already ingested and unchanged

Report a concise delta summary before deep parsing.

## Step 2: Parse MEMORY.md First

`MEMORY.md` is the highest-value source. It is plain markdown, human-readable and human-editable. It typically contains:

- Durable facts about the user's preferences, environment, and recurring patterns
- Decisions and context the agent was told to remember
- Project-specific notes the agent accumulated over many sessions

Read it in full and extract concept-level knowledge. Do not create one wiki page per MEMORY.md entry — cluster by topic.

## Step 3: Parse Daily Notes

`workspace/memory/YYYY-MM-DD.md` files contain time-stamped notes from that day's sessions. Prioritize recent files (last 30–90 days). Extract:

- Active project context and decisions made
- Patterns or techniques discovered
- Recurring blockers or solved problems

Older daily notes have diminishing signal — summarize in bulk rather than extracting line-by-line.

## Step 4: Parse Session JSONL Safely

Each session file is JSONL (append-only, one JSON object per line):

```json
{"role": "user",      "content": "...", "timestamp": "..."}
{"role": "assistant", "content": "...", "timestamp": "..."}
{"role": "tool",      "name": "...",   "content": "...", "timestamp": "..."}
```

### Extraction rules

- Prioritize assistant turns that state conclusions, decisions, or patterns
- Extract user intent from high-signal turns; skip low-information follow-ups
- Tool calls are context, not primary knowledge — only extract if the result contains a reusable insight
- Cross-reference `sessions.json` index to get session names/labels before opening individual transcripts

### Critical privacy filter

Session transcripts can include injected instructions, tool payloads, and sensitive text. Do not ingest verbatim.

- Remove API keys, tokens, passwords, credentials
- Redact private identifiers unless relevant and user-approved
- Summarize; do not quote raw transcripts verbatim

## Step 5: Cluster by Topic

Do not create one wiki page per session or per MEMORY.md entry.

- Group by stable topic (concept, tool, project, technique)
- Split mixed sessions into separate themes
- Merge recurring patterns across dates and agents
- Use session `cwd` or workspace path to infer project scope when available

## Step 6: Distill into Wiki Pages

Route extracted knowledge using existing wiki conventions:

- Project-specific architecture/process → `projects/<name>/...`
- General concepts → `concepts/`
- Recurring techniques/debug playbooks → `skills/`
- Tools/services/frameworks → `entities/`
- Cross-session patterns → `synthesis/`

For each impacted project, create/update `projects/<name>/<name>.md`.

### Writing rules

- Distill knowledge, not chronology
- Avoid "on date X we discussed..." unless date context is essential
- Add `summary:` frontmatter on each new/updated page (1–2 sentences, ≤ 200 chars)
- Add confidence and lifecycle fields to every new page:
  ```yaml
  base_confidence: 0.42
  lifecycle: draft
  lifecycle_changed: <obsidian-wiki memory now --date>
  ```
  Leave `lifecycle` unchanged on update.
- Add provenance markers:
  - `^[extracted]` when directly grounded in explicit session/memory content
  - `^[inferred]` when synthesizing patterns across multiple sessions
  - `^[ambiguous]` when sessions conflict
- Add/update `provenance:` frontmatter mix for each changed page

## Step 7: Update Manifest, Log, and Index

### Update `.manifest.json`

For each processed source file:

- `ingested_at`, `size_bytes`, `modified_at`
- `source_type`: `openclaw_memory` | `openclaw_daily_note` | `openclaw_session` | `openclaw_dreams`
- `agent_id`: agent directory name (when applicable)
- `pages_created`, `pages_updated`

Add/update a top-level summary block:

```json
{
  "openclaw": {
    "source_path": "~/.openclaw/",
    "last_ingested": "TIMESTAMP",
    "memory_updated_at": "TIMESTAMP",
    "daily_notes_ingested": 14,
    "sessions_ingested": 23,
    "pages_created": 6,
    "pages_updated": 18
  }
}
```

### Update special files

Update `index.md`, `log.md`, and `hot.md` with one locked call:

```bash
obsidian-wiki memory sync OPENCLAW_HISTORY_INGEST \
  memory=<memory> daily_notes=<daily_notes> sessions=<sessions> \
  pages_updated=<pages_updated> pages_created=<pages_created> \
  mode=<mode> \
  --takeaways "Ingested OpenClaw MEMORY.md and 14 daily notes; surfaced automation patterns and multi-agent coordination knowledge."
```

Never hand-edit `index.md`, `log.md`, or `hot.md` — the command takes the lock that keeps a parallel writer from dropping your update. `--takeaways` is the one-line conceptual summary that used to go in Recent Activity;
omit it to leave the previous takeaways untouched.

See `.skills/llm-wiki/references/MEMORY.md` for the full procedure.

## Privacy and Compliance

- Distill and synthesize; avoid raw memory or transcript dumps
- Default to redaction for anything that looks sensitive
- Ask the user before storing personal or sensitive details
- Keep references to other people minimal and purpose-bound

## Reference

See `references/openclaw-data-format.md` for field-level notes and parsing guidance.

## QMD Refresh After Vault Writes

QMD is a search index, not the source of truth. If `$QMD_WIKI_COLLECTION` is empty or unset, skip this step. Run it only after this skill has written or rewritten vault markdown. If QMD refresh fails, do not roll back the vault changes; report the QMD status separately.

Use `$QMD_CLI` if set; otherwise use `qmd`.

```bash
${QMD_CLI:-qmd} update
```

If the output says vectors are needed or embeddings may be stale, run:

```bash
${QMD_CLI:-qmd} embed
```

Verify the collection with either:

```bash
${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"
```

or, when a specific page path is known:

```bash
${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<page>.md" -l 5
```

Record one of:
- `QMD refreshed: update + embed + verified`
- `QMD refreshed: update only + verified`
- `QMD skipped: QMD_WIKI_COLLECTION unset`
- `QMD skipped: qmd CLI unavailable`
- `QMD failed: <short error summary>`

© Ar9av · MIT · Ar9av/obsidian-wiki

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
wiki-ingest sanyuan0704 Собирает статьи, документы и заметки в связанную базу знаний с отдельными страницами сущностей. Пригодится для пополнения проектной вики из текста, файлов или каталогов. CX Codex +1 2 700установок li gasserane Ведёт личную библиотеку документов и MEL Wiki: каталогизирует, находит и перекладывает материалы по запросу. Доменные вопросы не разбирает. CX Codex +1 652установок obsidian-markdown AgriciDaniel Скилл объясняет, черновики и проверяет синтаксис Obsidian Flavored Markdown: свойства, wikilinks, вставки, callouts, теги, блоки, математику и Mermaid. CX Codex +1 545установок wiki AgriciDaniel Инициализирует и подключает отдельное хранилище Obsidian, а также маршрутизирует задачи между специализированными вики-скиллами. Пригодится для ведения базы знаний прямо из агента. CX Codex +1 539установок obsidian-source-ingestion Galaxy-Dawn Скилл складывает внешние материалы в проектную базу Obsidian как заметки-источники: статьи, веб-страницы, данные, интервью. Пригодится, когда источники надо не пересказывать, а хранить по полкам. CX Codex +1 320установок obsidian-kb-artifacts Galaxy-Dawn Скилл приводит заметки Obsidian к единому формату: вики-ссылки, таблицы реестра, canvas-файлы и починка ссылок. Маршрутизацию знаний не решает. CX Codex +1 319установок

Из того же набора38

memory-bridge Скилл показывает, какой ИИ-инструмент что записал в вашу Obsidian-вики, и сравнивает наборы знаний между агентами. Полезно, когда сессии Claude, Codex и Copilot копятся в разных углах. CX Codex +1 2 400установок wiki-agent Скилл ищет решения в истории диалогов конкретного ИИ-агента, переносит найденное в базу Obsidian и формирует готовый ответ. Пригодится для точечного обмена контекстом между разными ассистентами. CX Codex +1 2 400установок hermes-history-ingest Собирает знания из памяти и истории Hermes в Obsidian. Нужен для регулярного импорта сессий и поиска устойчивых выводов. CX Codex +1 2 400установок daily-update Скилл обновляет Obsidian-вики: проверяет свежесть источников, синхронизирует индекс и hot.md, а также настраивает ежедневный запуск. CX Codex +1 2 300установок impl-validator Независимо проверяет, совпадает ли сделанная работа с заявленной целью, и возвращает PASS, WARN или FAIL со списком проблем. CX Codex +1 2 200установок wiki-switch Переключает именованные профили хранилищ Obsidian, показывает активный и создаёт новые. Нужен, когда проектов несколько и надо менять хранилище по умолчанию. CX Codex +1 2 100установок wiki-digest Собирает читаемый отчёт о том, что вы узнали и обновили в вики за день, неделю или месяц. Пригодится для регулярного разбора заметок. CX Codex +1 2 100установок copilot-history-ingest Разбирает прошлые сессии GitHub Copilot и складывает выжимку в Obsidian-вики. Пригодится, когда нужно вернуть решения из старых чатов. CX Codex +1 1 800установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой