# Build Plan: BrainDrive Memory Update Clean Slate Cleanup

**Status:** Complete
**Created:** 2026-07-01
**Updated:** 2026-07-01
**Repository:** `/home/hex/Project/BrainDrive-Test-01`
**Spec:** `Memory-Update-Clean-Slate-Cleanup-Spec.md`
**Test Plan:** No standalone test plan yet; use the spec's `Test Strategy` section as the verification source for this plan.

## Overview

This implementation plan removes the current starter-pack memory update system from active BrainDrive runtime, API, client, tests, prompts, and documentation. The goal is a clean slate: BrainDrive must stop automatically reconciling starter-pack files into owner memory, stop exposing the old memory update API, and stop presenting memory update notices in the web client.

The plan does not design the replacement memory update system. Any replacement needs a separate spec, test plan, and build plan.

## Source Inputs

| Input | Location | Status | Notes |
|---|---|---|---|
| Cleanup spec | `BrainDrive - Update/Memory-Update-Clean-Slate-Cleanup-Spec.md` | Draft/ready for review | Source of truth for target behavior, scope, user stories, and recommendations. |
| Current-state spec | `BrainDrive - Update/Memory-Starter-Pack-Update-Spec.md` | Historical reference | Describes the old updater being removed. Do not treat it as target behavior. |
| Test strategy | Cleanup spec `## Test Strategy` | Embedded in spec | Use until a dedicated test plan is created. |
| Repo current state | `/home/hex/Project/BrainDrive-Test-01` | Reviewed 2026-07-01 | Active references found in gateway, memory, client API, AppShell, and tests. |
| API contract | `builds/typescript/client_web/src/api/CONTRACT.md` | Needs cleanup | Remove advertised memory update endpoint/client behavior. |

## Scope Guardrails

### In Scope

- Remove automatic startup invocation of the current memory update subsystem.
- Remove the current memory update LLM prompt and model planning trigger.
- Remove deterministic starter-pack update planning/apply runtime code.
- Remove `/updates/memory/*` route handlers and active API contract references.
- Remove web-client memory update status/report calls and AppShell notices.
- Remove or rewrite tests that assert old updater behavior exists.
- Preserve existing owner memory files and old `system/updates/*` artifacts.
- Run code-search, focused tests, and broader repo checks before handoff.

### Out Of Scope

- Designing or building the next memory update architecture.
- Deleting, migrating, hiding, or compacting existing `system/updates/*` files.
- Changing starter-pack content for new users except where active updater references must be removed.
- Changing memory backup, restore, import/export, or git history semantics.
- Changing provider/model settings.
- Adding a replacement owner-facing update UI or banner.
- Reintroducing Draft 3 or Finance Budgetting transition logic under a different startup path.

### Change Control

If implementation reveals a need for any of the following, pause and update the spec before continuing:

- A replacement endpoint.
- A compatibility response beyond normal missing-route behavior.
- Any write to existing owner memory.
- Any deletion or migration of old `system/updates/*` artifacts.
- Any new model call, prompt, or tool flow for memory updates.

## Current State & Remediation

| Current Behavior / Gap | Required Target | Source | Build Task |
|---|---|---|---|
| Gateway imports and invokes `runAutomaticMemoryUpdate` during startup. | Startup performs no starter-pack memory update work. | Spec US-1, Requirements | Phase 1 |
| Gateway creates a memory update model adapter and can emit `memory_update_plan`. | No model adapter or model metadata trigger exists for cleanup. | Spec US-2 | Phase 1 |
| Gateway exposes `/updates/memory/status`, `/plan`, `/apply`, and `/reports/:migrationId`. | Old routes are absent from supported API behavior. | Spec US-3 | Phase 2 |
| Migration gate allows `/updates/memory` during migration. | No update-specific exception remains. | Spec Requirements | Phase 2 |
| Client API exports memory update status/report functions and types. | Client API has no memory update contract. | Spec US-4 | Phase 3 |
| AppShell fetches status/report, stores notice state, and writes localStorage dismissal keys. | AppShell has no memory update notice behavior. | Spec US-4 | Phase 3 |
| Memory updater implementation and tests remain active. | Old updater code/tests removed or made historical only outside runtime. | Spec Definition of Done | Phase 4 |
| API contract and tests advertise old behavior. | Docs/tests reflect removal and absence. | Spec Requirements | Phase 4 |

