# Memorb Ingest

> Ingest workflow: ingest raw content and update structured memory pages. Every time User share some information or story, use this Triggers: 讀這個, 整理這份逐字稿, 處理這篇文章, 幫我看這個 PDF, 這篇文章學到什麼. Prerequisite: memorb-conventions.

- Skill: `iamjosuho/memorb-ingest` (Agent Skill)
- Install (CLI): `npx skillmds@latest add iamjosuho/memorb-ingest`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iamjosuho/memorb-ingest/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: iamjosuho (https://skillmd.com/u/iamjosuho)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iamjosuho/memorb-ingest

---


# Memorb Ingest Skill (Pass 1: Capture & Distill)

> LLM Wiki Architecture: **raw (sources) → wiki (memorbs/ structured pages) → schema (CLAUDE.md)**.
> `memorb-ingest` operates as **Pass 1** of the Two-Pass pipeline: it captures, deduplicates, and distills new information into atomic notes inside `memorbs/HQ/OrbTrack/`. Impact scanning and PARA sorting are deferred to **Pass 2** (`orbtrack-triage`).

## Orb Layout Decision (apply before any write)

When creating a **new** orb in `memorbs/HQ/OrbTrack/`:
- **Has attachments** (images, PDFs, audio transcripts, etc.) → create a **bundle orb**: `mkdir memorbs/HQ/OrbTrack/{YYYY-MM-DD}-{HHMM}-{Title}/` then write `memorbs/HQ/OrbTrack/{YYYY-MM-DD}-{HHMM}-{Title}/{YYYY-MM-DD}-{HHMM}-{Title}.md`; place attachment files in the same folder.
- **No attachments** → create a **plain orb**: write `memorbs/HQ/OrbTrack/{YYYY-MM-DD}-{HHMM}-{Title}.md` directly.

## Execution Sequence (Pass 1: Capture & Distill)

1. **Deduplication & Anti-Noise Check (Before Write)**:
   - Search `memorbs/` and `memorbs/HQ/OrbTrack/` for existing matching pages or topics (`grep` titles, aliases, keywords).
   - If the information is already recorded or is fragmented/too minor for a standalone note, **do NOT create a new note file or journal entry**. Report the duplicate/noise result; `log.md` is not a catch-all signal store.

2. **Distill into an Atomic Note in OrbTrack**:
   - Create a plain or bundle orb in `memorbs/HQ/OrbTrack/` using `{YYYY-MM-DD}-{HHMM}-{Title}` format.
   - **Frontmatter Schema**:
     ```yaml
     ---
     title: {Title}
     date: YYYY-MM-DD
     tags: [memory, atomic]   # Topic or atomic note tags; DO NOT use 'orbtrack' tag
     status: unprocessed
     ---
     ```
   - **Body Structure**:
     - Main content / summary / context
     - `## 使用者訊號（可選）`: Record only a useful cue, paraphrased or redacted when sensitive. Never require a verbatim quote; omit the section when no cue is needed.

3. **Keep Raw Material inside Bundle** *(when attached)*:
   - Drop documents (`.md`, `.txt`, `.pdf`, scans) alongside the main markdown file in the bundle orb folder. Never place raw audio/video in the vault — reference external links/locations instead.

4. **Record the Ingest Commit**:
   - After creating the OrbTrack orb, append a concise `ingest` entry at the top of `memorbs/log.md`:
     ```markdown
     ## [YYYY-MM-DD HH:MM] ingest | {Title}
     - 影響頁面：[[memorbs/HQ/OrbTrack/{orb}]]
     - 操作註記：已建立待分流 orb。
     - 訊號（可選）：{minimal cue; redact or omit sensitive detail}
     ```
   - Keep the journal entry an index only. Put content, analysis, and context in the linked orb, not in `log.md`.

5. **Staging Landing (Completion of Pass 1)**:
   - The distilled orb remains in `memorbs/HQ/OrbTrack/` with `status: unprocessed`.
   - Report the created file path to the user. `memorb-ingest` (Pass 1) is now complete. The orb awaits Pass 2 (`orbtrack-triage`) for impact scanning and PARA classification.

## Red Flags

| Rationalization | Reality |
| :--- | :--- |
| *"It's just a chat, no need to log or capture"* | Any new personal story, decision, or experience shared during conversation should be captured into `OrbTrack/`. |
| *"I'll tag it with `orbtrack`"* | `tags` should use topic or atomic tags (e.g. `[memory, atomic]`), not `orbtrack`. Folder location already defines staging. |
| *"I'll immediately run triage and move it out"* | `memorb-ingest` stops at `OrbTrack/` (Pass 1). Impact scanning and PARA sorting belong strictly to `orbtrack-triage` (Pass 2). |


