# ADR 0002: Wake-Up Packet v1

## Status

Accepted

## Context

`spool` already supports project routing, vault scanning, structured note scoring, and multiple output formats.

That is enough to retrieve relevant notes, but not enough to give an AI client a fast and stable way to recover:

- who the developer is
- what project it is in
- what durable constraints matter
- which decisions and incidents should shape behavior immediately

Without a stable wake-up layer, every AI client has to reconstruct orientation from raw note retrieval on each session.

## Decision

`spool` will define a `wakeup.v1` packet schema as the first stable structured memory output.

The v1 packet will:

1. be JSON-first
2. support at least `developer` and `project` profiles
3. be derived from the same routing and ranking core used by current retrieval, with profile-specific source selection
4. preserve provenance for promoted packet items
5. apply conservative sensitivity handling by default
6. support client shaping for `claude`, `codex`, `opencode`, and `generic`

The wake-up packet is a fast-start context bundle, not a replacement for full retrieval and not a ledger export.

For `project` packets, source selection starts from the matched project's configured `note_roots`.
For `developer` packets, source selection may merge global developer-oriented roots with the matched project's roots when helpful.

## Consequences

Positive:

- gives `spool` a stable cross-AI handoff primitive
- creates a natural bridge from retrieval to MCP
- keeps the product explainable and local-first
- allows later ledger work without blocking current value delivery

Tradeoffs:

- introduces another output contract that must remain versioned
- requires section-mapping rules from memory types to packet fields
- may need later revision once ledger-derived memory objects exist

## Follow-Up

1. add `docs/WAKEUP_PACKET.md`
2. define MCP `memory_wakeup` tool contract
3. add packet domain types and builder pipeline in Rust
4. add CLI `wakeup` command
5. add policy and suppression reporting for packet generation