## Key Decisions

| Decision | Choice | Rationale |
|---|---|---|
| Endpoint behavior | Prefer normal missing-route behavior for `/updates/memory/*`. | Matches spec recommendation and avoids keeping compatibility code around old behavior. |
| Old artifacts | Preserve and ignore `system/updates/*`. | These may include owner-readable reports and backups; deletion is a separate retention decision. |
| Startup env var | Remove active behavior for `PAA_MEMORY_AUTO_UPDATE_ENABLED`. | Cleanup makes the old subsystem inert; keeping the variable active would imply behavior still exists. |
| Draft 3 transition | Remove from automatic startup. Delete only if no independent usage remains after import audit. | Prevents legacy memory mutation during cleanup. |
| `brain-drive-layout.ts` | Delete only if import audit shows it is updater/test-only. | Avoid removing any independently useful architecture lint support by accident. |
| Replacement updater | Do not design in this plan. | The spec requires clean slate before replacement architecture. |

## Architecture

### Before Cleanup

```text
Gateway startup
  -> memory update env flag
  -> memory update adapter
  -> runAutomaticMemoryUpdate
  -> Draft 3 transition
  -> manifest/candidates
  -> optional LLM plan or deterministic plan
  -> apply writes, backup, report, state
  -> AppShell reads status/report and displays notice
```

### After Cleanup

```text
Gateway startup
  -> normal runtime/config/auth/memory/prompt loading
  -> no starter-pack memory reconciliation
  -> no memory update model call
  -> no memory update write path

Web AppShell
  -> normal shell rendering
  -> no memory update status/report request
  -> no memory update notice
```

### Components

| Component | Purpose In Cleanup | Key Files | Spec Refs |
|---|---|---|---|
| Gateway startup | Remove automatic memory update behavior. | `builds/typescript/gateway/server.ts` | US-1, US-2 |
| Gateway routes | Remove old memory update API surface. | `builds/typescript/gateway/server.ts`, `auth-routes.integration.test.ts` | US-3 |
| Memory updater module | Remove old planning/apply/prompt implementation from runtime. | `builds/typescript/memory/update-prompting.ts` | US-1, US-2, US-6 |
| Draft 3 transition | Remove automatic legacy mutation path. | `builds/typescript/memory/alpha-draft3-transition.ts` | US-1, US-5 |
| Client API | Remove stale client calls and types. | `client_web/src/api/gateway-adapter.ts`, `client_web/src/api/types.ts` | US-4 |
| AppShell | Remove notice effect/state/rendering/localStorage behavior. | `client_web/src/components/layout/AppShell.tsx`, `AppShell.test.tsx` | US-4 |
| Documentation | Remove active contract/config references. | `client_web/src/api/CONTRACT.md`, `CHANGELOG.md` if needed | Requirements |

### Data Flow

There should be no memory update data flow after cleanup. Existing `system/updates/*` files remain in owner memory but are not read for startup decisions, not served by removed endpoints, not displayed by the client, and not modified by the cleanup.

### Observability & Evidence Hooks

| Evidence Need | Implementation Hook | Verification |
|---|---|---|
| No startup update path | Focused test and code search for `runAutomaticMemoryUpdate` and `PAA_MEMORY_AUTO_UPDATE_ENABLED`. | `rg` plus gateway tests. |
| No model planning prompt | Code search for `memory_update_plan` and old prompt strings. | `rg`. |
| No old routes | Integration tests or route tests request `/updates/memory/*`. | `npm run test -- gateway/auth-routes.integration.test.ts`. |
| No client calls/notice | AppShell tests and code search. | `npm run web:test -- AppShell`; `rg`. |
| No stale imports | Typecheck/build. | `npm run build`; `npm run web:typecheck`. |

## Implementation Roadmap

### Schedule Overview

| Phase | Goal | Spec Refs | Verification Source | Owner | Status |
|---|---|---|---|---|---|
| 1 | Remove startup and model planning path. | US-1, US-2, US-5 | Spec Test Strategy | Builder | Not Started |
| 2 | Remove gateway API and route contract behavior. | US-3 | Spec Test Strategy | Builder | Not Started |
| 3 | Remove client API and AppShell notice. | US-4 | Spec Test Strategy | Builder | Not Started |
| 4 | Remove dead updater modules/tests and update docs. | US-1 to US-6 | Spec Test Strategy | Builder | Not Started |
| 5 | Final audit and baseline verification. | Definition of Done | Spec Test Strategy | Builder | Not Started |

