# Memory Platform — Consolidated Roadmap

**Status:** Active draft. Rerationalized 2026-05-11.
**Owner:** Ben Booth
**Purpose:** One ordered priority list across every memory-related plan: PRD phases, ADR stages, spec follow-ups, tooling, benchmarks, cross-tool integration. The PRD + ADR each describe slices of the work; this doc resolves them into a single sequence.
**Replaces (when conflicts arise):** `prd-memory.md` §8 timeline, `prd-cross-tool-memory.md` §8 timeline, ADR-033 Migration table, ad-hoc tracking in working notes.

---

## Update log

- **2026-05-14** — Identity + cross-surface design layer drafted:
  - **0.17.1 fully deployed.** PR #176 merged to main; axiom-os-lm 0.17.1 wheel published; NeutronOS pinned to `>=0.17.1` (Neutron_OS/pyproject.toml line 31 cites PRs #175 + #176). 484/0/0 NeutronOS tests pass against the 0.17.1 source.
  - **Three new design-only PRDs on `design/identity-and-bindings` branch** (no code ships from this branch; PRDs only per user's "PRD first, tech spec when wire format stabilizes" lean):
    - `prd-identity-and-bindings.md` (NEW, 244 ll) — external-account → axi principal binding layer; Binding fragment shape (`cognitive_type=core`, `fact_kind=identity_binding`); persona model bundling (principal_id, visibility, classification, bindings); three verification levels (declared / oauth_owned / vendor_attested); `axi identity` verb-set; storage split (canonical fragment + ~/.axi/identity/bindings.toml cache). Sits between ADR-035 (consumes accountable_human_id contract) + prd-identity-acquisition.md (extends install-time pipeline post-install).
    - `prd-cross-surface-memory.md` (NEW, 213 ll) — within-vendor surface continuity. Vocabulary lock: Vendor / Surface / Product / Provider / Surface-family / Multiplexer-client / Vendor-account. Per-vendor inbound/outbound matrix (Anthropic + OpenAI + Google + Microsoft tier-1). Three integration patterns (surface-pair / cross-vendor / multiplexer-routing-aware). OpenCode-as-ally posture: schema alignment + MCP host compatibility + upstream registry contribution; explicitly NOT "preferred client" framing.
    - `prd-cross-tool-memory.md` (TRIMMED, 191 ll) — scope-narrowed to per-client adapter mechanics; delegates vocabulary + within-vendor + multiplexer policy to the new sibling PRD; reconciliation §11 cross-references both new PRDs.
  - **Identity prior art audited before drafting.** Found ADR-035 (accountable_human_id mandate) + prd-identity-acquisition.md (`IdentityProvider` extension kind + `did:key:` derivation + cohort identity_policy) + ADR-026 (single master + 4 rights) + ADR-020/022/024 (federation identity roots). The new identity-and-bindings PRD is *narrower* than first sketched: it owns the binding layer *between* this existing infrastructure and external surfaces, never duplicating.
  - **Sequencing.** Phase 0 (now, this branch): three design docs land. Phase 1 (pre-0.18): companion specs (`spec-identity-bindings.md`, `spec-cross-surface-memory.md`). Phase 2 (0.18 or 0.19): `axi identity` verb-set + vendor-family IdentityProvider extensions. Phase 3 (0.19): per-product adapter rework consuming `resolve_binding()`. Phase 4 (0.20+): federation + classification integration; browser-extension inbound for tier-1 web surfaces.
- **2026-05-13** — 0.16.0 shipped + 0.17 maturation framework drafted:
  - **0.16.0 released** (PR #174 merged to main, commit `0cdb338f`). Ships codex CLI transcript ingest (cross-1) + git-isolation hardening (new `safe_git_env` helper + 22 production sites refactored). NeutronOS pinned to `>=0.16.0` on `fix/ci-publish-always-on-tag`. Full CI green incl. Integration + Migration tests; NeutronOS test suite 484/0/0 against the 0.16.0 source.
  - **Maturation framework drafted on `feat/memory-0.17`** (commit `5793ab06`). Restructures the 0.17 scope around the broader memory-maturation lifecycle rather than the narrow Park-et-al reflection slice. Three coordinated specs land:
    - `spec-memory-maturation.md` (umbrella) — two operations (consolidate / compact), six stages, multi-scale timing, dream-cycle orchestrator, MIRIX 6-type backbone, storage tiering, classification monotonicity, per-extension profiles.
    - `spec-memory-reflection.md` (rewrite, narrower) — stage 3 (consolidate) only. Three cadences (daily / weekly / monthly) + custom. LLM and deterministic extractor kinds.
    - `spec-memory-compaction.md` (new) — stages 4-6 (summarize / archive / forget). Audit-chain enforcement. Cryptographic erasure. Tombstone-event channel. TIDY operator.
  - Tier 2 [spec-1] (reflection) decomposed into mat-1…mat-8 (see §1.2 Maturation lifecycle), with the first four [mat-1…mat-4] landing in Tier 2 as #14a–#14d.
- **2026-05-11** — Two major updates:
  - **Rerationalized.** (a) Classroom Prague summer 2026 deadline was missed; the team is resetting to a higher-quality classroom solution (see `project_classroom_prague_missed_reset`). Prague is no longer an active freeze trigger; "post-Prague" gates dissolve into "longer-arc" sequencing on each item's own merits. (b) Added the cross-tool memory work as a first-class category (per `prd-cross-tool-memory.md` + `docs/working/cross-tool-memory-guarantees-sketch.md`). (c) Re-ordered tiers accordingly. (d) Tier 1 items from the 2026-04-26 draft may be partially or fully shipped — verify before starting.
  - **"Best memory platform" goal locked.** Primary goal: best for **agent-platform builders**, vs **Mem0** and **Letta**, on cross-tool reach + developer ergonomics + public-benchmark parity. Compliance/regulated-deployment framing explicitly NOT the headline driver. See `prd-memory.md` §3 + `project_axiom_best_goal_locked.md`.
- **2026-04-26** — Initial draft.

---

## 1. What's in flight (audit)

### 1.1 Already shipped

| What | Where | Status |
|---|---|---|
| Layered architecture commitment | ADR-033 | shipped |
| Federation policy primitives (Visibility / Classification / Trust / Gateway protocol) | spec-federation-policy + axiom.vega.federation.policy | shipped |
| MemoryFragment.visibility + .classification fields | axiom.memory.fragment | shipped |
| L1 dual-write adapter (Stage 1) | axiom.memory.adapters | shipped |
| RecentActivityProjection (Stage 3 first inhabitant) | axiom.memory.projections | shipped |
| Stage 3 perf optimization (101× projection speedup) | axiom.artifacts.registry SQLiteBackend.find_fragments + index | shipped |
| Stage 2 minimum-viable concept graph | axiom.memory.graph | shipped |
| Stage 2 deterministic text extractor + classification gate | axiom.memory.graph.DeterministicTextExtractor + ExtractorRegistry | shipped |
| Compliance suite (12/14 invariants pass) | tests/memory/test_compliance.py + memory_compliance marker | shipped |
| Periodic benchmark CI | .github/workflows/memory-benchmarks.yml | shipped |
| Baseline + Stage 3 + integrated benchmark JSONs | docs/working/memory-benchmarks-baseline-*.json | pinned |
| Build_memory_stack ergonomic bootstrap | axiom.memory.bootstrap | shipped |
| prd-memory + spec-memory + spec-federation-policy + benchmarks | docs/{prds,specs,working}/ | shipped |
| Adjacent-spec amend-PRs (knowledge-graph, session-store, agent-state-management) | docs/specs/spec-*.md | shipped |
| Three open questions decided (concept identity, time-travel, lint gradient) | spec-memory §14 + prd-memory §9 | shipped |
| **Cross-tool — claude-code adapter via KNOWN_TOOL_PARSERS** | axiom.memory.session_capture | shipped 2026-05-06 |
| **Cross-tool — MCP server (axiom-memory) read+write tools + instructions** | axiom.extensions.builtins.memory.mcp_server | shipped 2026-05-06 |
| **Cross-tool — durable MCP user-scope registration + `axi dr` check** | axiom.extensions.builtins.memory.register_mcp + axi.cli.doctor | shipped 2026-05-06 |
| **Cross-tool — foreground `axi memory ingest --watch`** | session_capture.watch_ingest_claude_code_jsonl | shipped 2026-05-07 |
| **Cross-tool — heartbeat installer scaffold** | axiom.extensions.builtins.memory.heartbeat_install | shipped (scaffold) |
| **prd-cross-tool-memory + cross-tool-memory-guarantees-sketch** | docs/{prds,working}/ | shipped 2026-05-11 |
| **0.16.0 — codex CLI transcript ingest** (cross-1) | axiom.memory.session_capture + KNOWN_TOOL_PARSERS | shipped 2026-05-11 (PR #174) |
| **0.16.0 — git-isolation hardening** (safe_git_env + 22 sites) | axiom.infra.git.safe_git_env | shipped 2026-05-11 (PR #174) |
| **NeutronOS pinned to axiom-os-lm >=0.16.0** | UT-Computational-NE/neutron-os-core | shipped 2026-05-11 |
| **Maturation framework drafts** (umbrella + reflection rewrite + compaction) | docs/specs/spec-memory-{maturation,reflection,compaction}.md | drafted 2026-05-13 on feat/memory-0.17; impl pending |

The platform is real today — the prioritization question now is **"what defends the claim, unblocks adoption, and widens the substrate's reach."**

### 1.2 In the queue (everything else)

Grouped by category, not yet ordered:

**Cross-tool memory integration** (per `prd-cross-tool-memory.md`)

- [cross-1] **codex adapter** (AEOS extension) — first TDD slice (already cross-tool validated via green-dragon/purple-unicorn round-trip)
- [cross-2] L2 ingest daemon (launchd/systemd unit) + per-tool position/lag in artifact registry
- [cross-3] `axiom_memory_instructions` template in prompt registry (per `prd-prompt-registry.md` §Use Cases)
- [cross-4] MIRIX cognitive-type tagging at the write path (semantic / vault / core beyond episodic)
- [cross-5] Resume-on-start hook (Claude Code first) + RPE intent `resume.task_context`
- [cross-6] Remaining adapter stubs filled: jetbrains, vscode-copilot, gemini, chatgpt-desktop (TDD per slice)
- [cross-7] Anthropic memory-tool provider bridge (one-way: provider → axiom as `semantic` fragments)
- [cross-8] `axi dr` liveness probe of each registered tool (`list_tools` roundtrip)
- [cross-9] SCAN consumer of heartbeat-freshness + daemon-lag from artifact registry
- [cross-10] A2A migration (codex enrolled as first A2A peer; subscriptions replace polling)
- [cross-11] Ledger replication to second peer (CRDT-merge under personal cohort)
- [cross-12] `axi dr --drill` — monthly SQLite-from-audit rebuild test in temp dir
- [cross-13] Local write-queue under `~/.axi/queue/` for offline durability
- [cross-14] `fragment.classification` optional schema field (additive; default null; land with consumer)

**Tooling (extension-author affordances)**

- [tool-1] `axi ext init` — `--memory=<profile>` for substrate extensions, `--tool=<t>` for cross-tool adapters
- [tool-2] `axi ext lint --memory` — manifest-vs-source cross-checker (the §9.6 patterns)
- [tool-3] `axi ext shadow-audit <ext>` — runtime audit tool
- [tool-4] `MigrateToMemory` helper for existing bespoke stores

**Spec simplification (lower the cost of doing the right thing)**

- [doc-1] spec-memory Quick Start + Choose Your Path navigation
- [doc-2] working/memory-quickstart.md — 1-page extension-author getting-started
- ~~[doc-3] working/memory-interop.md~~ — **superseded by `prd-cross-tool-memory.md`**

**Performance + scale**

- [perf-1] Stage-3-of-L2: evidence-table refactor (the quadratic write-cost finding)
- [perf-2] Async extractor execution (per spec I13)
- [perf-3] Projection cache layer (when measurement says it's worth it)

**Public benchmarks (defend the "best memory platform" claim)**

- [bench-1] LongMemEval — first run + comparison vs Mem0 v0.1
- [bench-2] LoCoMo — long conversational memory
- [bench-3] MemBench — episodic recall
- [bench-4] Cross-tool resume-eval corpus — measures restart-safety guarantee per `prd-cross-tool-memory` §3

**Spec follow-ups (advanced capabilities)**

- ~~[spec-1] spec-memory-reflection — Park et al. consolidation~~ → **draft shipped 2026-05-13** as the three-spec maturation framework (`spec-memory-{maturation,reflection,compaction}.md`). Impl tracked under `Maturation lifecycle` below as `mat-1..mat-8`.
- [spec-2] spec-memory-hierarchy — MIRIX hierarchy operationalized (working → recall → archival). *Note: largely subsumed by `spec-memory-maturation.md` §5 cognitive-type promotion + §3 stages. Likely retire as a separate spec.*
- [spec-3] spec-memory-storage-discipline — ADR-033 follow-up; lint rule details + audit format
- [spec-4] spec-cross-tool-memory — normative tech spec paired with `prd-cross-tool-memory`

**Maturation lifecycle** (per `spec-memory-{maturation,reflection,compaction}.md` on `feat/memory-0.17`)

- [mat-1] Dream-cycle orchestrator service — per-scope cadence evaluator, budget enforcement, stage gating
- [mat-2] Importance scoring (stage 2) — opt-in at write time + catch-up sweep; deterministic + LLM extractor variants
- [mat-3] Reflection (stage 3) impl — daily cadence first, then weekly themes, then monthly identity (`semantic → core`). Per `spec-memory-reflection.md`.
- [mat-4] Compaction (stages 4-6) impl — summarize → archive → forget. Per `spec-memory-compaction.md`. TIDY owns the operator role.
- [mat-5] Storage tiering driver — hot SQLite default + warm rotated shard + cold object-store backend; `axiom://` URI resolution transparent across tiers
- [mat-6] Cryptographic erasure path — keyed encryption-at-rest + key-destruction tombstones (ADR-026)
- [mat-7] Per-extension maturation profiles in manifest — `default | aggressive | conservative | regulated | custom`
- [mat-8] Compliance audit (`axi memory audit`) — retention-violation reports, audit-chain integrity checks for WARDEN

**Stage 4–6 architecture**

- [arch-4] Stage 4 — blob store extraction; manifest-as-projection
- [arch-5] Stage 5 — federation gateway end-to-end (closes compliance C4 + C9)
- [arch-6] Stage 6 — second-extension proof (chat or research-loop on the same primitives)

**Compliance debt**

- [comp-1] C4 — gateway scope-internal isolation (lands with Stage 5)
- [comp-2] C9 — hop-bound enforcement (lands with Stage 5)

**Identity + cross-surface design layer** (per `prd-identity-and-bindings.md` + `prd-cross-surface-memory.md`, both design-only on `design/identity-and-bindings` 2026-05-14)

- [id-1] `prd-identity-and-bindings.md` — design PRD. **drafted 2026-05-14**
- [id-2] `prd-cross-surface-memory.md` — design PRD. **drafted 2026-05-14**
- [id-3] `prd-cross-tool-memory.md` scope trim — delegates vocabulary + within-vendor + multiplexer policy. **landed 2026-05-14**
- [id-4] `spec-identity-bindings.md` — wire format for the `identity_binding` fragment shape + cache file format + verification-proof storage; pre-0.18
- [id-5] `spec-cross-surface-memory.md` — multiplexer-provenance hint spec + per-vendor matrix attestation harness format; pre-0.18
- [id-6] `axi identity` verb-set + Binding fragment type + binding-resolution function + cache rebuild; 0.18 late or 0.19
- [id-7] Vendor-family `IdentityProvider` extensions (anthropic / openai / google / github / microsoft); 0.18 or 0.19
- [id-8] Per-product adapter rework consuming `resolve_binding()`; 0.19
- [id-9] Federation + classification integration of bindings; 0.20+
- [id-10] Browser-extension inbound for tier-1 web surfaces (claude.ai / chatgpt.com / gemini.google.com); 0.20+ pending per-vendor ToS review

**Per-extension migration (PRD references but not yet written)**

- [ext-1] **Classroom reset PRD addendum** — supersedes the v0 mapping per `project_classroom_prague_missed_reset`. Per-persona memory affordances + concrete extension ↔ archetype mapping for the reset solution.
- [ext-2] chat extension PRD memory section
- [ext-3] research extension PRD memory section (when the extension exists)

---

## 2. Strategic frame — locked goal + forcing constraints

**Primary goal (locked 2026-05-11 per `prd-memory.md` §3):** Be the best memory platform for **agent-platform builders**, measured head-to-head against **Mem0** and **Letta**. "Best" resolves to three required axes:

- **Cross-tool reach** — substrate spans every LLM tool the builder integrates with (Claude Code, Codex, JetBrains AI, VS Code Copilot, Gemini, ChatGPT Desktop)
- **Developer ergonomics** — `axi ext init` → working extension in <5 min; lint at PR time; one write path, one read path
- **Public benchmark parity-or-surplus** — LongMemEval / LoCoMo / MemBench at Mem0/Letta numbers on rolling cadence

Compliance / regulated-deployment posture stays as a §6 differentiator in `prd-memory.md` but is **not** the headline driver. See `project_axiom_best_goal_locked.md` for the lock context.

**Forcing constraints driving tier ordering:**

1. **Classroom reset quality.** No firm new date for the reset classroom solution; quality bar is the constraint. Memory platform work that improves classroom outcomes is favored; nothing rushes against a date.
2. **Benchmarks defend the goal.** Public benchmarks remain the defensible audit per goal-axis-3. Land them as soon as Stage 2 stabilizes (which it has).
3. **Adoption stalls without ergonomics.** Per goal-axis-2, agent-platform builders won't adopt past a friction wall. The spec is the contract; tooling is what authors actually use.
4. **Cross-tool reach widens adoption per goal-axis-1.** Each LLM tool that joins the substrate widens the claim and compounds with benchmarks — more transcripts in the ledger means more data to evaluate on. The model-discipline gap is closed structurally by the ingest daemon, not by hope.

The order in §3 resolves these constraints against the locked goal.

---

## 3. Recommended priority order

### Tier 1 — first TDD slice + defend the claim + unblock authors (next ~1-2 weeks)

*Status (2026-05-13): #1 shipped in 0.16.0. #2/#3/#4 may have been pre-shipped — verify before reworking. #5/#6/#7 still open.*

| # | Item | Why this tier | Effort |
|---|---|---|---|
| 1 | ~~[cross-1] codex adapter~~ | **✅ Shipped 2026-05-11 as 0.16.0 (PR #174)**. Establishes the pattern subsequent adapter stubs follow. | done |
| 2 | **[doc-1] spec-memory Quick Start + Choose Your Path** | Without this, the spec is unusable as an onboarding doc. ~95% of extension authors should never need to read past §1. | 0.5 day |
| 3 | **[tool-1] `axi ext init`** (`--memory` and `--tool` modes) | Authors scaffold lint-clean. `--tool` mode covers cross-tool adapters. | 1-2 days |
| 4 | **[tool-2] `axi ext lint --memory`** | The "we have policy" claim only works if it catches drift at PR time. | 1-2 days |
| 5 | **[doc-2] working/memory-quickstart.md** | One-page getting-started. Linked from spec Quick Start. | 0.5 day |
| 6 | **[bench-1] LongMemEval first run** | Defends the "best memory platform" claim measurably. Publishing is what makes the claim defensible. | 2 days |
| 7 | **[perf-1] Stage-3-of-L2 evidence-table refactor** *(verify status)* | Quadratic write-cost gap. Blocks scale measurement at 100k+. May have shipped since 2026-04-26 — verify first. | 0.5 day |

**Tier 1 total: ~8-10 days of focused work.** Outcome: first cross-tool adapter delivered TDD-style + authors have spec navigation + scaffolding + lint enforcement + first defensible public-benchmark number + Stage 2 perf at scale.

### Tier 2 — close the cross-tool resilience loop + capability follow-ups (next ~2-3 weeks)

| # | Item | Why this tier | Effort |
|---|---|---|---|
| 8 | **[cross-2] L2 ingest daemon** (launchd/systemd) | Model-discipline backstop becomes structural, not foreground. Closes silent-stop class. | 2-3 days |
| 9 | **[cross-9] SCAN consumer of heartbeat freshness + daemon lag** | The detection half of the resilience loop. Without it, the daemon's death is silent. | 1-2 days |
| 10 | **[cross-8] `axi dr` liveness probe of registered tools** | Per-tool `list_tools` roundtrip surfaces stale handshakes. | 1 day |
| 11 | **[cross-3] `axiom_memory_instructions` prompt-registry template** | L3 instructions become versioned, eval-able, swappable per tool. Reuses `prd-prompt-registry` primitives. | 0.5 day |
| 12 | **[cross-4] MIRIX cognitive-type tagging at write path** | Semantic / vault / core fragments enable correct RPE + RAG scoping downstream. Additive. | 1 day |
| 13 | **[cross-6] Remaining adapter stubs filled** (jetbrains, vscode-copilot, gemini, chatgpt-desktop) | TDD per slice using the codex pattern. Survey each host's transcript surface first. | 3-5 days |
| 14a | **[mat-1] Dream-cycle orchestrator service** | Per-scope cadence evaluator, budget enforcement, stage gating. The orchestrator everything else hooks into. Spec done (`spec-memory-maturation.md §6`); impl pending. | 2-3 days |
| 14b | **[mat-2] Importance scoring** (stage 2) | Opt-in at write time + catch-up sweep. Deterministic + LLM extractor variants. Spec done; impl pending. | 1-2 days |
| 14c | **[mat-3] Reflection impl — daily cadence** (stage 3) | Park et al. daily pass: episodes → semantic via DefaultReflectionExtractor. Spec done (`spec-memory-reflection.md`); TDD impl. | 2-3 days |
| 14d | **[mat-4] Compaction impl — summarize cadence** (stage 4) | TIDY-driven sweep: episodes older than `compaction.summarize_age` with consolidation-derived semantics get summarized; original superseded. Spec done (`spec-memory-compaction.md`); impl pending. | 2-3 days |
| 15 | **[tool-3] `axi ext shadow-audit <ext>`** | Runtime audit tool. Operator-side complement to lint. | 1 day |
| 16 | **[bench-2] LoCoMo** | Second public benchmark. Strengthens comparison surface. | 1-2 days |

**Tier 2 total: ~17-22 days.** Outcome: cross-tool resilience loop closed (heartbeat → SCAN → escalate); all six target tools have at least a parser; **minimum-viable maturation pipeline shipped** (orchestrator + importance + daily reflection + summarize compaction); second benchmark defended. Maturation lifecycle items mat-5 through mat-8 land in Tier 3.

### Tier 3 — longer-arc capabilities (next ~1 month)

| # | Item | Why this tier |
|---|---|---|
| 17 | **[cross-5] Resume-on-start hook** (Claude Code first) + RPE intent `resume.task_context` | Delivers the restart-safety guarantee in its full form: new sessions resume warm without model discipline. |
| 18 | **[cross-7] Anthropic memory-tool provider bridge** (one-way: provider → axiom) | First federated peer. Demonstrates the provider-memory-as-peer pattern. |
| 19 | **[arch-4] Stage 4 — blob store extraction** | Materials at scale; manifests become projections. (Was post-Prague-gated; gate is gone — sequence on its own merits.) |
| 20 | **[spec-2] spec-memory-hierarchy** | Working → recall → archival operationalized. Sets up Stage 6 chat working-memory. |
| 21 | **[perf-2] Async extractor execution** | Required for chat-extension working memory (sync extractor blocks chat). Useful before Stage 6. |
| 22 | **[bench-3] MemBench** | Third public benchmark. Quarterly cadence. |

**Tier 3 total: 3-4 weeks once started.**

### Tier 4 — federation, A2A, multi-host (longer arc)

| # | Item | Why this tier |
|---|---|---|
| 23 | **[arch-5] Stage 5 — federation gateway** | Closes compliance C4 + C9. (Was post-Prague-gated; sequence per compliance need.) |
| 24 | **[cross-10] A2A migration** (codex first peer) | Subscriptions replace `--watch`; capability negotiation replaces config writers. Long-arc structural improvement. |
| 25 | **[cross-11] Ledger replication** (CRDT-merge, personal cohort) | Multi-host survivability. |
| 26 | **[cross-12] `axi dr --drill`** | Monthly tested rebuild from audit. Validates resilience move #1 (audit-canonical, SQLite-rebuildable). |
| 27 | **[cross-13] Local write-queue** under `~/.axi/queue/` | Offline durability for MCP-unreachable moments. |
| 28 | **[tool-4] MigrateToMemory helper** | Becomes load-bearing once a second extension migrates off bespoke storage. |

### Tier 5 — second-extension proof + per-extension docs

| # | Item |
|---|---|
| 29 | **[arch-6] Stage 6 — second extension proof** (chat or research-loop migrates) |
| 30 | **[ext-1] Classroom reset PRD addendum** (per-persona mapping for the reset solution) |
| 31 | **[ext-2] chat extension PRD memory section** |
| 32 | **[ext-3] research extension PRD memory section** |
| 33 | **[cross-14] `fragment.classification` schema field** (land with consumer when classifier is in official production) |

These land naturally as consuming extensions evolve; no tight schedule.

---

## 4. What this changes vs the per-PRD timelines

Both PRDs scope their own phase tables for readability:

- `prd-memory.md` §8 — substrate phases (Stage 1 → Stage 6 per ADR-033)
- `prd-cross-tool-memory.md` §8 — integration-surface phases (claude-code shipped → adapters → daemon → hooks → A2A)

**This roadmap supersedes both when conflicts arise.** Treat the PRD §8 sections as scoped previews of this document.

The 2026-04-26 prd-memory §8 had Phases 4-5 gated "post-Prague" — that gate is gone. The architectural items (blob extraction, federation gateway) sequence here on compliance + maturity grounds, not on a missed-classroom date.

---

## 5. ADR-033 mapping (unchanged in shape)

| ADR-033 stage | This roadmap's coverage |
|---|---|
| Stage 1 (dual-write) | shipped |
| Stage 2 (graph) | minimum-viable shipped; Stage-3-of-L2 perf refactor in Tier 1 (#7) |
| Stage 3 (projections + maturation lifecycle) | RecentActivityProjection shipped + perf optimized; maturation lifecycle drafted (`spec-memory-maturation.md` + reflection + compaction specs); reflection impl in Tier 2 (#14c); compaction impl in Tier 2 (#14d); orchestrator in Tier 2 (#14a) |
| Stage 4 (blob extraction) | Tier 3 (#19) |
| Stage 5 (federation gateway) | Tier 4 (#23); compliance C4 + C9 land here |
| Stage 6 (second-extension) | Tier 5 (#29) |

ADR-033 stays the architecture commitment; this roadmap stays the platform-wide priority order.

---

## 6. Recommended PRD §8 updates

**prd-memory.md §8** — fold "post-Prague" gates into "longer-arc" labels:

```
Phase 1 (shipped)        Architecture committed; first L1+L3 path; Stage 1 + minimum-viable Stage 2; benchmarks pinned
Phase 2 (current, 1-2wk) Tier 1: first cross-tool adapter, docs, tooling, first public benchmark, Stage-3-of-L2 perf
Phase 3 (next, 2-3wk)    Tier 2: cross-tool resilience loop (daemon + SCAN + liveness), reflection, audit tool, more benchmarks
Phase 4 (longer arc)     Tier 3: resume hook, provider bridge, blob extraction, hierarchy, async extractors
Phase 5 (later)          Tiers 4 + 5: federation gateway, A2A, replication, second-extension proof
```

**prd-cross-tool-memory.md §8** — already labeled "longer-arc" for phases 4-5 per the 2026-05-11 cleanup. Cross-link both §8s to this roadmap as the authoritative sequence.

**ADR-033 Migration path** — no change.

---

## 7. What this means concretely for the next session

**State as of 2026-05-13:**
- Tier 1 #1 (codex adapter) shipped in 0.16.0 (PR #174 merged to main).
- Tier 1 #2 (spec-memory Quick Start) pre-shipped per the 2026-05-11 verification; #3 (`axi ext init`) and #4 (`axi ext lint --memory`) also pre-shipped — verify their depth before reworking.
- `feat/memory-0.17` branched from main with three coordinated specs (maturation umbrella + reflection rewrite + compaction). Impl pending.

**Two coherent next-session paths (not mutually exclusive — Tier 1 closure can happen on a short branch in parallel):**

**Path A — Finish Tier 1 first** (defend the goal axes before the next capability leap):
1. Verify Tier 1 #2 / #3 / #4 depth — 1 day
2. memory-quickstart.md (Tier 1 #5) — 0.5 day
3. LongMemEval first run + report (Tier 1 #6) — 2 days
4. Stage-3-of-L2 perf refactor — verify (Tier 1 #7) — 0.5 day if not shipped

**Path B — Start 0.17 maturation impl** (the next memory-capability leap):
1. Dream-cycle orchestrator service (mat-1) — 2-3 days
2. Importance scoring (mat-2) — 1-2 days
3. Reflection daily-cadence impl (mat-3) — 2-3 days
4. Compaction summarize-cadence impl (mat-4) — 2-3 days

~7-11 days for a minimum-viable maturation pipeline (importance → daily reflection → summarize sweep, all under one orchestrator). Ships as 0.17.0 with the maturation lifecycle as the headline differentiator.

---

## 8. Decisions needed from product owner

Open questions (rerationalized 2026-05-11):

1. **Confirm first TDD slice is codex.** Alternative: claude-code is already in `KNOWN_TOOL_PARSERS`; jetbrains may have a transcript path that's faster to verify. Recommendation: **codex first** — already cross-tool validated, exercises the AEOS adapter pattern most cleanly, and the parser contract is straightforward.

2. **Is LongMemEval still the right first public benchmark?** Carried over from 2026-04-26. Recommendation unchanged: yes — most-cited, apples-to-apples with Mem0/Letta/MemGPT.

3. **`axi ext init` scope.** Now also covers `--tool=<t>` for cross-tool adapters. Greenfield or extend? Recommendation: extend if scaffolding command exists; otherwise greenfield with both flag modes from the start.

4. **Cross-tool resume-eval corpus (bench-4).** What workflow defines the corpus? Recommendation: capture 3-5 real Claude Code session transcripts; eval = % of fragments hydrated correctly at resumption.

5. **Verify Tier 1 status** — `doc-1`, `tool-1`, `tool-2`, `perf-1` may be partially or fully shipped since 2026-04-26. Verify before starting each.

If all "your call," Tier 1 proceeds with the defaults above; cross-1 (codex adapter TDD) starts immediately.
