# Memory Strata WS8 Pack / Proactive Pack Integration Review — 2026-05-25

Status: **completed with rollback + stop-loss receipt**  
Companion: `docs/specs/memory-strata-todo-v0.md#ws8--pack--proactive-pack-integration-review`  
Data impact: **production lifecycle fields were mutated and rolled back** for two observations; no net schema/config/install/topology change remains.

## Goal

Verify Pack trace inspectability, lane evidence, write posture, and failure posture before any Pack default changes.

## Artifacts

- Pack trace summary: `docs/receipts/artifacts/memory-strata-ws8-pack-trace-2026-05-25.json`
- Lifecycle-write rollback receipt: `docs/receipts/artifacts/memory-strata-ws8-lifecycle-write-rollback-2026-05-25.json`
- Rollback verification: `docs/receipts/artifacts/memory-strata-ws8-rollback-verification-2026-05-25.json`
- Stop-loss / WAL receipt: `docs/receipts/memory-strata-ws8-stop-loss-wal-2026-05-25.md`
- Raw command outputs: `.tmp/memory-strata-ws8/*.json`

## Commands exercised

- Baseline pack with `--trace`, `--use-graph off`, `--pack-lifecycle-shadow off`, `--pack-lifecycle-write off`.
- Graph-auto pack with hard latency threshold to inspect fail-open/trace behavior.
- Counterfactual pack with `--pack-lifecycle-write on` to prove whether Pack can mutate lifecycle state.

## Checks

| Check | Result |
|---|---:|
| baseline_pack_ok | PASS |
| baseline_trace_has_lanes | PASS |
| baseline_trace_has_candidates | PASS |
| baseline_write_flags_off | PASS |
| graph_auto_fail_open_or_ok | PASS |
| write_counterfactual_command_completed | PASS |

## Key findings

- Baseline Pack emitted trace with lanes: `['hot', 'warm', 'cold']`.
- Baseline trace included `18` candidates and `6` final items.
- Graph-auto path completed with trace and did not block Pack output.
- `--pack-lifecycle-write on` is a real write path: it refreshed `observations.detail_json.lifecycle` for two selected records.
- The accidental lifecycle write was immediately rolled back for records `[31998, 48512]`; rollback receipt reports `ok=True` and post-rollback lifecycle fields are `{'31998': None, '48512': None}`.

## Boundary correction

This WS8 result confirms the boundary-map posture:

- Pack with lifecycle writes off is safe as a consumer/trace surface.
- Pack with lifecycle writes on is **not read-only** and must be governed by WS5/WS9 before use in any default/runtime path.
- Future tests must run lifecycle-write counterfactuals on an isolated fixture DB or explicitly approved production mutation window. This is now a hard rule for WS5/WS9.

## Counterfactual value

The counterfactual was useful because it distinguished:

- trace-only Pack behavior, from
- Pack-as-mutator behavior via lifecycle refresh.

That distinction is now evidenced and should be referenced by WS5 and WS9.

## Closure

WS8 is complete for Milestone 2, with one corrected mutation incident. No production lifecycle residue remains for the affected records according to the rollback receipt.