### Phase 1: Remove Startup And Model Planning Path

**Goal:** Gateway startup no longer checks, plans, applies, or reports starter-pack memory updates.

**Spec/Test Trace:**

| Spec Ref | Verification Source | Evidence Required |
|---|---|---|
| US-1 | Startup-focused test and code search | Test output, `rg` output |
| US-2 | Prompt/model trigger code search | `rg` output |
| US-5 | Artifact preservation invariant | Test/code review evidence |

**Tasks:**

| # | Task | Spec Ref | Owner | Status |
|---|---|---|---|---|
| 1.1 | Write or update gateway startup test coverage proving existing drift/update state does not trigger old update behavior. | US-1, US-5 | Builder | Not Started |
| 1.2 | Remove `runAutomaticMemoryUpdate` import and startup invocation from `gateway/server.ts`. | US-1 | Builder | Not Started |
| 1.3 | Remove startup memory update adapter creation and any use of `createMemoryUpdateAdapter` that exists only for updates. | US-2 | Builder | Not Started |
| 1.4 | Remove active behavior tied to `PAA_MEMORY_AUTO_UPDATE_ENABLED`; keep no startup branch that implies update support. | Requirements | Builder | Not Started |
| 1.5 | Run focused startup/gateway tests and code search for startup/model remnants. | US-1, US-2 | Builder | Not Started |

**Success Criteria:**

| Criterion | Spec Ref | Verification | Expected Result | Evidence |
|---|---|---|---|---|
| Startup update function absent | US-1 | `rg -n "runAutomaticMemoryUpdate|PAA_MEMORY_AUTO_UPDATE_ENABLED" builds/typescript/gateway builds/typescript/memory` | No active startup references remain; historical/deleted-test references handled in later phases. | Search output |
| Model planning trigger absent from active gateway path | US-2 | `rg -n "memory_update_plan|createMemoryUpdateAdapter" builds/typescript/gateway builds/typescript/memory` | No active runtime path remains. | Search output |
| Gateway focused tests pass | US-1 | `cd builds/typescript && npm run test -- gateway/auth-routes.integration.test.ts` | Relevant tests pass or expected failures are limited to later phase endpoint assertions. | Test output |

**Exit Criteria:** Gateway startup has no active dependency on the old updater or update-specific model adapter.

### Phase 2: Remove Gateway Memory Update API

**Goal:** `/updates/memory/*` is no longer a supported API surface and cannot execute old update logic.

**Spec/Test Trace:**

| Spec Ref | Verification Source | Evidence Required |
|---|---|---|
| US-3 | Gateway route tests | Test output |
| Requirements | API contract cleanup | Diff and search output |

**Tasks:**

| # | Task | Spec Ref | Owner | Status |
|---|---|---|---|---|
| 2.1 | Rewrite gateway integration tests that currently assert old memory update endpoints exist; assert absence or normal missing-route behavior instead. | US-3 | Builder | Not Started |
| 2.2 | Remove `/updates/memory/status`, `/updates/memory/plan`, `/updates/memory/apply`, and `/updates/memory/reports/:migrationId` route handlers. | US-3 | Builder | Not Started |
| 2.3 | Remove `/updates/memory` migration-gate exception from `gateway/server.ts`. | Requirements | Builder | Not Started |
| 2.4 | Remove route-only imports and types made dead by endpoint removal. | US-3 | Builder | Not Started |
| 2.5 | Run gateway route tests and route reference search. | US-3 | Builder | Not Started |

**Success Criteria:**

| Criterion | Spec Ref | Verification | Expected Result | Evidence |
|---|---|---|---|---|
| Old endpoints do not execute update code | US-3 | `cd builds/typescript && npm run test -- gateway/auth-routes.integration.test.ts` | Tests pass with endpoint removal expectations. | Test output |
| No active route handlers remain | US-3 | `rg -n "/updates/memory|getMemoryUpdateStatus|generateMemoryUpdatePlan|applyMemoryUpdatePlan|readMemoryUpdateReport" builds/typescript/gateway` | No active route/import references remain. | Search output |
| Migration gate exception removed | Requirements | `rg -n "startsWith\\(\"/updates/memory\"\\)|updates/memory" builds/typescript/gateway/server.ts` | No exception remains. | Search output |

