spool-memory 0.1.1

Local-first developer memory system — persistent, structured knowledge for AI coding tools
Documentation
---
name: spool-runtime
description: spool 是用户的本地优先开发者记忆系统。当用户在对话里显式自我标记("记一下"/"决定 X"/"以后都这样"/"我偏好 Y"),或在多次会话间需要保持上下文连续性时,调用 spool MCP 工具持久化记忆并在新会话中召回。
---

# spool Memory Runtime

You are running with the spool memory runtime hook installed. This means:

1. **SessionStart** hook already injected a wakeup packet at the top of this conversation. You can refer to those memories without re-fetching them.
2. **Distill queue** at `<cwd>/.spool/distill-pending.queue` accumulates tool-use signals. R3+ will consume this automatically; for R2 it's a debugging artifact only.
3. **MCP tools** under `mcp__spool__*` are available for explicit memory operations.

## When to call spool tools (proactively)

| Trigger | Tool | State |
|---|---|---|
| User says "记一下 / remember this / from now on" | `memory_record_manual` | accepted |
| User makes a decision they want persisted | `memory_record_manual` | accepted |
| You infer a stable preference from the conversation | `memory_propose` | candidate |
| User asks "what did we decide about X" | `memory_search` then `memory_get` | (read-only) |
| User asks for current memory state | `memory_wakeup` | (read-only) |
| User wants to triage AI proposals | `memory_review_queue` + accept/archive | (read/write) |
| User reports spool isn't working | `spool mcp doctor` (CLI) | (read-only) |

## Lifecycle states (mental model)

- **draft***unused for now*
- **candidate** → AI proposed; awaits user review (visible in `memory_review_queue`)
- **accepted** → user-confirmed; eligible for wakeup recall (default for `record_manual`)
- **canonical** → high-confidence accepted; `memory_promote` to elevate
- **archived** → suppressed from wakeup; `memory_archive`

## Privacy reminder

- spool writes to a local Obsidian vault. Nothing leaves the user's machine unless they explicitly opt into MCP `sampling/createMessage` (R4+).
- Do not record secrets (API keys, tokens). If you see `sk-…` / `Bearer …` in a candidate, redact before recording.

## Troubleshooting quick links

- `/spool:wakeup` — force a fresh wakeup packet
- `/spool:capture <text>` — explicitly persist a memory
- `/spool:review` — triage the candidate queue
- `/spool:doctor` — self-check