spool-memory 0.2.3

Local-first developer memory system — persistent, structured knowledge for AI coding tools
Documentation
# Lifecycle Implementation Plan

## Summary

This plan defines the current implementation baseline for moving `spool` from a read-only memory lifecycle prototype into an operable lifecycle workbench.

The work is sequenced in this order:

1. add a shared lifecycle service for GUI / CLI reuse
2. add minimum GUI action flow for review items
3. add CLI lifecycle read/write commands
4. verify against this plan and update handoff docs with completed items

## Key Changes

### Shared lifecycle service

- add a service layer above `LifecycleStore`
- expose workbench reads:
  - pending review
  - wakeup-ready
  - record lookup by `record_id`
- expose write actions:
  - `Accept`
  - `PromoteToCanonical`
  - `Archive`
- keep append-only ledger behavior unchanged
- keep invalid transitions as hard failures with no dirty append

### GUI minimum action flow

- replace the read-only lifecycle text areas with:
  - selectable pending review list
  - selectable wakeup-ready list
  - record detail view
  - action buttons for the selected record
- action visibility rules:
  - `Candidate`: `Accept`, `Archive`
  - `Accepted`: `Promote`, `Archive`
  - `Canonical`: `Archive`
- refresh lifecycle panels after every successful action
- keep the GUI intentionally narrow:
  - no batch actions
  - no inline edit
  - no event history browser
  - no manual memory creation form

### CLI lifecycle surface

- add `memory` subcommands alongside existing `get`, `explain`, `wakeup`
- first-stage commands:
  - `memory list`
  - `memory show`
  - `memory accept`
  - `memory promote`
  - `memory archive`
- all CLI lifecycle commands must reuse the shared lifecycle service

## Test Plan

- service tests:
  - load workbench snapshot
  - accept candidate
  - promote accepted memory
  - archive wakeup-ready memory
  - reject invalid transitions without append
- GUI tests:
  - selected record exposes the correct actions
  - lifecycle state refreshes after successful action
  - failed action preserves useful status/error output
- CLI tests:
  - list pending review
  - show record details
  - accept / promote / archive commands succeed
  - invalid actions fail with readable errors

## Assumptions

- this phase does not add MCP tooling yet
- this phase does not change `memory-ledger.jsonl` schema
- this phase does not add `actor`, `reason`, or `evidence_refs`
- this phase does not add persistent projection cache

## Completion Status

Last checked: `2026-04-11`

Completed in this phase:

- shared lifecycle service added for GUI / CLI reuse
- GUI upgraded from read-only lifecycle text panes to selectable review lists with detail + actions
- CLI gained `memory list`, `memory show`, `memory accept`, `memory promote`, `memory archive`
- verification completed with full test and check passes

Checked for omissions against this plan:

- no missed items inside the scoped implementation baseline
- MCP tooling remains intentionally deferred
- ledger schema changes remain intentionally deferred
- audit metadata (`actor`, `reason`, `evidence_refs`) remains intentionally deferred
- persistent projection caching remains intentionally deferred