**Exit Criteria:** The gateway no longer exposes or special-cases memory update endpoints.

### Phase 3: Remove Client API And AppShell Notice

**Goal:** The web client no longer calls memory update endpoints, stores notice state, writes dismissal keys, or renders update report UI.

**Spec/Test Trace:**

| Spec Ref | Verification Source | Evidence Required |
|---|---|---|
| US-4 | AppShell tests and web typecheck | Test output |
| Interface requirements | Code search | Search output |

**Tasks:**

| # | Task | Spec Ref | Owner | Status |
|---|---|---|---|---|
| 3.1 | Update AppShell tests to assert no memory update API calls are made on mount and stale localStorage keys do not affect rendering. | US-4 | Builder | Not Started |
| 3.2 | Remove `getMemoryUpdateStatus`, `getMemoryUpdateReport`, and `GatewayMemoryUpdateStatus` from client API files. | US-4 | Builder | Not Started |
| 3.3 | Remove AppShell memory update state, effect, dismiss handler, notice rendering, and copy. | US-4 | Builder | Not Started |
| 3.4 | Remove memory update mocks/imports from AppShell tests. | US-4 | Builder | Not Started |
| 3.5 | Run web focused tests and typecheck. | US-4 | Builder | Not Started |

**Success Criteria:**

| Criterion | Spec Ref | Verification | Expected Result | Evidence |
|---|---|---|---|---|
| AppShell makes no memory update calls | US-4 | `cd builds/typescript && npm run web:test -- AppShell` | Tests pass and no update API mocks are needed. | Test output |
| Client API has no old update functions/types | US-4 | `rg -n "getMemoryUpdateStatus|getMemoryUpdateReport|GatewayMemoryUpdateStatus|braindrive.memoryUpdateReportSeen|Memory instructions were updated" builds/typescript/client_web/src` | No active references remain. | Search output |
| Web typecheck passes | US-4 | `cd builds/typescript && npm run web:typecheck` | Exit code 0. | Typecheck output |

**Exit Criteria:** Client runtime and client API contract no longer know about old memory updates.

### Phase 4: Remove Dead Updater Modules, Tests, And Docs

**Goal:** Remove old updater implementation, prompt, tests, and active documentation so the repo cannot accidentally keep or reintroduce the stale subsystem.

**Spec/Test Trace:**

| Spec Ref | Verification Source | Evidence Required |
|---|---|---|
| US-1 to US-6 | Build/typecheck/search | Diff and test output |
| Requirements | API contract and docs review | Diff and search output |

**Tasks:**

| # | Task | Spec Ref | Owner | Status |
|---|---|---|---|---|
| 4.1 | Write or adjust deletion-oriented tests/search checks as needed before removing modules, so stale imports fail clearly. | Definition of Done | Builder | Not Started |
| 4.2 | Delete `memory/update-prompting.ts` and `memory/update-prompting.test.ts` once no active imports remain. | US-1, US-2 | Builder | Not Started |
| 4.3 | Audit `alpha-draft3-transition.ts`; delete it and its test if it is updater-only, otherwise remove only updater coupling. | US-1, Open Questions | Builder | Not Started |
| 4.4 | Audit `brain-drive-layout.ts`; delete it and its test if updater-only, otherwise retain only independently used classification/lint code. | Open Questions | Builder | Not Started |
| 4.5 | Update `memory/starter-pack-draft3-layout.test.ts` only as needed to remove updater-specific expectations without weakening starter-pack initialization validation. | Requirements | Builder | Not Started |
| 4.6 | Remove old API contract sections from `client_web/src/api/CONTRACT.md`. | Requirements | Builder | Not Started |
| 4.7 | Search docs/config for `PAA_MEMORY_AUTO_UPDATE_ENABLED` and old update endpoints; remove active guidance or mark historical only where appropriate. | Requirements | Builder | Not Started |

**Success Criteria:**

| Criterion | Spec Ref | Verification | Expected Result | Evidence |
|---|---|---|---|---|
| Old prompt and updater code absent | US-2 | `rg -n "Merge starter-pack improvements|memory_update_plan|generateMemoryUpdatePlan|applyMemoryUpdatePlan|runAutomaticMemoryUpdate" builds/typescript` | No active references remain. | Search output |
| Old endpoint docs absent | Requirements | `rg -n "/updates/memory|GatewayMemoryUpdateStatus|getMemoryUpdateReport" builds/typescript/client_web/src/api/CONTRACT.md builds/typescript/client_web/src` | No active client/contract references remain. | Search output |
| TypeScript build catches no stale imports | Definition of Done | `cd builds/typescript && npm run build` | Exit code 0. | Build output |

**Exit Criteria:** Runtime code, tests, and active docs no longer contain the old updater as a callable or advertised system.

### Phase 5: Final Audit And Baseline Verification

**Goal:** Prove the cleanup is complete, scoped, and did not break unrelated BrainDrive behavior.

**Spec/Test Trace:**

| Spec Ref | Verification Source | Evidence Required |
|---|---|---|
| Definition of Done | Full checks and search audit | Test/build/search output |
| Invariants | Code review and tests | Evidence summary |

**Tasks:**

| # | Task | Spec Ref | Owner | Status |
|---|---|---|---|---|
| 5.1 | Run final code-search audit from the spec. | Definition of Done | Builder | Not Started |
| 5.2 | Run focused gateway and web checks. | US-1 to US-4 | Builder | Not Started |
| 5.3 | Run broad TypeScript and web checks. | Definition of Done | Builder | Not Started |
| 5.4 | Review git diff for accidental owner-memory, starter-pack, provider, or unrelated changes. | Scope Guardrails | Builder | Not Started |
| 5.5 | Update this plan's completion checklist and record any commands that could not run. | Definition of Done | Builder | Not Started |

**Success Criteria:**

| Criterion | Spec Ref | Verification | Expected Result | Evidence |
|---|---|---|---|---|
| Search audit clean | Definition of Done | `rg -n "runAutomaticMemoryUpdate|generateMemoryUpdatePlan|applyMemoryUpdatePlan|readMemoryUpdateReport|getMemoryUpdateStatus|memory_update_plan|/updates/memory|Memory instructions were updated|braindrive.memoryUpdateReportSeen" builds/typescript` | No active runtime/client references remain. | Search output |
| Focused checks pass | Test Strategy | `cd builds/typescript && npm run test -- gateway/auth-routes.integration.test.ts && npm run web:test -- AppShell && npm run web:typecheck` | Exit code 0 for each command. | Test output |
| Broad checks pass | Test Strategy | `cd builds/typescript && npm run test && npm run build && npm run web:typecheck && npm run web:test` | Exit code 0 for each command. | Test/build output |
| Scope preserved | Scope Guardrails | `git diff --stat` and file review | No unrelated edits, no owner-memory artifact edits, no provider key/config changes. | Diff summary |

**Exit Criteria:** All cleanup requirements are verified, or any blocked verification is documented with exact failure/blocker.

## Technical Details

### Tech Stack

| Layer | Technology | Notes |
|---|---|---|
| Backend/gateway | TypeScript, Fastify | Remove routes and startup wiring in `builds/typescript/gateway/server.ts`. |
| Memory runtime | TypeScript file-backed memory | Remove old updater path without changing memory backup/restore/import/export. |
| Frontend | React, TypeScript, Vite | Remove AppShell notice behavior and client API calls. |
| Tests | Vitest, web test runner | Update focused tests before implementation in each phase. |

### Environment & Version Constraints

Use the repo's existing Node/npm toolchain from `builds/typescript`. Do not add dependencies for this cleanup. Do not introduce new environment variables.

### API Endpoints

No new endpoints are added. The following old endpoints are removed from supported behavior:

| Method | Endpoint |
|---|---|
| GET | `/updates/memory/status` |
| POST | `/updates/memory/plan` |
| POST | `/updates/memory/apply` |
| GET | `/updates/memory/reports/:migrationId` |

### Model / Provider / Tool-Calling Notes

Cleanup must remove model usage for memory updates. No replacement prompt, model call, adapter, tool call, or fallback planner should be introduced.

## Security Considerations

| Threat | Mitigation |
|---|---|
| Accidental owner-memory mutation remains after partial cleanup. | Remove startup/apply paths first, then verify with code search and tests. |
| Old API still exposes stale reports or apply behavior. | Delete handlers and route exception; add/adjust tests for absence. |
| LLM prompt remains callable through a forgotten module. | Delete updater module or ensure no imports; search for `memory_update_plan` and prompt text. |
| Historical backups/reports deleted by cleanup. | Do not touch `system/updates/*` in owner memory; review diff for memory artifact edits. |
| Client implies a removed system still ran. | Remove AppShell notice copy and localStorage behavior. |

## Risks & Mitigations

| Risk | Likelihood | Mitigation |
|---|---|---|
| `brain-drive-layout.ts` is used by non-updater architecture lint. | Medium | Audit imports before deletion; retain independently useful code if needed. |
| Gateway integration tests are broad and may need careful fixture changes. | Medium | Rewrite endpoint assertions narrowly; avoid unrelated auth/runtime refactors. |
| Removing update tests reduces coverage around starter-pack layout. | Medium | Keep starter-pack initialization/lint coverage that is not updater-specific. |
| Docs still mention removed behavior. | Medium | Run endpoint/env-var search across docs and contract files. |
| Full test suite has pre-existing failures. | Medium | Report exact failing command/output; do not claim completion without focused evidence. |

## Human Checkpoints

### After Phase 2

Confirm endpoint removal behavior: normal 404/missing-route behavior is still acceptable, or decide whether a temporary 410 compatibility response is required. Recommendation: keep normal missing-route behavior.

### After Phase 4

Review whether `alpha-draft3-transition.ts` and `brain-drive-layout.ts` were deleted or retained. Recommendation: delete only if import audit proves they are updater-only; otherwise document why retained.

### Before Merge / Handoff

Review final `rg` output and `git diff --stat` to confirm the cleanup did not expand into replacement update design, owner-memory artifact migration, or unrelated refactors.

## Open Items

| Open Item | Recommendation | Blocking? |
|---|---|---|
| Dedicated test plan is missing. | Use the spec's Test Strategy for implementation, then create a separate test plan before large replacement work. | No for cleanup plan. |
| 404 vs 410 for removed endpoints. | Use normal missing-route behavior unless external client compatibility requires 410. | Human checkpoint after Phase 2. |
| Retain or delete `alpha-draft3-transition.ts`. | Delete only if no independent usage remains. | Decided by import audit. |
| Retain or delete `brain-drive-layout.ts`. | Retain if starter-pack lint or future memory architecture tests use it outside updater code. | Decided by import audit. |
| Communicate removal to owners in UI. | Do not add UI messaging in V1. | No. |

## Completion Checklist

### Code

- [x] Gateway startup update path removed.
- [x] Memory update model adapter and prompt trigger removed.
- [x] `/updates/memory/*` route handlers removed.
- [x] `/updates/memory` migration-gate exception removed.
- [x] Client memory update API functions/types removed.
- [x] AppShell memory update notice removed.
- [x] Old updater implementation/tests deleted or made non-runtime historical references only.
- [x] No new updater/replacement behavior introduced.

### Documentation

- [x] `CONTRACT.md` no longer advertises old memory update API behavior.
- [x] Active docs/config no longer recommend `PAA_MEMORY_AUTO_UPDATE_ENABLED`.
- [x] This implementation plan updated if scope or verification changes.
- [x] Cleanup spec updated if implementation requires a product decision change. No spec change was required.

### Verification

- [x] Focused gateway tests pass.
- [x] Focused AppShell/web tests pass.
- [x] Web typecheck passes.
- [x] Main TypeScript build passes.
- [x] Broad TypeScript tests pass or exact blocker documented.
- [x] Broad web tests pass or exact blocker documented.
- [x] Final code-search audit has no active old updater references.
- [x] Diff review confirms no owner-memory artifact, provider config, or unrelated changes.

### Verification Results

- `npm run test -- gateway/auth-routes.integration.test.ts`: passed, 32 tests.
- `npm run web:test -- AppShell`: passed, 2 tests.
- `npm run web:typecheck`: passed.
- `npm run build`: passed.
- `npm run web:test`: passed, 81 tests.
- `npm run test`: failed on `memory/starter-pack-draft3-layout.test.ts`, with the existing starter-pack architecture lint errors for optional overlay documentation and missing template markers. This is documented as a pre-existing failure class in `Memory-Starter-Pack-Update-Spec.md`.
- Active-source `rg` audit: clean outside intentional regression-test references.

## Recommended Next Step

The cleanup implementation is complete. The remaining repo-level verification blocker is the existing `memory/starter-pack-draft3-layout.test.ts` architecture lint failure; handle that as separate starter-pack template cleanup work, not as part of memory update runtime removal.
