Reading additional input from stdin...
OpenAI Codex v0.125.0 (research preview)
--------
workdir: /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
model: gpt-5.5
provider: openai
approval: never
sandbox: read-only
reasoning effort: medium
reasoning summaries: none
session id: 019dcafc-67ca-7983-be01-fff282c19095
--------
user
Find stuff about memory.
hook: SessionStart
hook: SessionStart
hook: SessionStart Completed
hook: SessionStart Completed
hook: UserPromptSubmit
hook: UserPromptSubmit
hook: UserPromptSubmit Completed
hook: UserPromptSubmit Completed
codex
I’ll treat this as repo exploration, not editing. The request is broad, so I’m going to anchor on the local “memory” systems first: specs, scripts, skills, and any command surfaces that mention memory.
exec
/bin/zsh -lc "sed -n '1,220p' /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/SKILL.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
name: system-spec-kit
description: "Unified documentation and context preservation: spec folder workflow (levels 1-3+), CORE + ADDENDUM template architecture (v2.2), validation, and Spec Kit Memory for context preservation. Mandatory for all file modifications."
allowed-tools: [Bash, Edit, Glob, Grep, Read, Task, Write]
version: 3.3.1.0
---

<!-- Keywords: spec-kit, speckit, documentation-workflow, spec-folder, template-enforcement, context-preservation, progressive-documentation, validation, spec-kit-memory, vector-search, hybrid-search, bm25, rrf-fusion, fsrs-decay, constitutional-tier, checkpoint, importance-tiers, cognitive-memory, co-activation, tiered-injection -->

# Spec Kit - Mandatory Conversation Documentation

Orchestrates mandatory spec folder creation for all conversations involving file modifications. Ensures proper documentation level selection (1-3+), template usage, and context preservation through AGENTS.md-enforced workflows.


<!-- ANCHOR:when-to-use -->
## 1. WHEN TO USE

### What is a Spec Folder?

A **spec folder** is a numbered directory (e.g., `007-auth-feature/`) that contains documentation for a single feature/task or a coordinated packet of related phase work:

Spec folders may also be nested as coordination-root packets with direct-child phase folders (e.g., `specs/02--track/022-feature/011-phase/002-child/`).

- **Purpose**: Track specifications, plans, tasks, and decisions for one unit of work
- **Location**: Under `specs/` using either `###-short-name/` at the root or nested packet paths for phased coordination
- **Contents**: Markdown files (spec.md, plan.md, tasks.md, and implementation-summary.md when work is complete) plus optional support folders such as `scratch/`, `research/`, or `review/`

Think of it as a "project folder" for AI-assisted development - it keeps context organized and enables session continuity.

### Activation Triggers

**MANDATORY for ALL file modifications:**
- Code files: JS, TS, Python, CSS, HTML
- Documentation: Markdown, README, guides
- Configuration: JSON, YAML, TOML, env templates
- Templates, knowledge base, build/tooling files

**Request patterns that trigger activation:**
- "Add/implement/create [feature]"
- "Fix/update/refactor [code]"
- "Modify/change [configuration]"
- Any keyword: add, implement, fix, update, create, modify, rename, delete, configure, analyze, phase

**Example triggers:**
- "Add email validation to the signup form" → Level 1-2
- "Refactor the authentication module" → Level 2-3
- "Fix the button alignment bug" → Level 1
- "Implement user dashboard with analytics" → Level 3

### When NOT to Use

- Pure exploration/reading (no file modifications)
- Single typo fixes (<5 characters in one file)
- Whitespace-only changes
- Auto-generated file updates (package-lock.json)
- User explicitly selects Option D (skip documentation)

**Rule of thumb:** If modifying ANY file content → Activate this skill.
Status: ✅ This requirement applies immediately once file edits are requested.

### Distributed Governance Rule

Any agent writing authored spec folder docs (`spec.md`, `plan.md`, `tasks.md`, `checklist.md`, `implementation-summary.md`, `decision-record.md`, `handover.md`, `review-report.md`, `debug-delegation.md`, `resource-map.md` (optional)) MUST use templates from .opencode/skills/system-spec-kit/templates/level_N/ for level-owned docs and the root cross-cutting templates where applicable, run `bash .opencode/skills/system-spec-kit/scripts/spec/validate.sh [spec_folder] --strict` after each file write, and route continuity updates through /memory:save. Deep-research workflow-owned packet markdown (`research/iterations/*.md`, `research/deep-research-*.md`, and progressive `research/research.md` loop updates) is exempt from that generic per-write rule; `/spec_kit:deep-research` must instead run targeted strict validation after every `spec.md` mutation it performs. @deep-research retains exclusive write access for `research/research.md`; @debug retains exclusive write access for `debug-delegation.md`.

- `handover.md` stays in the canonical recovery ladder and is maintained through `/memory:save` handover_state routing using `.opencode/skills/system-spec-kit/templates/handover.md` for initial creation.
- `review-report.md` remains owned by `@deep-review` when deep review workflows synthesize findings.
- `resource-map.md` is a peer cross-cutting template under `.opencode/skills/system-spec-kit/templates/`; it remains optional at any level and gives reviewers a lean file ledger alongside `implementation-summary.md`.

### Utility Template Triggers

| Template              | Trigger Keywords                                                                                                              | Action                    |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| `handover.md`         | "handover", "next session", "continue later", "pass context", "ending session", "save state", "multi-session", "for next AI"  | Suggest `/memory:save` handover maintenance |
| `debug-delegation.md` | "stuck", "can't fix", "tried everything", "same error", "fresh eyes", "hours on this", "still failing", "need help debugging" | Suggest Task-tool debug delegation |

**Rule:** When detected, proactively suggest the appropriate action.

---

<!-- /ANCHOR:when-to-use -->
<!-- ANCHOR:smart-routing -->
## 2. SMART ROUTING

### Resource Domains

The router discovers markdown resources recursively from `references/` and `assets/` and then applies intent scoring from `RESOURCE_MAP`. Keep this section domain-focused rather than static file inventories.

- `references/memory/` for context retrieval, save workflows, trigger behavior, and indexing.
- `references/templates/` for level selection, template composition, and structure guides.
- `references/validation/` for checklist policy, verification rules, decision formats, and template compliance contracts.
- `references/structure/` for folder organization and sub-folder versioning.
- `references/workflows/` for command workflows and worked examples.
- `references/debugging/` for troubleshooting and root-cause methodology.
- `references/config/` for runtime environment configuration.

### Template and Script Sources of Truth

- Level definitions and template size guidance: [level_specifications.md](./references/templates/level_specifications.md)
- Template usage and composition rules: [template_guide.md](./references/templates/template_guide.md)
- Use `templates/level_N/` for operational templates; `core/` and `addendum/` remain composition inputs.
- Use `templates/changelog/` for packet-local nested changelog generation at completion time.
- Script architecture, build outputs, and runtime entrypoints: [scripts/README.md](./scripts/README.md)
- Memory save JSON schema and workflow contracts: [save_workflow.md](./references/memory/save_workflow.md)
- Nested packet changelog workflow: [nested_changelog.md](./references/workflows/nested_changelog.md)

Primary operational scripts:
- `spec/validate.sh`
- `spec/create.sh`
- `spec/archive.sh`
- `spec/check-completion.sh`
- `spec/recommend-level.sh`
- `templates/compose.sh`

### Resource Loading Levels

| Level       | When to Load               | Resources                    |
| ----------- | -------------------------- | ---------------------------- |
| ALWAYS      | Every skill invocation     | Shared patterns + SKILL.md   |
| CONDITIONAL | If intent signals match   | Intent-mapped references     |
| ON_DEMAND   | Only on explicit request   | Deep-dive quality standards  |

`references/workflows/quick_reference.md` is the primary first-touch command surface. Keep the compact `spec_kit` and `memory` command map there, including `/spec_kit:plan --intake-only` as the standalone intake entry, `/spec_kit:plan` and `/spec_kit:complete` smart delegation notes, and the pointer from `/spec_kit:deep-research` to `../sk-deep-research/references/spec_check_protocol.md`, and use this file only to point readers to it rather than duplicating the full matrix.

### Smart Router Pseudocode

The authoritative routing logic for scoped loading, weighted intent scoring, and ambiguity handling.

```python
from pathlib import Path

SKILL_ROOT = Path(__file__).resolve().parent
RESOURCE_BASES = (SKILL_ROOT / "references", SKILL_ROOT / "assets")
DEFAULT_RESOURCE = "references/workflows/quick_reference.md"

INTENT_SIGNALS = {
    "PLAN": {"weight": 3, "keywords": ["plan", "design", "new spec", "level selection", "option b"]},
    "RESEARCH": {"weight": 3, "keywords": ["investigate", "explore", "analyze", "prior work", "evidence"]},
    "IMPLEMENT": {"weight": 3, "keywords": ["implement", "build", "execute", "workflow"]},
    "DEBUG": {"weight": 4, "keywords": ["stuck", "error", "not working", "failed", "debug"]},
    "COMPLETE": {"weight": 4, "keywords": ["done", "complete", "finish", "verify", "checklist"]},
    "MEMORY": {"weight": 4, "keywords": ["memory", "save context", "resume", "checkpoint", "context"]},
    "HANDOVER": {"weight": 4, "keywords": ["handover", "continue later", "next session", "pause"]},
    "PHASE": {"weight": 4, "keywords": ["phase", "decompose", "split", "workstream", "multi-phase", "phased approach", "phased", "multi-session"]},
    "RETRIEVAL_TUNING": {"weight": 3, "keywords": ["retrieval", "search tuning", "fusion", "scoring", "pipeline"]},
    "EVALUATION": {"weight": 3, "keywords": ["evaluate", "ablation", "benchmark", "baseline", "metrics"]},
    "SCORING_CALIBRATION": {"weight": 3, "keywords": ["calibration", "scoring", "normalization", "decay", "interference"]},
    "ROLLOUT_FLAGS": {"weight": 3, "keywords": ["feature flag", "rollout", "toggle", "enable", "disable"]},
    "GOVERNANCE": {"weight": 3, "keywords": ["governance", "tenant", "retention", "audit"]},
}

RESOURCE_MAP = {
    "PLAN": [
        "references/templates/level_specifications.md",
        "references/templates/template_guide.md",
        "references/validation/template_compliance_contract.md",
    ],
    "RESEARCH": [
        "references/workflows/quick_reference.md",
        "references/workflows/worked_examples.md",
        "references/memory/epistemic_vectors.md",
    ],
    "IMPLEMENT": [
        "references/validation/validation_rules.md",
        "references/validation/template_compliance_contract.md",
        "references/templates/template_guide.md",
    ],
    "DEBUG": [
        "references/debugging/troubleshooting.md",
        "references/workflows/quick_reference.md",
        "manual_testing_playbook/manual_testing_playbook.md",
    ],
    "COMPLETE": [
        "references/validation/validation_rules.md",
        "references/workflows/nested_changelog.md",
    ],
    "MEMORY": [
        "references/memory/memory_system.md",
        "references/memory/save_workflow.md",
        "references/memory/trigger_config.md",
    ],
    "HANDOVER": [
        "references/workflows/quick_reference.md",
    ],
    "PHASE": [
        "references/structure/phase_definitions.md",
        "references/structure/sub_folder_versioning.md",
        "references/validation/phase_checklists.md",
    ],
    "RETRIEVAL_TUNING": [
        "references/memory/embedding_resilience.md",
        "references/memory/trigger_config.md",
    ],
    "EVALUATION": [
        "references/memory/epistemic_vectors.md",
        "references/config/environment_variables.md",
        "manual_testing_playbook/manual_testing_playbook.md",
    ],
    "SCORING_CALIBRATION": [
        "references/config/environment_variables.md",
    ],
    "ROLLOUT_FLAGS": [
        "references/config/environment_variables.md",
        "feature_catalog/19--feature-flag-reference/",
    ],
    "GOVERNANCE": [
        "references/config/environment_variables.md",
    ],
}

COMMAND_BOOSTS = {
    "/spec_kit:plan": "PLAN",
    "/spec_kit:implement": "IMPLEMENT",
    "/spec_kit:complete": "COMPLETE",
    "/spec_kit:plan :with-phases": "PHASE",
    "/memory:search": "MEMORY",
    "/memory:save": "MEMORY",
    "/memory:manage": "MEMORY",
    "/memory:learn": "MEMORY",
    "/spec_kit:resume": "MEMORY",
}

exec
/bin/zsh -lc "rg -n \"memory|Memory|MEMORY|memory_context|memory_search|memory_match|generate-context|Spec Kit Memory\" . --glob '"'!node_modules/**'"' --glob '"'!*.png'"' --glob '"'!*.jpg'"' --glob '"'!*.jpeg'"' --glob '"'!*.gif'"' --glob '"'!*.webp'"'" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 250ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:3:description: "Propagate qualityGateMode warn-only to all 4 rejection gates in processPreparedMemory, fixing incomplete v3.0.0.1 spec doc indexing bypass."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:6:  - "processpreparedmemory fix"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:37:| **Testing** | Manual via `memory_index_scan` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:40:Add `qualityGateMode` checks to the 3 upstream rejection gates in `processPreparedMemory()` (memory-save.ts). When `qualityGateMode === 'warn-only'`, log a warning and continue instead of returning `status: 'rejected'`. This completes the v3.0.0.1 fix which only bypassed Gate 4 (quality gate).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:56:- [ ] `memory_index_scan({ force: true })` — 0 rejected spec docs
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:68:- **`processPreparedMemory()`** (line 306): The 4-gate rejection pipeline in memory-save.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:69:- **`qualityGateMode`** parameter: Already threaded through from memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:73:memory-index.ts:384  isSpecDoc → { qualityGateMode: 'warn-only' }
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:75:indexSingleFile() → indexMemoryFile() → processPreparedMemory()
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:102:- [ ] Run `memory_index_scan({ force: true })`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:104:- [ ] Confirm memory files still subject to all gates
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:114:| Manual | Full force re-index scan | `memory_index_scan({ force: true })` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:116:| Manual | Verify memory files unchanged | Compare before/after |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:134:- **Trigger**: Spec docs indexed with corrupt data or memory files bypass gates incorrectly
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/plan.md:135:- **Procedure**: `git checkout` the memory-save.ts file, rebuild, restart MCP
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:29:| 025-tool-routing-enforcement/implementation-summary.md:83 | `020-mcp-working-memory-hybrid-rag` | `020-query-routing-integration` |
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:45:- File was created in Phase 004, then **intentionally removed** in commit `25f26bc7ac` ("chore(026): remove .agents/ symlinks, prune shared-memory, update MCP server + spec docs").
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:55:- Current runtime pattern (per feedback memory and CLAUDE.md): `AGENTS.md` is primary, siblings `AGENTS_Barter.md`/`AGENTS_example_fs_enterprises.md` exist — no per-runtime `CODEX.md`/`GEMINI.md`.
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:76:### C2. Missing `_memory` frontmatter blocks (40 warnings, ~142 file occurrences)
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:87:Fix: add `_memory:\n  continuity: {...}` frontmatter block to each. Standard template exists — sibling `026-graph-and-context-optimization/implementation-summary.md` shows the pattern.
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:134:- C2: Add `_memory` frontmatter blocks to ~142 files
./.opencode/specs/system-spec-kit/024-compact-code-graph/scratch/audit-2026-04-24/consolidated-findings.md:141:- `memory_index_scan({ specFolder: "system-spec-kit/024-compact-code-graph" })` at root + recurse into each phase
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/description.json:17:  "memorySequence": 3,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/description.json:18:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/description.json:19:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/description.json:20:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:45:  │ "tool|schema|error|config|environment|env|MCP|memory_|shared_memory|preflight|postflight"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:54:  │ "tool|schema|error|config|environment|env|MCP|memory_|shared_memory|preflight|postflight"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:65:  │ "SPECKIT_|shared memory|task_preflight|task_postflight|checkpoint|memory_context|memory_search|m
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:99:  │ "**/*{create,validate,generate-context,upgrade}*.{sh,ts,js}" in .opencode/skills/system-spec-kit
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:143:  │ "spec_kit_memory|memory_context|ListToolsRequestSchema|tools/list|TOOL_DEFINITIONS"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:189:  │ "with-research|auto-debug|/spec_kit:phase|/memory:shared|/memory:learn|/memory:continue|/memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:190:  │ analyze|/memory:manage" in **/*.{md,yaml,yml,json,ts,js} (.opencode/skills/system-spec-kit)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:200:  │ "**/*memory*" in .opencode/command
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:206:  │ PECKIT_MEMORY_SUMMARIES|SPECKIT_CONTEXT_HEADERS|SPECKIT_FILE_WATCHER|RERANKER_LOCAL|SPECKIT_GRAP
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:235:  │ "**/*.yaml" in .opencode/commands/memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:243:  │ "name:|description:|/spec_kit:|/memory:" in **/*.{yaml,md} (.opencode/command)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:247:  │ .opencode/commands/memory/README.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:250:● List directory .opencode/commands/memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:254:  │ "**/*.md" in .opencode/commands/memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:257:The command surface also has drift: the `spec_kit` commands exist, but the memory command count in the README looks suspicious. I’m verifying the actual command files before I lock that in as a finding.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:264:  │ .opencode/commands/memory/analyze.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:268:  │ .opencode/commands/memory/README.txt
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:272:  │ .opencode/commands/memory/manage.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:280:  │ .opencode/commands/memory/learn.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:288:  │ "memory_context\(|memory_search\(|memory_match_triggers\(|memory_save\(|task_preflight\(|task_po
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:325:  │ "new MemoryError\(|createErrorWithHint\(|buildErrorResponse\(" in **/*.{ts,js}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:376:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:377:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:381:  │ "SEARCH_FAILED|INVALID_PARAMETER|Either "query"|query.*concepts|throw new MemoryError"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:382:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:390:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:391:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:394:● Read generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:395:  │ .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:399:  │ "auto-indexed in MCP|immediate MCP visibility|generate-context.js"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:404:  │ "auto-indexed in MCP|immediate MCP visibility|generate-context.js"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:409:  │ "auto-index|memory_index_scan|memory_save|index|MCP visibility|immediate MCP visibility"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:410:  │ (.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:495:  │ "deep-research|/spec_kit:deep-research|memory_ingest|shared_memory_enable|shared_space|eval_run_
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:496:  │ ablation|eval_reporting_dashboard|memory_get_learning_history"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:501:  │ "deep-research|/spec_kit:deep-research|with-research|memory_ingest|shared_memory_enable|shared_s
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:502:  │ pace|eval_run_ablation|eval_reporting_dashboard|memory_get_learning_history"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:530:   `README.md` says MCP calls use the `spec_kit_memory_` prefix, but the server registers raw tool names like `memory_context`, `checkpoint_create`, and `shared_memory_enable`; the prefixed names appear in the host command/tool wrapper layer, not in the server itself.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:531:   Evidence: `README.md:288-304`, `mcp_server/context-server.ts:264-266`, `mcp_server/tool-schemas.ts:40-43`, `command/memory/analyze.md:1-5`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:538:   `SKILL.md` says `memory_search()` with only `specFolder` causes `E040`, but the runtime returns `E_VALIDATION`; `E040` is the legacy generic `SEARCH_FAILED` code.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:539:   Evidence: `SKILL.md:578-580`, `mcp_server/handlers/memory-search.ts:804-813`, `mcp_server/lib/errors/core.ts:69-78`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:542:   The README claims **15 commands** (`8 spec_kit + 7 memory`), but the repo currently has **8 spec_kit** command files and **6 memory** command files. It also omits `/spec_kit:deep-research` from the table.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:543:   Evidence: `README.md:306-340`, `command/spec_kit/deep-research.md:1-5`, `command/memory/README.txt:38-67`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:545:5. **Medium — README overstates `generate-context.js` indexing behavior.**  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:546:   The README says generated memory files are “auto-indexed in MCP”, but the script says it creates files **for indexing**, and `SKILL.md` explicitly says to call `memory_index_scan()` or `memory_save()` for immediate visibility.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:547:   Evidence: `README.md:101-106`, `README.md:265-267`, `scripts/memory/generate-context.ts:82-85`, `SKILL.md:600-602`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:566:- The documented memory modes (`auto`, `quick`, `deep`, `focused`, `resume`) match the live schema.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-007-copilot-C2.md:569:- Core Spec Kit workflow pieces exist: levels `1/2/3/3+`, template directories, validation scripts, checkpoints, shared memory, learning tools, eval tools, and async ingest.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:1:# Document 2: Actionable Recommendations for System-Spec-Kit Memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:3:Based on the architectural analysis of Cognee and QMD, the following are concrete, actionable recommendations to enhance our internal System-Spec-Kit Memory MCP server. They are designed to improve retrieval precision, reduce cloud dependencies, and formalize structural graph reasoning.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:21:export async function rerankCandidates(query: string, candidates: MemoryRow[]): Promise<MemoryRow[]> {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:43:**Context:** We currently have an excellent 6-type causal graph (`caused`, `supersedes`, `contradicts`, etc.) and basic entity linking (`SPECKIT_ENTITY_LINKING`). However, relationships are mostly created manually via the `memory_causal_link` tool or implicitly.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:46:1.  **Automated Extraction Pipeline:** Create an explicit ETL layer during `memory_save`. Before a memory is saved to the SQLite database, pass it through a structured LLM extraction prompt (using the standard coding LLM, e.g., Claude/Gemini) that strictly outputs JSON matching our `causal_edges` schema.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:48:3.  **Implicit to Explicit Nodes:** Treat every `specFolder` name as a master node in the graph, and explicitly link new memories to these master nodes during the `memory_index_scan`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:53:*Impact/Effort:* **High Impact / High Effort.** Requires reliable JSON output and token budgeting during the save operation, but dramatically improves the `memory_drift_why` tool.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:59:**Context:** Our current constraint is that the index relies on MCP startup or manual `memory_index_scan` triggers. This creates a desync if a developer modifies a `.md` file directly in their IDE. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:63:2.  **Debounced Hashing:** Watch the `MEMORY_BASE_PATH` specifically for `*.md` files. On a `change` event, wait 5 seconds (debounce), then compute the SHA-256 content hash (reusing our existing logic in `lib/parsing/memory-parser.ts`). 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:64:3.  **Targeted Re-indexing:** If the hash differs from the database, silently invoke the `memory_save()` flow in the background, updating the `sqlite-vec` embeddings and `memory_fts` tables without requiring an explicit agent tool call.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:66:*Impact/Effort:* **Medium Impact / Low Effort.** Solves a major UX friction point with minimal architectural changes, keeping the memory state seamlessly synchronized with the filesystem.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:78:3.  `IDocumentStore` -> Manages `memory_index`, `memory_fts`, and `checkpoints`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/010 - recommendations-gemini-2.md:97:*   **Database Locking:** Real-time file watching (Recommendation 3) combined with agent-driven `memory_save` operations could cause SQLite `SQLITE_BUSY` locks. We must strictly enforce WAL (Write-Ahead Logging) mode and use robust retry mechanisms in `lib/storage/`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-codex-A1.md:2:1. Session and causal boosts look effectively dead in the live pipeline. Both modules depend on a module-global `db` set only via `init()` ([session-boost.ts:11](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/session-boost.ts#L11), [session-boost.ts:32](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/session-boost.ts#L32), [causal-boost.ts:67](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/causal-boost.ts#L67), [causal-boost.ts:75](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/causal-boost.ts#L75)). Stage 2 calls `applySessionBoost()` and `applyCausalBoost()` directly ([stage2-fusion.ts:584](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L584), [stage2-fusion.ts:601](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L601)), but the handler only imports `isEnabled` from those modules, not `init` ([memory-search.ts:12](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/handlers\/memory-search.ts#L12)). I also did not find any repo callsite for `sessionBoost.init(...)` or `causalBoost.init(...)`. In practice that means session attention and causal graph boosts silently no-op whenever `db` stays `null` ([session-boost.ts:73](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/session-boost.ts#L73), [causal-boost.ts:246](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/causal-boost.ts#L246)).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-codex-A1.md:4:2. `trackAccess` mutates FSRS/access state before final ranking, filtering, and session dedup, so memories can be “accessed” even if the user never sees them. Stage 2 applies `applyTestingEffect()` across all intermediate rows ([stage2-fusion.ts:699](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L699), [stage2-fusion.ts:706](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L706)), and that path does a per-row `SELECT` plus `UPDATE` on `memory_index` ([stage2-fusion.ts:244](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L244), [stage2-fusion.ts:268](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L268), [stage2-fusion.ts:500](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L500)). But more ranking/limiting still happens after that in Stage 2 ([stage2-fusion.ts:713](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage2-fusion.ts#L713)) and session dedup happens only after cache serialization in the handler ([memory-search.ts:1081](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/handlers\/memory-search.ts#L1081)). That is both a hot path and a correctness bug for engagement/retention signals.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-codex-A1.md:10:5. The summary-embedding channel has both correctness and hot-path problems. It gates itself with a fresh `COUNT(*)` over `memory_index` every query ([memory-summaries.ts:210](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/memory-summaries.ts#L210), [stage1-candidate-gen.ts:592](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage1-candidate-gen.ts#L592)), may regenerate the query embedding instead of reusing the cached one ([stage1-candidate-gen.ts:263](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage1-candidate-gen.ts#L263), [stage1-candidate-gen.ts:594](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage1-candidate-gen.ts#L594)), fetches an arbitrary `LIMIT`ed slice of `memory_summaries` before cosine ranking instead of the full candidate set or an indexed ANN prefilter ([memory-summaries.ts:167](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/memory-summaries.ts#L167), [memory-summaries.ts:174](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/memory-summaries.ts#L174), [memory-summaries.ts:190](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/memory-summaries.ts#L190)), and then does an N+1 `memory_index` fetch for each summary hit ([stage1-candidate-gen.ts:603](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage1-candidate-gen.ts#L603), [stage1-candidate-gen.ts:606](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/pipeline\/stage1-candidate-gen.ts#L606)). That makes it both expensive and potentially blind to better summary matches outside the first fetched window.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-codex-A1.md:13:- Smaller but real hot path: BM25 `specFolder` filtering does one `SELECT spec_folder FROM memory_index WHERE id = ?` per BM25 hit, which is another N+1 pattern on common searches ([hybrid-search.ts:277](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/hybrid-search.ts#L277), [hybrid-search.ts:287](\/Users\/michelkerkmeester\/MEGA\/Development\/Opencode Env\/Public\/.opencode\/skill\/system-spec-kit\/mcp_server\/lib\/search\/hybrid-search.ts#L287)).
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:1:# Iteration 013 — Memory Architecture And Promotion Boundaries
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:4:Is `system-spec-kit`'s current memory architecture too heavy for routine session durability, and does the external repo suggest that session notes and indexed durable memories should be separated more aggressively?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:7:The external repo will show that lightweight notes-to-disk already solve a large share of compaction and continuation pain, while the local memory pipeline will reveal that `system-spec-kit` is using the same write surface for both simple session capture and high-quality indexed memory.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:10:Compared the external repo's note-to-disk artifacts and operator progress surfaces to the local JSON-primary memory save CLI, the 14-rule memory-quality gate, and the metadata layer attached to saved memories.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:13:- The external repo's continuation model is materially simple: MDD creates one compact working doc, and the progress command gathers source/tests/git state without invoking a semantic memory system. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/external/.claude/commands/progress.md:11-60] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/external/.mdd/docs/03-database-layer.md:1-30]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:14:- The local `generate-context` CLI is explicitly JSON-primary, requires approved spec-folder routing, and enriches memory saves with tool summaries, exchanges, preflight/postflight epistemic scores, and learning-delta calculations. [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:71-124] [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:166-232]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:15:- The canonical memory-quality validator carries 14 rule classes, including placeholder leakage, malformed routing metadata, cross-spec contamination, title contamination, API error leakage, topical coherence, malformed frontmatter, and status/percentage contradictions. [SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:23-176] [SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:709-1004]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:16:- The memory metadata layer adds classification type, decay model, dedup signals, causal links, and evidence snapshots, which is valuable for durable retrieval but significantly richer than a plain session note. [SOURCE: .opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts:19-40] [SOURCE: .opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts:76-177]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:19:`system-spec-kit` is asking a single save pipeline to satisfy two different jobs: "I need a faithful session artifact right now" and "I need a clean, semantically indexable, retrieval-optimized durable memory." The external repo shows that the first job can often be solved with a much simpler artifact. The local architecture adds real value for the second job, but it makes the first job heavier than necessary. That suggests a structural boundary problem, not merely a documentation problem.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:23:- **Current system-spec-kit approach:** One memory save path captures rich structured session data, then subjects the resulting memory to a sophisticated post-render quality and metadata pipeline before indexing.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:24:- **External repo's approach:** Keep continuity mostly in lightweight docs and operational checklists, without forcing every note through a semantic-memory promotion path.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:26:- **Why system-spec-kit's approach might still be correct:** Cross-session retrieval, contamination safety, and semantic recall do need a high-integrity durable-memory path.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:28:- **If REFACTOR/PIVOT/SIMPLIFY — concrete proposal:** Split memory into two lanes: `session digests` for low-friction continuity and `promoted memories` for indexed long-term retrieval. The first lane can be lightweight and append-friendly; the second keeps the richer validation and metadata pipeline.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:30:- **Migration path:** Preserve the current pipeline as the promoted-memory path, add a lighter session-digest artifact first, and later let promotion happen explicitly or automatically only when a digest meets quality thresholds.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:35:finding: The external repo suggests a real architectural simplification opportunity: `system-spec-kit` should stop forcing low-friction session capture and high-integrity indexed memory through exactly the same pipeline.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:38:- **Target file or module:** `.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts`, `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts`, memory retrieval surfaces
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-013.md:45:I looked for proof that the external repo needed retrieval-quality controls equivalent to V8/V11/V12 contamination and coherence rules. The reviewed sources did not show that burden because the repo is not trying to do the same kind of semantic memory retrieval. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/external/.claude/commands/progress.md:11-60]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:3:description: "Task tracking for completing the warn-only bypass across all 4 rejection gates in processPreparedMemory."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:44:- [x] T001 Gate 1 bypass: Add `qualityGateMode === 'warn-only'` to V-rule rejection at line 333 (`mcp_server/handlers/memory-save.ts`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:45:- [x] T002 Gate 2 bypass: Add `qualityGateMode === 'warn-only'` to sufficiency rejection at line 350 (`mcp_server/handlers/memory-save.ts`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:46:- [x] T003 Gate 3 bypass: Add `qualityGateMode === 'warn-only'` to template contract rejection at line 354 (`mcp_server/handlers/memory-save.ts`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:63:- [x] T006 Run `memory_index_scan({ force: true })` — confirm 0 rejected spec docs (verified: 0 rejected, 1670 indexed, 128 updated)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/tasks.md:64:- [x] T007 Verify memory files still subject to all 4 gates (no regression) (verified: 24 memory files rejected by quality gates, 57 updated)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-030.md:12:I walked the common Public feature path implied by `plan`, `complete`, template levels, `resume`, and memory save, then compared that to Agent Lightning's install -> docs -> example/tutorial -> `Trainer` or `oneclick` flow.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-030.md:15:- Public's planning and complete workflows both start with consolidated prompt blocks that can ask about spec folder choice, execution mode, dispatch mode, memory context, research intent, and phase decomposition. [SOURCE: .opencode/commands/spec_kit/plan.md:31-44] [SOURCE: .opencode/commands/spec_kit/complete.md:32-45]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-030.md:17:- Resume and memory-save flows add more continuation-specific surfaces around handover, `session_bootstrap()`, and explicit memory preservation. [SOURCE: .opencode/commands/spec_kit/resume.md:258-304] [SOURCE: .opencode/commands/memory/save.md:57-75]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-030.md:26:The external repo shows a more forgiving pattern: one quickstart path, one advanced path, and strong examples that teach by execution. Public should add preset-driven starts such as "new feature," "fix existing packet," and "research topic," each with recommended defaults for memory loading, dispatch mode, and artifact depth. The advanced matrix can remain available, but it should stop being the default experience.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-030.md:42:- **Current system-spec-kit surface:** A common feature flow can require multiple setup decisions, 4-6 authored artifacts, later validation, explicit memory handling, and optional handover.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/implementation-summary.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/implementation-summary.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/implementation-summary.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:43:All 7 governance features were audited — feature flag governance process, sunset audit, hierarchical scope governance, shared memory rollout, constitutional gate-enforcement, admin identity governance, and audit review/rollout metrics. All entries accurately describe their source code.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:54:4. Shared memory rollout: deny-by-default, kill switch, all files confirmed
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:116:| **Verdict** | Documented as constitutional memory |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/implementation-summary.md:118:Constitutional memory defining mandatory gate enforcement rules. Importance tier: `constitutional` (always surfaces at top of search results). Documents 3 gates: Gate 1 (SOFT — understanding + context surfacing), Gate 2 (REQUIRED — skill routing), Gate 3 (HARD BLOCK — spec folder question before file modification). Contains cross-reference anchors, continuation validation protocol, and quick-reference decision table with trigger phrases. This is a governance artifact — its content aligns with the gate system documented in CLAUDE.md.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:232:● Read validate-memory-quality.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:233:  │ .opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:270:● Read historical-memory-remediation.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:271:  │ .opencode/skills/system-spec-kit/scripts/tests/historical-memory-remediation.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:370:✗ Memory stored build commands
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:377:| 1. JSDoc coverage on exported functions | **B-** | The overlay standard treats public-function docs as **P1** (`.opencode/skills/sk-code-opencode/SKILL.md:419-423,445-449`). There are solid examples, like `resolveProvider` and `validateApiKey` (`.opencode/skills/system-spec-kit/shared/embeddings/factory.ts:71-75,300-307`) and `normalizeSpecTitleForMemory` / related exports (`.opencode/skills/system-spec-kit/scripts/utils/task-enrichment.ts:16-36`). But exported wrappers/helpers still ship without JSDoc, e.g. `extractTriggerPhrases*` (`.opencode/skills/system-spec-kit/scripts/lib/trigger-extractor.ts:15-23`) and exported path helpers (`.opencode/skills/system-spec-kit/scripts/utils/path-utils.ts:23-25,98-108`). |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:378:| 2. Error class usage consistency | **C+** | `mcp_server` has a clear custom-error pattern with `MemoryError`, `PreflightError`, and `ToolSchemaValidationError` (`.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts:90-109`, `.opencode/skills/system-spec-kit/mcp_server/lib/validation/preflight.ts:209-238`, `.opencode/skills/system-spec-kit/mcp_server/schemas/tool-input-schemas.ts:444-500`). But `shared` and `scripts` still rely heavily on generic `Error` throws (`.opencode/skills/system-spec-kit/shared/embeddings/factory.ts:129-188`, `.opencode/skills/system-spec-kit/scripts/utils/path-utils.ts:23-25,31-33,83-89`). So error handling is competent, but not workspace-wide consistent. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-010-copilot-C2.md:383:| 7. Test file naming conventions | **B** | Modern TS tests follow the expected patterns: `*.test.ts` and `*.vitest.ts` (`.opencode/skills/system-spec-kit/shared/parsing/spec-doc-health.test.ts:1-10`, `.opencode/skills/system-spec-kit/scripts/tests/historical-memory-remediation.vitest.ts:1-15`). But there is also a legacy JS suite named `test-*.js` rather than suffix-based test names (`.opencode/skills/system-spec-kit/scripts/tests/test-phase-command-workflows.js:1-7`, `.opencode/skills/system-spec-kit/scripts/tests/test-bug-fixes.js:1-4`). So conventions are good in newer TS code, mixed across the whole workspace. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:7:The original synthesis analyzed sources like Cognee, QMD, and ArtemXTech to propose improvements to the `system-spec-kit` Memory MCP server. However, an architectural cross-reference against the current `system-spec-kit` Feature Catalog (Sprints 0-8, Phases 015-018) reveals that **many of the highest-value recommendations are already implemented or fundamentally solved** by the current architecture. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:19:The original cross-AI synthesis accurately identified the core challenges of semantic memory systems. Remarkably, the `system-spec-kit` refinement program has already anticipated and implemented the majority of the Tier 1 recommendations—most notably the 5-channel hybrid retrieval pipeline and the SQLite-based knowledge graph overlay.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:39:| **1.2 Lightweight Graph Overlay on SQLite** | **ALREADY IMPLEMENTED** | `causal_edges` table, `memory_causal_link`, auto entity extraction (R10), and cross-document entity linking (S5). |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:40:| **1.3 MCP Tool Contract Redesign** | **PARTIALLY IMPLEMENTED** | Intent-split tools exist (`memory_search`, `memory_list`, etc.). *Gap: Strict Zod schema validation and versioned contracts.* |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:43:| **2.1 Async Ingestion Pipeline & Job Status** | **PARTIALLY IMPLEMENTED** | `asyncEmbedding: true` defers generation. *Gap: Explicit state-machine job polling tools (e.g., `memory_ingest_status`).* |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:47:| **2.5 Metadata-First / Frontmatter Querying** | **ALREADY IMPLEMENTED** | Tiered content injection (HOT/WARM/COLD) and `includeContent=false` parameter in `memory_search` and `memory_list`. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:49:| **2.7 Session Continuity Primitives** | **ALREADY IMPLEMENTED** | `memory_context` "resume" mode natively targets state, next-steps, and blocker anchors. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:52:| **3.3 Real-Time Filesystem Watching** | **NOT YET IMPLEMENTED** | Relies on periodic `memory_index_scan`. *Gap: `chokidar`-based file watcher.* |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:64:MCP servers operating over `stdio` suffer from repeated process spin-up/spin-down cycles, causing severe Time-to-First-Byte (TTFB) penalties, especially when loading sqlite-vec extensions or initializing in-memory caches. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:68:- Implement a persistent background daemon that hosts the memory server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:94:  - `memory_ingest_start`: Returns `{ jobId: "job_xyz" }` immediately.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:95:  - `memory_ingest_status`: Input `{ jobId }`, Returns `{ state: "embedding", progress: 0.6 }`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:105:The system has successfully split tools by intent (e.g., `memory_search` vs `memory_list`), which solves the primary routing issue. However, LLMs still hallucinate parameters or pass malformed types.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:110:- Version the MCP tool names (e.g., `memory_search_v2`) to allow schema migrations without breaking existing legacy workflows.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:126:The system parses spec folder hierarchies (S4) and uses descriptions (PI-B3) for routing and ranking. However, when an isolated memory chunk is returned to the LLM, the LLM may lose the broader structural context.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:171:The memory index currently relies on periodic or command-triggered `memory_index_scan` runs. If developers edit `.md` files manually in the IDE, the index silently desyncs.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:182:When an MCP client connects, it is completely blind to the state of the memory system until it executes a tool.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:202:- **Async Ingestion State Machine:** Implement `memory_ingest_start` and `memory_ingest_status`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/014 - synthesis-adjusted-gemini.md:222:5. **Session Continuity Primitives:** Built natively into the `memory_context` orchestrator via its "resume" mode, which targets state, next-steps, and blocker anchors.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w6-a4-s1-s2-decomposition.md:32:| **S1-8** | 3-5h | No | **Yes** | Complete remaining in-scope adjunct work not needed for the main gate: TM-08 vocabulary expansion and/or PI-A5 verify-fix-verify memory-quality loop if retained in this sprint plan. | Trigger vocabulary, `trigger-matcher.ts`, `memory-save.ts`, S1 implementation context | Secondary deliverables completed or explicitly deferred with rationale | S1-1 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w6-a4-s1-s2-decomposition.md:46:- Hub-domination guard verified (`<60%` presence for any single memory)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w6-a4-s1-s2-decomposition.md:65:| **S2-7** | 4-6h | No | **Yes** | Implement ancillary scoring calibrators from sprint scope: TM-01 interference scoring and TM-03 classification-based decay policy updates. | `memory_index` schema, `composite-scoring.ts`, `fsrs-scheduler.ts`, S2-1 strategy | Interference/decay calibration features with tests and config knobs | S2-1 |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/002-debugger/checklist.md:34:- [x] Memory database paths verified (clean, no issues)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/description.json:19:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/description.json:20:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-027.md:15:- The local system already has many other gates and rule checks around understanding, spec binding, and memory handling. [SOURCE: CLAUDE.md:107-165] [SOURCE: .opencode/skills/system-spec-kit/constitutional/gate-enforcement.md:74-102]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/003-claude-code-mastery-project-starter-kit-main/research/iterations/iteration-027.md:19:This ceremony currently solves a real maintainability problem, but it is showing up too visibly in the user-facing workflow. The cost is cumulative: before work starts, the system may do memory trigger checks, skill routing, spec-folder checks, and then additional validation. The external repo demonstrates that more of this can be implicit. `skill_advisor.py` does not need to disappear, but it should become a hidden implementation detail or a fallback, not a user-visible mandatory ritual on most substantive turns.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/graph-metadata.json:52:      ".opencode/skills/system-spec-kit/scripts/memory/README.md",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/graph-metadata.json:58:      "scripts/memory/reindex-embeddings.ts",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/graph-metadata.json:117:        "path": ".opencode/skills/system-spec-kit/scripts/memory/README.md",
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:6:What does Agent Lightning's absence of spec folders, constitutional memory, and conversational gates imply about which parts of `system-spec-kit` should stay fundamentally different?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:12:I synthesized the external repo's overall shape, docs model, CLI, optional groups, examples, and contributor guide, then compared that to Public's gates, spec-folder lifecycle, deep-loop architecture, and memory model.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:17:- `system-spec-kit` is centered on a different mission: spec folders, explicit gates, documentation levels, memory preservation, and deep-loop coordination. [SOURCE: AGENTS.md:159-186] [SOURCE: AGENTS.md:233-250] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:17-27]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:21:The external repo is valuable precisely because it highlights where imitation would be wrong. Agent Lightning does not need spec packets, constitutional memory, or conversational scope binding because it is not trying to preserve AI work context across sessions, enforce documentation contracts, or coordinate complex operator-driven workflows. `system-spec-kit` does need those things.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:28:finding: Agent Lightning validates `system-spec-kit`'s core mission-specific architecture more than it invalidates it. Public should keep spec folders, file-first memory, and explicit scope binding, while simplifying operator-visible ceremony, command exposure, validator implementation shape, and agent-taxonomy sprawl.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-020.md:53:- How can Public simplify operator experience without weakening scope or memory guarantees?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:5:For `system-spec-kit` and the memory MCP server, the highest-value path is:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:18:[Assumes: your current memory MCP server already supports basic save/retrieve/search over spec-folder memory.]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:26:  - `memory.add`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:27:  - `memory.search`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:28:  - `memory.get_context`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:29:  - `memory.index_status`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:30:  - `memory.switch_namespace`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:58:### 1.3 Namespaced memory databases (Medium/high impact, low/medium effort)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:83:- expose `memory.index_status(job_id)` via MCP.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:85:**Benefit:** better reliability for large memory refresh operations.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:127:### 3.2 Minimal schema for memory entries
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:141:    "tags": ["memory", "pipeline"],
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:179:### Phase 4 (optional): Graph-assisted memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:242:- Spin up v2 memory MCP endpoint with new architecture.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/002 - recommendations-codex-1.md:264:6. Create a benchmark set of real spec-memory queries for regression tracking.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/graph-metadata.json:102:        "name": "Spec Kit Memory",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/017-governance/graph-metadata.json:192:    "causal_summary": "Systematic code audit of 4 Governance features in the Spec Kit Memory MCP server. Each feature from the `feature_catalog/17--governance/` category will be verified against its source code implementation to confirm accuracy, completeness, and catalog alignment.",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:13:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:70:● memory_context
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:207:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:208:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:211:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:212:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:276:- High: the public search stack is split. `memory_search` runs `executePipeline()`, but Stage 1 still re-enters legacy `searchWithFallback()`/`hybridSearchEnhanced()`, while `eval-reporting` bypasses the pipeline entirely. That means tooling can observe different behavior, metadata, and fallback semantics for the same query. `[handlers/memory-search.ts:929-968] [lib/search/pipeline/stage1-candidate-gen.ts:259-326,340-416] [lib/search/hybrid-search.ts:1078-1118] [handlers/eval-reporting.ts:88-99]`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:278:- High: normal intent auto-detection logs to `console.error`, so successful requests pollute stderr. `[handlers/memory-search.ts:862-872]`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:282:- Medium: response schema duplicates camelCase and snake_case fields, increasing payload size and cognitive load. `[handlers/memory-search.ts:993-1005,1016-1047]`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-copilot-A2.md:286:- Low: `detectIntent` and `applyIntentWeights` look like dead production surface; live flow uses `classifyIntent`/`getIntentWeights` plus Stage 2’s `applyIntentWeightsToResults()`. `[lib/search/intent-classifier.ts:379-489] [handlers/memory-search.ts:862-866] [lib/search/pipeline/stage2-fusion.ts:717-725]`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:2:- High - [backfill-frontmatter.ts:174](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts#L174): project-boundary validation is prefix-based, so sibling paths like `/repo-evil/...` pass. Code: `if (!resolved.startsWith(PROJECT_ROOT))`. It also silently drops `readdirSync` failures at [242](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts#L242), [306](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts#L306), and [346](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts#L346): `catch (...) { continue; }`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:4:- High - [reindex-embeddings.ts:67](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts#L67): `process.exit(1)` inside the inner `catch` bypasses the outer `finally`, so [closeIndexingRuntime()](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts#L118) never runs on warmup failure. The script also trusts `JSON.parse(result.content[0].text)` at [82](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts#L82) without validating `text`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:6:- High - [generate-context.ts:392](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts#L392): bare `--session-id` is not rejected; it falls through into positional parsing because only `i + 1 < argv.length` consumes it, otherwise `filteredArgv.push(argv[i])`. That turns `--session-id` into a fake data file at [447](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts#L447). It also exits directly on SIGTERM/SIGINT at [153](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts#L153) and [158](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts#L158), which can cut off in-flight recovery writes.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:8:- High - [validate-memory-quality.ts:180](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L180): frontmatter/YAML extraction only matches `\n`, not `\r\n`, so Windows-formatted memories can skip parsing entirely. The same blind spot exists at [185](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L185), [208](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L208), and [290](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L290). V12 can also silently disable itself because it only tries `path.resolve(specFolder, 'spec.md')` at [613](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L613) and swallows read errors at [622](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts#L622).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:12:- High - `historical-memory-remediation.ts:240` (artifact no longer available): `discoverMemoryFiles()` uses `fs.readdirSync()` with no error handling, so one unreadable directory aborts the whole audit. Quarantine moves are also unsafe at `703` (artifact no longer available): it deletes any existing target with `rmSync()` before `renameSync()`, so an `EXDEV` or permission failure can lose the previous quarantined file.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:16:- Medium - [rank-memories.ts:386](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/rank-memories.ts#L386): `results` is trusted without `Array.isArray`, so `{ "results": {} }` reaches `rawMemories.map(...)` and crashes at [184](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/rank-memories.ts#L184). Limit parsing is also lossy at [319](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/rank-memories.ts#L319): `parseInt(...) || 3` makes `0` impossible and lets negatives through.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:26:- Medium - [cleanup-orphaned-vectors.ts:163](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/cleanup-orphaned-vectors.ts#L163): the verification query catches every error and reports `historyCount = 0`: `catch (_e) { /* Table may not exist */ }`. A locked DB or corrupt `memory_history` table would be reported as success instead of failure.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:28:- Medium - [rebuild-auto-entities.ts:47](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/rebuild-auto-entities.ts#L47): `parseArgs()` never rejects unknown flags, so typos are silently ignored and the script can rebuild the full DB unexpectedly. Only `--help`, `--dry-run`, and `--spec-folder` are handled; everything else falls through to `return { dryRun, specFolder }`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-001-codex-A1.md:30:- No clear material bug found - [ast-parser.ts](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/memory/ast-parser.ts). It’s small, input-guarded, and I didn’t find a convincing null/fs/async/regex failure in this pass.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/002-debugger/description.json:19:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/002-debugger/description.json:20:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:3:description: "Completed warn-only bypass for all 4 rejection gates in processPreparedMemory, fixing 1,807 spec doc rejections during memory_index_scan."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:42:Spec documents (spec.md, plan.md, tasks.md, checklist.md, etc.) were silently rejected during `memory_index_scan` because the v3.0.0.1 `qualityGateMode: 'warn-only'` bypass only covered 1 of 4 sequential rejection gates in `processPreparedMemory()`. All 1,807 spec docs were blocked by the 3 upstream gates before reaching the existing bypass. This fix propagates the warn-only check to all 4 gates, turning hard rejections into logged warnings for spec documents while preserving full enforcement for memory files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:46:Three conditional checks were added to `processPreparedMemory()` in memory-save.ts. When `qualityGateMode === 'warn-only'` (set automatically for spec docs by memory-index.ts), each gate now logs a warning and continues instead of returning `status: 'rejected'`. This matches the existing pattern used by Gate 4 (added in v3.0.0.1).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:52:| `mcp_server/handlers/memory-save.ts` | Modified | Added `qualityGateMode === 'warn-only'` bypass to Gates 1-3 (V-rule, sufficiency, template contract) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:61:Verified via `memory_index_scan({ force: true, incremental: false })` full re-index of all 1,929 files. Confirmed 0 rejected spec docs (was 1,807) and 24 rejected memory files (quality gates still enforced). MCP server was restarted to load the rebuilt dist.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:71:| Chose conditional bypass (same pattern as Gate 4) over removing gates | Preserves quality enforcement for memory files and maintains logging for spec docs that would have failed |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:72:| Did not modify memory-index.ts or indexMemoryFile signatures | The `qualityGateMode` parameter was already threaded through correctly from v3.0.0.1 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:85:| Memory files updated | PASS, 57 updated (baseline: 58) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:86:| Memory files rejected | PASS, 24 rejected (quality gates still enforced) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/implementation-summary.md:96:2. **24 quarantine memory files remain rejected.** These are intentionally low-quality files in `memory/quarantine/` directories. The quality gates correctly reject them.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:12:I compared the external repo's concise contributor contract with `system-spec-kit`'s mandatory gates, constitutional memory, skill routing, and pre-tool-call requirements.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:19:- Constitutional memory reinforces the same gate protocol and trigger phrase model. [SOURCE: .opencode/skills/system-spec-kit/constitutional/gate-enforcement.md:58-69] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:83-89]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:20:- The memory system is designed to auto-surface constitutional rules on every relevant search. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:83-89] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:488-509]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:36:- **Prerequisites:** preserve Gate 3 semantics, define silent-policy behavior for memory surfacing and skill routing, and specify escalation triggers that still require user input
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:44:- **Why system-spec-kit's approach might still be correct:** Public's spec binding and memory-driven behavior really do require stronger policy than a normal code repo.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-014.md:51:I looked for evidence that Public's full visible gate ceremony is itself a core user-facing product feature rather than an implementation technique, and most of the evidence points the other way: the gates exist to protect scope, routing, and memory behavior. Gate 3 remains the strongest counterexample, which is why the recommendation is a partial pivot rather than wholesale removal.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:11:1. **Cognee** (`topoteretes/cognee`) -- an enterprise graph-vector memory engine with ECL pipeline and MCP exposure
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:30:4. **Inject contextual trees** that prepend hierarchical domain context to returned memory chunks, leveraging the spec folder hierarchy -- recommended by 4 of 6 agents with cross-platform agreement.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:33:7. **Add async ingestion pipelines with job status tracking** for non-blocking memory processing that respects MCP timeout constraints -- recommended by 3 Codex agents.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:90:Five agents independently concluded that pure vector+keyword search is insufficient for spec-kit memory because specs have explicit structural relationships (spec A depends on spec B, decision X supersedes decision Y) that are structural, not semantic. All five recommend implementing this as a lightweight SQLite extension rather than introducing a heavy graph database like Neo4j.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:94:**Where agents diverge:** C1 and G1 recommend simple static edges (declared at authoring time). G2 recommends an automated "Cognify" ETL step that uses LLM extraction to discover relationships during `memory_save`. G3 takes the middle ground with a lightweight extraction prompt. This is the primary tension in the corpus: manual vs automated graph population.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:99:CREATE TABLE memory_edges (
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:101:    source_memory_id TEXT NOT NULL,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:102:    target_memory_id TEXT NOT NULL,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:109:    FOREIGN KEY(source_memory_id) REFERENCES working_memory(id) ON DELETE CASCADE
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:114:    SELECT target_memory_id, relation_type, 1 as depth
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:115:    FROM memory_edges WHERE source_memory_id = ?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:117:    SELECT e.target_memory_id, e.relation_type, g.depth + 1
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:118:    FROM memory_edges e JOIN graph g ON e.source_memory_id = g.target_memory_id
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:132:**Why it matters:** When an LLM selects a tool, ambiguous tool descriptions cause misrouting. Separating `memory_query` (ranked retrieval) from `memory_get` (exact fetch) from `memory_status` (health check) dramatically improves tool selection accuracy by the calling model.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:137:const MemoryQueryInput = z.object({
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:147:  "memory_query":     { schema: MemoryQueryInput, handler: rankedRetrieval },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:148:  "memory_get":       { schema: MemoryGetInput,   handler: exactFetch },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:149:  "memory_multi_get": { schema: MultiFetchInput,  handler: batchFetch },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:151:  "memory_status":    { schema: z.object({}),      handler: healthCheck },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:152:  "memory_list":      { schema: ListInput,         handler: listEntries },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:153:  "memory_delete":    { schema: DeleteInput,       handler: softDelete },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:154:  "memory_prune":     { schema: PruneInput,        handler: pruneStale },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:156:  "memory_save":      { schema: SaveInput,         handler: ingestContent },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:157:  "memory_index_status": { schema: JobInput,       handler: checkJobStatus },
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:167:Four agents recommend injecting hierarchical domain context into returned memory chunks. Since spec folders follow a strict hierarchy (`specs/004-auth/001-login`), retrieved chunks should include the parent spec's goal or description so the agent understands the broader context without making additional round-trips.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:169:**Why it matters:** An isolated memory chunk about "login token expiration" is ambiguous. Prepending `[Context: Auth System > Login Phase]` eliminates the need for the agent to separately load the parent spec, saving tokens and reducing hallucination from decontextualized chunks.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:174:function injectContextualTree(chunk: MemoryResult): string {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:237:"memory_ingest_start":  // Returns { jobId: "job_xyz" } immediately
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:238:"memory_ingest_status": // Input: { jobId }, Returns: { state: "embedding", progress: 0.6 }
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:239:"memory_ingest_cancel": // Input: { jobId }, Returns: { cancelled: true }
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:259:  candidates: MemoryRow[]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:260:): Promise<MemoryRow[]> {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:312:// Modify memory_list to accept a lightweight mode
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:313:memory_list({ specFolder: "specs/012-feature", includeBody: false })
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:315:// Agent inspects metadata, then calls memory_get(id) for full content
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:332:Two agents (one from each platform) address the "AI amnesia" problem highlighted by ArtemXTech. C3 proposes a `memory_continue` tool that returns an anchored summary (state + decisions + next steps + open risks). G3 proposes auto-indexing ephemeral session logs into searchable long-term memory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:363:Gemini-2 identifies a specific operational pain: the memory index desyncs when developers edit `.md` files directly in their IDE. The solution is a `chokidar`-based file watcher with debounced hashing and targeted re-indexing. Impact is medium, effort is low, and it eliminates a significant UX friction point.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:365:**Risk:** Concurrent file-watching writes combined with agent-driven `memory_save` operations could cause SQLite `SQLITE_BUSY` locks. WAL mode enforcement and retry mechanisms are mandatory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:369:Codex-2 uniquely recommends generating a concise memory index overview (counts, scopes, stale flags) at MCP server startup and injecting it into the server's initial instructions. Inspired by QMD's `buildInstructions()` function, this gives the calling model immediate awareness of what memory is available.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:410:| SQLite graph overlay (memory_edges) | Medium-High | High | Phase 1 schemas |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:423:| Session continuity (memory_continue) | Medium | Medium | Result envelopes |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:437:   The full Cognee-level architecture is too heavy for spec-kit's use case. Mitigation: feature flags, phased rollout, "blessed defaults" philosophy. Start narrow (spec memory only), add providers incrementally.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:443:   Running a 0.6B reranker alongside primary IDE LLM may starve GPU resources on machines with < 32GB unified memory. Mitigation: automatic VRAM detection with fallback to algorithmic RRF. Default the reranker to OFF and let users opt in.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:459:- Current system-spec-kit memory MCP uses a primarily untyped or loosely typed search interface (assumed by C1, C2)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:473:| **T1: Graph overlay on SQLite** | spec-task-file-decision edges | -- | Hierarchical context graph with link edges | DEPENDS_ON / IMPLEMENTS / BLOCKS edges | Cognify ETL + ANCHOR-to-node mapping + Tri-store interfaces | Triple-store emulation + memory_traverse tool |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:474:| **T1: MCP tool contract redesign** | Zod schemas + stable tool names | query/get/multi_get/status split | ingest/retrieve/ops/explain grouping | read_spec_section + speckit_get_status tools | -- | memory_traverse + memory_list parameters |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:475:| **T1: Contextual trees** | -- | Global-spec-phase-file inheritance | workspace-spec-phase-artifact-memory hierarchy | Prepend parent spec context (code example) | -- | Domain context injection (code example) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:477:| **T2: Async ingestion + job status** | Pipeline state machine | ingest_start/status/cancel tools | memory_index_start/status | -- | Targeted re-indexing (partial) | -- |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:480:| **T2: Backend adapter abstraction** | VectorStore / Embedding adapters | Direct vs API mode | Shared memory backend | -- | IVectorStore / IGraphStore / IDocumentStore | -- |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:483:| **T2: Session continuity** | -- | -- | memory_continue + snapshot payload | -- | -- | Session hooks + auto-indexing |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/013 - synthesis-final-recommendations.md:495:| **ArtemXTech-inspired** | Frontmatter-first querying, session continuity, session auto-indexing, context rot awareness, "time-to-first-useful-memory" principle | C3, G1, G3 |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/description.json:24:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/description.json:25:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/checklist.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/checklist.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/checklist.md:14:_memory:
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/checklist.md:18:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/checklist.md:19:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/checklist.md:101:- [x] ~~Working memory attention signals~~ — NOT IMPLEMENTED (deferred). handleStartup does not load workingSet. [EVIDENCE: verified in implementation-summary.md]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:18:      "processpreparedmemory rejection gates",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:20:      "processpreparedmemory fix",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:44:      "mcp_server/handlers/memory-save.ts",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:52:        "name": "memory-save.ts",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:54:        "path": "mcp_server/handlers/memory-save.ts",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/022-spec-doc-indexing-bypass/graph-metadata.json:196:    "causal_summary": "All spec documents should index successfully during `memory_index_scan`, with quality warnings logged instead of hard rejections.",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c09-build-config-analysis.md:35:Evidence: `mcp_server/tsconfig.json:17-24` includes all TypeScript files and excludes only three named tests. Running `npm run build` and `npm run typecheck` from `.opencode/skills/system-spec-kit/` both exit with code `2` on `mcp_server/tests/shared-memory-handlers.vitest.ts:129`, `:179`, `:191`, `:205`, and `:227` with `TS18048: 'envelope.data.details' is possibly 'undefined'`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c09-build-config-analysis.md:53:Evidence: `scripts/core/workflow.ts:62-71` imports `@spec-kit/mcp-server/*` and `@spec-kit/shared/*`; `scripts/core/memory-indexer.ts:17-22` does the same; `mcp_server/handlers/memory-save.ts:12-26` and many other `mcp_server` files import `@spec-kit/shared/*`. The compiled JS keeps bare package requires, for example `scripts/dist/core/workflow.js:71-75` and `mcp_server/dist/handlers/memory-save.js:53-56`. But `scripts/package.json:17-27` declares only `better-sqlite3`, `sqlite-vec`, `tsx`, and `vitest`, while `mcp_server/package.json:39-58` declares external libraries but not `@spec-kit/shared`. The only visible links are root-level symlinks under `node_modules/@spec-kit/`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/deep-research-strategy.md:8:  → 37+ findings across scripts/core, lib, extractors, memory, utils. Major: workflow.ts god function, subfolder-utils duplication, content-filter O(n²).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/deep-research-strategy.md:13:- [x] Q4: What bugs, edge cases, or error handling gaps exist in extractors, memory scripts, or MCP handlers?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/deep-research-strategy.md:37:| 1 | scripts/core, extractors, memory, utils | 37 | 1.00 | 37 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-001-copilot-A2.md:35:The implementation does not do that. Stage 4 only performs memory-state filtering, evidence-gap annotation, metadata assembly, and invariant verification; its returned `constitutionalInjected` count is only pass-through metadata from Stage 1, not actual Stage 4 injection logic. [`stage4-filter.ts:255-345`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-001-copilot-A2.md:67:Session dedup is the clearest example. Pipeline contracts still describe dedup as part of Stage 4, but Stage 4 explicitly excludes it, and the actual session dedup runs later in `handlers/memory-search.ts` after cache materialization. [`types.ts:270-283`, `stage4-filter.ts:34-35`, `stage4-filter.ts:236-241`, `memory-search.ts:1081-1127`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-001-copilot-A2.md:83:The real pipeline entry point is `handlers/memory-search.ts`, which builds `pipelineConfig` and calls `executePipeline(pipelineConfig)`. [`memory-search.ts:929-968`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:16:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:20:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:21:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:27:20-iteration multi-agent deep research campaign analyzing the 4-stage retrieval pipeline powering Spec Kit Memory's 32 MCP tools.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:73:8. **31-parameter memory_search with no simple variant** (MODIFIED upward from 28): Includes duplicate `minQualityScore`/`min_quality_score`. Major UX burden. [iter-11, 18]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:96:This research campaign conducted 20 systematic iterations across the hybrid-rag-fusion retrieval pipeline, a 190K LOC TypeScript system powering Spec Kit Memory's 32 MCP tools. Each iteration dispatched up to 3 AI agents (Codex/GPT-5.4, Copilot/GPT-5.4, native Claude Opus) for multi-perspective analysis, with findings externalized to files for cross-iteration continuity.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:126:│  │  ⚠️ Zero error handling  │   │  FSRS, Working Memory, PE Gate │  │
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:134:│  │ 12 metrics   │  │ Quality loop │  │ 31-param memory_search   │  │
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:189:- Constitutional memory injection
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:210:The orchestrator is a pure pass-through (79 LOC) with **zero** error handling constructs -- no try/catch, no throw, no error keyword, no timeout, no circuit breaker. Any stage throw propagates as an unhandled rejection. The structured error infrastructure (`MemoryError`, `buildErrorResponse`, `withTimeout`) exists in `errors/core.ts` but is never used by the pipeline.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:311:- Session caching + constitutional memory exclusion
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:325:| Session | working-memory (765, Miller's Law capacity, LRU eviction, event decay) | 765 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:408:| D5 | Document SPECKIT_MEMORY_* as canonical; deprecate HYDRA_* | P2 | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:409:| D6 | Rename `memory_drift_why` → `memory_causal_trace` | P2 | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:418:| E3 | Simplified `memory_quick_search(query, limit?)` tool | P1 | M | 4/5 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:458:| 7 | memory_search params | 28 parameters | 31 fields in SearchArgs interface | **MODIFIED ↑** |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:479:1. **FSRS write-back lost-update race**: Existing `decay-delete-race.vitest.ts` tests a DIFFERENT race (working_memory attention score T214)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:548:- `MemoryError` class with error codes
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:558:4. **Pipeline never uses structured errors**: 28 warn-and-continue blocks vs structured `MemoryError` infrastructure.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:601:| Search | memory_search, memory_context | 31-param search, no simple variant |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:602:| Save | memory_save | Post-save async has no progress feedback |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:603:| Lifecycle | memory_list, memory_delete, memory_update, memory_validate | Consistent naming |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:604:| Causal | memory_causal_link, memory_causal_stats, memory_causal_unlink | `memory_drift_why` misnamed (should be causal group) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:606:| Shared | shared_space_upsert, shared_space_membership_set, shared_memory_enable, shared_memory_status | Default-OFF |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:607:| Ops | memory_health, memory_stats, memory_index_scan, checkpoint_*, ingest_*, memory_bulk_delete | Operational |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:612:- **Inconsistent**: `memory_drift_why` (should be `memory_causal_trace`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:618:1. **31 parameters on memory_search** -- no simplified `memory_quick_search(query, limit?)`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:650:| Default-OFF (opt-in) | ~40 | SPECKIT_ABLATION, SPECKIT_SHARED_MEMORY |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/research.md:717:4. **E3** -- Simplified memory_search tool (1 day)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/spec.md:3:description: "Read-only Phase 2 research on the bundled Xethryon repository to extract evidence-backed recommendations for system-spec-kit around memory, reflection, autonomy, orchestration, and operator UX."
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/spec.md:58:- Direct comparison against local `system-spec-kit` memory, command, validation, and orchestration surfaces
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/spec.md:128:- **Given** a future planner is tempted to copy Xethryon's autonomy or markdown-memory model wholesale
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/tasks.md:14:_memory:
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/tasks.md:18:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/tasks.md:19:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/tasks.md:72:- [x] Implement `source=resume` path with `memory_context({ mode: "resume", profile: "resume" })` — Evidence: resume path surfaces prior work and last spec folder (checklist P1), profile: resume passed for compact brief format (checklist P0)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/phase-research-prompt.md:63:| 009 | `009-xethryon` | Separate sibling packet. Only mention if BAD's pause / resume / context-boundary mechanics materially overlap memory-heavy autonomous systems. |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/phase-research-prompt.md:75:- Spec Kit Memory, code graph tools, CocoIndex, and deep-research workflows already cover context retrieval and research execution.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:19:This implementation transforms SpecKit's session management from a manual, error-prone process into an automated, validated workflow. The project addressed critical gaps identified in the Extended Context Protocol (ECP) research, delivering real-time state tracking (embedded in memory files), lightweight handoffs, progressive context health monitoring, and validated session continuation.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:37:| State Tracking | None | Embedded in memory files (Project State Snapshot) |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:39:| Continuation Validation | None | Gate 0.5 validates against memory files |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:41:| Resume Priority | Memory files only | 3-level: quick-continue → handover → memory |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:63:## Phase 2: State Tracking (Embedded in Memory)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:71:- **Project State Snapshot**: Embedded section in memory files tracking Phase, Active File, Last/Next Action, File Progress, Blockers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:72:- **generate-context.js integration**: Auto-generates state snapshot when saving context
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:75:### Memory File Structure
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:117:- **Gate 0.5**: Validates CONTINUATION messages against memory files
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:146:| **Gate 0.5** | Did not exist | Validates continuation against memory files |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:171:Resume → Find memory files → Load most recent → Hope it's relevant
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:178:       → Load memory files with embedded state (P3)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:196:| `skill/system-memory/scripts/generate-context.js` | Modified | State helper functions, ToC |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:197:| `skill/system-memory/templates/context_template.md` | Modified | Project State Snapshot + ToC |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:207:| No real-time state tracking | Embedded in memory files |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:211:| No continuation validation | Gate 0.5 validates against memory files |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/019-speckit-refinement/implementation-summary.md:239:- **Single source of truth** for project state (embedded in memory files)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-021.md:12:I compared Agent Lightning's packaged CLI and docs/exploration model with Public's `spec_kit` and `memory` command families.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-021.md:20:- Public also exposes a parallel `memory` family for `save`, `search`, `manage`, and `learn`. [SOURCE: .opencode/commands/memory/save.md:2-4] [SOURCE: .opencode/commands/memory/search.md:2-4] [SOURCE: .opencode/commands/memory/manage.md:2-4] [SOURCE: .opencode/commands/memory/learn.md:2-4]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-021.md:41:- **Current system-spec-kit surface:** Operators face a split surface across `spec_kit` workflow commands and parallel `memory` commands, each with its own markdown contract.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-002-codex-A1.md:2:- High: `deleted-chk210-quality-backfill-script` (artifact no longer available) is writing quality metadata into a fenced ```yaml block and emits `quality_flags:` followed by `  []`, while the shared workflow injector updates real frontmatter and writes `quality_flags: []` correctly in one line ([workflow.ts](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/scripts/core/workflow.ts#L961), sample memory frontmatter at [20-02-26_13-42__memory-command-output.md](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/specs/03--commands-and-skills/014-cmd-memory-output/memory/20-02-26_13-42__memory-command-output.md#L1)). That means the backfill can miss file-side remediation or write malformed metadata while still updating DB rows.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-016-copilot-A2.md:17:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-016-copilot-A2.md:90:● memory_context
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:1:# Document 1: Technical Analysis of `cognee`, `qmd`, and the ArtemXTech Memory Workflow Signal
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:7:2. **`cognee` optimizes persistence and semantic structure** through graph-plus-vector memory, modular ECL pipelines, and MCP exposure for multi-client use.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:8:3. **Artem’s post highlights the operator pain point**: agents lose continuity across sessions; memory must be instant, context-efficient, and semantically rich enough to recover old but relevant intent.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:10:For **system-speckit memory MCP**, the strongest transferable pattern is:  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:11:**fast lexical retrieval path + deeper semantic path + explicit memory lifecycle tools + transport flexibility + operator-first ergonomics (speed, traceability, and continuity).**
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:13:[Assumes: Your current system-speckit memory MCP already stores spec/session artifacts but does not yet implement full hybrid retrieval fusion with explicit staged query modes.]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:37:`cognee` positions itself as persistent AI memory using graph + vectors and ECL-style pipelines:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:39:- **Extract/Cognify/Load pipeline** for transforming raw data into memory structures.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:45:- Durable, structured memory (entities/relations + chunks).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:58:- Memory systems must optimize for **continuity**, **latency**, and **selection quality** under repeated agent sessions.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:89:2. `cognify` extracts semantic structure into graph memory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:90:3. Optional memory enrichment (`memify`, codify/code graph modes).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:92:5. Lifecycle operations (`list_data`, `delete`, `prune`) maintain memory hygiene.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:97:- chunked text memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:106:4. Returned memory shifts agent behavior from generic to grounded.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:118:- `cognee`: broader memory lifecycle and graph-backed tooling.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:143:## 4.2 Structured memory over flat chunk stores
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:192:- Graph-memory quality depends heavily on extraction quality and schema discipline.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:209:- **Memory lifecycle tools** (`list`, `delete`, `prune`) as first-class APIs.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:212:- **Protocol bridge mindset**: memory engine as shared infrastructure for multiple agent frontends.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/005 - analysis-codex-3.md:215:- Optimize for **time-to-first-useful-memory** (seconds matter).
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/description.json:18:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/description.json:19:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:2:title: "Feature Specification: Memory Database [system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:3:description: "The Spec Kit Memory MCP server has 31 tools, 57-column schema, 5-channel hybrid search, causal graph, FSRS scheduling, and a 2,500-LOC save pipeline. A systematic deep-research review audit is needed to surface logic errors, integrity risks, and correctness issues across the full runtime surface before they manifest as production failures."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:5:  - "memory database refinement"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:6:  - "memory db audit"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:13:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:15:    packet_pointer: "system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:17:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:18:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:22:# Feature Specification: Memory Database Refinement
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:49:The Spec Kit Memory MCP server is a 70K+ LOC system with 31 MCP tools, a 57-column `memory_index` table, 5-channel hybrid search, causal graph traversal, FSRS-based scheduling, PE-gating, reconsolidation, lineage versioning, and a 2,500-LOC monolithic save pipeline. Prior spec work (023-ablation-benchmark-integrity) already exposed silent cross-DB scoring, evaluation-time truncation leaking into Recall@20, and stale ground-truth IDs. The system has 26 documented BUG-fix comments, a flagged modularization TODO on the save handler, and multiple gated feature flags whose interaction paths are untested in combination.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:68:| 1 | **Save pipeline integrity** | `handlers/memory-save.ts`, `pe-gating.ts`, `quality-loop.ts`, `mutation-hooks.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:74:| 7 | **Lineage and versioning** | `lib/storage/lineage-state.ts`, `active_memory_projection` table |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:77:| 10 | **Memory parsing and validation** | `lib/parsing/memory-parser.ts`, `content-normalizer.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:79:| 12 | **Shared memory and governance** | `handlers/shared-memory.ts`, tenant/scope enforcement |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:84:| 17 | **Index scan and ingest** | `handlers/memory-index.ts`, `memory-ingest.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:101:- `lib/parsing/*.ts` (memory parser, content normalizer)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/spec.md:201:- Files with 2,000+ LOC (memory-save.ts, hybrid-search.ts, vector-index-schema.ts): review in focused slices.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:25:- **Description**: Only snapshots 4 tables (memory_index, vec_memories, working_memory, causal_edges). Does NOT snapshot memory_lineage, active_memory_projection, memory_entities, etc. Restore leaves stale projection/lineage rows.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:33:- **Description**: No foreign keys on causal_edges, memory_lineage, active_memory_projection. Orphan prevention depends on every mutation calling right cleanup helper.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:37:- **Description**: session_id validated but never persisted to memory_index. Same-path dedup filters on session_id. Governed session-scoped save fails to match own scope on next save.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:39:### [BUG] Memory-type inference: Tier precedence misclassifies spec docs (A1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:40:- **File(s)**: memory-parser.ts:190, type-inference.ts:228, 246, memory-types.ts:348
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:54:- **File(s)**: orchestrator.ts:42-65, handlers/memory-search.ts:929-968
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:60:- **File(s)**: save/response-builder.ts:92-116, memory-bulk-delete.ts:208-225, transaction-manager.ts:197-203
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-004.md:78:- **File(s)**: trigger-matcher.ts:460, 484, memory-triggers.ts:252
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/agent-16-feature-catalog.md:4:- Updated `feature_catalog/FEATURE_CATALOG.md` summary lines for `memory_context`, RSF shadow mode, and local GGUF reranker behavior.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/agent-16-feature-catalog.md:5:- Corrected `memory_context` session semantics to reflect caller-scoped reuse: cross-turn dedup and resume context require a caller-supplied `sessionId`; anonymous calls receive an ephemeral UUID for that invocation only.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/agent-16-feature-catalog.md:7:- Corrected local reranker activation details to match current gate logic: strict `RERANKER_LOCAL=true`, rollout-gated enablement, readable model file, and total-memory thresholds of 8GB default / 2GB with custom model path.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/agent-16-feature-catalog.md:16:- Updated memory-health auto-repair docs to reflect runtime scope: confirmation-only response when `autoRepair:true` lacks `confirmed:true`, and auto-repair only applies in `reportMode:"full"`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:100:● Read memory-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:101:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:108:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:109:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:222:● Read memory-state-baseline.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:223:  │ .opencode/skills/system-spec-kit/mcp_server/lib/eval/memory-state-baseline.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:288:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:289:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-008-copilot-C1.md:426:- Live handlers call eval hooks directly: `mcp_server/handlers/memory-search.ts:24,828-839,1199-1231`, `mcp_server/handlers/memory-context.ts:41`, `mcp_server/handlers/memory-triggers.ts:37`, `mcp_server/handlers/checkpoints.ts:16,404-412`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-016-codex-A1.md:3:- The hybrid path is not actually stage-isolated, so the “4-stage” pipeline double-processes ranking logic. Normal `memory_search` traffic defaults to `searchType: 'hybrid'` before calling `executePipeline` [memory-search.ts:929](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L929>) [memory-search.ts:968](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L968>). But Stage 1’s hybrid branch delegates to `searchWithFallback` even though Stage 1 claims to return raw candidates only [stage1-candidate-gen.ts:6](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage1-candidate-gen.ts#L6>) [stage1-candidate-gen.ts:281](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage1-candidate-gen.ts#L281>) [stage1-candidate-gen.ts:411](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage1-candidate-gen.ts#L411>). That helper immediately enters `hybridSearchEnhanced`, which already performs adaptive fusion/RRF, MPAB, confidence truncation, local rerank/MMR, co-activation, folder scoring, and token-budget truncation [hybrid-search.ts:732](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L732>) [hybrid-search.ts:761](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L761>) [hybrid-search.ts:842](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L842>) [hybrid-search.ts:866](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L866>) [hybrid-search.ts:930](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L930>) [hybrid-search.ts:957](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L957>) [hybrid-search.ts:988](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L988>). Stage 2 and Stage 3 then do more scoring/reranking/MMR/MPAB on top [stage2-fusion.ts:581](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2-fusion.ts#L581>) [stage3-rerank.ts:159](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage3-rerank.ts#L159>) [stage3-rerank.ts:221](</Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage3-rerank.ts#L221>). This is the main Q1 architecture problem.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/007 - analysis-gemini-1.md:1:# Document 1 - Technical Analysis: AI Memory and Context Architectures
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/007 - analysis-gemini-1.md:4:This document analyzes three distinct approaches to providing persistent memory, contextual awareness, and retrieval for AI agents:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/007 - analysis-gemini-1.md:5:1. **Cognee (`topoteretes/cognee`)**: An enterprise-grade, graph-native memory engine utilizing a triple-store architecture.
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/implementation-summary.md:13:_memory:
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/implementation-summary.md:81:- **`source=startup`**: Outputs tool availability guidance listing Spec Kit Memory tools, CocoIndex status, and Code Graph tools. Checks for stale code graph index (>24h) and warns if needed. Does not perform active retrieval.
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/implementation-summary.md:82:- **`source=resume`**: Outputs resume instructions directing the AI to call `memory_context` with resume profile. Shows `lastSpecFolder` from hook state if available. Does not call `memory_context` directly.
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/implementation-summary.md:83:- **`source=clear`**: Outputs minimal guidance reminding that Spec Kit Memory is active and tools are available. Does not load constitutional memories.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-008.md:15:- Agent Lightning defines explicit store statistics including total rollouts, attempts, spans, resources, workers, uptime, and span memory footprints. [SOURCE: external/agentlightning/store/base.py:75-101]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-001.md:27:Public does not currently have an equivalent runtime seam. Its agents are specified as behavioral contracts in markdown and operate through command workflows, file state, and memory or validation surfaces. That means the tracer pattern is not an `adopt now` fit: there is no existing span consumer, no store for trace events, and no agreed Public trace schema. But the seam is still relevant because it shows how Public could add observability around agent executions without rewriting the prompt contracts themselves. A small optional tracing layer around orchestrated agent runs would be complementary to current spec-folder and memory flows, not a replacement for them.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-001.md:38:- **Prerequisites:** define a Public span schema, identify a trace consumer, and decide whether traces live alongside Spec Kit Memory artifacts or in a separate telemetry store
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:2:title: "Implementation Plan: Memory Database [system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:3:description: "30-iteration deep-research review audit + 4 fix sprints + P2 triage + meta-review for the Spec Kit Memory MCP server. 121 original findings fixed, 29 meta-review findings pending remediation in Phase 12."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:5:  - "memory database refinement plan"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:13:    packet_pointer: "system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:20:# Implementation Plan: Memory Database Refinement
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:35:| **Framework** | Spec Kit Memory MCP server |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:86:| **Spec folder** | `026-memory-database-refinement` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:93:| 001 | Save pipeline integrity | `handlers/memory-save.ts`, `pe-gating.ts`, `quality-loop.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:102:| 010 | Memory parsing and validation | `lib/parsing/memory-parser.ts`, `content-normalizer.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:104:| 012 | Shared memory and governance | `handlers/shared-memory.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:109:| 017 | Index scan and ingest | `handlers/memory-index.ts`, `memory-ingest.ts` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:151:- [x] Save context to memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:157:- [ ] WS-3: Fix 3 high-impact SQLite optimizations (Q-1 dedup indexes, Q-2 trigger cache, Q-3 co-activation N+1) + 3 medium (Q-4 temporal index, Q-5 causal LIKE, Q-6 working-memory indexes)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:161:- [ ] Save context to memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/plan.md:237:/spec_kit:deep-research:review:auto .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:3:**Focus**: scripts/core/, scripts/extractors/, scripts/memory/, scripts/utils/
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:4:**Agents**: copilot-C1 (core analysis), copilot-C2 (extractors standards), codex-A1 (memory/utils bugs)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:26:### [BUG] tree-thinning.ts: Root-level memory/ paths misclassified (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:29:- **Description**: `isMemoryFile('memory/foo.md')` returns false because it only checks for `'/memory/'`. Root-level `memory/...` paths misclassified as non-memory files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:47:- **File(s)**: scripts/memory/backfill-frontmatter.ts:174
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:52:- **File(s)**: scripts/memory/reindex-embeddings.ts:67, 118
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:56:### [BUG] generate-context.ts: Bare --session-id falls through (A1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:57:- **File(s)**: scripts/memory/generate-context.ts:392, 447
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:61:### [BUG] validate-memory-quality.ts: Windows line endings break parsing (A1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:62:- **File(s)**: scripts/memory/validate-memory-quality.ts:180, 185, 208, 290
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:71:### [BUG] historical-memory-remediation.ts: Quarantine file loss (A1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:72:- **File(s)**: scripts/memory/historical-memory-remediation.ts:240, 703
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:74:- **Description**: `discoverMemoryFiles()` uses `readdirSync()` with no error handling — one unreadable directory aborts entire audit. Quarantine deletes existing target before rename; EXDEV or permission failure loses the file.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:115:### [LOGIC] memory-indexer.ts: Stale trigger phrase set (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:116:- **File(s)**: scripts/core/memory-indexer.ts:118-123
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:120:### [LOGIC] memory-indexer.ts: recencyFactor is constant (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:121:- **File(s)**: scripts/core/memory-indexer.ts:143-144
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:123:- **Description**: `recencyFactor` is a constant, not actual recency calculation. Formula looks dynamic but gives every memory the same "recency" contribution.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:125:### [LOGIC] memory-indexer.ts: Non-atomic metadata update (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:126:- **File(s)**: scripts/core/memory-indexer.ts:196-214
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:151:- **File(s)**: scripts/memory/rank-memories.ts:386, 184
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:176:- **File(s)**: scripts/memory/cleanup-orphaned-vectors.ts:163
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:181:- **File(s)**: scripts/memory/rebuild-auto-entities.ts:47
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-001.md:211:- Files analyzed: ~45 (9 core, 18 extractors, 9 memory, 9 utils)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-copilot-A2.md:5:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-copilot-A2.md:26:● memory_context
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-copilot-A2.md:32:I found one interesting clue already: the focused memory pipeline exposed an `r12-embedding-expansion` candidate step adding very generic terms like `tool`, `anchor`, `spec`, and `memory`, which looks potentially noisy. I’m drilling into where those terms come from and whether they materially affect recall/precision.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-copilot-A2.md:199:- Expansion signal is lost on merge. Both deep-mode and R12 dedupe by first occurrence, baseline-first, so if the same memory appears in baseline and expanded results, the expanded hit is discarded rather than fused. [`pipeline/stage1-candidate-gen.ts:292-299,378-388`; `pipeline/orchestrator.ts:42-57`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-copilot-A2.md:201:- R12 is noisy and confounded. Expansion terms are mined by raw frequency from similar-memory `content`/`title`/`trigger_phrases`, then appended directly to the literal query string; that same string is sent into lexical search and complexity routing, so “improvements” can come from query noise or extra channels, not cleaner semantic broadening. [`embedding-expansion.ts:124-148,215-243,268-273`; `hybrid-search.ts:347-360,383-408,627-643`; `query-classifier.ts:22-23,176-181`; `query-router.ts:57-60,119-141`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:45:- Representative callsites: `mcp_server/tools/memory-tools.ts:46-74`, `mcp_server/tools/lifecycle-tools.ts:51-63`, `mcp_server/tools/checkpoint-tools.ts:31-34`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:66:- `memory_context: memoryContextSchema as unknown as ToolInputSchema,`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:78:### C10-003: Memory Search Response Path Contains Multiple Cross-Layer Type Coercions
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:81:Location: `mcp_server/handlers/memory-search.ts:964`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:83:- The memory-search handler coerces pipeline configuration, pipeline results, and response envelopes through multiple `as unknown as` conversions.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:91:- Count in this file: `memory_search_cross_cast_count=4`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:101:### C10-004: `memory-crud-extended` Test Harness Uses `any` So Broadly That Drift Can Hide In A Critical Regression Suite
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:104:Location: `mcp_server/tests/memory-crud-extended.vitest.ts:11`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:111:- `deleteMemory: vi.fn((...args: any[]) => actual.deleteMemory?.(...args)),`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c10-type-safety-analysis.md:114:- Count in this file: `memory_crud_extended_any_hits=83`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:1:# Document 1 - Technical Analysis: Advanced AI Memory Systems
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:4:This document provides a comprehensive technical analysis of three advanced AI memory and context management systems: **Cognee** (a hybrid graph-vector memory engine), **QMD** (a high-performance local hybrid search engine by Tobi Lütke), and the **ArtemXTech Stack** (a pragmatic ecosystem combining Obsidian, QMD, and MCP skills for persistent Claude Code sessions). The analysis breaks down their architectures, data structures, integration patterns, and limitations to extract learnings applicable to local, agentic memory networks.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:11:Cognee is designed as a "semantic memory" framework that completely bypasses standard RAG limitations by utilizing a pluggable, three-pillar storage architecture:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:17:QMD (Query Markup Documents) is structured as a highly optimized, cross-runtime (Node.js/Bun) local search daemon designed to act as an agent memory backend:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:48:2.  **Session Indexing:** A post-flight hook extracts terminal session logs and writes them into QMD-indexed Markdown files, transforming ephemeral conversations into searchable long-term memory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:49:3.  **Compaction:** Uses an LLM to periodically summarize a dense memory stack into a dense bulleted list, resetting the context window.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:63:1.  **Zero-Cloud Privacy (QMD):** The architectural decision to bundle `node-llama-cpp` and use local SQLite guarantees that sensitive agent memory never leaves the device.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:64:2.  **Separation of Semantic and Structural Memory (Cognee):** By explicitly dividing "what things mean" (vector) from "how things relate" (graph), Cognee prevents the hallucination inherent in vector-only RAG.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/011 - analysis-gemini-3.md:65:3.  **The "Memory Stack" (ArtemXTech):** Maintaining a distinct hierarchical stack of context files (`CLAUDE.md`, project specs) alongside the dynamic search engine.
./.opencode/specs/system-spec-kit/024-compact-code-graph/002-session-start-hook/graph-metadata.json:141:        "name": "Spec Kit Memory",
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:12:I reviewed Agent Lightning's optional dependency groups and contributor guidance, then compared them against `system-spec-kit`'s memory tool inventory and wide operator command map.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:17:- `system-spec-kit`'s memory server currently documents 43 tools across orchestration, mutation, lifecycle, shared memory, analysis, and maintenance layers. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:95-140]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:18:- The operator quick-reference in `AGENTS.md` also exposes many command families spanning research, implementation, analysis, shared memory, and database maintenance. [SOURCE: AGENTS.md:132-155]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:28:finding: `system-spec-kit` should refactor its capability exposure into clearer profiles. The memory server and command system can remain unified internally for now, but the user-facing model should distinguish `core` from heavier areas such as evaluation, governance, shared memory, and graph tooling.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:31:- **Target file or module:** memory/command exposure model
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-018.md:44:- **If REFACTOR/PIVOT/SIMPLIFY — concrete proposal:** Introduce named capability profiles such as `core`, `research`, `governance`, `eval`, and `shared-memory`, and update docs plus runtime flags to reflect those slices.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-011.md:12:I read Agent Lightning's packaging, CLI entrypoint, contributor guidance, and docs navigation. I compared those surfaces against `system-spec-kit`'s gate-heavy operator workflow, command docs, and memory tool inventory to evaluate whether Public is overexposing implementation detail.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-011.md:19:- `system-spec-kit` exposes many top-level workflow families in its operator guidance: `spec_kit:*`, `memory:*`, analysis commands, shared-memory commands, deep research/review, and multiple recovery flows. [SOURCE: AGENTS.md:132-155]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-011.md:20:- The memory system alone documents 43 MCP tools under one server surface. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:95-140]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-011.md:26:`system-spec-kit` currently leaks much more of its internal architecture into operator UX. The command map, gates, tool families, and memory sub-surfaces are all logically motivated, but together they create a control-plane feel that users must learn before they can just "do the work." That is useful for power users, yet it is too much as a default operator surface.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-011.md:42:- **Current system-spec-kit approach:** A wide command and tool surface is visible to operators, including multiple command families, gates, recovery flows, and 43 memory MCP tools.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:55:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/03--discovery/01-memory-browser-memorylist.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/03--discovery/02-system-statistics-memorystats.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:57:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/03--discovery/03-health-diagnostics-memoryhealth.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:64:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/04--maintenance/01-workspace-scanning-and-indexing-memoryindexscan.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:91:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/19--decisions-and-deferrals/04-implemented-memory-summary-generation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C10.md:102:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/20--feature-flag-reference/04-4-memory-and-storage.md`
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/spec.md:57:- Analysis of `specs/` folder structure (Memory)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/spec.md:78:The `memory/` folder strategy effectively prevents context pollution but requires strict discipline.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:35:Location: mcp_server/tests/shared-memory-handlers.vitest.ts:129
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:37:Evidence: `npm run typecheck` exits with code `2` and reports errors at `shared-memory-handlers.vitest.ts:129,179,191,205,227`. The failing lines all read `envelope.data.details.reason`. `mcp_server/lib/response/envelope.ts:78` defines `details?: Record<string, unknown>;`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:50:### C8-005: Error-path tests in `handler-memory-search` only prove “something failed”
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:53:Location: mcp_server/tests/handler-memory-search.vitest.ts:45
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:55:Evidence: `handler-memory-search.vitest.ts:49`, `:60`, `:72`, and `:79` use `toBeTruthy()` on `getEnvelopeError(payload) || result.isError`. `handler-memory-search.vitest.ts:53-64` explicitly treats both throw and non-throw behavior as success.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:82:Evidence: Import-map analysis found `168` first-party source files with no direct test imports. Uncovered groups include `mcp_server/api/{eval,index,indexing,providers,search,storage}.ts`, `shared/embeddings/providers/{hf-local,openai,voyage}.ts`, and multiple `scripts/memory/*` commands. Exact search found no direct imports of `shared/embeddings/providers/*` in first-party tests. For `mcp_server/tools/*`, the only direct behavioral import is `memory-tools`; `modularization.vitest.ts:70-90` mentions `context-tools`, `causal-tools`, `checkpoint-tools`, and `lifecycle-tools` only as dist file paths for line-count checks.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-c08-test-coverage-analysis.md:84:Recommended Fix: Prioritize direct tests for public API wrappers, provider adapters, and CLI/memory entrypoints before expanding lower-level internal coverage.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-002.md:69:- **Description**: Accepts `Partial<Memory> & Record<string, unknown>`, `FolderScore` has `[key: string]: unknown`. Biggest type-safety compromise in shared surface.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/deep-research-strategy.md:45:- Replacing existing Spec Kit Memory, CocoIndex, or code-graph stack
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/deep-research-strategy.md:90:Code_Environment/Public agent stack: orchestrate, deep-research, deep-review, context, general agents; spec_kit workflow; system-spec-kit skill; memory system with trigger-based recall, semantic search, causal links; CocoIndex; code-graph.
./.opencode/specs/system-spec-kit/024-compact-code-graph/tasks.md:14:_memory:
./.opencode/specs/system-spec-kit/024-compact-code-graph/tasks.md:18:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/024-compact-code-graph/tasks.md:19:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/024-compact-code-graph/tasks.md:118:- [x] Phase 020: Query-Intent Routing Integration — Auto-routing in memory_context, session_resume composite tool
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-003-codex-A1.md:10:It returns `Array<Record<string, unknown>>`, sorted by descending `score`, with graph-flavored result rows keyed by memory `id` plus fields like `source: 'graph'`, `relation`, `sourceId`, `targetId`, `title`, and sometimes `specFolder`. The underlying retrieval is real: FTS5-backed causal-edge matching with a LIKE fallback, plus hierarchy augmentation for `specFolder` searches. Refs: [graph-search-fn.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-search-fn.ts#L73), [graph-search-fn.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-search-fn.ts#L133), [graph-search-fn.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-search-fn.ts#L198), [graph-search-fn.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-search-fn.ts#L465)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-003-codex-A1.md:32:It is initialized at startup, defaulted from `isCausalBoostEnabled()`, and applied in Stage 2 for `hybrid` searches when `enableCausalBoost` is true and unified graph is enabled. Refs: [context-server.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L900), [memory-search.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L760), [memory-search.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L931), [stage2-fusion.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2-fusion.ts#L598)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-003-codex-A1.md:39:Stage 2 graph contributions are counted and surfaced in metadata, so the pipeline expects live graph effects. Refs: [stage2-fusion.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2-fusion.ts#L559), [stage2-fusion.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2-fusion.ts#L798), [memory-search.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L1003)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/description.json:20:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/description.json:21:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/deep-research-state.jsonl:10:{"type":"iteration","run":9,"status":"complete","focus":"Save pipeline robustness + memory quality gates","findingsCount":11,"newInfoRatio":0.91,"keyQuestions":["Q1","Q3","Q5","Q12"],"answeredQuestions":["Q2","Q4","Q6","Q7","Q8","Q9","Q10","Q11"],"timestamp":"2026-03-20T14:00:00Z"}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G1.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G1.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/14--pipeline-architecture/02-mpab-chunk-to-memory-aggregation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:13:- **Description**: Marks existing memory as superseded BEFORE new record created. If create/enrichment fails, old row stays deprecated with no replacement.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:15:### [BUG] memory-crud-utils.ts: Swallowed ledger failures (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:16:- **File(s)**: mcp_server/handlers/memory-crud-utils.ts:43-64
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:20:- **File(s)**: memory-crud-delete.ts:68-75, memory-crud-update.ts:41-78
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:23:### [BUG] memory-crud-health.ts: Partial failure reported as success (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:24:- **File(s)**: mcp_server/handlers/memory-crud-health.ts:320-359
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:32:- **File(s)**: memory-save.ts:729-847, memory-bulk-delete.ts:48-80, memory-ingest.ts:135-152
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:47:### [BUG] memory-crud-update: No-op updates produce side effects (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:48:- **File(s)**: mcp_server/handlers/memory-crud-update.ts:83-87, 140-149, 193-225
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:62:### [UX] memory_index_scan suppresses mutation hook results (C2)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:63:- **File(s)**: mcp_server/handlers/memory-index.ts:264-269, 539-546
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:65:### [BUG] memory_context: ID underreporting for trigger results (C2)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:66:- **File(s)**: mcp_server/handlers/memory-context.ts:873-876
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:68:### [BUG] memory-index-discovery: Silent directory drop (C2)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:69:- **File(s)**: mcp_server/handlers/memory-index-discovery.ts:60-97
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:77:### [BUG] working-memory: Mixed timestamp formats in cleanup (A1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:78:- **File(s)**: mcp_server/lib/cognitive/working-memory.ts:45, 127, 251
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/iterations/iteration-003.md:88:### [LOGIC] memory-crud-stats: excludePatterns doc says regex, impl is substring (C1)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:61:● Read memory-render-fixture.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:62:  │ .opencode/skills/system-spec-kit/scripts/tests/memory-render-fixture.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:152:● Read memory-save-extended.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:153:  │ .opencode/skills/system-spec-kit/mcp_server/tests/memory-save-extended.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:231:● Read runtime-memory-inputs.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:232:  │ .opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:390:- `scripts/utils/*` — e.g. `data-validator.ts`, `logger.ts`, `memory-frontmatter.ts`, `message-utils.ts`, `path-utils.ts`, `tool-detection.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:397:- `mcp_server/hooks/*` — `index.ts`, `memory-surface.ts`, `response-hints.ts`, `mutation-feedback.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:398:- handler split files such as `memory-bulk-delete.ts`, `shared-memory.ts`, `handler-utils.ts`, `memory-index-alias.ts`, `memory-index-discovery.ts`, `pe-gating.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:408:- `scripts/tests/runtime-memory-inputs.vitest.ts` skips one permission test when running as root, so coverage varies by environment.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:429:  - `memory-parser`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:430:  - `memory-save`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/agent-output-iter-009-copilot-C2.md:442:- `memory-render-fixture.vitest.ts`
./.opencode/specs/system-spec-kit/024-compact-code-graph/description.json:19:  "memorySequence": 11,
./.opencode/specs/system-spec-kit/024-compact-code-graph/description.json:20:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:14:Also traced the live wiring through `memory-search.ts`, `hybrid-search.ts`, Stage 2 pipeline code, and current startup/reinit call sites.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:50:`handlers/memory-search.ts` computes `detectedIntent` / `intentWeights` and passes them into `PipelineConfig`.[^memory-search-intent][^memory-search-pipeline]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:70:### Practical effect in the main `memory_search` path
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:75:- otherwise `'hybrid'`[^memory-search-searchtype]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:77:There is no plain `vector` path from the main `memory_search` entrypoint here. So in typical query-driven searches, Stage 2 intent weighting usually does **not** fire because `searchType` is `hybrid`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:91:Per the G2 guard, the Stage 2 behavior itself is correct. The bigger reality gap is that the common `memory_search` path is hybrid, so Stage 2 `intentWeightsApplied` will usually remain false even though intent still affects hybrid fusion elsewhere.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:125:`capability-flags.ts` governs the **memory roadmap snapshot**, not the full runtime feature-flag system.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:136:  - `sharedMemory`[^cap-six]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:141:- memory-state baseline snapshots include the same defaults[^cap-baseline]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:150:- hard-code exactly six fields in the `MemoryRoadmapCapabilityFlags` interface and the returned object[^cap-six]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:173:- `memory-context.ts` uses `isIdentityInRollout(effectiveSessionId)` to gate pressure policy and auto-resume when rollout percent is configured.[^rollout-memory-context]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:175:- `working-memory.ts` uses `isFeatureEnabled('SPECKIT_EVENT_DECAY', sessionId)`.[^rollout-event-decay]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:212:[^memory-search-intent]: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:847-867`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:213:[^memory-search-pipeline]: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:931-968`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:214:[^to-intent-config]: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:109-117`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:217:[^memory-search-searchtype]: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:934-936`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:227:[^cap-baseline]: `.opencode/skills/system-spec-kit/mcp_server/lib/eval/memory-state-baseline.ts:176-199`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:230:[^rollout-memory-context]: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts:629-645`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-copilot-A2.md:232:[^rollout-event-decay]: `.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/working-memory.ts:557-563`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:4:You are a research specialist in persistent memory architectures, self-reflective AI agents, swarm orchestration, and multi-modal agent systems with autonomy modes.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:8:Research Xethryon's persistent memory, self-reflection, and swarm orchestration patterns to identify concrete, evidence-backed improvements for `Code_Environment/Public`'s memory systems, agent self-evaluation, and parallel execution capabilities.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:9:Do not import Xethryon wholesale. Extract what should be `adopt now`, `prototype later`, or `reject`, especially around persistent memory, AutoDream consolidation, self-review before delivery, git-aware context, autonomy switching, autonomous skill invocation, and file-based swarm coordination.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:15:- persistent project memory under `~/.xethryon/projects/<project>/memory/`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:17:- AutoDream consolidation after `24h` or `5` sessions of new memory activity
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:28:- `packages/opencode/src/xethryon/memory/*`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:33:Important caution: the docs frame the memory system as LLM-ranked retrieval, but the code must be verified end to end. Do not assume the marketing description matches the default runtime path.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:43:| 006 | `006-ralph-main` | Explicit overlap packet for persistence strategy. Compare Xethryon's durable memory extraction and consolidation to Ralph's git / progress-file memory, but do not drift into Ralph's fresh-agent Bash loop. |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:46:| 009 | `009-xethryon` | Primary focus. Own persistent memory lifecycle, AutoDream, self-reflection gate, git-aware context, autonomy switching, autonomous skill invocation, and swarm file-IPC patterns. |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:48:Cross-phase rule: tag overlap with `002` for orchestration and `006` for persistence, but keep phase `009` ownership on memory lifecycle, AutoDream, reflection, git context, autonomy switching, and skill invocation.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:52:- `.opencode/skills/system-spec-kit/README.md` describes Spec Kit Memory with persistent semantic memory, graph intelligence, and session continuity
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:54:- Spec Kit Memory, deep-research, code graph, and CocoIndex already cover semantic retrieval, recovery, and evidence gathering
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:58:- an AutoDream-style background consolidation pass across accumulated memory
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:61:Research should compare equivalent surfaces: Xethryon memory vs Spec Kit Memory, Xethryon reflection vs the current response pipeline, Xethryon autonomy vs local routing surfaces, and Xethryon swarm IPC vs current limited multi-agent execution.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:70:6. Inspect `external/packages/opencode/src/session/system.ts` and `external/packages/opencode/src/session/prompt.ts` before diving into subsystems. Identify where memory, relevant-memory recall, git context, autonomy prompt injection, reflection, and post-turn hooks enter the runtime.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:71:7. Trace the persistent memory lifecycle in order: `memoryHook.ts` -> `extractMemories.ts` -> file writes under the auto-memory path -> `retrieveMemories.ts` / `findRelevantMemories.ts` -> `autoDream.ts`. Verify extraction triggers, storage format, retrieval mode, and consolidation gates.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:72:8. Read the memory files in this order after the pipeline entry points: `index.ts`, `memoryHook.ts`, `extractMemories.ts`, `retrieveMemories.ts`, `findRelevantMemories.ts`, `autoDream.ts`, `consolidationLock.ts`, `consolidationPrompt.ts`, `memoryScan.ts`, `paths.ts`.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:78:14. Compare Xethryon directly against `.opencode/skills/system-spec-kit/README.md` for memory and session continuity, and `.opencode/agents/orchestrate.md` for routing and delegation boundaries.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:79:15. Before any deep-research run, ensure this phase folder contains `spec.md`, `plan.md`, `tasks.md`, `checklist.md`, and `decision-record.md`. Validate the folder, run deep research against this same packet, save outputs under `research/`, update `checklist.md`, create `implementation-summary.md`, and save memory from this packet path when complete.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:83:Research Xethryon at /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external, focusing on persistent memory extraction and recall, AutoDream consolidation, self-reflection before delivery, git-aware prompt context, autonomy-mode switching, autonomous skill invocation, and swarm orchestration through file-based IPC so we can identify concrete improvements for Code_Environment/Public.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:87:1. What is the exact memory lifecycle in Xethryon from post-turn learning extraction to durable file writes to retrieval and then to AutoDream consolidation?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:88:2. Does the live runtime actually use LLM-ranked memory retrieval for prompt injection, or is LLM ranking only an optional path while the default runtime path remains keyword / recency scoring?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:89:3. How are memory files organized on disk, how is the generated memory index maintained, and what operational benefits or risks come from this file-first approach?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:97:11. Compared with Spec Kit Memory and `.opencode/agents/orchestrate.md`, which Xethryon patterns are genuinely novel, which are redundant, and which are weaker than local mechanisms already present?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:101:- Do study the memory extraction and ranking pipeline in detail, not just the README description.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:107:- Do compare Xethryon's memory storage and retrieval model directly with Spec Kit Memory's persistent semantic-memory stack and session continuity surfaces.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:112:- Don't confuse Xethryon's memory with a simple key-value store; the target is extraction, ranking, consolidation, and recall behavior.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:113:- Don't ignore AutoDream; the consolidation pattern is a key differentiator from append-only memory.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:116:- Don't recommend Xethryon patterns just because they are more autonomous; compare them to local governance and memory safety first.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:120:### Example A - memory retrieval reality check
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:121:- **Evidence:** `packages/opencode/src/xethryon/memory/findRelevantMemories.ts`, `packages/opencode/src/xethryon/memory/retrieveMemories.ts`, `packages/opencode/src/session/system.ts`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:123:- **Why it matters here:** `Code_Environment/Public` already has semantic retrieval in Spec Kit Memory, so adoption value depends on whether Xethryon adds a genuinely different retrieval mechanism.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:125:- **Affected area:** Spec Kit Memory retrieval surfaces or future lightweight recall helpers
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:145:- persistent memory extraction, storage layout, retrieval behavior, and AutoDream
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:150:- explicit comparison to Spec Kit Memory and `.opencode/agents/orchestrate.md`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:155:- generic OpenCode code not modified in a memory / reflection / autonomy / swarm-relevant way
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:159:Rank findings in this order: improvement value for `Code_Environment/Public` memory systems, improvement value for pre-delivery self-evaluation, orchestration leverage for safe parallel execution, portability into existing governance, docs-vs-code risk, and overlap discipline with packets `002` and `006`.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:163:1. A concise architecture summary of Xethryon's memory, reflection, autonomy, git-aware, and swarm systems.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:164:2. A memory lifecycle trace covering extraction -> file storage -> retrieval -> AutoDream.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:186:| Memory accuracy | Extraction, retrieval, and AutoDream behavior are traced from real code |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/phase-research-prompt.md:203:- The memory lifecycle is traced end to end from extraction to AutoDream.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C4.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:30:| 015 | `016-rewrite-memory-mcp-readme` | In Progress | 1 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:56:| 008 (hydra-db) | None explicit (absorbed 017-markovian) | 011 (shared memory tools), 013 (AGENTS.md shared commands) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:150: |    +---> 016-rewrite-memory-mcp-readme (grounding)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:157: |    +---> 012-command-alignment (shared memory tools)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:176: +-- 016-rewrite-memory-mcp-readme [In Progress]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/scratch/audit-v3-o09-cross-spec-dependencies.md:334:- **Recommended Fix**: Add a scope boundary statement to both 001/spec.md and 009/spec.md clarifying that sprints focus on retrieval/search pipeline improvements while 009 focuses on memory save/capture quality. This distinction is implicit but never stated.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:14:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:18:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:19:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:27:A comprehensive architecture audit of the `system-spec-kit` codebase was conducted over 10 iterations using 3 specialized agents per iteration (30 total agent runs). The audit covered scripts (core, extractors, lib, memory, utils, evals, spec-folder), the shared library, and the full MCP server (handlers, search pipeline, storage, eval, scoring, learning, validation, ops, collab, and configuration).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:59:| `scripts/core/` | workflow.ts, config.ts, file-writer.ts, memory-indexer.ts, quality-scorer.ts, subfolder-utils.ts, tree-thinning.ts | God functions, logic bugs, silent fallbacks |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:62:| `scripts/memory/` | generate-context.ts, backfill-frontmatter.ts, reindex-embeddings.ts, validate-memory-quality.ts, historical-memory-remediation.ts, rank-memories.ts | Path bypass, process.exit safety, Windows compat |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:67:| `mcp_server/handlers/` | CRUD, save pipeline, search, context, ingest, checkpoints, causal, learning, eval, shared-memory | Premature supersession, swallowed ledger, error contract drift |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:68:| `mcp_server/lib/search/` | pipeline/, hybrid-search.ts, vector-index-*.ts, entity-linker.ts, graph-search-fn.ts, memory-summaries.ts, boost/filter modules | V2-wraps-legacy, score shadowing, stale caches, missing ORDER BY |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:71:| `mcp_server/lib/config/` | capability-flags.ts, type-inference.ts, memory-types.ts | Tier misclassification, flag inconsistency |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:96:- **Description:** Marks existing memory as superseded BEFORE new record is created. If create/enrichment fails, old row stays deprecated with no replacement.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:97:- **Impact:** Data loss -- the old memory is effectively deleted even though no replacement exists.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:121:#### F1.05 -- Root-level memory/ paths misclassified
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:124:- **Description:** `isMemoryFile('memory/foo.md')` returns false because it only checks for `'/memory/'`. Root-level `memory/...` paths are misclassified as non-memory files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:125:- **Impact:** Memory files at root level skip memory-specific thinning rules.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:126:- **Recommendation:** Also match paths starting with `memory/` (no leading slash).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:158:- **File(s):** `mcp_server/handlers/memory-crud-utils.ts:43-64`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:187:- **Description:** session_id validated but never persisted to memory_index. Same-path dedup filters on session_id, so governed session-scoped save fails to match own scope on next save.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:189:- **Recommendation:** Persist session_id to memory_index row.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:191:#### F1.15 -- Memory-type inference misclassifies spec docs
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:193:- **File(s):** `memory-parser.ts:190, type-inference.ts:228, 246, memory-types.ts:348`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:221:- **File(s):** `scripts/memory/historical-memory-remediation.ts:240, 703`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:222:- **Description:** `discoverMemoryFiles()` uses `readdirSync()` with no error handling. Quarantine deletes existing target before rename; EXDEV or permission failure loses the file.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:237:- **Impact:** Malformed YAML in memory files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:309:- **File(s):** `memory-summaries.ts:161, 169, 210`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:355:- **File(s):** `memory-crud-delete.ts:68-75, memory-crud-update.ts:41-78`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:362:- **File(s):** `recovery-hints.ts:45-119; memory-ingest.ts:203-217; checkpoints.ts:118-129, 226-240`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:376:- **File(s):** `mcp_server/handlers/memory-crud-health.ts:320-359`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:383:- **File(s):** `memory-save.ts:729-847, memory-bulk-delete.ts:48-80, memory-ingest.ts:135-152`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:412:- **Description:** `MemoryError` is a proper base class with hint metadata, but several handlers still throw raw `Error`, bypassing the hierarchy.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:414:- **Recommendation:** Migrate all handlers to use `MemoryError` subclasses.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:436:- **File(s):** `scripts/memory/backfill-frontmatter.ts:174`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:451:- **Description:** Retry processing reads `memory.file_path` directly from DB and passes to `readFile()` with no validation. The path validator exists but is not called. A poisoned `memory_index.file_path` row can make the retry worker read arbitrary local files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:478:- **File(s):** `memory-crud-list.ts:137, memory-crud-stats.ts:158, memory-save.ts:1162-1165`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:512:- **Impact:** Save operations slow down as memory count grows.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:612:- **File(s):** `tools/types.ts:41` vs `handlers/memory-context.ts:96, memory-search.ts:126, save/types.ts:106`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:619:- **File(s):** `handlers/save/types.ts:37, pe-gating.ts:51, chunking-orchestrator.ts:47, memory-index.ts:54, context-server.ts:106; transaction-manager.ts:31`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:638:- **Description:** Accepts `Partial<Memory> & Record<string, unknown>`. `FolderScore` has `[key: string]: unknown`. Biggest type-safety compromise in shared surface.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:684:- **Description:** `config.jsonc` looks like a master config but only Section 1 is active. Sections like `semanticSearch`, `memoryDecay`, `importanceTiers`, `hybridSearch` are documentation, not live config.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:691:- **Description:** `shared/config.ts` supports `SPEC_KIT_DB_DIR` and `SPECKIT_DB_DIR`. `core/config.ts` only honors `SPEC_KIT_DB_DIR`. `vector-index-store.ts` uses `SPEC_KIT_DB_DIR` plus legacy `MEMORY_DB_DIR`, and `MEMORY_DB_PATH` can override. Scripts and MCP server can point at different SQLite files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:725:- **File(s):** `SKILL.md:578-580, handlers/memory-search.ts:804-813, lib/errors/core.ts:69-78`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:726:- **Description:** SKILL.md says `memory_search()` with only `specFolder` causes `E040`, but runtime returns `E_VALIDATION`; `E040` is legacy `SEARCH_FAILED`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:733:- **Description:** README says MCP calls use `spec_kit_memory_` prefix, but server registers raw tool names like `memory_context`, `checkpoint_create`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:740:- **Description:** README claims 15 commands (8 spec_kit + 7 memory), but repo has 8 + 6. Omits `/spec_kit:deep-research`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:814:- **Description:** `SESSION_EXPIRED` suggests `/memory:continue` (not an MCP tool). `PARAMETER_OUT_OF_RANGE` doesn't say which parameter. `ANCHOR_FORMAT_INVALID` gives generic rules. `TOKEN_BUDGET_EXCEEDED` suggests splitting but doesn't include actual vs budget.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:821:- **Description:** `memory_match_triggers` mixes `session_id`, `turnNumber`, `include_cognitive`. `memory_search` supports both `min_quality_score` and deprecated `minQualityScore`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:827:- **File(s):** `recovery-hints.ts:13-23; memory-ingest.ts:212-216; memory-crud-update.ts:236-240; envelope.ts:64-80`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:835:- **Description:** Users/operators told to manually run `create.sh`, `generate-context.js`, `memory_index_scan()`/`memory_save()`, `validate.sh`, alignment verification, completeness checks, and shell pipeline to find next spec number. Workflow falls back to "Run npm run rebuild to retry indexing later."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:837:- **Recommendation:** Automate index follow-up after generate-context.js; provide idempotent scaffold command.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:894:| 1 | scripts/core, extractors, memory, utils | 37 | 1.00 | 37 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/research.md:986:| 3 | Derive MCP tool definitions from single source of truth; fix memory_save governance args | 5 | 2 | **2.50** |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:1:# Document 1: Technical Analysis of AI Memory and Retrieval Architectures
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:5:The landscape of AI agent memory is rapidly evolving from naive vector-based Retrieval-Augmented Generation (RAG) to sophisticated, multi-modal cognitive architectures. This document analyzes three distinct approaches to agentic memory and retrieval:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:6:1. **Cognee (by Topoteretes):** An enterprise-grade cognitive architecture focusing on deterministic memory via GraphRAG, utilizing a three-tier storage system (Relational, Vector, Graph).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:8:3. **System-Spec-Kit Memory MCP (Internal):** A biologically-inspired, 5-channel hybrid search memory server featuring FSRS power-law decay, dynamic token budgeting, and causal graph lineage.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:10:This analysis dissects their core logic flows, integration mechanisms, and architectural design patterns to extract actionable insights for advancing local memory implementations.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:17:Cognee approaches AI memory as a structured ETL (Extract, Transform, Load) problem, effectively functioning as a "knowledge engine." Its architecture is designed to transform unstructured data into a deterministic, queryable state. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:36:### 1.3 System-Spec-Kit Memory MCP (Biologically-Inspired Baseline)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:37:Our internal architecture acts as a persistent contextual layer for AI-assisted development. It models memory not just as data, but as a decaying, stateful cognitive system.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:41:*   **Cognitive Decay (FSRS):** Memory retrievability decays over time using the Free Spaced Repetition Scheduler power-law formula. Memories exist in a 5-state model: HOT, WARM, COLD, DORMANT, and ARCHIVED.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:50:*   **System-Spec-Kit:** Uses a sophisticated "Prediction Error Gating" flow during ingestion (`memory_save`). It hashes content for exact-match deduplication and uses vector similarity thresholds (0.50 to 0.95) to categorize new memories as `UNIQUE`, `LOW_MATCH`, `HIGH_MATCH`, or `DUPLICATE`, branching the logic to either insert, merge, or link (causally) the incoming data.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:62:*   **System-Spec-Kit** exposes a granular, 7-layer API (Orchestration, Core, Discovery, Mutation, Lifecycle, Analysis, Maintenance). Agents interact primarily through the `memory_context` tool, which acts as a façade, shielding the agent from the underlying vector/graph complexity.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:67:*   **System-Spec-Kit:** Links memories via explicit `causal_edges` with strongly typed relationships (`caused`, `supersedes`, `contradicts`, `supports`). This allows the `memory_drift_why` tool to walk the graph backward to explain *why* an architectural decision was made three weeks ago.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:89:*   **Constraints:** High RAM/VRAM requirements. Running a 0.6B to 1.5B parameter reranking model alongside the primary coding LLM (e.g., local Ollama or Claude Desktop) can cause memory contention on machines with < 32GB unified memory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:95:### System-Spec-Kit Memory MCP
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/009 - analysis-gemini-2.md:97:*   **Constraints:** Startup indexing loop. Because it lacks a real-time filesystem watcher (polling instead of push), modifications made by humans in an IDE are not immediately reflected in the index until `memory_index_scan` is called or the server restarts.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:1:# Iteration 016 — Should Memory Pivot To A Store-Centric Runtime?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:6:Should `system-spec-kit` pivot its memory architecture away from file-first markdown plus SQLite indexing and toward an Agent-Lightning-style store-centric runtime?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:9:The external store model is powerful for training rollouts and telemetry-heavy execution, but it is probably the wrong center of gravity for Public's auditable, human-readable memory system.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:12:I revisited the external store contract and compared it against `system-spec-kit`'s memory architecture, especially the role of generated memory files, indexed spec docs, constitutional rules, and the JSON-primary `generate-context` workflow.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:17:- `system-spec-kit`'s memory system is built around indexed memory files, constitutional rules, and spec documents, with SQLite acting as search/index infrastructure rather than the user-facing source of truth. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:17-27] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:38-57]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:18:- The memory system already distinguishes generated memory files from the runtime index, and `memory_save()` is described as an indexing step after `generate-context.js`. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:103-110]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:19:- `generate-context.js` is explicitly JSON-primary and writes a human-readable memory artifact into the spec folder's `memory/` directory. [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:51-79]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:24:That means a direct architectural pivot would be a mistake. Moving Public to a store-centric runtime would make memory less transparent, would weaken spec-folder locality, and would blur the distinction between human-authored or AI-authored context and machine-owned search infrastructure. The transferable lesson is smaller: continue clarifying the boundary between source artifacts and derived indexes, but do not invert the architecture.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:29:finding: `system-spec-kit` should reject a store-centric memory pivot. The current file-first, auditable memory architecture is better aligned to Public's purpose. Improvements should happen in projection layers, indexing, and reducer boundaries, not by replacing markdown plus spec-folder locality with a runtime store as the new source of truth.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:32:- **Target file or module:** memory architecture
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:40:- **Current system-spec-kit approach:** Memory is anchored in generated markdown artifacts, constitutional docs, and indexed spec documents, with SQLite used as a retrieval backend.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:50:I looked for evidence that Public's current memory system is already collapsing under its file-first model, but the strongest pain points observed elsewhere in the repo are around validation, routing, and indexing quality rather than the existence of markdown artifacts. I also looked for an external pattern that preserved human-readable artifacts as first-class outputs while still using the store as the source of truth and did not find a convincing equivalent.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:53:- If memory stays file-first, which agent/runtime surfaces are still over-factored?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:54:- Can Public define a cleaner adapter boundary between memory artifacts and search/index projections?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-016.md:55:- Which parts of the current memory workflow feel heavyweight because of UX rather than architecture?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:5:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:13:  │ 1. Load prior memory and inspect search-layer files plus package/test entry points.…
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:16:● memory_context
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:26:I’ve loaded the research skill and prior memory hooks. Next I’m mapping the `lib/search` surface plus adjacent tests so I can trace the real hot paths instead of just reading files in isolation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:134:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:135:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:138:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:139:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:143:  │ "executePipeline|searchWithFallback|PIPELINE_V2|pipeline|hybridSearchEnhanced|handleMemorySearch
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:147:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:148:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:153:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:158:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:166:● Read memory-summaries.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:167:  │ .opencode/skills/system-spec-kit/mcp_server/lib/search/memory-summaries.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:199:  │ "querySummaryEmbeddings\(|checkScaleGate\(|SELECT id, memory_id, summary_embedding|SELECT id,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:204:  │ "SELECT spec_folder FROM memory_index WHERE id = \?|db.prepare\(|get\(Number\(r.id\)\)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:257:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:258:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:297:✗ Memory stored search architecture
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:298:  └ memory_search always executes the 4-stage executePipeline path; isPipelineV2Enab…
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:302:Live flow is `handleMemorySearch()` → `executePipeline()` → Stage 1/2/3/4, but Stage 1 immediately calls `searchWithFallback()`, which drops into `hybridSearchEnhanced()` and already does routing, fusion, MMR, MPAB, token-budget truncation, and context-header injection before Stage 2/3 run again. That is the biggest architecture bug and wasted-work hotspot. [`handlers/memory-search.ts:929-969`, `pipeline/orchestrator.ts:42-77`, `pipeline/stage1-candidate-gen.ts:179-191`, `pipeline/stage1-candidate-gen.ts:257-325`, `hybrid-search.ts:543-1057`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:306:- **Reranker fallback can overwrite good scores with synthetic ones:** rerank defaults to `true`, cross-encoder is default-on, but if no provider is configured, `rerankResults()` returns positional fallback scores and Stage 3 still marks reranking as applied while overwriting `score`. [`handlers/memory-search.ts:756-757`, `search-flags.ts:48-53`, `cross-encoder.ts:175-185`, `cross-encoder.ts:355-375`, `pipeline/stage3-rerank.ts:347-383`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:308:- **BM25 `specFolder` filtering is N+1 DB work:** every BM25 hit does its own `SELECT spec_folder FROM memory_index WHERE id = ?`. [`hybrid-search.ts:282-294`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:309:- **R8 summary channel is both expensive and weakly targeted:** it only activates on large corpora, then fetches the first `max(limit*10, 1000)` summary embeddings, computes cosine in JS, then does per-hit row fetches plus six serial filter passes. [`memory-summaries.ts:161-192`, `memory-summaries.ts:210-218`, `pipeline/stage1-candidate-gen.ts:590-646`]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-013-copilot-A2.md:311:- **MPAB is triplicated:** there is one implementation in the handler, one in `lib/scoring`, and another in Stage 3. That is dead/duplicated architecture and drift risk. [`handlers/memory-search.ts:520-679`, `lib/scoring/mpab-aggregation.ts:147-185`, `pipeline/stage3-rerank.ts:434-505`]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-010.md:17:- Local constitutional gate guidance explicitly names Gate 3 as a hard block and cross-references continuation/memory rules, so there is at least a real documented enforcement surface in this repo even when runtime hooks are absent. [SOURCE: .opencode/skills/system-spec-kit/constitutional/gate-enforcement.md:58-103]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-029.md:15:- `CLAUDE.md` requires Gates 1-3 before tool use, including memory recovery, skill routing, and spec-folder binding rules. [SOURCE: CLAUDE.md:109-168]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-029.md:16:- `AGENTS.md` repeats the gate system, Gate 3 persistence rules, memory-save contract, and completion-verification rules. [SOURCE: AGENTS.md:161-222]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-029.md:17:- The constitutional gate memory further mirrors this by summarizing gate cross-references and continuation validation. [SOURCE: .opencode/skills/system-spec-kit/constitutional/gate-enforcement.md:58-69]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-029.md:23:Public's automation is not the problem. The problem is the number of places where an operator can encounter the same system from different angles: master behavior doc, repo instructions, constitutional memory, skill docs, and hook docs. That layering is useful for maintainers, but it is too thick for first-contact UX.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/implementation-summary.md:97:1. **No memory save was performed.** This closeout stops at packet artifacts and validation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C5.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C5.md:62:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/10--graph-signal-activation/08-graph-and-cognitive-memory-fixes.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:12:- `mcp_server/lib/parsing/memory-parser.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:13:- `mcp_server/handlers/memory-index.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:26:- `memory_drift_why` → `TRAVERSAL_ERROR`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:27:- `memory_causal_link` / `memory_causal_stats` / `memory_causal_unlink` → `CAUSAL_GRAPH_ERROR`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:122:- Several other direct mutation surfaces bypass the `causal-edges.ts` helper. From prior audit knowledge: `vector-index-mutations.ts` deletes causal edges during memory removal, `corrections.ts` deletes correction-owned edges, and `graph-lifecycle.ts` updates edge strengths — none of those paths call `clearGraphSignalsCache()`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:130:### memory-parser.ts — YAML body not re-parsed, anchor nesting validation, frontmatter errors
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:134:**YAML body not re-parsed:** `parseMemoryContent` at `memory-parser.ts:237-289` extracts frontmatter via `extractFrontmatterBlock` and separately strips it for body extraction. The body content after stripping is never re-parsed as YAML — it is used as plain text. This is correct and intentional.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:136:**Frontmatter error handling:** `extractFrontmatterBlock` at `memory-parser.ts:449-458` returns `null` on failure (no match). Downstream callers handle `null` gracefully via optional chaining (`frontmatter?.match(...)`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:138:**Anchor nesting validation:** `validateAnchors` at `memory-parser.ts:791-841` uses a stack-based parser that correctly detects:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:147:`extractAnchors()` at `memory-parser.ts:845-867` uses a simple regex scan: find opening tag, slice to first subsequent closing tag for that ID. It does not call `validateAnchors()` and does not fail on structurally invalid anchor nesting. The result is that when anchors are malformed (out-of-order, crossed, or unclosed), `extractAnchors()` still returns content — but the returned content boundaries are wrong.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:149:`validateParsedMemory` at `memory-parser.ts:869-900` calls `validateAnchors()` and records warnings, but does not prevent callers from later calling `extractAnchors()` on the same content. Callers that request anchor-scoped content (e.g. search result formatters) can receive truncated or cross-contaminated anchor bodies.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:151:**Evidence:** `extractAnchors()` at `memory-parser.ts:848-866` uses a stateless `anchorRegex.exec()` loop with independent `remainingContent.match(closingRegex)`. No validity gate. `validateAnchors()` at `memory-parser.ts:791` and `extractAnchors()` at `memory-parser.ts:845` are independent functions with no shared state or call dependency.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:157:### memory-index.ts — incremental scan content-hash detection
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:161:The incremental scan content-hash detection path in `incremental-index.ts` (referenced by `memory-index.ts`) at `incremental-index.ts:179-184` correctly:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:166:`memory-index.ts:344-365` correctly calls `incrementalIndex.categorizeFilesForIndexing(files)` which routes through `shouldReindex()` per file.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:168:The SAFETY INVARIANT comment at `memory-index.ts:368-373` is correctly implemented — `successfullyIndexedFiles` is only populated after confirmed successful indexing (`memory-index.ts:410-426`), and `batchUpdateMtimes` is called only on those files at `memory-index.ts:464-467`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:170:Stale record cleanup at `memory-index.ts:469-477` is correctly gated: only runs when `results.failed === 0`, preventing premature deletion of records when replacement files failed to index.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:181:1. Calls `inspectGroundTruthAlignment` to check every relevance ID against `memory_index`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:215:2. `memory-parser.ts:845-867` — `extractAnchors()` does not gate on `validateAnchors()` result. Structurally invalid (crossed/unclosed) anchors produce wrong content boundaries in anchor-scoped reads. The validator detects the problem but extraction still runs, allowing corrupted anchor bodies to reach callers.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-034.md:229:- `memory-index.ts`: incremental content-hash detection, mtime-update ordering, stale-cleanup guard all correct
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/analysis-report.md:18:- **Robustness**: The system is highly resilient to context loss. The strict separation of "Memory" (Context) and "Specs" (Truth) allows tasks to be paused and resumed indefinitely.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/analysis-report.md:44:### Pillar 4: The Memory (`specs/`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:1:# Document 2 - Actionable Recommendations: system-spec-kit Memory MCP Evolution
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:12:*   **Frontmatter-First Loading:** Adapting Artem’s Obsidian metadata queries to optimize `memory_list()` and candidate generation in `memory_search()`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:20:Currently, `memory_search()` returns chunks of text with some metadata. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:22:*   *Implementation:* Modify `memory_search()` to resolve the parent `spec.md` of any retrieved memory chunk, extracting the Level 1 `## Goal` block, and injecting it as a lightweight header (`[Context: Auth System > Login]`) into the `ContextEnvelope`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:26:**Improvement:** Adopt Artem's token-saving strategy. Create a new mode in `memory_context(mode='discovery')` or modify `memory_list()`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:27:*   *Implementation:* Instead of returning the `content` field, return only the YAML frontmatter, `MEMORY_TITLE`, and auto-extracted entities. Allow the agent to use a secondary call (like `read_file` or a targeted `memory_search`) to pull the full body only if the metadata matches its current strategy.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:32:*   *Implementation:* During `memory_save()`, run a lightweight extraction prompt (or use the existing entity extraction) to strictly output JSON arrays of `[Source, Relationship, Target]`. Store these in a new SQLite table `memory_edges`. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:33:*   *Query:* Add a `memory_traverse(entity, depth=2)` MCP tool that allows the agent to recursively walk relationships (e.g., `UserAuth` -> *blocks* -> `DatabaseMigration`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:38:*   *Implementation:* Extend the `generate-context.js` script to ingest the last 50 lines of `.vscode/sessions.json` or CLI trace history. Automatically write this to `scratch/session-log.md` and index it silently via `memory_index_scan()`. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:52:| **2** | **Frontmatter Paging** | Modify `memory_list` to accept an `includeBody=false` parameter. Expose this broadly to `@context` agents. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:54:| **4** | **SQLite Graph Overlay** | Define schema `CREATE TABLE edges (source_id, target_id, relation_type)`. Update `SPECKIT_ENTITY_LINKING` logic to populate this during `generate-context.js`. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:63:function injectContextualTree(memoryChunk: MemoryResult, vaultRoot: string): string {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:64:    // If the memory lives in specs/002-database/memory/file.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:65:    if (memoryChunk.specFolder) {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:66:        const specSummary = getSpecSummary(memoryChunk.specFolder); // Fetched from local cache
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:67:        return `[Domain Context: ${memoryChunk.specFolder} - ${specSummary}]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:68:${memoryChunk.content}`;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:70:    return memoryChunk.content;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:79:    source_memory_id TEXT NOT NULL,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:80:    target_memory_id TEXT NOT NULL,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:83:    FOREIGN KEY(source_memory_id) REFERENCES working_memory(id)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:92:*   **Latency Spikes (LLM Reranking):** QMD can rerank fast because the model is pinned in local VRAM. `system-spec-kit` likely relies on API calls. Reranking via external API will add 1-3 seconds to `memory_search()`, necessitating an async UX or strict timeout fallbacks.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:93:*   **Graph Maintenance Complexity:** Implementing the SQLite Graph Overlay risks the same "cascade delete" issues seen in Cognee. We must ensure that `memory_delete()` triggers use SQLite `ON DELETE CASCADE` constraints to clean up orphaned edges automatically.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/012 - recommendations-gemini-3.md:99:1.  **Phase 1 (Immediate - v1.8.0):** Implement Frontmatter Paging (`memory_list(includeBody: false)`) and Contextual Spec Trees. These require zero schema changes to the `context-index.sqlite`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-codex-A1.md:10:3. Error hierarchy: Partial, but below the sk-code standard. The standard expects a typed `MemoryError` base plus typed codes/context and specialized subclasses such as `ValidationError` in [quality_standards.md#L476](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/sk-code-opencode/references/typescript/quality_standards.md#L476) and [quality_standards.md#L505](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/sk-code-opencode/references/typescript/quality_standards.md#L505). Reality: [core.ts#L93](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L93) defines a solid base `MemoryError`, and [core.ts#L100](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L100) correctly repairs the prototype chain, but the shape diverges: `code` is an untyped `string` at [core.ts#L94](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L94), metadata is `details` rather than `context` at [core.ts#L95](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L95), and the file still leans on legacy constant codes at [core.ts#L59](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L59). I found no subclasses extending `MemoryError` under `lib/errors/` beyond [core.ts#L93](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts#L93).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-004-codex-A1.md:12:4. Feature-flag naming: Consistent inside the flag-governance module. The style guide prefers `camelCase` for variables/parameters and `UPPER_SNAKE_CASE` for constants at [style_guide.md#L349](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/sk-code-opencode/references/typescript/style_guide.md#L349), [style_guide.md#L350](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/sk-code-opencode/references/typescript/style_guide.md#L350), and [style_guide.md#L359](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/sk-code-opencode/references/typescript/style_guide.md#L359). `capability-flags.ts` follows that cleanly with camelCase capability keys at [capability-flags.ts#L16](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts#L16), uppercase env-constant holders at [capability-flags.ts#L32](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts#L32), and stable `SPECKIT_MEMORY_` / `SPECKIT_HYDRA_` env names at [capability-flags.ts#L39](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts#L39). Cross-system note: public tool parameters are less consistent, with snake_case and camelCase mixed in [tool-schemas.ts#L182](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L182), [tool-schemas.ts#L43](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L43), [tool-schemas.ts#L105](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L105), and [tool-schemas.ts#L111](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L111).
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-002.md:12:I read the `LightningStore` contract, the store deep-dive documentation, and the core rollout, attempt, worker, and resource types. I compared those contracts against Public's `/spec_kit:deep-research` command, `session-resume` handler, and `generate-context` workflow to see whether Public already has equivalent lifecycle tracking or would benefit from importing a subset of it.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-002.md:21:- Public's `/spec_kit:deep-research` command has loop phases, state files, convergence rules, and memory save behavior, but it does not define an explicit attempt or worker status machine. Its outputs are spec-folder files and state logs rather than a queue-backed execution control plane. [SOURCE: .opencode/commands/spec_kit/deep-research.md:115-155] [SOURCE: .opencode/commands/spec_kit/deep-research.md:177-210] [SOURCE: .opencode/commands/spec_kit/deep-research.md:252-260]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-002.md:23:- Public's `generate-context` workflow is centered on spec-folder validation and structured session capture, not on execution-attempt coordination, heartbeat tracking, or resource versioning. [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:51-84] [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:85-125]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-002.md:26:Agent Lightning's store is built for a very specific control-plane problem: asynchronous runners, retries, versioned resources, and telemetry-heavy training flows need a shared durable substrate. Public does not currently have that problem in full. Its deep-research and memory workflows are phase-local and file-driven, not queue-backed or multi-runner.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-002.md:43:I looked for an existing Public execution-state model in `/spec_kit:deep-research`, `session-resume`, and `generate-context`, and found only loop phases, cached-summary trust checks, and memory-save validation. I did not find queue-backed scheduling or attempt-heartbeat semantics that would make the Agent Lightning subset redundant. I also looked for evidence that Public needs full resource versioning or proxy endpoint routing now and found none.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:41:**What exists:** Broad MCP tool surface already split by function (`memory_search`, `memory_context`, `memory_list`, `memory_health`, `memory_index_scan`, mutation tools, lifecycle tools), plus schema hardening improvements (e.g., Phase 017 “Schema params exposed #13”).  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:42:**Evidence:** `memory_search` / `memory_context` / `memory_list` sections; Phase 017 schema hardening; preflight validation and strict parameter handling.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:48:**What exists:** `memory_save` supports `asyncEmbedding` and pending embeddings; `memory_index_scan` supports incremental indexing/retry behavior.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:49:**Evidence:** `memory_save` async embedding path; `memory_index_scan` maintenance flow.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:67:**What exists:** Resume mode, auto-resume, working memory, session dedup, and contextual carry-forward.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:68:**Evidence:** `memory_context` resume mode + `SPECKIT_AUTO_RESUME`; session manager + working memory features.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:69:**Remaining gap:** Add explicit `memory_continue`-style structured output (`state`, `decisions`, `next_steps`, `open_risks`, `evidence_refs`) as a first-class tool.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:101:**What exists:** `memory_index_scan` sync workflow and robust incremental indexing.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:102:**Evidence:** `memory_index_scan` maintenance section.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:127:**Evidence:** `memory_search`/`memory_list` scoping + DB env options.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:137:### 13. Dynamic startup instructions from live memory inventory (from original 3.4, consensus 1/6 unique)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:141:**Evidence:** `memory_stats`, `memory_health`, but no init-instruction builder feature.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:186:| 1.2 SQLite graph overlay | Tier 1 | 5/6 | ALREADY IMPLEMENTED | Causal graph tools (`memory_causal_link/stats/unlink/drift_why`), graph channels, N2/S5/R10 | None |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:190:| 2.1 Async ingestion + job status | Tier 2 | 3/6 | PARTIALLY IMPLEMENTED | `memory_save asyncEmbedding`, pending embeddings, scan retry behavior | Job lifecycle API with IDs/progress/cancel |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:194:| 2.5 Metadata-first querying | Tier 2 | 2/6 | ALREADY IMPLEMENTED | `memory_list` metadata browsing + optional content inclusion patterns | None |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:196:| 2.7 Session continuity primitives | Tier 2 | 2/6 | PARTIALLY IMPLEMENTED | Resume mode, auto-resume, working memory, session dedup | Dedicated structured continuity snapshot tool |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/015 - synthesis-adjusted-codex.md:199:| 3.3 Real-time filesystem watching | Tier 3 | 1/6 | NOT YET IMPLEMENTED | `memory_index_scan` exists (pull-based sync) | Push/watch indexing mode |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/research.md:24:  - Merge everyday memory UX into lifecycle commands so `resume`, `complete`, and `handover` own routine context behavior while `/memory:*` stays advanced. [SOURCE: .opencode/commands/memory/search.md:53-106] [SOURCE: .opencode/commands/memory/manage.md:33-65] [SOURCE: .opencode/commands/spec_kit/resume.md:258-304]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/research.md:30:The synthesis outcome is not a product pivot toward Agent Lightning's runtime model. It is a UX and topology simplification plan for `system-spec-kit`. Keep the mission-specific core: spec folders, file-first memory, explicit scope binding, packet-local loop state, and validator-backed governance. Simplify the operator-visible edges: too many lifecycle commands, too many agent and skill identities, too much exposed routing ceremony, too much duplicated master-doc and hook detail, and too little quickstart guidance.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/research.md:40:- Architecture questions about deep-loop runtime state, validator structure, and memory boundaries
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/research.md:49:- The absence of repo-local governance machinery equivalent to Public's packets, constitutional memory, and conversational gates
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/research.md:54:- **Command UX (021-023):** Agent Lightning's smaller feel comes from tutorials, examples, and quickstart paths more than from the literal existence of a single CLI. Public should reject a single-binary pivot, but it should redesign the lifecycle front door, demote internal YAML/lifecycle detail, and merge everyday memory behavior into lifecycle commands. [SOURCE: external/docs/reference/cli.md:15-26] [SOURCE: external/examples/README.md:1-18] [SOURCE: .opencode/commands/spec_kit/plan.md:13-17] [SOURCE: .opencode/commands/spec_kit/complete.md:13-17] [SOURCE: .opencode/commands/memory/search.md:53-106]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/005-architecture-audit/research/deep-research-state.jsonl:2:{"type":"iteration","iteration":1,"timestamp":"2026-03-20T10:15:00Z","status":"completed","findings":37,"newInfoRatio":1.0,"focus":"scripts/core, scripts/extractors, scripts/memory, scripts/utils","agents":["copilot-C1","copilot-C2","codex-A1"],"p1Count":16,"p2Count":21}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C1.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C1.md:55:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/01--retrieval/01-unified-context-retrieval-memorycontext.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C1.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/01--retrieval/02-semantic-and-lexical-search-memorysearch.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C1.md:57:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/01--retrieval/03-trigger-phrase-matching-memorymatchtriggers.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C1.md:63:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/01--retrieval/09-tool-result-extraction-to-working-memory.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:1:# Iteration 010: Memory Parsing and Validation
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:6:**File**: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:8:**Issue**: `extractContextType()`, `extractImportanceTier()`, and the multiline branch of `extractTriggerPhrases()` search the entire document for YAML-shaped keys instead of parsing only a validated leading frontmatter block. That means fenced examples, inline documentation, or copied config snippets inside the body can silently overwrite the indexed `context_type`, `importance_tier`, and `trigger_phrases` for a memory.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:11:- `extractContextType()` matches `contextType|context_type` anywhere in `content` at [`memory-parser.ts:541-545`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L541).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:12:- `extractImportanceTier()` strips comments, but then still matches `importance_tier|importanceTier` anywhere in the remaining body at [`memory-parser.ts:554-565`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L554).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:13:- `extractTriggerPhrases()` enters multiline YAML mode as soon as it sees a `trigger_phrases:` line anywhere in the file at [`memory-parser.ts:483-508`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L483).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:19:**File**: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:24:- Validation only performs a global `closingPattern.test(content)` per opening tag at [`memory-parser.ts:721-741`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L721).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:25:- Extraction slices from the opening tag to the first later closing tag with the same ID at [`memory-parser.ts:756-770`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L756).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:26:- Existing tests only cover the happy path and a single missing-closing-tag case at [`memory-parser.vitest.ts:235-265`](../../../../../../skill/system-spec-kit/mcp_server/tests/memory-parser.vitest.ts#L235).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:40:- The same normalized text also feeds BM25 document text at [`bm25-index.ts:305-309`](../../../../../../skill/system-spec-kit/mcp_server/lib/search/bm25-index.ts#L305), and tasks/checklists are explicitly indexed as spec documents at [`memory-parser.ts:252-258`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L252) and [`memory-parser.ts:693-700`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L693).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:46:**File**: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:51:- The function has explicit branches only for UTF-8 BOM, UTF-16 LE BOM, and UTF-16 BE BOM, then falls back to UTF-8 at [`memory-parser.ts:134-167`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L134).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:52:- Current tests cover valid UTF-8, UTF-8 BOM, and "binary/unusual" input, but not BOM-less UTF-16 at [`memory-parser-extended.vitest.ts:247-274`](../../../../../../skill/system-spec-kit/mcp_server/tests/memory-parser-extended.vitest.ts#L247).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-010.md:60:I did not find a direct path traversal vulnerability in these two scoped files. The directory walker in `findMemoryFiles()` stays rooted under `workspacePath/specs` and `workspacePath/.opencode/specs` and skips symlinks at [`memory-parser.ts:841-910`](../../../../../../skill/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L841), so the higher-risk issues in this slice are metadata poisoning, malformed anchor handling, normalization-driven state loss, and silent encoding corruption.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:3:This section outlines how to integrate the insights from Cognee, ArtemXTech, and QMD into the `system-speckit` ecosystem and its Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:11:Enhance the Memory MCP server's file reading tools to automatically prepend Context Tree metadata.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:16:// Inside the Memory MCP Server
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:21:  // Look up the Context Tree cache (generated by generate-context.js)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:34:## 2. Smart Markdown Chunking for Memory Retrieval (High Impact, Medium Effort)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:37:When an agent requests `/memory:search`, returning full Level 3+ `spec.md` or `decision-record.md` files (often >500 LOC) blows out the context window. Adapted from QMD, we should implement **Smart Chunking** at the AST level.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:40:Update `generate-context.js` to parse Markdown using `remark` or `marked`. Index each heading (`## Task 1`, `### Decisions`) as a separate node. 
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:56:Currently, `memory_search()` likely relies on basic text matching or standard vector DBs. We can adopt QMD's approach by moving the memory index to a unified SQLite database using `FTS5` (Full Text Search) and `sqlite-vec`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:59:- Migrate the output of `generate-context.js` from raw JSON files to a local `memory.sqlite` file.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:98:Instead of a full Neo4j database, encode graph relationships directly into the memory JSON index or SQLite DB using explicit standard edges:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:113:2. **Phase 2 (Near-term):** Upgrade `generate-context.js` to perform **Smart Markdown Chunking**, allowing the MCP server to serve specific headers rather than whole files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/008 - recommendations-gemini-1.md:114:3. **Phase 3 (Long-term):** Migrate the `memory/` index to an **SQLite Hybrid Search** (`FTS5` + `sqlite-vec`) for robust, localized, agent-driven retrieval without external vector cloud dependencies.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/description.json:21:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/description.json:22:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:22:  tests/handler-memory-ingest.vitest.ts \
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:35:| V3 | job-queue, handler-memory-ingest | `tests/job-queue.vitest.ts tests/handler-memory-ingest.vitest.ts` | ~25 | ~3s |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:58:- CHK-041: `memory_ingest_start` returns job ID in <100ms — `handler-memory-ingest.vitest.ts` response-time assertions
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:59:- CHK-042: `memory_ingest_status` tracks actual processing state — `handler-memory-ingest.vitest.ts` state query tests
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:61:- CHK-045: `memory_ingest_cancel` moves job to cancelled — `job-queue.vitest.ts` cancel scenario
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:75:- CHK-063: <8GB memory falls back to RRF — `local-reranker.vitest.ts` low-memory gate assertions
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:86:- CHK-070: Startup instructions include total memory count — `context-server.vitest.ts` dynamic-init assertions
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:90:- CHK-074: Stale memory warning when `staleCount > 10` — `context-server.vitest.ts` stale-warning branch
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:97:  1. `handler-memory-ingest.vitest.ts` > "start queues job and returns queued response" — mock module missing `DATABASE_PATH` export
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:144:- CHK-041: `memory_ingest_start` returns job ID in <100ms (timing aspect)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:147:**What it must do:** Start ingest via `handleMemoryIngestStart()` against a temp corpus of 100+ `.md` files, measure: (a) time to return job ID, (b) total completion time.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:232:### I2 — `memory_search` response-contract harness
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:276:- CHK-070: Startup instructions include total memory count (live)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:280:- CHK-074: Stale memory warning when `staleCount > 10` (live)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:311:- CHK-063: <8GB memory falls back to RRF (live)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:315:**Pass Criteria:** With model present, results are reranked. With model missing or low-memory, RRF fallback occurs silently.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:325:- CHK-092: Existing `memory_search` call returns byte-identical results
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:326:- CHK-093: Existing `memory_context` call returns identical results
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:327:- CHK-094: Existing `memory_match_triggers` call returns identical results
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:352:| CHK-141 | Findings saved to `memory/` via `generate-context.js` | Human decides what findings to preserve and verifies generated memory is meaningful |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:368:    tests/handler-memory-ingest.vitest.ts \
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:381:Step 2: Fix handler-memory-ingest.vitest.ts mock (missing DATABASE_PATH export)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:413:Step 19: CHK-141 — Human runs generate-context.js and verifies memory output
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a4-test-scripts.md:484:| `handler-memory-ingest.vitest.ts` | "start queues job and returns queued response" | Mock module missing `DATABASE_PATH` export from `../core` | YES for CHK-041, CHK-042 unit coverage |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:1:# Iteration 030 — Memory Surface Boundaries In The UX Redesign
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:4:Should `system-spec-kit` fully collapse the `/memory:*` command family into `/spec_kit:*` as part of a thinner operator-facing redesign?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:7:No. The common save/resume path should be absorbed into the main lifecycle UX, but dedicated memory search, governance, and learning surfaces still solve a distinct problem that BAD does not cover.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:10:Compared BAD's lack of a separate memory subsystem to the local memory command taxonomy and its relationship to `spec_kit:resume`.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:13:- BAD has no semantic memory, governed retrieval layer, or separate memory administration surface; it stays thin because it solves a narrower automation problem. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/external/README.md:63-78]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:14:- Local memory docs define four distinct surfaces: `save`, `search`, `manage`, and `learn`, and explicitly keep `/spec_kit:resume` as the user-facing recovery entrypoint. [SOURCE: .opencode/commands/memory/README.txt:61-66] [SOURCE: .opencode/commands/memory/README.txt:90-113] [SOURCE: .opencode/commands/memory/README.txt:308-320]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:15:- The memory command README also documents broad tool coverage and governance/admin responsibilities that are meaningfully different from the spec lifecycle. [SOURCE: .opencode/commands/memory/README.txt:248-299]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:18:This is where simplification should stop. BAD does not offer a competing memory architecture; it simply omits the problem. That makes it a bad guide for deleting local memory capabilities. The correct UX move is partial absorption: make save/resume feel natural inside the main lifecycle, but keep advanced search, governance, and learning surfaces available for the broader system that `system-spec-kit` actually is.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:22:- **Current system-spec-kit surface:** Memory is both integrated and separate: `resume` lives in `spec_kit`, but advanced memory workflows still live in `/memory:*`.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:23:- **External repo's equivalent surface:** BAD has no equivalent separate memory plane.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:25:- **What system-spec-kit could DELETE to improve UX:** Delete the expectation that routine users should manually invoke `/memory:save` for normal lifecycle closure when the main workflow can do it implicitly.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:26:- **What system-spec-kit should ADD for better UX:** Add clearer separation between "automatic lifecycle memory behaviors" and "advanced memory operations."
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:31:- **Current system-spec-kit approach:** hybrid model where common recovery is in `spec_kit`, while broader memory capabilities remain separate.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:32:- **External repo's approach:** no separate memory surface because the underlying problem is not addressed.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:34:- **Why system-spec-kit's approach might still be correct:** local memory search, governance, and learning are distinct capabilities with their own operator value.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:36:- **If REFACTOR/PIVOT/SIMPLIFY — concrete proposal:** do not fully collapse the memory family; instead, absorb only routine save/resume flows into the main lifecycle UX and keep advanced memory commands explicit.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:38:- **Migration path:** none for the separate advanced memory surfaces; only improve how the common path defaults into them
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:43:finding: Do not fully collapse `/memory:*` into `/spec_kit:*`. The right move is partial UX integration for common save/resume behavior, while keeping advanced memory search, governance, and learning as their own surface.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:46:- **Target file or module:** `.opencode/commands/memory/README.txt`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-030.md:53:I looked for evidence that BAD offers a thinner but still equivalent memory-management model. It does not; it simply omits semantic memory and governance concerns entirely.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:7:1. `topoteretes/cognee` (knowledge graph + vector memory system with MCP exposure),
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:8:2. `tobi/qmd` (local-first markdown memory + MCP server),
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:11:Across all three, the strongest transferable pattern for `system-spec-kit` and its memory MCP server is a **modular memory architecture** with clear separation of concerns:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:22:The biggest opportunity for `system-spec-kit` memory MCP is to combine:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:33:**Observed architecture shape:** asynchronous memory platform with modular ingestion/cognification/search layers plus MCP exposure.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:50:**Observed architecture shape:** TypeScript/Node memory engine centered on markdown ingestion and vector search with multiple providers/backends, surfaced via CLI and MCP.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:122:- This avoids hard-coding a single memory namespace and helps with project isolation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:171:**Why it matters for Spec-Kit Memory MCP:** tool contracts become the stable product interface while internals evolve.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:191:**Why it matters:** production reliability and observability for memory indexing jobs.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:247:1. **MCP as first-class integration boundary** is no longer optional for memory systems.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:256:## 8. Directly Relevant Insights for System-Spec-Kit Memory MCP
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/001 - analysis-codex-1.md:258:[Assumes: current `system-spec-kit` memory MCP has a narrower retrieval strategy and limited backend abstraction.]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C6.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C6.md:55:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/15--retrieval-enhancements/01-dual-scope-memory-auto-surface.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C6.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/15--retrieval-enhancements/02-constitutional-memory-as-expert-knowledge-injection.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C6.md:59:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/15--retrieval-enhancements/05-memory-summary-search-channel.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-018-codex-A1.md:9:3. **MODIFIED, medium:** flag sprawl is worse than previously stated. A raw repo-wide grep now returns **83** unique `SPECKIT_` tokens; two are bare prefixes (`SPECKIT_`, `SPECKIT_MEMORY_`), so the real flag count is **81**. The count is command-derived, but the module clearly depends on env-flag routing, e.g. [`search/README.md`](#/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/README.md#L79).
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/015-system-analysis/implementation-summary.md:50:- **Team Awareness**: Inform other agents (via memory/context) that they should now scan for commands.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:1:# Document 2: Actionable Recommendations for System-SpecKit and the Spec-Kit Memory MCP Server
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:8:- [Assumes: ArtemXTech’s context-discipline mindset] for just-in-time memory loading.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:10:Recommended direction: evolve Spec-Kit Memory MCP into a **contract-driven, hierarchical-memory retrieval service** with **typed query plans**, **warm server mode**, and **explicit async ingestion/status workflows**.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:16:### 1.1 Typed query plan (`lex`, `vec`, `hyde`) for memory retrieval
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:28:    { "type": "vec", "query": "how does spec kit handle continuation memory" }
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:45:- `memory_query` (ranked retrieval)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:46:- `memory_get` (single item/document retrieval)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:47:- `memory_multi_get` (batch retrieval with guardrails)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:48:- `memory_status` (index health, stale data, pending jobs)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:52:### 1.3 Async memory ingestion with status checks
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:55:- `memory_ingest_start` returns job id quickly.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:56:- `memory_ingest_status(job_id)` exposes progress/errors.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:57:- `memory_ingest_cancel(job_id)` for control and safety.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:88:### 2.3 Dual mode: direct vs API-backed memory provider
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:92:- API mode for centralized audited memory infrastructure.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:111:### 3.2 Memory schema contracts (high impact, medium effort)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:169:Mitigation: keep MVP narrow (spec memory only), add providers incrementally.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:188:Generate concise memory index overview at MCP initialize time (counts, scopes, stale flags).  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:210:Keep legacy `search` while adding `memory_query` etc.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/research/004 - recommendations-codex-2.md:227:- [Assumes: Current system-spec-kit memory MCP server uses a primarily untyped search interface.]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/deep-research-dashboard.md:48:| 16 | Should Memory Pivot To A Store-Centric Runtime? | - | 0.85 | 8 | complete |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/deep-research-dashboard.md:55:| 23 | Parallel Memory Surface Versus Lifecycle Integration | - | 0.85 | 11 | complete |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-003.md:12:I traced how Agent Lightning emits, stores, extracts, and matches rewards across the emitter, runner, adapter, and architecture docs. I then compared that path against Public's current implicit feedback ledger, explicit `memory_validate` schema, confidence tracker, and auto-promotion logic to see whether Public already has an equivalent structured evaluator surface.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-003.md:17:- When an agent rollout returns a numeric result, the runner converts that return value into a reward span, assigns a new sequence id, and stores the reward span alongside the trace rather than keeping reward only in process-local memory. [SOURCE: external/agentlightning/runner/agent.py:293-314]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-003.md:23:- `memory_validate` currently accepts `wasUseful`, rank/query metadata, session metadata, and notes, but no structured metric bundle or primary-vs-secondary evaluation dimensions. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:297-316]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-003.md:43:I looked for an existing Public schema that already captured evaluator outputs as multiple named dimensions, either in `memory_validate`, the feedback ledger, or the confidence tracker, and did not find one. I also checked whether Agent Lightning itself preserved only scalar reward values; instead it preserves multi-dimensional rewards first and reduces later.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:7:BAD works precisely because it is a specialized module on top of another planning substrate. The equivalent move in this repo would be an optional extension, not more complexity in core `spec_kit` and `memory`.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:10:Compared BAD's module boundary to the current local command, memory, and orchestration boundaries.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:15:- Local core surfaces already cover a broad general-purpose lifecycle: planning, implementation, deep research, deep review, debugging, handover, resume, and a separate memory system with retrieval, governance, and maintenance tools. [SOURCE: .opencode/commands/spec_kit/README.txt:43-76] [SOURCE: .opencode/commands/memory/README.txt:38-66] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:99-145]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:18:This is the clearest architecture lesson from BAD. Specialized automation is easiest to keep coherent when it is packaged as a specialized layer. If `system-spec-kit` absorbs sprint automation directly into core commands, it risks mixing another domain's assumptions into already broad general-purpose surfaces. If it instead ships sprint automation as an optional extension that consumes phase docs, git/GitHub state, memory, and search primitives, it can keep both layers simpler.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:22:- **Current system-spec-kit approach:** broad reusable core with commands, memory, and agent primitives that many workflows already depend on.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:27:- **If REFACTOR/PIVOT/SIMPLIFY — concrete proposal:** prototype any future sprint-automation feature as a separate skill or command pack that depends on existing spec/phase artifacts and memory/search services, rather than expanding core `spec_kit` and `memory` contracts first.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:34:finding: BAD's biggest architecture lesson is boundary discipline. If `system-spec-kit` wants BAD-like sprint automation, it should build it as a domain extension on top of current primitives rather than pushing more specialized behavior into the core command and memory systems.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-020.md:47:None. Phase 2 converged on the main architecture question: simplify operator UX and loop contracts, but keep core documentation/memory/validation boundaries intact and layer future sprint automation as an extension.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:1:# Iteration 024: Memory context handler (L1 orchestration)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:6:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:8:**Issue** `memory_context` documents `focused` as the intent-optimized path, but explicit `mode: "focused"` requests do not classify intent unless the caller also supplies `intent`. `resolveEffectiveMode()` only runs the classifier inside the `requestedMode === "auto"` branch, and `executeFocusedStrategy()` then forces `autoDetectIntent: false` when delegating to `memory_search`. The same query therefore gets intent-aware ranking in `auto -> focused`, but loses that optimization in explicit `focused`, producing inconsistent results for the same logical retrieval path.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:10:**Evidence** `memory-context.ts:726-733` only populates `detectedIntent` inside auto mode. `memory-context.ts:596-616` forwards `intent: intent ?? undefined` while hard-setting `autoDetectIntent: false`, so an explicit `focused` request without `intent` reaches `handleMemorySearch()` with neither an explicit intent nor permission to infer one.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:12:**Fix** When `effectiveMode === "focused"` and no explicit intent was provided, either classify intent before calling `executeFocusedStrategy()` or pass `autoDetectIntent: true` through to `memory_search`. That keeps explicit `focused` behavior aligned with the auto-routed focused lane.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:15:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:19:**Evidence** `memory-context.ts:702-712` accepts the resolved session state but explicitly ignores it. `memory-context.ts:726-741` selects `resume` only when the query matches the resume regex. `memory-context.ts:1136-1147` injects `systemPromptContext` only when both `resumedSession` and `effectiveMode === "resume"` are true, so resumed sessions routed to `focused`/`deep` lose their recovery context.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:24:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:28:**Evidence** `memory-context.ts:997-1003` calls `sessionManager.saveSessionState()` with `specFolder: spec_folder`, which is still the raw caller input. Folder discovery happens later in `memory-context.ts:1089` via `maybeDiscoverSpecFolder()`, and that helper only mutates `options.specFolder` (`memory-context.ts:779-790`). `session-manager.ts:1034-1058` shows `saveSessionState()` writes `spec_folder` into the persisted `session_state` row.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:33:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:35:**Issue** The strategy helpers blindly spread the `MCPResponse` returned by `memory_search` / `memory_match_triggers` into `ContextResult`, and the main handler only converts thrown exceptions into `E_STRATEGY`. If a downstream handler returns a normal MCP error envelope (`isError: true`) instead of throwing, `memory_context` still emits a success summary like "Context retrieved via focused mode", with the real error buried inside nested `content[0].text`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-024.md:37:**Evidence** `memory-context.ts:549-566`, `569-593`, `596-623`, and `626-653` all return `{ strategy, mode, ...result }` without checking `result.isError`. The main try/catch at `memory-context.ts:1091-1114` only handles thrown errors, and the success envelope is always built afterward in `memory-context.ts:1155-1188`. Downstream MCP errors explicitly set `isError: true` in `envelope.ts:243-253`, so this is a realistic path, not just a theoretical one.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:55:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/01-memory-indexing-memorysave.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/02-memory-metadata-update-memoryupdate.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:57:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/03-single-and-folder-delete-memorydelete.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:58:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/04-tier-based-bulk-deletion-memorybulkdelete.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:59:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/05-validation-feedback-memoryvalidate.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C2.md:64:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/02--mutation/10-per-memory-history-log.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:3:description: "Implements the follow-on recommendations from 024-codex-memory-mcp-fix: DB dimension integrity tests, lifecycle coverage tests, provider log sanitization, and launcher doc consolidation."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:13:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:17:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:18:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:40:| **Predecessor** | `024-codex-memory-mcp-fix` (follow-on tasks T020-T025) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:41:| **Successor** | ../026-memory-database-refinement/spec.md |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:50:The `024-codex-memory-mcp-fix` packet documented six follow-on recommendations (T020-T025) for runtime hardening, but none were implemented. Key gaps: no integration tests for custom-path DB + embedding-dimension mismatch; no lifecycle tests for shutdown sequencing or tool-cache invalidation; `buildErrorResponse()` passes unsanitized provider error messages to callers; and launcher docs lack consolidated MEMORY_DB_PATH and clean-transport guidance.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:65:- T023: Consolidate MEMORY_DB_PATH and clean-transport guidance in launcher docs
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:86:| system-spec-kit MCP server README | Modify | T023: Codex MEMORY_DB_PATH callout |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:113:| REQ-006 | Launcher docs consolidate MEMORY_DB_PATH and clean-transport guidance | 3 doc files updated with consistent guidance |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:131:**Given** a custom `MEMORY_DB_PATH` with dimension 1024 and a provider expecting 1536, **when** the DB is reopened, **then** a `VectorIndexError` is thrown with a dimension mismatch message.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:145:| Dependency | `024-codex-memory-mcp-fix` landed fixes | Low | Already verified green |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/spec.md:189:- In-memory DB does not pollute file-backed DB dimension state
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:8:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:37:  │ "hybridSearch|searchMemories|memory_search|rsf|rerank|crossEncoder|normalize|channel|vector|bm25
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:94:  │ Results\(|parentMemoryId|parent_id|chunkIndex|chunk_index" in *.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:123:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:124:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-copilot-A2.md:236:Q5 synthesis: the biggest misalignment is architectural. The runtime always uses `executePipeline()` (`handlers/memory-search.ts:929-968`), but Stage 1 claims to return raw candidates with no scoring (`lib/search/pipeline/stage1-candidate-gen.ts:6-33,179-190`; `lib/search/pipeline/types.ts:184-210`). In practice, hybrid Stage 1 delegates to `searchWithFallback()` (`stage1-candidate-gen.ts:259-326,406-415`), which already does routing/fusion/enforcement/truncation/reranking/MMR/budgeting inside `hybridSearchEnhanced()` (`lib/search/hybrid-search.ts:543-575,801-999`). Stage 3 then reranks/MMRs again (`lib/search/pipeline/stage3-rerank.ts:116-125,159-229`).
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/deep-research-strategy.md:25:Research Xethryon's persistent memory, self-reflection, and swarm orchestration patterns to identify concrete improvements for Code_Environment/Public's memory systems, agent self-evaluation, and parallel execution capabilities, especially around AutoDream consolidation, self-review before delivery, git-aware context, autonomy switching, autonomous skill invocation, and file-based swarm coordination.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/deep-research-strategy.md:31:- [ ] Q2: Project-Global Memory Namespace
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/deep-research-strategy.md:45:- Replacing existing Spec Kit Memory, CocoIndex, or code-graph stack
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/deep-research-strategy.md:90:Code_Environment/Public agent stack: orchestrate, deep-research, deep-review, context, general agents; spec_kit workflow; system-spec-kit skill; memory system with trigger-based recall, semantic search, causal links; CocoIndex; code-graph.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:47:| `tests/checkpoint-working-memory.vitest.ts` | 9 | 0 | 0 | 9 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:115:| `tests/handler-memory-context.vitest.ts` | 20 | 0 | 0 | 20 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:116:| `tests/handler-memory-crud.vitest.ts` | 27 | 0 | 0 | 27 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:117:| `tests/handler-memory-index-cooldown.vitest.ts` | 5 | 0 | 0 | 5 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:118:| `tests/handler-memory-index.vitest.ts` | 20 | 0 | 0 | 20 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:119:| `tests/handler-memory-ingest.vitest.ts` | 6 | 1 | 0 | 7 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:120:| `tests/handler-memory-save.vitest.ts` | 13 | 0 | 0 | 13 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:121:| `tests/handler-memory-search.vitest.ts` | 17 | 0 | 0 | 17 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:122:| `tests/handler-memory-triggers.vitest.ts` | 11 | 0 | 0 | 11 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:157:| `tests/memory-context-eval-channels.vitest.ts` | 2 | 0 | 0 | 2 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:158:| `tests/memory-context.vitest.ts` | 115 | 0 | 0 | 115 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:159:| `tests/memory-crud-extended.vitest.ts` | 70 | 0 | 0 | 70 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:160:| `tests/memory-parser-extended.vitest.ts` | 44 | 0 | 0 | 44 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:161:| `tests/memory-parser.vitest.ts` | 25 | 0 | 0 | 25 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:162:| `tests/memory-save-extended.vitest.ts` | 43 | 0 | 0 | 43 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:163:| `tests/memory-save-integration.vitest.ts` | 55 | 0 | 0 | 55 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:164:| `tests/memory-save-ux-regressions.vitest.ts` | 2 | 0 | 0 | 2 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:165:| `tests/memory-search-eval-channels.vitest.ts` | 2 | 0 | 0 | 2 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:166:| `tests/memory-search-integration.vitest.ts` | 51 | 0 | 0 | 51 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:167:| `tests/memory-search-quality-filter.vitest.ts` | 13 | 0 | 0 | 13 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:168:| `tests/memory-summaries.vitest.ts` | 40 | 0 | 0 | 40 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:169:| `tests/memory-types.vitest.ts` | 16 | 0 | 0 | 16 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:262:| `tests/working-memory-event-decay.vitest.ts` | 7 | 0 | 0 | 7 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:263:| `tests/working-memory.vitest.ts` | 47 | 0 | 0 | 47 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:273:| `tests/handler-memory-ingest.vitest.ts > Handler Memory Ingest (Sprint 9 P0-3) > start queues job and returns queued response` | Mock contract drift | The mocked `../core` module does not export `DATABASE_PATH`, so the handler under test imports a symbol the test double does not provide. | W2-A3 report records `No "DATABASE_PATH" export is defined on the "../core" mock` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:278:- `tests/handler-memory-ingest.vitest.ts` — `6` passed / `1` failed. Bucketed as a test-mock contract failure.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:298:   - `tests/handler-memory-ingest.vitest.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w3-a5-regression-baseline.md:301:   - the single `tests/handler-memory-ingest.vitest.ts` failure listed above
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:9:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:13:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:14:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:29:description: "Handover for memory title remediation, retroactive indexing, and list-filter verification follow-up."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:33:  - "memory index"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:47:- **Primary Objective**: finish retroactive memory-title remediation and prepare reliable continuation state
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:51:- Completed broad retroactive `memory_index_scan(force=true)` coverage across major spec namespaces.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:53:- Reproduced remaining runtime symptom: chunk-heavy list output still appears in live `memory_list` checks.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:62:| Active Area | MCP memory indexing and list behavior |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:84:- [x] Memory query checks confirm descriptive titles now dominate reindexed records.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:89:> Restart/reload the Spec Kit MCP server runtime, then re-test `memory_list(includeChunks=false)` to confirm chunk rows are filtered out as expected.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:101:- **Choice**: Use MCP memory tools only for indexing/verification.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:133:1. `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-list.ts` - list filtering behavior (`includeChunks`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:135:3. `.opencode/skills/system-spec-kit/mcp_server/tests/memory-crud-extended.vitest.ts` - expected list behavior.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:140:- [ ] Run focused `memory_list` checks with and without `includeChunks`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/handover.md:141:- [ ] Re-run one `memory_search` sanity query for generic titles.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-014.md:47:If the level system stays, does BAD still challenge the local memory architecture, or does it only argue for tighter boundaries between global memory and packet-local execution state?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:50:### Phase: 013-memory-quality-and-indexing
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:51:- Feature catalog folder: `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:52:- Output file: `specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/013-memory-quality-and-indexing/checklist.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:55:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/01-verify-fix-verify-memory-quality-loop.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/02-signal-vocabulary-expansion.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:57:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/03-pre-flight-token-budget-validation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:58:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/04-spec-folder-description-discovery.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:59:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/05-pre-storage-quality-gate.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:60:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/06-reconsolidation-on-save.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:61:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/07-smarter-memory-content-generation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:62:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/08-anchor-aware-chunk-thinning.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:63:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/09-encoding-intent-capture-at-index-time.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:64:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/10-auto-entity-extraction.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:65:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/11-content-aware-memory-filename-generation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:66:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/12-generation-time-duplicate-and-empty-content-prevention.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:67:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/13-entity-normalization-consolidation.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:68:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/14-quality-gate-timer-persistence.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:69:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/15-deferred-lexical-only-indexing.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G3.md:70:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/13--memory-quality-and-indexing/16-dry-run-preflight-for-memory-save.md`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-027.md:15:- `system-spec-kit` is itself a large umbrella skill covering spec folders, validation, and memory preservation. [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:16-16] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:389-408]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/deep-research-state.jsonl:17:{"type":"iteration","run":16,"status":"complete","focus":"Should Memory Pivot To A Store-Centric Runtime?","findingsCount":8,"newInfoRatio":0.85,"keyQuestions":[],"answeredQuestions":[],"timestamp":"2026-04-10T01:20:00.000Z","durationMs":900000,"noveltyJustification":"high confidence, should-have priority"}
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/deep-research-state.jsonl:24:{"type":"iteration","run":23,"status":"complete","focus":"Parallel Memory Surface Versus Lifecycle Integration","findingsCount":11,"newInfoRatio":0.85,"keyQuestions":[],"answeredQuestions":[],"timestamp":"2026-04-10T03:05:00.000Z","durationMs":900000,"noveltyJustification":"high confidence, should-have priority"}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/plan.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/plan.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/plan.md:34:| **Framework** | MCP server (spec_kit_memory), better-sqlite3 |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:29:title: "Decision Record: Memory Index Deduplication and Tier Normalization [former child spec 002-index-tier-anomalies -> decision-record]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:35:  - "memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:43:# Decision Record: Memory Index Deduplication and Tier Normalization
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:120:- Implemented in `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts` and `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:146:- Normalize and dedup scanner outputs in `memory-index.ts`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:147:- Align path handling in `memory-parser.ts` and preserve specFolder filtering.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:182:- Implemented in `.opencode/skills/system-spec-kit/mcp_server/lib/scoring/importance-tiers.ts` with parser integration updates in `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:183:- Verified by targeted test suite `tests/memory-parser.vitest.ts`, `tests/importance-tiers.vitest.ts`, plus extended parser/spec suite (`186` tests passing).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/decision-record.md:261:- Retrieval and indexing operate on one metadata shape across templates/spec/memory docs.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/spec.md:28:| `scripts/node_modules/` | 911MB | 79 | CLI tools (generate-context.js) |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/spec.md:97:3. **CLI compatibility** - generate-context.js must work standalone
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/spec.md:106:- [ ] CLI works: `node scripts/generate-context.js --help`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-004.md:62:`tokenize()` in `.opencode/skills/system-spec-kit/mcp_server/lib/search/bm25-index.ts:135-141` lowercases input and replaces `[^a-z0-9\\s-_]` with spaces, so `memory_search.ts` becomes BM25 terms roughly equivalent to `memory_search` and `ts`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-004.md:65:So a query like `memory_search.ts` is normalized one way for BM25 and another way for FTS, which distorts the lexical fusion inputs for code-like/path-like searches.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:35:| 11 | reconsolidation.ts:332 dangling edges | Wrapped in transaction, existingMemory guaranteed to exist from prior query. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:43:| 5 | eval-metrics.ts:191 Recall duplicate counting | Requires caller to supply duplicate memoryIds. Defensive fix warranted but not urgent |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:52:| 12 | memory-ingest.ts:66 path traversal | HIGH | **Tier 1** (security) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:53:| 15 | memory-bulk-delete.ts:81 negative olderThanDays | HIGH | **Tier 1** (data safety) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:56:| 9 | working-memory.ts:200 timestamp format | MEDIUM | **Tier 2** (correctness) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:121:Architecture finding (memory-search.ts not thin adapter) directly correlates with handler boundary violations (memory-save.ts:124 contains business logic). Same architectural issue manifesting in both waves.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:131:2. **Memory leak patterns** in module-level caches (momentumCache, causalDepthCache)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:144:1. `memory-ingest.ts:66` path traversal (P0 security)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:145:2. `memory-bulk-delete.ts:81` negative olderThanDays (P0 data safety)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/codex-review-validation.md:150:5. `working-memory.ts:200` timestamp format mismatch (P0 correctness)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C3.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C3.md:65:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/08--bug-fixes-and-data-integrity/11-working-memory-timestamp-fix.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-017-codex-A1.md:10:5. Token-budget enforcement is implemented in the wrong layer. The subsystem README says Stage 4 applies token-budget truncation, but Stage 4 never does; the only live budget truncation is inside legacy `hybridSearchEnhanced()`. That leaves non-hybrid pipeline paths such as multi-concept search without the documented Stage 4 budget guard. [search/README.md#L117](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/README.md#L117) [stage4-filter.ts#L27](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage4-filter.ts#L27) [hybrid-search.ts#L988](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L988) [memory-search.ts#L934](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L934)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/checklist.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/checklist.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/checklist.md:65:- [x] CHK-023 [P1] Edge cases tested — dimension mismatch, double-failure fail-open, empty input, in-memory isolation `[EVIDENCE: db-dimension-integrity.vitest.ts and stage2b-enrichment-extended.vitest.ts cover these]`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-021.md:4:Is the current `spec_kit` + `memory` command surface too large and fragmented compared with BAD's much thinner operator-facing entrypoint?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-021.md:14:- `system-spec-kit` exposes 8 primary `spec_kit` commands, a separate 4-command `memory` family, and documents 15 YAML workflow assets behind those entrypoints. [SOURCE: .opencode/commands/spec_kit/README.txt:43-63] [SOURCE: .opencode/commands/spec_kit/README.txt:85-111] [SOURCE: .opencode/commands/memory/README.txt:61-66]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-021.md:22:- **Current system-spec-kit surface:** Operators are presented with parallel command families (`/spec_kit:*` and `/memory:*`), multiple lifecycle verbs, and an asset-driven implementation layer documented in the primary README.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-021.md:31:- **Current system-spec-kit approach:** explicit lifecycle and memory command inventory with strong documentation coverage.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:33:title: "Feature Specification: Memory Index Deduplication and Tier Normalization [former child spec 002-index-tier-anomalies -> spec]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:34:description: "memory_index_scan can index the same logical files twice when both specs/ and .opencode/specs/ resolve to the same tree through symlinks or mirrored paths. This inflates scan co..."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:39:  - "memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:47:# Feature Specification: Memory Index Deduplication and Tier Normalization
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:56:`memory_index_scan` can index the same logical files twice when both `specs/` and `.opencode/specs/` resolve to the same tree through symlinks or mirrored paths. This inflates scan counts, can create duplicate memory records, and makes retrieval behavior noisy.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:62:**Critical Dependencies**: existing incremental-index metadata and memory parser behavior must remain backward compatible.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:100:- Canonical path deduplication in memory file discovery and index scan assembly.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:101:- Tier precedence normalization for spec docs, memory docs, and constitutional docs.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:114:| `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts` | Modify | Canonical path handling in directory scan and filter logic |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:115:| `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts` | Modify | Dedup merged scan file list before batch indexing |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:117:| `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-index.vitest.ts` | Modify | Add duplicate-source scan regression coverage |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:118:| `.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser.vitest.ts` | Modify | Add tier precedence and parser normalization tests |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:153:- **SC-003**: No regression in constitutional memory surfacing behavior.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:190:- Empty memory directories still return zero-scan success.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:229:**As a** platform maintainer, **I want** one logical file to be indexed once regardless of alias paths, **so that** the memory database stays clean and metrics stay trustworthy.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:232:1. Given alias roots that point to the same file tree, when `memory_index_scan` runs, then each canonical file path is processed once.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:238:**As a** retrieval-system maintainer, **I want** deterministic tier precedence, **so that** ranking and memory behavior are explainable.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:249:   **When** `memory_index_scan` runs
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:258:   **Given** a memory file with valid YAML tier metadata and inline tier marker mismatch
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:348:This child spec defines a focused Level 3 implementation for frontmatter normalization and index rebuild. The goal is to standardize metadata across templates, spec docs, and memory artifacts so retrieval quality and indexing consistency improve. The work includes parser/compose/migration tooling, deterministic rewrite rules, and reindex plus regression validation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:352:**Critical Dependencies**: existing memory parser/index pipeline and template source files.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:370:Frontmatter keys and value shapes are currently inconsistent across templates, spec documents, and memory records. This causes parse edge cases, indexing drift, and uneven retrieval signals in hybrid search. Without normalization, migration and reindex operations are brittle and hard to validate.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:381:- Build parser/compose/migration tooling for templates, spec docs, and memory markdown.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:385:- Rewriting narrative body content in spec or memory documents - not needed for metadata normalization.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:394:| `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts` | Modify | Enforce normalized parse + compose behavior. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:395:| `.opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js` | Modify | Add migration pass and trigger reindex flow. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:415:| REQ-005 | Regression coverage protects retrieval behavior after normalization. | Integration tests pass for spec and memory retrieval with unchanged functional results. |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:512:3. **Given** a memory file with duplicate logical keys, **When** parser normalization runs, **Then** one canonical key remains with deterministic value resolution.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/spec.md:522:- Should index rebuild run in one global pass or in ordered template/spec/memory stages with checkpoints?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:1:# Iteration 023 — Parallel Memory Surface Versus Lifecycle Integration
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:6:Is the `/memory:*` surface too parallel to the `/spec_kit:*` surface, compared to the external repo's more integrated operator workflow?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:9:Yes. Public's memory layer is powerful, but too much of it is exposed as an operator decision. Most users should encounter memory behavior through resume, completion, and handover flows rather than through a separate family of commands.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:12:I compared Public's four primary memory entrypoints with `resume`/`complete` lifecycle integration, then contrasted that with Agent Lightning's integrated store-and-trainer usage in docs and examples.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:15:- Public exposes separate commands for memory save, search, manage, and constitutional learn flows. [SOURCE: .opencode/commands/memory/save.md:2-4] [SOURCE: .opencode/commands/memory/search.md:2-4] [SOURCE: .opencode/commands/memory/manage.md:2-4] [SOURCE: .opencode/commands/memory/learn.md:2-4]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:16:- `memory:search` is not a small read helper; it is a unified knowledge retrieval and analysis surface with epistemic, causal, and evaluation subcommands. [SOURCE: .opencode/commands/memory/search.md:53-106]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:17:- `memory:manage` is likewise an administration surface spanning stats, scan, cleanup, bulk delete, checkpoints, ingest, and shared memory operations. [SOURCE: .opencode/commands/memory/manage.md:33-65]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:18:- `resume` already depends on handover, `session_bootstrap()`, `memory_context()`, `tasks.md`, and `implementation-summary.md` to recover the next safe action. [SOURCE: .opencode/commands/spec_kit/resume.md:258-304] [SOURCE: .opencode/commands/spec_kit/resume.md:359-407]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:19:- `complete` already links to `memory:save`, `handover`, and `resume` as adjacent lifecycle actions. [SOURCE: .opencode/commands/spec_kit/complete.md:487-491]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:23:Public's memory architecture is one of its differentiators, so this is not a call to shrink capability. It is a call to shrink exposure. Right now an operator can feel like they must choose between a workflow system and a memory system, when in practice those should be different depths of the same product.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:25:The external repo keeps its persistence and runtime coordination surfaces in the background for most tutorials. Public should do the same: routine memory behavior should surface as part of resume, handover, completion, and research flows, while admin-grade memory commands remain available for explicit power use.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:30:finding: `system-spec-kit` should merge its everyday memory UX into the main lifecycle commands and reserve `/memory:*` entrypoints for advanced retrieval, administration, and governance work.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:33:- **Target file or module:** `/memory:*` versus `/spec_kit:*` operator surface
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:36:- **Prerequisites:** define primary lifecycle-owned memory actions versus advanced memory admin actions
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:41:- **Current system-spec-kit surface:** Memory appears as a parallel command family that users must understand separately from planning, implementation, completion, and resume.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:44:- **What system-spec-kit could DELETE to improve UX:** Delete the expectation that ordinary operators should start with `memory:manage` or `memory:learn` to complete common work.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:45:- **What system-spec-kit should ADD for better UX:** Add lifecycle-owned memory affordances such as "save context now," "show prior decisions," and "resume latest" directly inside the primary workflow surfaces.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:49:I looked for evidence that parallel memory commands are essential for day-one UX, but the strongest value appears in expert recovery, analysis, and governance tasks rather than routine feature work.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:52:- Which `/memory:*` actions should remain first-class because they are genuinely expert-only?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:53:- Can `resume` and `complete` absorb more default memory behavior without hiding important controls?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/iterations/iteration-023.md:54:- Should constitutional memory stay explicit while ordinary session memory becomes mostly implicit?
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/plan.md:110:node scripts/generate-context.js --help
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/plan.md:115:# Create test memory file and index it
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-codex-A1.md:3:- High: constitutional memories and non-default allowed roots are only partially automated. `memory_save` validates paths against all `ALLOWED_BASE_PATHS`, and both the save contract and `memory_index_scan` explicitly support `.opencode/skills/*/constitutional/` files, but the server’s background startup scan only calls `findMemoryFiles(basePath)` on `DEFAULT_BASE_PATH`, and the live watcher only boots from `getSpecsBasePaths(DEFAULT_BASE_PATH)`, which returns just `specs/` and `.opencode/specs/`. That means constitutional memories, plus memories under other allowed roots, can be manually saved or recovered but still miss auto-scan/auto-watch refresh. Evidence: [memory-save.ts:29](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts#L29), [memory-save.ts:117](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts#L117), [tool-schemas.ts:189](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L189), [memory-index.ts:189](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts#L189), [context-server.ts:432](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L432), [context-server.ts:528](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L528), [context-server.ts:1011](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L1011), [folder-discovery.ts:869](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/folder-discovery.ts#L869), [config.ts:97](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/core/config.ts#L97).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-codex-A1.md:5:- Medium: `.txt` memories are first-class ingest targets but are invisible to live reindexing. The parser accepts `.md` and `.txt` for spec-memory files, and `memory_save` tells callers that `.txt` is valid, but the watcher filters strictly with `isMarkdownPath()` and the tests lock that behavior in. Result: a valid `.txt` memory can be indexed once and then silently stop participating in automatic refresh. Evidence: [memory-parser.ts:671](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L671), [memory-parser.ts:676](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts#L676), [memory-save.ts:846](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts#L846), [file-watcher.ts:95](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/ops/file-watcher.ts#L95), [file-watcher.vitest.ts:188](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tests/file-watcher.vitest.ts#L188).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-011-codex-A1.md:9:- Low: the T303 tool-dispatch refactor left dead abstractions and triple-declared arg contracts. `MCPResponseWithContext` and `parseValidatedArgs()` exist but are unused, while the same request types are separately declared in `tools/types.ts` and again inside handlers like `memory-context.ts`, `memory-search.ts`, and `memory-index.ts`. Dispatchers still hand-compose `validateToolArgs(...)` + `parseArgs(...)` in each case. This is mostly a developer-UX/maintenance problem, but it raises the odds of schema drift whenever a new parameter is added. Evidence: [tools/types.ts:13](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tools/types.ts#L13), [tools/types.ts:29](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tools/types.ts#L29), [context-tools.ts:15](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tools/context-tools.ts#L15), [memory-tools.ts:45](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts#L45), [lifecycle-tools.ts:51](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/tools/lifecycle-tools.ts#L51), [memory-context.ts:96](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts#L96), [memory-search.ts:126](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L126), [memory-index.ts:123](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts#L123), [save/types.ts:106](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/save/types.ts#L106).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-030.md:39:`lib/search/vector-index-aliases.ts:13-23` imports query helpers from `vector-index-queries`. `lib/search/vector-index-queries.ts:21-32` imports `delete_memory_from_database` from `vector-index-mutations`. `lib/search/vector-index-mutations.ts:13-15` imports `clear_search_cache` from `vector-index-aliases`. An import-graph sweep across the reviewed handler/search/storage files found this as the only strongly connected component.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/G2.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-010.md:16:- The actual runtime path does not pass an LLM callback into the recall engine, so the live prompt-injection path is keyword/recency-based unless an alternate caller wires `llmCall`. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/session/prompt.ts:1564-1585] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/findRelevantMemories.ts:119-171]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-010.md:17:- XETHRYON_CONTEXT itself hints that memory wiring may need verification, which shows the repo's own documentation already recognized possible drift. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/XETHRYON_CONTEXT.md:209-209]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:1:# Iteration 015 — Memory Architecture Versus Packet-Local State
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:4:Should `system-spec-kit` simplify away its global memory architecture in favor of BAD-style lightweight local state?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:7:BAD's lack of a semantic memory layer is a scope decision, not evidence that the local memory architecture should be replaced.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:10:Compared BAD's execution-state surface with the local Spec Kit Memory architecture and the current deep-research packet-state model.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:13:- BAD stores module configuration in `_bmad/config.yaml`, relies on planning artifacts like `sprint-status.yaml`, and does not expose a semantic memory, retrieval, or governance subsystem in the repo snapshot. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/external/skills/bad/assets/module-setup.md:10-14] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/external/README.md:25-32] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/external/README.md:63-78]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:14:- `system-spec-kit`'s memory system is intentionally broader: MCP server, SQLite plus FTS5 plus vector embeddings, constitutional rules, generated memory files, spec-doc indexing, and 43 MCP tools. [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:17-27] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:38-57] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:99-145]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:15:- Local deep-research already uses packet-local state files as the authoritative loop state, with memory as an overlay for discovery and resume, not as the live loop substrate. [SOURCE: .opencode/skills/sk-deep-research/references/state_format.md:15-29] [SOURCE: .opencode/skills/sk-deep-research/references/state_format.md:65-110] [SOURCE: .opencode/commands/spec_kit/assets/spec_kit_deep-research_auto.yaml:79-89] [SOURCE: .opencode/commands/spec_kit/assets/spec_kit_deep-research_auto.yaml:194-197]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:18:The local system already has the right architectural split for this comparison: packet-local files for execution continuity, global memory for cross-session retrieval, governance, and discovery. BAD shows that some execution modules can function without global memory, but that is because they intentionally limit their problem boundary. Replacing the local memory system with BAD-style local state would discard capabilities the repo clearly wants.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:22:- **Current system-spec-kit approach:** global semantic memory plus packet-local state for live workflow continuity.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:23:- **External repo's approach:** only local config and planning artifacts; no semantic memory subsystem.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:34:finding: BAD does not justify replacing Spec Kit Memory. It reinforces the current local split: packet-local files should remain the source of truth for active loops, while the global memory system remains the retrieval and governance layer.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:37:- **Target file or module:** `.opencode/skills/system-spec-kit/references/memory/memory_system.md`
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:44:I looked for any BAD evidence of cross-session semantic retrieval, constitutional memory, or governed sharing. None appears in this snapshot, which makes the systems non-equivalent by design.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-015.md:47:If the memory split is already sound, does BAD still suggest a cleaner way to package local agent topology so users do not have to think in terms of the full internal roster?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/graph-metadata.json:210:    "causal_summary": "The `024-codex-memory-mcp-fix` packet documented six follow-on recommendations (T020-T025) for runtime hardening, but none were implemented. Key gaps: no integration tests for custom-path DB + embedding-dimension mismatch; no lifecycle tests for shutdown sequencing or tool-cache invalidation; `buildErrorResponse()` passes unsanitized provider error messages to callers; and launcher docs lack consolidated MEMORY_DB_PATH and clean-transport guidance.",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:29:title: "Implementation Plan: Memory Index Deduplication and Tier Normalization [former child spec 002-index-tier-anomalies -> plan]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:35:  - "memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:42:# Implementation Plan: Memory Index Deduplication and Tier Normalization
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:90:- **`findMemoryFiles` scanner**: discovers candidate memory files from supported roots.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:92:- **`handleMemoryIndexScan` orchestrator**: merges candidates, applies incremental filtering, batches indexing.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:96:1. Discover candidates from memory and spec-document roots.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:132:| Unit | parser tier extraction and normalization | Vitest (`memory-parser.vitest.ts`, `importance-tiers.vitest.ts`) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:133:| Integration | scan merge/dedup and counter integrity | Vitest (`handler-memory-index.vitest.ts`) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:134:| Manual | targeted `memory_index_scan` sanity with alias roots | local MCP invocation |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:323:description: "This plan standardizes frontmatter across templates, spec docs, and memory markdown, then rebuilds indexes from normalized metadata. The approach is parser-first: define canonic..."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:353:This plan standardizes frontmatter across templates, spec docs, and memory markdown, then rebuilds indexes from normalized metadata. The approach is parser-first: define canonical schema, add compose/migration tooling, run dry-run validation, then apply migration and reindex. Verification covers idempotency, parser correctness, and retrieval stability.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:392:- [x] Prepare fixture set for templates/spec/memory variants.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/plan.md:421:| Memory indexing commands and test harness | Internal | Green | Reindex cannot be verified end-to-end. |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/checklist.md:24:  - Verified: generate-context.js runs, captures session data
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/checklist.md:59:- [x] **VER.2**: generate-context.js --help works
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/checklist.md:62:  - Deferred: Requires manual test with actual memory file
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/checklist.md:74:  - Requires: User restart OpenCode and test memory commands
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/archive/legacy-research-log/research-dashboard-legacy.md:20:| 016 | 2 | Store-centric memory pivot? | high | rejected | keep file-first memory | memory architecture |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/archive/legacy-research-log/research-dashboard-legacy.md:27:| 023 | 3 | Is the `/memory:*` surface too parallel to `/spec_kit:*`? | high | should-have | merge | everyday memory UX |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:45:- [x] T001 [P] Create `tests/db-dimension-integrity.vitest.ts` with 5 test cases: custom-path + dimension mismatch, concurrent DB paths, reinitialization with different dimensions, startup dimension pre-validation, in-memory DB isolation (`mcp_server/tests/db-dimension-integrity.vitest.ts`)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:57:- [x] T007 [P] Add Codex MEMORY_DB_PATH note and clean-transport section to environment variables reference
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/tasks.md:105:- **Predecessor**: See `../024-codex-memory-mcp-fix/` (T020-T025)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-012-codex-A1.md:4:- Medium: The trigger-phrase path in the query classifier is not plumbed through the main pipeline. `query-classifier` and `query-router` support `triggerPhrases`, and `hybrid-search` accepts them, but `PipelineConfig` has no such field, `memory-search` never sets one, and Stage 1 calls `searchWithFallback` without passing any trigger phrases. In the pipeline-backed search path, routing therefore falls back to token-count heuristics only. See [query-classifier.ts#L75](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/query-classifier.ts#L75), [query-router.ts#L119](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/query-router.ts#L119), [hybrid-search.ts#L64](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L64), [hybrid-search.ts#L561](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L561), [types.ts#L112](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/types.ts#L112), [memory-search.ts#L931](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L931), [stage1-candidate-gen.ts#L281](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage1-candidate-gen.ts#L281).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:21:  - Command: `cd .opencode/skills/system-spec-kit/mcp_server && npx vitest run tests/job-queue.vitest.ts tests/handler-memory-ingest.vitest.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:28:  - Best for: missing-model / low-memory fallback logic and cache behavior once assertions are expanded.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:58:- **I2 — `memory_search` response-contract harness**
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:72:  - Purpose: run real searches with model-present/model-missing/low-memory variants.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:77:- **D2 — Memory save content quality**
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:78:  - Human must decide which findings are worth saving and whether the generated memory captures the right session state.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:93:| CHK-030 | `memory_search(includeTrace=true)` returns `scores` with 7 fields | AUTOMATABLE | **V2** plus **I2** live-envelope assertion | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:94:| CHK-031 | `memory_search(includeTrace=true)` returns `source` object fields | AUTOMATABLE | **V2** plus **I2** live-envelope assertion | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:95:| CHK-032 | `memory_search(includeTrace=true)` returns `trace` object fields | AUTOMATABLE | **V2** plus **I2** live-envelope assertion | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:96:| CHK-033 | `memory_search` without `includeTrace` is backward compatible | AUTOMATABLE | **O1** — normalized snapshot compare with trace disabled | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:100:| CHK-041 | `memory_ingest_start` returns job ID in <100ms | AUTOMATABLE | **B3** — live ingest-start latency benchmark against temp corpus | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:101:| CHK-042 | `memory_ingest_status` tracks actual processing state within 1s | AUTOMATABLE | **I3** — poll live job while indexing fixture files | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:103:| CHK-045 | `memory_ingest_cancel` moves a running job to `cancelled` | AUTOMATABLE | **V3** + **I3** cancel scenario | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:113:| CHK-063 | <8GB memory falls back to RRF without surfacing error | AUTOMATABLE | **I6** — simulated low-memory gate / injected memory probe override | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:117:| CHK-070 | Startup instructions include total memory count | AUTOMATABLE | **I4** — capture initialize handshake and assert field presence | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:121:| CHK-074 | Stale memory warning appears when `staleCount > 10` | AUTOMATABLE | **I4** — seed stale corpus, initialize, assert warning branch | M |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:132:| CHK-092 | Existing `memory_search` call returns byte-identical results | AUTOMATABLE | **O1** — pre/post snapshot harness over frozen fixture corpus | L |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:133:| CHK-093 | Existing `memory_context` call returns identical results | AUTOMATABLE | **O1** — pre/post snapshot harness with normalized timestamps/IDs if needed | L |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:134:| CHK-094 | Existing `memory_match_triggers` call returns identical results | AUTOMATABLE | **O1** — pre/post snapshot harness with normalized runtime metadata | L |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w1-a2-runtime-gap-analysis.md:135:| CHK-141 | Findings saved to `memory/` via `generate-context.js` | MANUAL | **D2** — human decides what findings to preserve and verifies generated memory is meaningful, not just present | S |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:10:**Evidence** `core/db-state.ts:56-64` defines the rebind dependency list, and `core/db-state.ts:180-197` only reinitializes that narrow subset. But startup wires additional DB-bound singletons in `context-server.ts:942-1017`, including `sessionBoost`, `causalBoost`, `workingMemory`, `attentionDecay`, `coActivation`, `archivalManager`, and `shadowEvaluationRuntime`. Those modules retain their own process-global DB state, for example `lib/search/session-boost.ts:11-12,32-33,73-92`, `lib/search/causal-boost.ts:138-156`, and `lib/feedback/shadow-evaluation-runtime.ts:86-87,372-390`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:17:**Issue** Retrieval session state is stored in a process-global singleton keyed only by raw `sessionId`. `memory_search` mutates and consumes that state directly from the request without validating that the caller actually owns the session. In a shared MCP process, one caller can accidentally or intentionally reuse another caller's `sessionId` and influence future dedup/goal-boost behavior.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:19:**Evidence** `lib/search/session-state.ts:74-168` stores mutable session state in an in-memory `Map`, and `lib/search/session-state.ts:223-255` exposes it through a singleton manager. `handlers/memory-search.ts:675-685` updates goal/anchor state from the supplied `sessionId`, `handlers/memory-search.ts:821-835` applies dedup from that same singleton, and `handlers/memory-search.ts:913-929` marks results as seen for that `sessionId`. None of those paths call the trusted-session validation used by the durable session manager.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:21:**Fix** Key retrieval state by a trusted scope tuple, not just `sessionId` alone. At minimum use the normalized tenant/user/agent scope plus the trusted effective session id, and refuse to mutate in-memory retrieval state for untrusted caller-supplied ids.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:26:**Issue** Continuation cursors are backed by a process-global in-memory store that holds entire result sets. The cursor token is only base64-encoded JSON, and cursor resolution does not verify tenant/user/agent/session scope before replaying stored results. Any caller that obtains a cursor can fetch a prior result set from an unrelated invocation, bypassing the current request's scope filters.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:28:**Evidence** `lib/search/progressive-disclosure.ts:88` defines a global `cursorStore`, `lib/search/progressive-disclosure.ts:121-149` shows the cursor is plain base64 JSON, and `lib/search/progressive-disclosure.ts:315-316,352-401` stores and resolves results using only the cursor payload. In `handlers/memory-search.ts:441-466`, cursor resolution happens before `normalizeScopeContext()` at `handlers/memory-search.ts:469-470`, so the continuation path does not re-assert the current scope.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:35:**Issue** `access-tracker` keeps an in-memory accumulator map keyed only by `memoryId`. On external DB rebind, `db-state` calls `accessTracker.init(newDb)`, which swaps the DB handle but does not flush or discard pending accumulator entries. Any buffered counts from the old DB can later be written into the new DB against the same numeric ids, corrupting `access_count` and `last_accessed`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:39:**Fix** Treat a DB swap as a hard generation boundary: flush safely before rebinding, or drop all pending accumulators when the DB identity changes. If you need to preserve buffered state, key it by `(db identity, memoryId)` instead of `memoryId` alone.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-020.md:46:**Evidence** `core/db-state.ts:164-167` clears only db-state's own local cache flags during reinit. Meanwhile `lib/cache/tool-cache.ts:67-79,85-93` keeps a global response cache whose keys do not encode DB generation, and `handlers/memory-search.ts:399,614-618` checks for DB updates and then immediately consults that cache. Likewise `lib/parsing/trigger-matcher.ts:141-145,181-187,203-252` keeps a module-level trigger cache loaded from `memory_index`, but db-state rebind does not clear it.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C7.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C7.md:56:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/18--ux-hooks/02-memory-health-autorepair-metadata.md`
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/historical-memory-remediation-slice-b-final/summary.md:1:# Historical Memory Remediation Summary
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/historical-memory-remediation-slice-b-final/summary.md:6:- Total memory files: 0
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:33:title: "Verification Checklist: Memory Index Deduplication and Tier Normalization [former child spec 002-index-tier-anomalies -> checklist]"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:39:  - "memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:46:# Verification Checklist: Memory Index Deduplication and Tier Normalization
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:80:- [x] CHK-010 [P0] Code passes lint/format checks [EVIDENCE: `npx eslint handlers/memory-index.ts lib/parsing/memory-parser.ts lib/scoring/importance-tiers.ts tests/handler-memory-index.vitest.ts tests/memory-parser.vitest.ts tests/importance-tiers.vitest.ts` PASS]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:92:- [x] CHK-021 [P0] Alias-root dedup regression tests pass [EVIDENCE: `npm test -- tests/memory-parser.vitest.ts tests/handler-memory-index.vitest.ts tests/importance-tiers.vitest.ts` PASS (52 tests)]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:94:- [x] CHK-023 [P1] Error scenarios validated [EVIDENCE: `npm test -- tests/memory-parser-extended.vitest.ts tests/full-spec-doc-indexing.vitest.ts` PASS (186 tests)]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:126:- [ ] CHK-052 [P2] Context saved to `memory/`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:201:- [x] CHK-141 [P1] API and tool behavior notes complete if changed [EVIDENCE: implementation summary captures `memory_index_scan` dedup/tier behavior impact and verification commands]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:279:- [x] CHK-031 [P0] Input validation implemented for frontmatter parser | Evidence: `npm run test --workspace mcp_server -- tests/memory-parser.vitest.ts` passed, and `test-frontmatter-backfill.js` now asserts malformed frontmatter skip/no-rewrite behavior (`T-FMB-007`, `T-FMB-009`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:288:- [x] CHK-042 [P2] README notes updated if command behavior changes | Evidence: strict malformed-frontmatter behavior and `--allow-malformed` are documented in `.opencode/skills/system-spec-kit/README.md` and `.opencode/skills/system-spec-kit/scripts/memory/README.md`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:296:- [ ] CHK-052 [P2] Findings saved to memory/ | Deferred: No `memory/` context-save artifact was recorded in provided evidence.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:347:- [x] CHK-121 [P0] Migration dry-run gate enforced before apply | Evidence: Dry-run command `node scripts/dist/memory/backfill-frontmatter.js --dry-run --include-archive` passed with `changed: 0`, `failed: 0` in final idempotency report.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/checklist.md:370:- [x] CHK-141 [P1] CLI and parser behavior documented for future contributors | Evidence: `.opencode/skills/system-spec-kit/README.md` and `.opencode/skills/system-spec-kit/scripts/memory/README.md` document strict malformed handling and CLI usage (`--allow-malformed`).
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:9:Spec Kit already has better safety rails than Xethryon, but it lacks an explicit "wait, then consolidate accumulated memory activity" cadence that could reduce fragmentation across long research runs.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:15:- Xethryon's AutoDream fires only after a five-part gate: feature enabled, 24-hour elapsed time, scan throttle, enough recent memory changes, and an inter-process lock. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/autoDream.ts:25-35] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/autoDream.ts:76-125]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:16:- If an LLM callback is available, AutoDream performs consolidation immediately; otherwise it marks the run as pending for a later `/dream` command. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/autoDream.ts:132-167]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:17:- The consolidation lock encodes both holder PID and last-consolidated timestamp, with stale-holder detection and rollback behavior. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/consolidationLock.ts:1-18] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/consolidationLock.ts:44-115]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:18:- Spec Kit already has reconsolidation-on-save and assistive similarity thresholds, but it runs in the `memory_save` path and is gated by feature flags plus a required `pre-reconsolidation` checkpoint. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/save/reconsolidation-bridge.ts:35-62] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/save/reconsolidation-bridge.ts:161-186]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:22:Xethryon's AutoDream is weaker on governance than Spec Kit, but stronger on cadence. It recognizes that memory quality degrades not only at save time, but also after enough time and enough accumulated activity have passed. Spec Kit's current reconsolidation bridge is safer and more structured, yet it is tied to a save event. For long-running research and review packets, that means there is no first-class "deferred cleanup" moment unless a caller triggers another save or writes manual maintenance logic. The best adoption is therefore not Xethryon's implementation, but its gate shape: time + activity + lock + explicit pending state.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:27:finding: `system-spec-kit` should keep its current checkpointed, transactional reconsolidation engine, but add an AutoDream-style scheduler that decides when accumulated memory activity should be reconsidered. Xethryon's cadence logic is worth porting; its file-level consolidation execution is not.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:41:- Can a reflection-like pre-publication gate improve deep-research quality the same way AutoDream improves memory hygiene?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-004.md:42:- Would a repo-level orientation memory be safer if it only updated on deferred reconsolidation windows?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/description.json:18:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/description.json:19:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/archive/legacy-research-log/research-log-legacy.jsonl:16:{"iteration":16,"phase":2,"timestamp":"2026-04-10T06:34:00+02:00","question":"Should system-spec-kit pivot its memory architecture away from file-first markdown plus SQLite indexing and toward an Agent-Lightning-style store-centric runtime?","confidence":"high","adoptionPriority":"rejected","newSignalThisIter":true,"filesRead":6}
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/archive/legacy-research-log/research-log-legacy.jsonl:20:{"iteration":20,"phase":2,"timestamp":"2026-04-10T07:40:00+02:00","question":"What does Agent Lightning's absence of spec folders, constitutional memory, and conversational gates imply about which parts of system-spec-kit should stay fundamentally different?","confidence":"high","adoptionPriority":"should-have","newSignalThisIter":true,"filesRead":8}
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/001-agent-lightning-main/research/archive/legacy-research-log/research-log-legacy.jsonl:23:{"iteration":23,"phase":3,"timestamp":"2026-04-10T08:35:00+02:00","question":"Is the /memory:* surface too parallel to the /spec_kit:* surface, compared to the external repo's more integrated operator workflow?","confidence":"high","adoptionPriority":"should-have","newSignalThisIter":true,"filesRead":8}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-020-codex-A1.md:3:- High: production, eval, and public-script search paths have diverged. `memory_search` runs the 4-stage pipeline via [memory-search.ts:929](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L929) and [memory-search.ts:968](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L968), but the public API still re-exports `hybridSearchEnhanced` directly in [api/search.ts:8](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/api/search.ts#L8), and ablation calls that same direct path in [eval-reporting.ts:84](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/eval-reporting.ts#L84) and [eval-reporting.ts:98](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/eval-reporting.ts#L98). Worse, `init()` defaults `graphFn` to `null` in [hybrid-search.ts:251](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts#L251), and both eval and API init omit the graph callback in [eval-reporting.ts:77](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/eval-reporting.ts#L77) and [api/indexing.ts:44](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/api/indexing.ts#L44), unlike server startup in [context-server.ts:890](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L890) and [context-server.ts:896](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L896). That means eval/script consumers can silently measure a search stack with no graph channel.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-020-codex-A1.md:17:`memory_search` currently goes `executePipeline -> Stage1 -> searchWithFallback -> hybridSearchEnhanced -> Stage2 -> Stage3 -> Stage4`, so the “pipeline” is wrapping an already-fused search core rather than cleanly owning retrieval end-to-end. The public/eval paths bypass that wrapper entirely.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-008-codex-A1.md:8:3. Channel attribution is implemented as a standalone pure utility, not a live pipeline stage. The pipeline types and comments mention attribution, and the handler can consume a `channelAttribution` field if present, but I found no production code that populates it; call sites are test-only. References: [channel-attribution.ts:100](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/channel-attribution.ts#L100), [pipeline/types.ts:103](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/types.ts#L103), [pipeline/types.ts:270](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/types.ts#L270), [orchestrator.ts:34](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/orchestrator.ts#L34), [memory-search.ts:191](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L191), [memory-search.ts:330](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L330)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-008-codex-A1.md:12:5. Eval data currently measures and logs; it does not feed back into live ranking. I found writes to eval tables and dashboard readers, but no search/scoring code reading `eval_metric_snapshots`. The only live closed-loop tuning I found is the separate adaptive-ranking system, which uses `adaptive_signal_events`/`adaptive_shadow_runs`, not eval metrics. References: [ablation-framework.ts:524](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/ablation-framework.ts#L524), [reporting-dashboard.ts:182](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/reporting-dashboard.ts#L182), [memory-search.ts:1199](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L1199), [eval-logger.ts:181](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-logger.ts#L181), [adaptive-ranking.ts:387](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/adaptive-ranking.ts#L387), [adaptive-ranking.ts:462](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/adaptive-ranking.ts#L462)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-008-codex-A1.md:19:It is a synthetic, structured benchmark: query text plus intent/category/source metadata, and graded `(queryId, memoryId, relevance)` judgments. That is enough for offline benchmarking, but weak for calibration because the loader schema has no annotator identity, disagreement, confidence, timestamp, tier, or candidate-negative structure. From local JSON inspection, the corpus is also very uniform: 110 queries, 297 labels, exactly 3 judged memories per query, and an even 1/2/3 relevance split. References: [ground-truth-data.ts:29](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-data.ts#L29), [ground-truth-data.ts:40](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-data.ts#L40), [ground-truth-data.ts:65](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-data.ts#L65), [ground-truth.json:3](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/data/ground-truth.json#L3)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-008-codex-A1.md:28:Standalone. The implementation is clean pure logic, but it is not wired into the live pipeline. `api/eval.ts` does not export it, production search code does not call it, and the pipeline’s “attribution” mention appears to be aspirational. The handler is prepared to read `row.channelAttribution`, but I found no producer for that field. References: [channel-attribution.ts:11](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/channel-attribution.ts#L11), [api/eval.ts:9](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/api/eval.ts#L9), [pipeline/types.ts:103](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/types.ts#L103), [orchestrator.ts:34](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/orchestrator.ts#L34), [memory-search.ts:206](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L206)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-008-codex-A1.md:36:- Live search writes eval logs, but does not read them back into ranking. References: [memory-search.ts:1199](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts#L1199), [eval-logger.ts:211](//Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-logger.ts#L211)
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-011.md:7:BAD's narrower operator surface is materially easier to reason about than the current `spec_kit` plus `memory` command spread, even if `system-spec-kit` still needs the richer backend.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-011.md:15:- `system-spec-kit` currently exposes 8 `spec_kit` commands, 4 `memory` commands, per-command YAML workflow assets, and a large environment-variable surface for retrieval/runtime tuning. [SOURCE: .opencode/commands/spec_kit/README.txt:43-111] [SOURCE: .opencode/commands/memory/README.txt:38-131] [SOURCE: .opencode/skills/system-spec-kit/references/config/environment_variables.md:21-39] [SOURCE: .opencode/skills/system-spec-kit/references/config/environment_variables.md:164-219]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-011.md:22:- **Current system-spec-kit approach:** separate `spec_kit` and `memory` command groups, per-command YAML assets, plus a broad env-var surface for advanced tuning.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-011.md:25:- **Why system-spec-kit's approach might still be correct:** the local system spans planning, implementation, research, review, memory, and governance, so one verb cannot honestly represent the whole system.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/spec.md:12:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/spec.md:16:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/spec.md:17:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/spec.md:73:- memory/ files (generated by `generate-context.js`, not template-governed)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:68:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/06--analysis/01-causal-edge-creation-memorycausallink.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:69:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/06--analysis/02-causal-graph-statistics-memorycausalstats.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:70:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/06--analysis/03-causal-edge-deletion-memorycausalunlink.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:71:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/06--analysis/04-causal-chain-tracing-memorydriftwhy.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C8.md:74:  - `specs/system-spec-kit/022-hybrid-rag-fusion/feature_catalog/06--analysis/07-learning-history-memorygetlearninghistory.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:5:### [P0] Merge reconsolidation can make the surviving memory unreachable and returns the wrong ID
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:8:**Issue**: The merge path archives the old row and inserts a raw replacement row, but it never updates `active_memory_projection`, never runs the normal post-insert/indexing hooks, and the bridge reports the archived row ID back to the caller instead of the new merged row ID. Since vector retrieval joins through `active_memory_projection` and excludes archived rows, the merged survivor can disappear from search immediately after a successful merge.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:11:- `executeMerge()` archives the old row and inserts directly into `memory_index`, only optionally inserting into `vec_memories`; it does not call the normal projection/index metadata path at [`reconsolidation.ts:223-260`](../../../../../../skill/system-spec-kit/mcp_server/lib/storage/reconsolidation.ts#L223).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:12:- Vector search only returns rows that both join through `active_memory_projection` and are not archived by default at [`vector-index-queries.ts:223-265`](../../../../../../skill/system-spec-kit/mcp_server/lib/search/vector-index-queries.ts#L223).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:13:- The canonical mutation path explicitly upserts `active_memory_projection` on insert/update at [`vector-index-mutations.ts:85-101`](../../../../../../skill/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts#L85) and [`vector-index-mutations.ts:198-229`](../../../../../../skill/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts#L198), but the merge path bypasses it entirely.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:14:- After merge, the bridge returns `existingMemoryId` as the tool result ID instead of `newMemoryId` at [`reconsolidation-bridge.ts:275-279`](../../../../../../skill/system-spec-kit/mcp_server/handlers/save/reconsolidation-bridge.ts#L275), even though `executeMerge()` produced a new row ID at [`reconsolidation.ts:264-270`](../../../../../../skill/system-spec-kit/mcp_server/lib/storage/reconsolidation.ts#L264).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:17:**Fix**: Make merge use the same append-only creation path as normal saves so the new record gets projection state, metadata, BM25/history updates, and the correct returned ID. At minimum, the merge transaction must upsert `active_memory_projection`, apply post-insert metadata, refresh interference/BM25 state, and have the bridge return `reconResult.newMemoryId` instead of the archived predecessor ID.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:22:**Issue**: The bridge stores conflict candidates through `vectorIndex.indexMemory()` without `appendOnly: true`. On a same-path save, `indexMemory()` updates the existing row instead of creating a new version. That makes `storedId === topMatch.id`, so reconsolidation drops into the legacy `executeConflict()` fallback that overwrites the existing row in place and skips the `supersedes` edge. Because `memory-save` returns early for reconsolidation hits, the normal append-only lineage path never runs.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:25:- The bridge conflict store path calls `vectorIndex.indexMemory()` with the incoming `filePath` and no append-only override at [`reconsolidation-bridge.ts:216-230`](../../../../../../skill/system-spec-kit/mcp_server/handlers/save/reconsolidation-bridge.ts#L216).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:26:- `index_memory()` updates an existing row whenever the same folder/path key already exists unless `appendOnly` is set at [`vector-index-mutations.ts:169-194`](../../../../../../skill/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts#L169).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:27:- In `reconsolidate()`, `conflictMemory.id` is only set when the stored ID differs from the matched row; otherwise `executeConflict()` is called without a distinct new ID at [`reconsolidation.ts:512-526`](../../../../../../skill/system-spec-kit/mcp_server/lib/storage/reconsolidation.ts#L512).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:29:- `memory-save` exits immediately on non-complement reconsolidation, so the normal append-only `createAppendOnlyMemoryRecord()` and `recordLineageVersion()` flow is skipped at [`memory-save.ts:519-533`](../../../../../../skill/system-spec-kit/mcp_server/handlers/memory-save.ts#L519) and would otherwise have run at [`memory-save.ts:544-583`](../../../../../../skill/system-spec-kit/mcp_server/handlers/memory-save.ts#L544).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:33:### [P1] Assistive auto-merge can archive the wrong memory because it skips scope filtering and TM-06 safety guards
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:36:**Issue**: The assistive reconsolidation path is default-on and directly archives the top match at `>= 0.96`, but unlike TM-06 reconsolidation it does not apply the caller's governance scope filter and does not require a pre-reconsolidation checkpoint. In shared-memory or governed deployments, a high-similarity match from another tenant/user/agent/shared space but the same `spec_folder` can therefore be shadow-archived by the wrong caller.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:53:- `computeInterferenceScore()` counts all sibling rows in `memory_index` for the folder, excluding only `parent_id IS NULL` and self at [`interference-scoring.ts:120-141`](../../../../../../skill/system-spec-kit/mcp_server/lib/scoring/interference-scoring.ts#L120).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:59:**Fix**: Compute interference only over active, retrievable memories: filter out `is_archived = 1`, exclude deprecated rows unless a caller explicitly opts in, and ideally derive the comparison set from `active_memory_projection` so scoring matches the retrieval universe.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-014.md:64:The biggest regression is on the merge path: it bypasses the canonical indexing/projection workflow badly enough that a “successful” merge can hide the surviving memory. The next two risks are append-only lineage loss in conflict-band same-path saves and an assistive auto-archive path that skips the scope/safety protections TM-06 already has. Interference scoring is a lower-severity follow-on bug, but it will quietly bias ranking after reconsolidation unless the active-vs-retired memory set is aligned.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/README.md:3:description: "Implements T020-T025 from 024-codex-memory-mcp-fix: DB dimension integrity tests, lifecycle coverage tests, provider log sanitization, and launcher doc consolidation."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/README.md:11:Implements the follow-on recommendations from `024-codex-memory-mcp-fix` with targeted tests, log sanitization, and doc consolidation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/README.md:31:- `../024-codex-memory-mcp-fix/` — predecessor (follow-on source)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:20:  To promote a memory to constitutional tier (always surfaced):
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:23:     memory_update({ id: <memory_id>, importanceTier: 'constitutional' })
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:31:     memory_update({ 
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:32:       id: <memory_id>, 
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:40:     - "Memory files MUST use generate-context.js script"
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:51:| Spec Folder | 003-memory-and-spec-kit/039-node-modules-consolidation |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:66:<!-- ANCHOR:preflight-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:86:<!-- /ANCHOR:preflight-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:99:- [Memory Metadata](#memory-metadata)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:103:<!-- ANCHOR:continue-session-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:132:/spec_kit:resume 003-memory-and-spec-kit/039-node-modules-consolidation
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:134:<!-- /ANCHOR:continue-session-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:153:<!-- ANCHOR:task-guide-memory-and-spec-kit/039-node-modules-consolidation-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:160:- **I'll analyze the memory and spec-kit system comprehensively using 5 parallel age** - I'll analyze the memory and spec-kit system comprehensively using 5 parallel agents.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:202:<!-- /ANCHOR:task-guide-memory-and-spec-kit/039-node-modules-consolidation-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:206:<!-- ANCHOR:summary-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:217:**target_folder = `specs/003-memory-and-spec-kit/039-node-modules-consolidation`**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:231:- I'll analyze the memory and spec-kit system comprehensively using 5 parallel age
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:237:- # Session Handover: Memory & Spec-Kit System Refinement
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:252:| `specs/.../039-node-modules-consolidation/tasks.md` | Specs/003-memory-and-spec-kit/039-node-modules-consolidat... |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:253:| `specs/.../039-node-modules-consolidation/checklist.md` | Specs/003-memory-and-spec-kit/039-node-modules-consolidat... |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:261:<!-- /ANCHOR:summary-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:265:<!-- ANCHOR:detailed-changes-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:270:<!-- ANCHOR:architecture-ill-analyze-memory-speckit-e1749452-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:271:### FEATURE: I'll analyze the memory and spec-kit system comprehensively using 5 parallel age
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:273:I'll analyze the memory and spec-kit system comprehensively using 5 parallel agents. Let me first set up the task tracking and then dispatch the agents.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:275:<!-- /ANCHOR:architecture-ill-analyze-memory-speckit-e1749452-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:312:<!-- ANCHOR:implementation-session-handover-memory-speckit-cf5102ce-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:313:### FEATURE: # Session Handover: Memory & Spec-Kit System Refinement
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:319:# Session Handover: Memory & Spec-Kit System Refinement
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:324:Analyzed the memory and spec-kit system post-merger (035-memory-speckit-merger), identifying **29 issues** across:
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:327:- `.opencode/commands/memory/` (3 command files)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:330:**Location:** `specs/003-memory-and-spec-ki
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:332:<!-- /ANCHOR:implementation-session-handover-memory-speckit-cf5102ce-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:368:**target_folder = `specs/003-memory-and-spec-kit/039-node-modules-consolidation`**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:399:<!-- ANCHOR:implementation-tool-semanticmemorymemorymatchtriggers-22a34699-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:400:### OBSERVATION: Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:402:Executed semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:404:**Details:** Tool: semantic_memory_memory_match_triggers | Status: completed
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:405:<!-- /ANCHOR:implementation-tool-semanticmemorymemorymatchtriggers-22a34699-session-1766685315391-kjh9hf9uu -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:410:specs/003-memory-and-spec-kit/036-post-merge-refinement/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:412:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/036-post-merge-refinement/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:419:specs/003-memory-and-spec-kit/036-post-merge-refinement/tasks.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:421:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/036-post-merge-refinement/tasks.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:510:Check generate-context.js dependencies
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:582:specs/003-memory-and-spec-kit/039-node-modules-consolidation/spec.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:584:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/spec.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:591:specs/003-memory-and-spec-kit/039-node-modules-consolidation/plan.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:593:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/plan.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:600:specs/003-memory-and-spec-kit/039-node-modules-consolidation/tasks.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:602:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/tasks.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:609:specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:611:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:798:specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:800:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:807:specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:809:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:816:specs/003-memory-and-spec-kit/039-node-modules-consolidation/spec.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:818:**Files:** /Users/michelkerkmeester/MEGA/Development/Websites/anobel.com/specs/003-memory-and-spec-kit/039-node-modules-consolidation/spec.md
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:880:<!-- /ANCHOR:detailed-changes-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:884:<!-- ANCHOR:decisions-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:893:<!-- /ANCHOR:decisions-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:895:<!-- ANCHOR:session-history-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:917:Analyzing memory-speckit merge: bugs, misalignments, improvements
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:923:Analyzing memory-speckit merge: bugs, misalignments, improvements → I'll analyze the memory and spec-kit system comprehensively using 5 parallel agents.  Let me first set up the task tracking and then dispatch the agents.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:979:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:980:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1015:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1016:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1051:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1052:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1087:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1088:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1129:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1130:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1165:**Tool: semantic_memory_memory_match_triggers**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1166:Tool: semantic_memory_memory_match_triggers
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1217:Analyzing Phase 1/1B Spec Folder Validation and Memory Save
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1223:Analyzing Phase 1/1B Spec Folder Validation and Memory Save → ## Phase 1: Spec Folder Validation
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1229:**target_folder = `specs/003-memory-and-spec-kit/039-node-modules-consolidation`**
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1240:| Files modif Install dependencies from workspace root Verify single node_modules at root Check new node_modules size Verify no scripts/node_modules Verify no mcp_server/node_modules 3 todos Test MCP server starts with workspace Test CLI tool with workspace 1 todos specs/003-memory-and-spec-kit/039-node-modules-consolidation/checklist. Used tools: , ,  and 16 more.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1274:<!-- /ANCHOR:session-history-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1278:<!-- ANCHOR:recovery-hints-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1289:| Context Loss | Agent doesn't remember prior work | Run `/spec_kit:resume 003-memory-and-spec-kit/039-node-modules-consolidation` |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1291:| Memory Not Found | Search returns no results | Check `memory_search({ specFolder: "003-memory-and-spec-kit/039-node-modules-consolidation" })` |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1296:2. **Load memory context** - Use memory_search to surface prior work
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1300:<!-- /ANCHOR:recovery-hints-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1303:<!-- ANCHOR:postflight-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1326:<!-- /ANCHOR:postflight-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1329:<a id="memory-metadata"></a>
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1331:## MEMORY METADATA
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1333:<!-- ANCHOR:metadata-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1335:> **Machine-Readable Section** - This YAML block is parsed by the semantic memory indexer for search optimization and decay calculations.
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1340:spec_folder: "003-memory-and-spec-kit/039-node-modules-consolidation"
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1347:# Memory Classification (v2.2)
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1348:memory_classification:
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1349:  memory_type: "episodic"         # episodic|procedural|semantic|constitutional
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1425:parent_spec: "003-memory-and-spec-kit/039-node-modules-consolidation"
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/scratch/legacy-memory-quarantine/25-12-25_18-55__node-modules-consolidation.md:1436:<!-- /ANCHOR:metadata-session-1766685315391-kjh9hf9uu-003-memory-and-spec-kit/039-node-modules-consolidation -->
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w7-a5-campaign-report.md:137:| W5-A1 | 010 slug uniqueness | Confirmed `ensureUniqueMemoryFilename` already exists |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w7-a5-campaign-report.md:138:| W5-A2 | 010 Phase 3-4 verification | `memorySequence` and aggregation confirmed implemented |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/w7-a5-campaign-report.md:172:| W7-A4 | Memory context save | In progress |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-025.md:4:Should `system-spec-kit` replace its LEAF agent pattern and externalized iteration state with a simpler in-memory or coordinator-only loop more like BAD's visible contract?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-020.md:17:- Spec Kit already has startup/recovery surfaces (`session_bootstrap()` and `session_resume()`) and presents next-step continuation behavior in its docs, but that guidance is more descriptive than compact. [SOURCE: .opencode/skills/system-spec-kit/README.md:93-99] [SOURCE: .opencode/skills/system-spec-kit/README.md:170-179] [SOURCE: .opencode/skills/system-spec-kit/references/memory/memory_system.md:103-105]
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/plan.md:12:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/plan.md:16:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/plan.md:17:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:5:  and its SGQS memory integration rather than the folder topic. It references .opencode/.../handlers/sgqs-query.ts,
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:21:  To promote a memory to constitutional tier (always surfaced):
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:24:     memory_update({ id: <memory_id>, importanceTier: 'constitutional' })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:32:     memory_update({ 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:33:       id: <memory_id>, 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:41:     - "Memory files MUST use generate-context.js script"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:103:- [MEMORY METADATA](#memory-metadata)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:130:**Summary:** Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SG...
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:173:**Key Topics:** `system` | `memory` | `skill graph` | `system spec kit/024 sqlite to turso` | `skill` | `graph` | `spec` | `kit/024` | `sqlite` | `turso` | `sgqs` | `analysis` | 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:186:- **Based on an analysis of the `036-skill-graphs` implementation and its associated** - Based on an analysis of the 036-skill-graphs implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:233:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:235:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:238:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:289:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:291:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:294:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:444:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:446:**Files:** /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:507:memory_causal_unlink
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:534:memory_causal_unlink (repeated 2 times)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:680:| Memory Not Found | Search returns no results | Check `memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso" })` |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:683:| Dedup Collision | Wrong memory surfaced | Check `fingerprint_hash` for conflicts |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:688:# Check memory index health
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:692:memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso", limit: 10 })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:694:# Verify memory file integrity
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:695:ls -la system-spec-kit/024-sqlite-to-turso/memory/
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:698:memory_search({ query: "orphaned", anchors: ["state"] })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:701:node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js system-spec-kit/024-sqlite-to-turso --force
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:707:2. **Load memory context** - Use memory_search to surface prior work
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:716:| Memory File Exists |  |  |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:763:<a id="memory-metadata"></a>
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:765:## MEMORY METADATA
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:769:> **Machine-Readable Section** - This YAML block is parsed by the semantic memory indexer for search optimization and decay calculations.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:781:# Memory Classification (v2.2)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:782:memory_classification:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:783:  memory_type: ""         # episodic|procedural|semantic|constitutional
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:843:  - "memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:859:  - "in memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:870:  - "skill graph system memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:871:  - "graph system memory integration"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:872:  - "system memory integration consist"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:873:  - "memory integration consist elegant"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:875:  - "consist elegant entirely in-memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:876:  - "elegant entirely in-memory graph"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:877:  - "entirely in-memory graph database"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:878:  - "in-memory graph database sgqs"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-47__sqlite-to-turso.md:882:  - "enriches existing semantic memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/ultra-think-review.md:15:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/ultra-think-review.md:78:  │ cast|memory-indexer" (.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-nor
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/ultra-think-review.md:204:  │ "TCOV-005|memory-indexer|embedding null|vectorIndex throw|malformed metadata"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:14:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:15:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:42:The MCP server now recursively strips API keys from error responses (including nested objects and arrays), logs sanitized messages during shutdown via side-effect-free cleanup helpers, and has 20 tests covering DB dimension integrity, lifecycle shutdown, stage2b fail-open edge cases, and error sanitization. Documentation surfaces are fully aligned: feature catalog entry, manual testing playbook scenario, install guide troubleshooting, descriptions.json index, and consolidated Codex launcher guidance. This closes all six follow-on recommendations (T020-T025) from `024-codex-memory-mcp-fix`.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:46:Five tests verify that custom-path DB initialization enforces embedding-dimension consistency: mismatch rejection, concurrent path isolation, reinitialization failure, pre-validation, and in-memory vs file-backed isolation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/025-mcp-runtime-hardening/implementation-summary.md:72:| system-spec-kit MCP server README | Modified | T023: Codex MEMORY_DB_PATH callout |
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/005-intellegix-code-agent-toolkit-master/spec.md:33:`system-spec-kit` needs an evidence-backed understanding of how the bundled Intellegix Code Agent Toolkit compares to the current local command, skill, hook, memory, and orchestration surfaces. Without a dedicated research packet, proposed changes to lifecycle commands, spec-folder UX, gate machinery, sub-agent routing, and skills would remain speculative.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-014-codex-A1.md:6:| `4. "32 MCP tools"` | `CONFIRMED` | `context-server.ts` exposes `TOOL_DEFINITIONS` via ListTools in [context-server:264](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/context-server.ts#L264); the exported array contains 32 entries from `memoryContext` through `memoryIngestCancel` in [tool-schemas:537](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L537) and [tool-schemas:576](/Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts#L576). |
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/tasks.md:23:  - Test generate-context.js --help
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/tasks.md:62:  - generate-context.js works
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/prompts/C9.md:1:TASK: Feature-centric code audit of the Spec Kit Memory MCP server.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:15:- Xethryon gates AutoDream by elapsed hours and recent memory-file changes, then either executes consolidation immediately or sets `_dreamPending = true` when no `llmCall` is available. `_lastSessionScanAt`, `_config`, and `_dreamPending` all live in module state. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/autoDream.ts:25-42] [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/autoDream.ts:85-186]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:16:- The lock file stores holder PID and last-consolidated time, but it does not persist the semantic "pending dream" state beyond the process that set it. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/consolidationLock.ts:35-115]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:17:- Xethryon's post-turn hook fires extraction and AutoDream in the background after the main turn completes, which means the operator does not get an explicit durable pending artifact when consolidation is deferred. [SOURCE: .opencode/specs/system-spec-kit/999-agentic-system-upgrade/001-research-agentic-systems/009-xethryon/external/packages/opencode/src/xethryon/memory/memoryHook.ts:155-171]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:21:Phase 1 correctly identified deferred reconsolidation cadence as one of the best import candidates from Xethryon. Phase 2 shows the missing architectural constraint: deferred work is only trustworthy if the system can survive process restarts and still explain what is pending. Xethryon's module-local pending flag is acceptable for a fast, UX-oriented fork, but it would be too opaque for Spec Kit's operator-facing memory system. In Spec Kit, deferred reconsolidation should look like a durable queue or ledger-backed state machine, not a hidden in-memory toggle.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:31:- **External repo's approach:** time-and-activity-gated consolidation runs from a background post-turn hook, with key gating and pending state kept in module memory.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:32:- **Why the external approach might be better:** it automatically batches noisy memory growth and removes manual consolidation pressure from the operator.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-014.md:35:- **If REFACTOR/PIVOT/SIMPLIFY — concrete proposal:** add a durable reconsolidation scheduler state to the memory database or mutation ledger, including `pending`, `last_scanned_at`, `eligibility_reason`, and `last_attempt_result`, and expose it through maintenance/reporting tools.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:5:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:160:The live entry point is `handlers/memory-search.ts`; now I’m checking whether it always uses the new pipeline or can still fall back into the legacy hybrid stack, because that determines which “recommendation synthesis” path is actually user-visible.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:162:● Read memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:163:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:209:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:222:- **P1 architecture drift:** the “V2-only” runtime still feeds Stage 1 from the legacy `hybrid-search` stack, so candidates are already fused, reranked, MMR-pruned, co-activation-boosted, and token-truncated before Stage 2/3 run again. That breaks Stage 1’s “no scoring modifications” contract and creates double-synthesis risk (`handlers/memory-search.ts:929-968`; `lib/search/pipeline/stage1-candidate-gen.ts:6-8,271-316,406-415`; `lib/search/hybrid-search.ts:543-1057,1078-1101`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-019-copilot-A2.md:230:- **P2 observability blind spot:** `memory-search` exposes only Stage 1-4 metadata, while pre-pipeline routing/enforcement/truncation inside `hybrid-search` materially shapes recommendations but stays outside `PipelineResult.metadata` (`lib/search/hybrid-search.ts:555-594,801-855,982-1055`; `handlers/memory-search.ts:970-978`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-031.md:31:| handlers/memory-save.ts | 1,389 | P0 (atomic save), Sprint1 (write lock, quality gate) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-031.md:34:| handlers/shared-memory.ts | 857 | P0 (auth), Sprint3 (caller identity) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-031.md:38:| handlers/memory-index.ts | 660 | Sprint4 (content-hash detection) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-031.md:65:| lib/parsing/memory-parser.ts | 1,006 | Sprint4 (YAML body, anchor nesting, frontmatter errors) |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-031.md:76:### Memory (4 files + metadata.json)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/checklist.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/checklist.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/checklist.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/checklist.md:95:- [ ] CHK-052 [P2] Session context saved to `memory/` after completion
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:4:Does the current `plan -> implement -> complete` split plus a parallel `/memory:*` surface create unnecessary fragmentation compared with BAD's single integrated coordinator flow?
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:10:Compared BAD's coordinator phases to local command chaining, memory command boundaries, and workflow-asset layering.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:15:- Local memory docs explicitly position `/spec_kit:resume` as the recovery surface while still keeping `/memory:search`, `/memory:manage`, and `/memory:learn` in a separate family. [SOURCE: .opencode/commands/memory/README.txt:38-40] [SOURCE: .opencode/commands/memory/README.txt:308-320]
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:19:This is where command sprawl becomes architectural friction. Local commands are logically separated, but the most common path still crosses multiple surfaces: spec lifecycle, memory recovery, and autonomous workflow assets. BAD shows the value of one visible run-loop, even when its internals are composed of many steps. The local equivalent should be a merged operator path, not necessarily a merged internal implementation.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:23:- **Current system-spec-kit surface:** Operators must decide whether they are planning, implementing, completing, resuming, saving memory, or managing memory before the system helps them.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:27:- **What system-spec-kit should ADD for better UX:** Add a merged "guided lifecycle" surface that owns the common path from planning through completion, with memory save/resume integrated by default.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:32:- **Current system-spec-kit approach:** separate lifecycle, recovery, and memory surfaces with explicit command boundaries.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:44:finding: The `plan -> implement -> complete` split is a good internal decomposition, but it is too visible as operator UX. `system-spec-kit` should merge the common lifecycle path into a guided surface that also absorbs the most common memory handoffs.
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/008-bmad-autonomous-development/research/iterations/iteration-022.md:50:- **Prerequisites:** define the standard lifecycle contract and decide which memory actions become implicit defaults versus advanced controls
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:5:  and its SGQS memory integration rather than the folder topic. It references .opencode/.../handlers/sgqs-query.ts,
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:21:  To promote a memory to constitutional tier (always surfaced):
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:24:     memory_update({ id: <memory_id>, importanceTier: 'constitutional' })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:32:     memory_update({ 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:33:       id: <memory_id>, 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:41:     - "Memory files MUST use generate-context.js script"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:103:- [MEMORY METADATA](#memory-metadata)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:130:**Summary:** Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SG...
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:173:**Key Topics:** `system` | `memory` | `skill graph` | `system spec kit/024 sqlite to turso` | `skill` | `graph` | `spec` | `kit/024` | `sqlite` | `turso` | `sgqs` | `analysis` | 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:186:- **Based on an analysis of the `036-skill-graphs` implementation and its associated** - Based on an analysis of the 036-skill-graphs implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:233:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:235:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:238:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:289:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:291:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:294:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:444:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:446:**Files:** /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:507:memory_causal_unlink
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:534:memory_causal_unlink (repeated 2 times)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:680:| Memory Not Found | Search returns no results | Check `memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso" })` |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:683:| Dedup Collision | Wrong memory surfaced | Check `fingerprint_hash` for conflicts |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:688:# Check memory index health
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:692:memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso", limit: 10 })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:694:# Verify memory file integrity
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:695:ls -la system-spec-kit/024-sqlite-to-turso/memory/
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:698:memory_search({ query: "orphaned", anchors: ["state"] })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:701:node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js system-spec-kit/024-sqlite-to-turso --force
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:707:2. **Load memory context** - Use memory_search to surface prior work
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:716:| Memory File Exists |  |  |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:763:<a id="memory-metadata"></a>
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:765:## MEMORY METADATA
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:769:> **Machine-Readable Section** - This YAML block is parsed by the semantic memory indexer for search optimization and decay calculations.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:781:# Memory Classification (v2.2)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:782:memory_classification:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:783:  memory_type: ""         # episodic|procedural|semantic|constitutional
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:843:  - "memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:859:  - "in memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:870:  - "skill graph system memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:871:  - "graph system memory integration"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:872:  - "system memory integration consist"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:873:  - "memory integration consist elegant"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:875:  - "consist elegant entirely in-memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:876:  - "elegant entirely in-memory graph"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:877:  - "entirely in-memory graph database"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:878:  - "in-memory graph database sgqs"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_09-18__sqlite-to-turso.md:882:  - "enriches existing semantic memory"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:12:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:25:● Read generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:26:  │ .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:29:● Read memory-indexer.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:30:  │ .opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:33:● Read generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:34:  │ .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:37:● Read generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:38:  │ .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:41:● Read memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:42:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:45:● Read memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:46:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:49:● Read memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:50:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:53:● memory_match_triggers
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:77:  │ "memory_index_scan|memory_save|dryRun|dry-run|verbose|force|incremental|includeSpecDocs|includeC
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:112:  │ "memory_validate|wasUseful|confidence|importance tier|promot|feedback|selection
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:144:✗ Read memory-validate.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:145:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-validate.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:148:✗ Read memory-health.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:149:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-health.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:153:  │ "**/memory-health*.ts" in .opencode/skills/system-spec-kit/mcp_server
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:157:  │ "**/*memory*validate*.ts" in .opencode/skills/system-spec-kit/mcp_server
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:187:  │ .opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:205:  │ telemetry|queryTerms|resultRank|totalResultsShown|memory_validate" in **/*.{ts,js}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:209:I found two useful things: `memory_health` already has repair hooks, and the rebuild command is basically a force scan wrapper. I’m now checking the feedback/learning handlers, because that determines whether adaptive importance weighting can reuse existing telemetry instead of inventing a new pipeline.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:219:● Read memory-crud-health.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:220:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-health.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:244:  │ (.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:249:  │ Array|memory_ingest_start|memory_index_scan\(|specFolder\?: string" in **/*.{ts,js,md,json}
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:254:  │ "memory_validate|wasUseful|resultRank|totalResultsShown|queryId|queryTerms|validation
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:266:● Read memory-ingest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:267:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-ingest.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:274:● Read memory-save.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:275:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:279:  │ "asyncEmbedding|dryRun|skipPreflight|force\?|hints:|recovery:|Retry memory_save|memory_save\("
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:280:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:284:  │ "memory_index_scan|memory_save|memory_health|asyncEmbedding|dryRun|force|incremental|includeSpec
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:290:  │ "memory_ingest_start|paths: Array|jobId|batch|specFolder\?: string"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:291:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-ingest.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:298:  │ (.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:302:  │ "function handleMemoryValidate|handleMemoryValidate|memoryValidate|validation_count|confidence_s
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:336:  │ "memory_validate" in **/*.{ts,js} (.opencode/skills/system-spec-kit/mcp_server/handlers)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:339:That gap is narrower than it first looked: `memory_validate` does exist, and it already records usefulness, rank, and query-term feedback. I’m reading that exact handler now, because the likely proposal is to connect this existing feedback loop to `importanceWeight` recalibration rather than building a new one from scratch.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:354:  │ "recordValidation|maybePromoteMemory|recordSelection|confidenceTracker|validation_count|confiden
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:358:I spotted an important split-brain detail for caching: the MCP save path uses a SQLite-backed embedding cache, but the script-side workflow/indexer may still be going through the shared in-memory cache. I’m confirming that before I finalize the cache recommendation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:366:  │ (.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:374:I’ve got the core findings. I’m doing one tiny final read on the `memory_index_scan` schema block so I can cleanly distinguish “already supported in the API” from “missing in the CLI experience” in the final write-up.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:376:● Read generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:377:  │ .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:384:● Read memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:385:  │ .opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:394:**Current behavior:** `generate-context.ts` overloads one positional `<input>` as either a JSON file or a spec folder, then adds two more structured-input modes (`--stdin`, `--json`) plus an optional second positional spec-folder override. The help text also has several precedence rules buried in prose, and `--session-id` is manually stripped before normal parsing (`scripts/memory/generate-context.ts:51-157, 356-440`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:396:**Proposed improvement:** Replace the overloaded interface with explicit subcommands, e.g. `generate-context save --spec-folder ...`, `generate-context save-json --file ...`, `generate-context save-stdin --spec-folder ...`. Expose hidden env behavior as flags, especially `--capture-source`, and make target precedence obvious in command shape instead of help prose.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:407:**Current behavior:** The human-facing CLI exposes very few operator controls. `generate-context` only offers `--stdin`, `--json`, and `--session-id` (`scripts/memory/generate-context.ts:60-64`). Meanwhile the MCP layer already supports useful controls like `dryRun`, `skipPreflight`, `asyncEmbedding`, `force`, `includeSpecDocs`, `includeConstitutional`, and `incremental` (`mcp_server/schemas/tool-input-schemas.ts:162-168, 321-327`). The rebuild script itself hardcodes a force scan (`scripts/memory/reindex-embeddings.ts:44-79`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:433:**Current behavior:** The code contains compatibility fallbacks rather than explicit migration flow. For example, incremental indexing checks whether `canonical_file_path` exists and falls back if it does not (`mcp_server/lib/storage/incremental-index.ts:62-85, 116-128`). `memory_health` can repair FTS and clean orphans, but it is not a schema-version migration system (`mcp_server/handlers/memory-crud-health.ts:444-506, 521-553`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:446:**Current behavior:** Importance is mostly static today. Workflow classification uses fixed tier multipliers (`scripts/core/workflow.ts:806-821`), and the indexer derives `importanceWeight` from content length, anchor count, and fixed recency constants (`scripts/core/memory-indexer.ts:117-124`). However, `memory_validate` already records positive/negative usefulness, rank, query terms, and promotion signals (`mcp_server/handlers/checkpoints.ts:323-464`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:448:**Proposed improvement:** Keep a stable base importance score at ingest time, but add an adaptive retrieval boost layer driven by validation confidence, repeated positive selection, negative feedback, and rank-based learning. Recalculate this boost on `memory_validate` writes or in a periodic calibration job.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:459:**Current behavior:** `generate-context` only accepts one primary input and at most one secondary target (`scripts/memory/generate-context.ts:410-440`). `memory_index_scan` only accepts a single `specFolder` filter (`mcp_server/schemas/tool-input-schemas.ts:321-327`). There is already a separate ingest job system that handles multiple file paths with `jobId`, progress, and cancellation (`mcp_server/handlers/memory-ingest.ts:36-39, 128-243`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:472:**Current behavior:** The MCP save path already uses a persistent SQLite embedding cache (`mcp_server/handlers/save/embedding-pipeline.ts:126-166`; `mcp_server/lib/cache/embedding-cache.ts:36-132`). But the script-side workflow/indexer goes through the shared embeddings layer, which still keeps an in-memory LRU cache (`scripts/core/memory-indexer.ts:54-75`; `shared/embeddings.ts:224-268`; `scripts/lib/embeddings.ts:1-8`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:485:**Current behavior:** Long operations mostly report only start/end summaries. `generate-context` prints step labels (`scripts/core/workflow.ts:2362-2455`), and `memory_index_scan` returns a final summary with optional debug-only counts via env var (`mcp_server/handlers/memory-index.ts:551-613`). By contrast, ingest jobs already support `jobId`, progress percentage, and ETA forecast (`mcp_server/handlers/memory-ingest.ts:78-121, 231-243`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:498:**Current behavior:** Error quality is inconsistent. `generate-context` still falls back to generic “Unexpected Error” handling (`scripts/memory/generate-context.ts:574-586`), while `memory_index_scan` only gives generic hints like “check file format” on failure (`mcp_server/handlers/memory-index.ts:553-586`). `memory_save`, on the other hand, already includes stronger remediation hints (`mcp_server/handlers/memory-save.ts:1123-1164`), and `memory_health` uses structured repair guidance (`mcp_server/handlers/memory-crud-health.ts:444-506`).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-001-copilot-C1.md:500:**Proposed improvement:** Standardize all indexing/CLI failures on structured errors with code, root cause, exact next command, and fix suggestions. Example: “FTS mismatch detected; run `memory_health(autoRepair:true, confirmed:true)` or `memory_index_scan(force:true)`.”
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:41:mcp: spec_kit_memory starting
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:44:mcp: spec_kit_memory failed: MCP client for `spec_kit_memory` failed to start: MCP startup failed: handshaking with MCP server failed: connection closed: initialize response
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:48:mcp startup: ready: code_mode, cocoindex_code, sequential_thinking; failed: spec_kit_memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:161:     3	description: "Unified documentation and context preservation: spec folder workflow (levels 1-3+), CORE + ADDENDUM template architecture (v2.2), validation, and Spec Kit Memory for context preservation. Mandatory for all file modifications."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:166:     8	<!-- Keywords: spec-kit, speckit, documentation-workflow, spec-folder, template-enforcement, context-preservation, progressive-documentation, validation, spec-kit-memory, vector-search, hybrid-search, bm25, rrf-fusion, fsrs-decay, constitutional-tier, checkpoint, importance-tiers, cognitive-memory, co-activation, tiered-injection -->
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:194:   474	- Memory: Each sub-folder has independent `memory/` directory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:778:/bin/zsh -lc 'rg -n "importance tier|constitutional tier|critical|important|normal|temporary|deprecated|document-type scoring|multiplier|decision_record|implementation_summary|checklist|handover|memory" .opencode/skills/system-spec-kit/SKILL.md .opencode/skills/sk-doc/SKILL.md .opencode/skills/sk-code-opencode/SKILL.md' in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:779:.opencode/skills/system-spec-kit/SKILL.md:8:<!-- Keywords: spec-kit, speckit, documentation-workflow, spec-folder, template-enforcement, context-preservation, progressive-documentation, validation, spec-kit-memory, vector-search, hybrid-search, bm25, rrf-fusion, fsrs-decay, constitutional-tier, checkpoint, importance-tiers, cognitive-memory, co-activation, tiered-injection -->
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:780:.opencode/skills/system-spec-kit/SKILL.md:24:- **Contents**: Markdown files (spec.md, plan.md, tasks.md) plus optional memory/ and scratch/ subdirectories
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:782:.opencode/skills/system-spec-kit/SKILL.md:65:  - `memory/` → uses generate-context.js script
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:785:.opencode/skills/system-spec-kit/SKILL.md:71:Routing to `@general`, `@write`, or other agents for spec documentation is a **hard violation**. See constitutional memory: `speckit-exclusivity.md`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:787:.opencode/skills/system-spec-kit/SKILL.md:92:- `references/memory/` for context retrieval, save workflows, trigger behavior, and indexing.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:789:.opencode/skills/system-spec-kit/SKILL.md:106:- Memory save JSON schema and workflow contracts: [save_workflow.md](./references/memory/save_workflow.md)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:791:.opencode/skills/system-spec-kit/SKILL.md:141:    "MEMORY": {"weight": 4, "keywords": ["memory", "save context", "resume", "checkpoint", "context"]},
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:794:.opencode/skills/system-spec-kit/SKILL.md:148:    "GOVERNANCE": {"weight": 3, "keywords": ["governance", "shared memory", "tenant", "retention", "audit"]},
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:795:.opencode/skills/system-spec-kit/SKILL.md:159:        "references/memory/epistemic_vectors.md",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:796:.opencode/skills/system-spec-kit/SKILL.md:174:        "references/memory/memory_system.md",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:797:.opencode/skills/system-spec-kit/SKILL.md:175:        "references/memory/save_workflow.md",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:798:.opencode/skills/system-spec-kit/SKILL.md:176:        "references/memory/trigger_config.md",
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:868:4. `ALIGN-004` `INCONSISTENT` — Document-type scoring is not aligned between `system-spec-kit` and `sk-doc`. `system-spec-kit` documents 10 indexed document types with explicit retrieval multipliers, but `sk-doc` has no corresponding multiplier model; it uses enforcement tables and DQI thresholds instead. `spec` falls back to generic checklist/threshold behavior in `sk-doc`, and artifact types like `plan`, `decision_record`, `implementation_summary`, `handover`, and `memory` are not first-class `sk-doc` document types.  
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A3.md:905:4. `ALIGN-004` `INCONSISTENT` — Document-type scoring is not aligned between `system-spec-kit` and `sk-doc`. `system-spec-kit` documents 10 indexed document types with explicit retrieval multipliers, but `sk-doc` has no corresponding multiplier model; it uses enforcement tables and DQI thresholds instead. `spec` falls back to generic checklist/threshold behavior in `sk-doc`, and artifact types like `plan`, `decision_record`, `implementation_summary`, `handover`, and `memory` are not first-class `sk-doc` document types.  
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/description.json:18:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/039-node-modules-consolidation/description.json:19:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/007-code-audit-per-feature-catalog/scratch/deep-review-dashboard.md:70:- Key suites: handler-memory-context, handler-memory-save, scoring, graph-signals, pipeline
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:3:Using a `grep`-equivalent `rg` scan over `/.opencode/skills/system-spec-kit/mcp_server/lib/`, I found **81 unique `SPECKIT_` names** across all files in `lib/` after excluding one malformed docs token `SPECKIT_MEMORY_`. Restricting to TypeScript runtime code only, there are **76 unique flags**.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:9:| Search registry | 25 | [search-flags.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/search/search-flags.ts#L1) | `SPECKIT_MMR`, `SPECKIT_TRM`, `SPECKIT_MULTI_QUERY`, `SPECKIT_CROSS_ENCODER`, `SPECKIT_SEARCH_FALLBACK`, `SPECKIT_FOLDER_DISCOVERY`, `SPECKIT_DOCSCORE_AGGREGATION`, `SPECKIT_SAVE_QUALITY_GATE`, `SPECKIT_RECONSOLIDATION`, `SPECKIT_NEGATIVE_FEEDBACK`, `SPECKIT_PIPELINE_V2`, `SPECKIT_EMBEDDING_EXPANSION`, `SPECKIT_CONSOLIDATION`, `SPECKIT_ENCODING_INTENT`, `SPECKIT_GRAPH_SIGNALS`, `SPECKIT_GRAPH_WALK_ROLLOUT`, `SPECKIT_COMMUNITY_DETECTION`, `SPECKIT_MEMORY_SUMMARIES`, `SPECKIT_AUTO_ENTITIES`, `SPECKIT_ENTITY_LINKING`, `SPECKIT_DEGREE_BOOST`, `SPECKIT_CONTEXT_HEADERS`, `SPECKIT_FILE_WATCHER`, `SPECKIT_ROLLOUT_PERCENT`, `SPECKIT_QUALITY_LOOP` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:11:| Capability registry | 14 | [capability-flags.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts#L1) | `SPECKIT_MEMORY_ROADMAP_PHASE`, `SPECKIT_MEMORY_LINEAGE_STATE`, `SPECKIT_MEMORY_GRAPH_UNIFIED`, `SPECKIT_MEMORY_ADAPTIVE_RANKING`, `SPECKIT_MEMORY_SCOPE_ENFORCEMENT`, `SPECKIT_MEMORY_GOVERNANCE_GUARDRAILS`, `SPECKIT_MEMORY_SHARED_MEMORY`, `SPECKIT_HYDRA_PHASE`, `SPECKIT_HYDRA_LINEAGE_STATE`, `SPECKIT_HYDRA_GRAPH_UNIFIED`, `SPECKIT_HYDRA_ADAPTIVE_RANKING`, `SPECKIT_HYDRA_SCOPE_ENFORCEMENT`, `SPECKIT_HYDRA_GOVERNANCE_GUARDRAILS`, `SPECKIT_HYDRA_SHARED_MEMORY` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:12:| Standalone runtime flags | 36 | spread across `lib/**/*.ts` | `SPECKIT_ABLATION`, `SPECKIT_ARCHIVAL`, `SPECKIT_CAUSAL_BOOST`, `SPECKIT_CHANNEL_MIN_REP`, `SPECKIT_CLASSIFICATION_DECAY`, `SPECKIT_COACTIVATION`, `SPECKIT_COACTIVATION_STRENGTH`, `SPECKIT_COMPLEXITY_ROUTER`, `SPECKIT_CONFIDENCE_TRUNCATION`, `SPECKIT_CONSUMPTION_LOG`, `SPECKIT_DASHBOARD_LIMIT`, `SPECKIT_DB_PATH`, `SPECKIT_DYNAMIC_TOKEN_BUDGET`, `SPECKIT_ENTITY_LINKING_MAX_DENSITY`, `SPECKIT_EVAL_LOGGING`, `SPECKIT_EVENT_DECAY`, `SPECKIT_EXTENDED_TELEMETRY`, `SPECKIT_EXTRACTION`, `SPECKIT_FOLDER_SCORING`, `SPECKIT_FOLDER_TOP_K`, `SPECKIT_INTERFERENCE_SCORE`, `SPECKIT_LEARN_FROM_SELECTION`, `SPECKIT_LEVEL`, `SPECKIT_LEVEL_REGEX`, `SPECKIT_MEMORY_ADAPTIVE_MODE`, `SPECKIT_NOVELTY_BOOST`, `SPECKIT_RECENCY_DECAY_DAYS`, `SPECKIT_RELATIONS`, `SPECKIT_RERANKER_MODEL`, `SPECKIT_RERANKER_TIMEOUT_MS`, `SPECKIT_RSF_FUSION`, `SPECKIT_SCORE_NORMALIZATION`, `SPECKIT_SESSION_BOOST`, `SPECKIT_SIGNAL_VOCAB`, `SPECKIT_TOKEN_BUDGET`, `SPECKIT_WORKING_MEMORY` |
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:34:- `capability-flags.ts` treats `SPECKIT_MEMORY_SHARED_MEMORY` as default-on unless explicitly disabled ([capability-flags.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts#L76)), while `shared-spaces.ts` treats the same capability as default-off unless explicitly enabled or persisted in DB ([shared-spaces.ts](/Users/michelkerkmeester/MEGA/Development/Opencode%20Env/Public/.opencode/skills/system-spec-kit/mcp_server/lib/collab/shared-spaces.ts#L175)).
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/001-hybrid-rag-fusion-epic/scratch/agent-output-iter-007-codex-A1.md:61:**Bottom line:** there is **no single authoritative registry**, **no code-enforced sunset mechanism**, **no cycle detected**, but there is **heavy flag sprawl**, **legacy alias duplication**, and at least one **semantic inconsistency** (`shared memory`) across registries.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/tasks.md:11:_memory:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/tasks.md:15:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/010-template-compliance-enforcement/tasks.md:16:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:1:# Iteration 021: Deep dive: memory-save.ts monolith
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:6:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:8:**Issue** `processPreparedMemory()` opens `BEGIN IMMEDIATE` before it awaits reconsolidation and file finalization. In the hot path, one save can hold both the in-process spec-folder mutex and the SQLite writer lock while it waits on embedding-backed reconsolidation or filesystem writes. That turns a per-folder serialization primitive into head-of-line blocking, and in multi-process callers it increases `SQLITE_BUSY` and lock inversion risk even when the actual row insert is short.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:10:**Evidence** `memory-save.ts:372-410` acquires the spec-folder lock and enters the save pipeline. `memory-save.ts:505-507` opens `BEGIN IMMEDIATE`, then `memory-save.ts:521-528` awaits `runReconsolidationIfEnabled(...)`, and `memory-save.ts:587-589` awaits `finalizeMemoryFileContent(...)` before `memory-save.ts:591` commits. The awaited reconsolidation helper is not purely local bookkeeping: `save/reconsolidation-bridge.ts:161-169,265-267` awaits `reconsolidate()` and lets that path generate embeddings inside the transaction window.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:15:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:17:**Issue** The handler persists quality-loop fixes to disk before the main save transaction commits, but governance metadata is applied afterward in a separate transaction. If governance post-processing fails, the code deletes the saved memory from the DB yet leaves the rewritten file in place. The file now contains the auto-fixed version while the database no longer has the corresponding row, so file content and indexed state diverge.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:19:**Evidence** `memory-save.ts:585-589` calls `finalizeMemoryFileContent(filePath, finalizedFileContent)` before `memory-save.ts:591` commits. After `indexMemoryFile()` returns, `handleMemorySave()` applies governance metadata in a second transaction at `memory-save.ts:963-1001`. If that phase throws, `memory-save.ts:1002-1008` calls `delete_memory_from_database(database, result.id)` but never restores the pre-fix file from backup. The chunked branch has the same shape: `memory-save.ts:394-404` can finalize the file on a successful chunked save, and `memory-save.ts:963-1008` can still later delete the DB row.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:24:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:26:**Issue** The pipeline order makes chunking a structural escape hatch. Once `needsChunking(parsed.content)` returns true, the handler exits through `indexChunkedMemoryFile()` before it runs the TM-04 quality gate, content-hash dedup, PE gating, or reconsolidation. Save semantics therefore change based solely on content length: small memories get similarity-based gating and reconsolidation, but large memories do not.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:28:**Evidence** In `processPreparedMemory()`, the chunking branch at `memory-save.ts:391-406` returns early. The quality gate only starts at `memory-save.ts:418-476`, PE gating at `memory-save.ts:488-492`, and reconsolidation at `memory-save.ts:519-533`, so none of those stages run for chunked saves. The chunking helper also has no hooks for those stages: `chunking-orchestrator.ts:129-145` accepts only `force` and metadata injection, then immediately begins parent and child record creation.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:30:**Fix** Move the quality gate and reconsolidation decision ahead of the chunking fork, or introduce chunk-aware equivalents that run before `indexChunkedMemoryFile()` mutates storage. At minimum, make the skip explicit in the result payload and logs so operators know large saves are taking a weaker validation path.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:33:**File** `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts`
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:35:**Issue** The handler parses and mutates a `PreparedParsedMemory` object before it acquires the spec-folder lock, then reuses that object later without reparsing or revalidating the file. Any change to the file or relevant DB state while the request is waiting on preflight or the folder mutex can leave the locked phase operating on stale content, stale references, and stale auto-fix output.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/review/iterations/iteration-021.md:37:**Evidence** `handleMemorySave()` parses once for preflight at `memory-save.ts:841-857` and passes that object into `indexMemoryFile()` via `parsedOverride` at `memory-save.ts:952-956`. `indexMemoryFile()` then skips reparsing when `parsedOverride` exists (`memory-save.ts:660-663`). `prepareParsedMemoryForIndexing()` mutates `parsed` outside the lock by applying quality-loop fixes and recomputing `contentHash` at `memory-save.ts:190-203`, but the lock is only acquired later at `memory-save.ts:372`. The quality-loop metadata also closes over the early `database` handle at `memory-save.ts:119-133`, while the locked phase rebinds a fresh DB connection at `memory-save.ts:373`, so the prepared state and commit phase can observe different worlds.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-copilot-C1.md:18:● memory_match_triggers
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/005-intellegix-code-agent-toolkit-master/description.json:20:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/005-intellegix-code-agent-toolkit-master/description.json:21:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:5:  and its SGQS memory integration rather than the folder topic. It references .opencode/.../handlers/sgqs-query.ts,
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:21:  To promote a memory to constitutional tier (always surfaced):
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:24:     memory_update({ id: <memory_id>, importanceTier: 'constitutional' })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:32:     memory_update({ 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:33:       id: <memory_id>, 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:41:     - "Memory files MUST use generate-context.js script"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:103:- [MEMORY METADATA](#memory-metadata)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:130:**Summary:** Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SG...
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:173:**Key Topics:** `system` | `memory` | `skill graph` | `system spec kit/024 sqlite to turso` | `skill` | `graph` | `spec` | `kit/024` | `sqlite` | `turso` | `sgqs` | `analysis` | 
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:186:- **Based on an analysis of the `036-skill-graphs` implementation and its associated** - Based on an analysis of the 036-skill-graphs implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:233:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:235:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:238:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:289:Based on an analysis of the `036-skill-graphs` implementation and its associated scripts, the Skill Graph system and its memory integration consist of an elegant, entirely in-memory graph database (SGQS) that enriches the existing semantic memory pipeline without requiring external infrastructure like Neo4j.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:291:Here is an analysis of how the scripts and the Memory MCP integration work:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:294:The core of the skill graph relies on an in-memory engine (SGQS - Ski
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:444:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:446:**Files:** /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:507:memory_causal_unlink
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:534:memory_causal_unlink (repeated 2 times)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:680:| Memory Not Found | Search returns no results | Check `memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso" })` |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:683:| Dedup Collision | Wrong memory surfaced | Check `fingerprint_hash` for conflicts |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:688:# Check memory index health
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:692:memory_search({ specFolder: "system-spec-kit/024-sqlite-to-turso", limit: 10 })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:694:# Verify memory file integrity
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:695:ls -la system-spec-kit/024-sqlite-to-turso/memory/
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:698:memory_search({ query: "orphaned", anchors: ["state"] })
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:701:node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js system-spec-kit/024-sqlite-to-turso --force
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:707:2. **Load memory context** - Use memory_search to surface prior work
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:716:| Memory File Exists |  |  |
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:763:<a id="memory-metadata"></a>
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:765:## MEMORY METADATA
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:769:> **Machine-Readable Section** - This YAML block is parsed by the semantic memory indexer for search optimization and decay calculations.
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:781:# Memory Classification (v2.2)
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:782:memory_classification:
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:783:  memory_type: ""         # episodic|procedural|semantic|constitutional
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:843:  - "memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:859:  - "in memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:870:  - "skill graph system memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:871:  - "graph system memory integration"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:872:  - "system memory integration consist"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:873:  - "memory integration consist elegant"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:875:  - "consist elegant entirely in-memory"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:876:  - "elegant entirely in-memory graph"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:877:  - "entirely in-memory graph database"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:878:  - "in-memory graph database sgqs"
./.opencode/specs/system-spec-kit/z_future/sqlite-to-turso/scratch/legacy-memory-quarantine/05-03-26_07-56__sqlite-to-turso.md:882:  - "enriches existing semantic memory"
./.opencode/specs/system-spec-kit/z_future/agentic-system-upgrade/001-research-agentic-systems/009-xethryon/research/iterations/iteration-021.md:62:- Should the same UX merge apply to `/memory:*`, or is that surface serving a meaningfully different user need?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:17:- Script-side workflow/indexer uses shared in-memory cache only (scripts/lib/embeddings.ts, 9 lines - just re-exports)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:27:4. .opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts (205 lines)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:33:2. Is the in-memory cache (shared/embeddings.ts) redundant with the SQLite cache?
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:43:mcp: spec_kit_memory starting
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:46:mcp: spec_kit_memory failed: MCP client for `spec_kit_memory` failed to start: MCP startup failed: handshaking with MCP server failed: connection closed: initialize response
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:50:mcp startup: ready: code_mode, cocoindex_code, sequential_thinking; failed: spec_kit_memory
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:61:./.opencode/specs/system-spec-kit/z_archive/020-mcp-working-memory-hybrid-rag/scratch/opencode-working-memory/AGENTS.md
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:90:description: "Unified documentation and context preservation: spec folder workflow (levels 1-3+), CORE + ADDENDUM template architecture (v2.2), validation, and Spec Kit Memory for context preservation. Mandatory for all file modifications."
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:95:<!-- Keywords: spec-kit, speckit, documentation-workflow, spec-folder, template-enforcement, context-preservation, progressive-documentation, validation, spec-kit-memory, vector-search, hybrid-search, bm25, rrf-fusion, fsrs-decay, constitutional-tier, checkpoint, importance-tiers, cognitive-memory, co-activation, tiered-injection -->
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:170:tool cocoindex_code.search({"query":"embedding cache pipeline content to vector DB memory indexer save embedding pipeline importance weighting recency factor","limit":10,"refresh_index":true,"paths":[".opencode/skills/system-spec-kit/**"],"languages":"typescript"})
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:171:cocoindex_code.search({"query":"embedding cache pipeline content to vector DB memory indexer save embedding pipeline importance weighting recency factor","limit":10,"refresh_index":true,"paths":[".opencode/skills/system-spec-kit/**"],"languages":"typescript"}) failed in 1ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:182:The memory MCP doesn’t expose local resources in this session, so I’m proceeding with direct code evidence and CocoIndex for the intent-level search the repo requires. I hit a parameter mismatch on the first semantic search call and am rerunning it with the correct language format.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:183:tool cocoindex_code.search({"query":"embedding cache pipeline content to vector DB memory indexer save embedding pipeline importance weighting recency factor","limit":10,"refresh_index":true,"paths":[".opencode/skills/system-spec-kit/**"],"languages":["typescript"]})
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:184:cocoindex_code.search({"query":"embedding cache pipeline content to vector DB memory indexer save embedding pipeline importance weighting recency factor","limit":10,"refresh_index":true,"paths":[".opencode/skills/system-spec-kit/**"],"languages":["typescript"]}) success in 408ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:202:/bin/zsh -lc "sed -n '1,260p' .opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:204:// MODULE: Memory Indexer
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:208:// 1. MEMORY INDEXER
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:210:// Handles persisting memory files to the vector index: embedding generation,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:267:import type { ParsedMemory } from '../../lib/parsing/memory-parser';
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:271:// Feature catalog: Memory indexing (memory_save)
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:391:/bin/zsh -lc "rg -n \"persistPendingEmbeddingCacheWrite|generateOrCacheEmbedding|indexMemory\\(|importanceWeight|indexMemory\\(\" .opencode/skills/system-spec-kit/mcp_server .opencode/skills/system-spec-kit/scripts" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:394:.opencode/skills/system-spec-kit/mcp_server/schemas/tool-input-schemas.ts:414:  memory_update: ['id', 'title', 'triggerPhrases', 'importanceWeight', 'importanceTier', 'allowPartialUpdate'],
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:395:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-types.ts:27:  importanceWeight?: number;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:396:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:54:async function indexMemory(
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:397:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:122:  const importanceWeight = Math.round((lengthFactor + anchorFactor + recencyFactor + 0.2) * 100) / 100;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:398:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:126:  const memoryId: number = vectorIndex.indexMemory({
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:399:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:132:    importanceWeight: importanceWeight,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:400:.opencode/skills/system-spec-kit/scripts/core/workflow.ts:2401:        memoryId = await indexMemory(
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:401:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts:52:  importanceWeight: number;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:402:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts:68:  importanceWeight: number;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:403:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts:381:        importanceWeight: r.importanceWeight,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:404:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts:407:      importanceWeight: r.importanceWeight
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:408:.opencode/skills/system-spec-kit/mcp_server/tests/unit-normalization.vitest.ts:99:    expect(memory.importanceWeight).toBe(0.85);
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:409:.opencode/skills/system-spec-kit/mcp_server/tests/unit-normalization.vitest.ts:140:    expect(memory.importanceWeight).toBe(0.5);
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:410:.opencode/skills/system-spec-kit/mcp_server/tests/unit-normalization.vitest.ts:208:    expect(memory.importanceWeight).toBe(0.85);
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:413:/bin/zsh -lc "rg -n \"indexMemory\\(|class VectorIndex|vectorIndex|importance_weight|importanceWeight|embedding_status|embedding\" .opencode/skills/system-spec-kit/mcp_server .opencode/skills/system-spec-kit/shared .opencode/skills/system-spec-kit/scripts/core .opencode/skills/system-spec-kit/scripts/lib" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:424:.opencode/skills/system-spec-kit/mcp_server/context-server.ts:694:      if (vectorIndex.deleteMemory(row.id)) {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:437:   100	  parsed: ReturnType<typeof memoryParser.parseMemoryFile>,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:442:   105	  scope: MemoryScopeMatch = {},
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:445:   108	    console.error(`[memory-save] Using deferred indexing for ${path.basename(filePath)}`);
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:479:/bin/zsh -lc "rg -n \"function indexMemory|function index_memory|indexMemory\\(\" .opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index*.ts" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:480:.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts:140:export function index_memory(params: IndexMemoryParams): number {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:481:.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts:252:export function index_memory_deferred(params: IndexMemoryDeferredParams): number {
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:483:/bin/zsh -lc "nl -ba .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts | sed -n '500,640p'" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:513:     8	  MAX_TRIGGERS_PER_MEMORY,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:520:    15	  MemoryIndexRow,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:521:    16	  IndexMemoryParams,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:522:    17	  UpdateMemoryParams,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:544:   136	 * Indexes a memory with an embedding payload.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:545:   137	 * @param params - The memory values to index.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:546:   138	 * @returns The indexed memory identifier.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:581:/bin/zsh -lc 'rg -n "calculateDocumentWeight|importanceWeight|importance tier|importance_weight|weight" .opencode/skills/system-spec-kit/mcp_server/handlers/save .opencode/skills/system-spec-kit/mcp_server/handlers .opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts .opencode/skills/system-spec-kit/shared' in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Public succeeded in 0ms:
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:582:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:64:  const weightedEmbeddingInput = buildWeightedDocumentText(
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:583:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:70:  const embedding = await generateDocumentEmbedding(weightedEmbeddingInput);
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:584:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:122:  const importanceWeight = Math.round((lengthFactor + anchorFactor + recencyFactor + 0.2) * 100) / 100;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:585:.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:132:    importanceWeight: importanceWeight,
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:586:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-types.ts:27:  importanceWeight?: number;
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:592:.opencode/skills/system-spec-kit/mcp_server/handlers/save/embedding-pipeline.ts:150:        const weightedInput = embeddings.buildWeightedDocumentText(buildParsedMemoryWeightedSections(parsed));
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:600:.opencode/skills/system-spec-kit/shared/scoring/README.md:33:Computes **composite relevance scores** for spec folders based on their memories. Used by `memory_stats` to rank folders by how relevant they are to the current session. The primary use case is **"resume recent work"**, which is why recency carries the highest weight.
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:618:    72	 * memory -> 0.5, scratch -> 0.25
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:669:.opencode/skills/system-spec-kit/mcp_server/handlers/memory-ingest.ts:261:        hint: 'Verify the jobId and retry.',
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:693:/bin/zsh -lc "nl -ba .opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-update.ts | sed -n '80,170p'" in /Users/michelkerkmeester/MEGA/Development/Opencode Env/Publicexec
./.opencode/specs/system-spec-kit/022-hybrid-rag-fusion/002-indexing-normalization/scratch/agent-output-iter-002-codex-A2.md:696:    81	  const priorSnapshot = getMemoryHashSnapshot(database, id/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:33:V12 | .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/020-post-release-fixes/memory/27-03-26_17-07__implemented-segment-3-of-the-canonical-012-review.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:34:V12 | .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/memory/28-03-26_13-00__planned-a-20-iteration-deep-research-review-audit.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:35:V12 | .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/memory/28-03-26_14-25__completed-30-iteration-deep-research-review-audit.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:36:V12 | .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/memory/28-03-26_17-20__phase-9-p2-triage-complete-5-parallel-gpt-5-4.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:37:V12 | .opencode/specs/system-spec-kit/022-hybrid-rag-fusion/026-memory-database-refinement/memory/29-03-26_09-35__phase-12-meta-review-remediation-fixed-all-29.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:38:V12 | .opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/006-review-remediation/memory/30-03-26_11-47__phase-6-complete-all-18-findings-from-10.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:39:V12 | .opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/007-hybrid-search-null-db-fix/memory/30-03-26_17-26__fixed-two-critical-bugs-causing-the-spec-kit.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:40:V2, V8 | .opencode/specs/system-spec-kit/z_archive/001-fix-command-dispatch/z_archive/070-memory-ranking/memory/16-01-26_12-27__memory-ranking.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:41:V6, V8 | .opencode/specs/03--commands-and-skills/015-cmd-create-changelog/memory/01-03-26_14-30__create-changelog-command.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:42:V12 | .opencode/specs/03--commands-and-skills/033-skill-command-readme-rewrite/memory/26-03-26_11-02__created-spec-folder-033-for-rewriting-23-readmes.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:43:V8, V12 | .opencode/specs/03--commands-and-skills/033-skill-command-readme-rewrite/memory/26-03-26_12-47__implemented-spec-033-rewrote-all-23-skill-and.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:44:V12 | .opencode/specs/03--commands-and-skills/033-skill-command-readme-rewrite/memory/26-03-26_13-24__reviewed-all-23-spec-033-readmes-using-5-parallel.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:45:V12 | .opencode/specs/03--commands-and-skills/034-sk-deep-research-review-folders/memory/27-03-26_11-52__applied-the-post-review-remediation-for-034-sk.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/research/hard-block-memories.txt:46:V8 | .opencode/specs/04--agent-orchestration/z_archive/005-agent-system-improvements/memory/27-01-26_11-24__agent-system-improvements.md
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:2:title: "Implementatio [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:5:  - "memory save implementation summary"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:11:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:32:| **Spec Folder** | 012-memory-save-quality-pipeline |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md:56:| `scripts/lib/validate-memory-quality.ts` | Modified | Structured sibling-phase contamination handling |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/12-breadcrumb-folder.md:6:MEMORY:SEARCH  "semantic search"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/12-breadcrumb-folder.md:12:  6.07  #1263  Graph Memory Survey [22/89] · 007-graph-memory
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/12-breadcrumb-folder.md:13:  5.98  #1315  Graph Memory Survey [55/89] · 007-graph-memory
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:10:1. **Auto-surface is fully hookless at the MCP layer.** The auto-surface system (`hooks/memory-surface.ts`) runs inside the MCP server's context-server dispatch middleware -- it fires on every non-memory-aware tool call without requiring any external Claude Code hook. Constitutional memories (cached 1-minute TTL, limit 10) and trigger-matched memories are surfaced automatically. Token budget enforcement (4000 tokens for tool-dispatch, 4000 for compaction) uses `estimateTokenCount()` with graceful truncation (triggered memories dropped first, then constitutional). [SOURCE: hooks/memory-surface.ts:273-314, context-server.ts:735-765]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:12:2. **Session priming (T018 Prime Package) works without hooks.** On the first tool call of any session, `primeSessionIfNeeded()` fires automatically. It returns a structured `PrimePackage` containing: specFolder, currentTask (derived from input/query/prompt args), codeGraphStatus (fresh/stale/empty), cocoIndexAvailable (boolean), and recommendedCalls (array of suggested next actions). This is a complete hookless bootstrap pathway. [SOURCE: hooks/memory-surface.ts:317-424]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:16:4. **Goal refinement works but has a design limitation: the goal is always set to the current query.** In `memory-search.ts:729`, `activeGoal` is set to `effectiveQuery` on every search call. This means the "goal" changes with each query rather than persisting a high-level session intent. The goal alignment algorithm uses simple keyword overlap (`computeGoalAlignment`) -- splitting goal into words >2 chars and checking substring presence in content. Maximum boost is 1.2x. This works for consecutive related searches but provides no benefit for diverse multi-query sessions. [SOURCE: handlers/memory-search.ts:728-743, lib/search/session-state.ts:298-387]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:18:5. **Cross-turn deduplication is working.** The session state manager tracks seen result IDs via `markSeen()` and applies a 0.3x score multiplier to previously-seen results (deprioritize, not remove). Sessions are ephemeral (in-memory only), with 30-minute inactivity TTL and LRU eviction at 100 concurrent sessions. The `markSeen` call path exists in the compiled vitest output, confirming it is wired into the search handler. [SOURCE: lib/search/session-state.ts:241-291, handlers/memory-search.ts:731]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:20:6. **Auto-surface at compaction and tool-dispatch are dual-scope.** The system has two auto-surface paths: (a) `autoSurfaceAtCompaction()` fires when context-server detects a compaction event, surfacing memories relevant to the session state, and (b) `autoSurfaceAtToolDispatch()` fires on every non-memory tool call, extracting context hints from tool arguments (input/query/prompt/specFolder/concepts fields). Both paths share the same core `autoSurfaceMemories()` function. Neither requires external hooks. [SOURCE: hooks/memory-surface.ts:453-516, context-server.ts:740-760]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:24:7. **Goal alignment uses naive keyword matching with no stemming or semantic similarity.** The `computeGoalAlignment()` function splits the goal into words >2 chars, lowercases them, and checks if each word appears as a substring in the content. This means "architecture" would match "architecture" but not "architectural". It does not use stemming, lemmatization, or embedding similarity. For a memory system with full embeddings available, this is a missed optimization. [SOURCE: lib/search/session-state.ts:298-321]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:28:9. **Constitutional memory limit of 10 may be insufficient for larger projects.** The `getConstitutionalMemories()` query has `LIMIT 10` hardcoded. Projects with many constitutional memories (e.g., multiple skill systems, multi-agent setups) may silently lose critical constitutional context. There is no warning when the limit is hit, and no ordering beyond `created_at DESC` (newest first, which may not be the most important). [SOURCE: hooks/memory-surface.ts:155-162]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:30:10. **Session state `openQuestions` and `preferredAnchors` are tracked but appear unused in the search pipeline.** The `SessionStateManager` has `addQuestion()` and `setAnchors()` methods, and `setAnchors` is called from memory-search.ts. However, neither `openQuestions` nor `preferredAnchors` appear to influence search results, ranking, or response formatting. They are tracked but dead code from a search quality perspective. [SOURCE: lib/search/session-state.ts:140-159, handlers/memory-search.ts:733-734]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:32:11. **Auto-surface p95 latency warning is 250ms but there is no degradation fallback.** The context-server logs a warning when auto-surface exceeds 250ms, but there is no circuit-breaker or timeout to prevent blocking the tool response. If constitutional memory queries or trigger matching become slow (e.g., large trigger index), every non-memory tool call would be delayed. [SOURCE: context-server.ts:764-765]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:42:- `hooks/memory-surface.ts` -- Auto-surface, session priming, Prime Package
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:45:- `handlers/memory-search.ts:700-820` -- Goal/dedup wiring in search handler
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-004.md:54:- What worked and why: Reading the three core modules (memory-surface.ts, progressive-disclosure.ts, session-state.ts) in sequence provided a complete picture of the UX layer. The code is well-documented with clear module headers.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/review/deep-review-dashboard.md:3:- Phase: `008-spec-memory-compliance-audit`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/review/deep-review-dashboard.md:14:- Phase: `008-spec-memory-compliance-audit`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:1:{"iteration":6,"dimension":"correctness","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":0,"p2":0},"notes":"No active findings for this iteration."}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:2:{"iteration":7,"dimension":"traceability","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:3:{"iteration":8,"dimension":"completeness","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":0,"p2":0},"notes":"No active findings for this iteration."}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:4:{"iteration":9,"dimension":"synthesis","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:5:{"iteration":10,"dimension":"correctness","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":0,"p2":0},"notes":"No active findings for this iteration."}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:6:{"iteration":11,"dimension":"traceability","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:7:{"iteration":12,"dimension":"completeness","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":0,"p2":0},"notes":"No active findings for this iteration."}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-state.jsonl:8:{"iteration":13,"dimension":"synthesis","status":"complete","runDate":"2026-04-02","phase":"012-memory-save-quality-pipeline","verdict":"CONDITIONAL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/description.json:21:  "memorySequence": 1,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/description.json:22:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/description.json:23:    "01-04-26_19-35__diagnosed-and-fixed-memory-search-0-results-bug.md"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/001-shared-esm-migration/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/001-shared-esm-migration/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-035.md:9:3. The highest-leverage small changes are: stronger short-form drop wrappers for phrases like `captured file count`, `tool executions`, and `repository state`; a clearer research-versus-metadata distinction when `_memory.continuity` vocabulary appears inside analytical finding prose; and one additional guard so spec-doc nouns do not automatically push progress text into `research_finding`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:385] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:409] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:417] [INFERENCE: synthesis across preserved replay and residual error cases]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:47:- [x] T001 Trace `memory_search("Semantic Search")` through full pipeline, log each stage output (`scratch/diagnosis-trace.md`) [EVIDENCE: 5 results returned (not 0), confidence 0.341, 650ms pipeline, all stages traced]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:69:- [x] T014 Verify community summaries are searchable via memory_search [EVIDENCE: community_summaries table exists with summaries; searchCommunities() tested (5/5 pass); community-search.ts wired into memory-search.ts handler; requires MCP server restart for live test]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:81:- [x] T018 Add community-level search as fallback channel — `lib/search/community-search.ts` created with searchCommunities(), gated by SPECKIT_COMMUNITY_SEARCH_FALLBACK, wired into memory-search.ts post-pipeline [EVIDENCE: community-search.ts, tests/community-search.vitest.ts 5/5 pass]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:82:- [x] T019 Add dual-level retrieval mode parameter — `retrievalLevel: 'local' | 'global' | 'auto'` added to SearchArgs, gated by SPECKIT_DUAL_RETRIEVAL, community fallback applied on auto/global mode [EVIDENCE: memory-search.ts, search-flags.ts]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:93:- [x] T025 Add `graphEvidence` field to search result type — added to PipelineRow in types.ts and MemoryResultEnvelope in search-results.ts [EVIDENCE: types.ts:47, formatters/search-results.ts:155]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:97:- [x] T029 graphEvidence included in formatted memory_search response via search-results.ts [EVIDENCE: formatters/search-results.ts:486-490]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:106:- [x] T033 Add usage counter to memory records — `lib/graph/usage-tracking.ts` (4.1KB): ensureUsageColumn(), incrementAccessCount(), getAccessCount() [EVIDENCE: file created]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:123:- [x] T041 **[025]** After Phase B, add community search to `PrimePackage.routingRules` [EVIDENCE: memory-surface.ts — routingRules field with graphRetrieval and communitySearch added to PrimePackage interface and buildPrimePackage()]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:125:- [x] T043 **[025]** Ensure `../../../../../skill/system-spec-kit/constitutional/gate-tool-routing.md` constitutional memory includes graph retrieval routing rules [EVIDENCE: `../../../../../skill/system-spec-kit/constitutional/gate-tool-routing.md` contains the routing decision tree, retrieval levels, and graph feature flags]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:135:- [x] `memory_search("Semantic Search")` returns relevant results (5 results with concept routing enhancement)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/tasks.md:149:- **Prior Research**: See `../007-external-graph-memory-research/research/research.md`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:14:    "system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:18:    "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:69:      "mcp_server/handlers/memory-save.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:70:      "mcp_server/handlers/memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:73:      "scripts/memory/generate-context.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:76:      "scripts/dist/memory/generate-context.js",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:142:        "name": "memory-save.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:144:        "path": "mcp_server/handlers/memory-save.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:148:        "name": "memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:150:        "path": "mcp_server/handlers/memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:166:        "name": "generate-context.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:168:        "path": "scripts/memory/generate-context.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:178:        "name": "generate-context.js",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/graph-metadata.json:180:        "path": "scripts/dist/memory/generate-context.js",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:12:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:17:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:52:- [x] T004 Apply Design 10 (folder-as-tree-group) to search command (`.opencode/commands/memory/search.md`)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:53:- [x] T005 Apply Design 10 to agent command definition (`.agents/commands/memory/search.toml`)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:54:- [x] T006 Audit all server entrypoints for `MEMORY_DB_PATH` usage — list entrypoints that do not pass `MEMORY_DB_PATH` to the DB init path
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:65:- [x] T008 Add mandatory `MEMORY_DB_PATH` validation at entrypoints — fail-closed (process.exit / throw) if absent or file missing (`mcp_server/context-server.ts` and all entry files)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:73:- [x] T013 Add startup health check: query `memory_index` row count and `active_memory_projection` row count at server init; log counts
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:74:- [x] T014 Trigger `runLineageBackfill()` when `memory_index` has rows but `active_memory_projection` is empty (`mcp_server/core/db-state.ts` or init sequence)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:93:- [x] T023 [P] Run multi-word MCP search; confirm FTS5 and vector results both present in response [Evidence: memory_search("semantic search") returned 5 results via hybrid pipeline, 812ms]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:94:- [x] T024 [P] Test server startup with `MEMORY_DB_PATH` unset; confirm explicit error / non-zero exit [Evidence: resolve_database_path() falls back to DEFAULT_DB_PATH; context-server.ts logs path at line 1372]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/tasks.md:96:- [x] T026 Test startup health check: confirm `runLineageBackfill()` is triggered when `active_memory_projection` is empty and `memory_index` has rows [Evidence: context-server.ts lines 1368-1374 init sequence]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:3:  "packet_id": "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:4:  "spec_folder": "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:14:      "memory save quality",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:16:      "generate-context pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:18:      "memory save quality plan",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:20:      "memory save quality tasks",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:22:      "memory save checklist",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:25:      "memory save quality decisions"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:28:      "memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:33:      "generate-context",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:48:      "scripts/lib/validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:84:        "name": "validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:86:        "path": "scripts/lib/validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:144:        "name": "Memory Save Quality Pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/graph-metadata.json:204:    "causal_summary": "This phase addresses structured-input (`--json`/`--stdin`) quality regressions in memory save generation where normalization and extraction assumptions caused thin, low-value output. The work standardizes normalization, synthesis, quality scoring, and contamination handling for structured flows while preserving transcript-mode behavior.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-dashboard.md:1:# Deep Review Dashboard — 012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-dashboard.md:4:- **Review Target**: 012-memory-save-quality-pipeline (spec-folder)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-dashboard.md:46:- Phase: `012-memory-save-quality-pipeline`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/01-compact-type-first.md:6:MEMORY:SEARCH  "semantic search"  understand  10 found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/01-compact-type-first.md:11:  6.07  #1263  Graph Memory Survey [22/89]  007-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/01-compact-type-first.md:12:  5.98  #1315  Graph Memory Survey [55/89]  007-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/01-compact-type-first.md:13:  5.94  #1355  Graph Memory Survey [85/89]  007-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/01-compact-type-first.md:15:  5.88  #1285  Graph Memory Survey [37/89]  007-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:15:However, there is a major caveat in this repository: the checked-in MCP launch configs explicitly set `MEMORY_DB_PATH` to the legacy `context-index.sqlite`, which should pin both vector and FTS to that legacy file and bypass provider-derived path selection. So the "startup on legacy -> later rebind to provider DB" sequence is absolutely supported by the code, but under the checked-in launcher config it should only happen if the runtime is not actually using that config, or if `MEMORY_DB_PATH` is temporarily overridden in-process.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:252:- inside individual handlers such as `memory-search.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:270:[SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:399-403`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:276:Yes, **if `MEMORY_DB_PATH` is not pinning the DB path**.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:307:"MEMORY_DB_PATH": ".opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:315:Since `vector-index-store.ts` resolves the DB path by checking `process.env.MEMORY_DB_PATH` first:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:318:if (process.env.MEMORY_DB_PATH) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:319:  return process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:333:With the checked-in `MEMORY_DB_PATH` setting, that timing sequence should be blocked, because the DB path is pinned to `context-index.sqlite`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:338:- or `MEMORY_DB_PATH` was absent/overridden in that runtime
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:345:## 10. Is `MEMORY_DB_PATH` ever changed in-process?
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:349:I found one real in-process mutation path in `handlers/eval-reporting.ts`, which temporarily swaps `MEMORY_DB_PATH` to an override DB, then restores it:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:352:const previousMemoryDbPath = process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:354:process.env.MEMORY_DB_PATH = overrideDbPath;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:357:if (previousMemoryDbPath === undefined) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:358:  delete process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:360:  process.env.MEMORY_DB_PATH = previousMemoryDbPath;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:365:That proves the process can intentionally swap DBs by changing `MEMORY_DB_PATH` and reinitializing.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:367:I did **not** find ordinary startup logic in `context-server.ts` that rewrites `MEMORY_DB_PATH`. The main normal reads are path-resolution sites such as:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:373:So for normal search traffic, the most relevant question is whether the runtime was launched with `MEMORY_DB_PATH` set at all.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:390:But the checked-in MCP configs in this repo explicitly set `MEMORY_DB_PATH=context-index.sqlite`, which should prevent provider-profile DB switching in a correctly launched runtime. That means the strongest static-code conclusion is:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-09.md:392:> the "FTS also becomes 0 after rebind" mechanism is real, but if it happened in the observed failing session, the runtime likely was not honoring the checked-in `MEMORY_DB_PATH` pin, or that env var was temporarily overridden.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:51:The `/memory:search` output groups results by spec folder using leaf folder names (Design 10: folder-as-tree-group). Paths are no longer rendered at full length, making results scannable. Applied to both `.opencode/commands/memory/search.md` and `.agents/commands/memory/search.toml`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:77:| `.opencode/commands/memory/search.md` | Modified | Design 10 dashboard applied |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:78:| `.agents/commands/memory/search.toml` | Modified | Design 10 dashboard applied |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:79:| `mcp_server/handlers/memory-context.ts` | Modified | P0: folder discovery no longer promotes to specFolder filter |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:90:All fixes applied directly to TypeScript source, compiled with `bun run build` (1210+ dist files), and verified at runtime. `memory_search("semantic search")` confirmed returning 5 results via hybrid pipeline (vector + keyword channels, cross-encoder reranking) in 812ms. Root cause investigation: 10 deep-research iterations + 10 deep-review iterations via Copilot CLI GPT 5.4 (documented in `scratch/`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:102:| Fail-closed on missing `MEMORY_DB_PATH` (Item 3, pending) | Silent fallback to a derived path is the source of the drift bug; fail-closed prevents the same class of error recurring |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:120:| Runtime: memory_search returns results | PASS — 5 results, 812ms, hybrid pipeline |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/implementation-summary.md:121:| P0: memory_context focused mode returns results | PASS — 5 candidates found (was 0); folder discovery no longer filters |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:24:**Tier 1 -- Stage 1 is MANDATORY**: If candidate generation fails, the entire pipeline throws `MemoryError('PIPELINE_STAGE1_FAILED')`. There is no fallback because there are no candidates to work with.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:65:- `PRAGMA cache_size` (defaults to -2000 = ~2MB, adequate for typical memory databases)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:78:- `SPECKIT_MEMORY_ROADMAP_PHASE` (default: shared-rollout)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:79:- `SPECKIT_MEMORY_GRAPH_UNIFIED` (default: true)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:104:- **Auto-surface in memory-surface.ts**: Prior iterations noted the absence of a latency circuit breaker for auto-surface (P2 item from iteration 4). Auto-surface fires on every non-memory tool call. If search is slow (e.g., embedding API down), every tool call pays the penalty.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:153:- What I would do differently: For a future cross-cutting analysis, I would also check for memory leak patterns (Map caches without eviction, growing arrays) since the cross-encoder latencyTracker and cache Map both accumulate state. The latencyTracker has MAX_LATENCY_SAMPLES=100 with shift() (bounded), and the cache has TTL=300000 but no explicit size limit (potential slow leak for high-volume usage).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-014.md:160:2. Memory leak surface area: are there other unbounded Maps or arrays in the search pipeline?
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:9:- the `active_memory_projection` join still left 1701 active vector rows?
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:34:- `memory_index = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:35:- `active_memory_projection = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:69:SELECT COUNT(*) FROM memory_index WHERE embedding_status = "success";
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:181:SELECT COUNT(*) FROM vec_memories vm JOIN active_memory_projection p ON p.active_memory_id = vm.rowid;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:268:  if (process.env.MEMORY_DB_PATH) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:269:    return process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:335:- `memory_index = 1728`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:336:- `active_memory_projection = 1708`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:342:- `memory_index = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:343:- `active_memory_projection = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:383:- `memory_index WHERE embedding_status='success'` = `1728`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-07.md:416:   - force one canonical DB path via `MEMORY_DB_PATH`, or
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-004.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-004.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/description.json:19:  "memorySequence": 2,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/description.json:20:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:7:1. Whether `isFtsAvailable()` could be returning `false` because the `memory_fts` table is actually missing or empty.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:17:- Otherwise it runs `SELECT name FROM sqlite_master WHERE type='table' AND name='memory_fts'`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:33:1. `SELECT name FROM sqlite_master WHERE type='table' AND name='memory_fts'`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:34:   - Returned: `memory_fts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:35:2. `SELECT COUNT(*) FROM memory_fts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:38:So the concrete on-disk database file currently in use **does contain** the `memory_fts` table, and it is **not empty**.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:42:For this database file, a `false` result from `isFtsAvailable()` is **not explained** by a missing or empty `memory_fts` table.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-02.md:196:1. The inspected `context-index.sqlite` file is not missing `memory_fts`.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-001.md:13:- Historical save-log mining. The packet scope and current memory model explicitly require synthetic payloads instead.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:1:# Deep Review Strategy: 012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:4:- **Target**: 012-memory-save-quality-pipeline (6 recommendations, 9 files, 253 LOC)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:6:- **Spec Folder**: .opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:24:- scripts/lib/validate-memory-quality.ts (Rec 5: V8 sibling allowlist)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:54:- **P2-005**: resolveSpecFolderPath walks entire directory tree from cwd to filesystem root (security, validate-memory-quality.ts:498-531)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:55:- **P2-006**: Sibling scan adds all matching directories from parent without depth limit (security, validate-memory-quality.ts:562-583)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:94:Implementation completed in current session. 4 parallel agents executed Waves 1-4. TypeScript compiles with zero errors. Memory save achieved 100/100 quality score (was 0/100 pre-fix). No automated tests written yet (deferred to P3).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-review-strategy.md:106:- Review target: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-06.md:22:- `SELECT COUNT(*) FROM memory_fts WHERE memory_fts MATCH "semantic"` -> **337**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-06.md:437:- `SELECT COUNT(*) FROM memory_fts WHERE memory_fts MATCH "semantic"` -> **337**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:23:1. `MEMORY_DB_PATH` env override, if set
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:48:- `memory_index = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:49:- `active_memory_projection = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:78:if (process.env.MEMORY_DB_PATH) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:79:  return process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:234:in `memory-search.ts`, and:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:260:[SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:399-403`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:263:[SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:39-44`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:338:- `memory_index = 1728`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:339:- `active_memory_projection = 1708`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:345:- `memory_index = 0`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-08.md:346:- `active_memory_projection = 0`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:7:1. The production seam is still one unresolved constructor call. `createContentRouter()` already accepts `classifyWithTier3` and `cache`, and `resolveTier3Decision()` already consumes both, but `memory-save.ts` still creates the router with no dependencies at line `1008`. That leaves Tier 3 permanently stubbed to `null` in production. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:231] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:386] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:9:3. The smallest realistic production diff is about `90-130` LOC. A thin OpenAI-compatible call helper modeled on `callLlmForReformulation()` is roughly `45-60` LOC, a small session/spec-folder cache wrapper is another `20-30` LOC, env/response plumbing is about `10-20` LOC, and the actual injection at `memory-save.ts:1008` is only `8-15` LOC. If the phase also introduces routing-specific env names instead of reusing an existing OpenAI-compatible endpoint contract, the diff moves toward the high end of that range. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:200] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [INFERENCE: line-count estimate based on the existing helper shape and the missing seams]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:10:4. The test cost is separate and non-trivial: expect another `70-100` LOC across router and handler tests. `content-router.vitest.ts` already covers classifier injection, cache hits, below-floor refusals, and Tier 2 fallback, so phase `003` mostly needs adapter-path assertions. `handler-memory-save.vitest.ts` needs at least one natural-routing atomic-save case with no `routeAs`, one null/timeout fallback case, and one cache-reuse case that proves the real save path can reach Tier 3 without changing canonical outputs. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:212] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:338] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:22:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:23:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-023.md:32:- What did not work and why: Looking only at `memory-save.ts:1008` still underestimates the missing cache and env-contract work.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-03.md:9:3. How `memory_search` invokes the pipeline.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-03.md:16:### 1. `memory_search` does **not** use the query router to choose `searchType`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-03.md:18:`memory_search` builds `PipelineConfig` directly and sets:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-03.md:27:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts:684-721`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-03.md:235:1. `memory_search` chose the Stage 1 `hybrid` branch at the pipeline level.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:3:description: "5-phase implementation of 8 graph memory improvements: diagnosis, community summaries, retrieval enhancement, provenance, and maintenance features."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:48:Traced `memory_search("Semantic Search")` through the full 4-stage pipeline. Key finding: prior fixes brought results from 0 to 5, but quality remains "weak" (confidence 0.341). All 8 planned improvements confirmed needed.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:51:- **community-summaries.ts** (336 lines): Template-based community summary generation. Groups memory nodes by community, extracts top topics from titles, generates readable summaries, stores in SQLite `community_summaries` table.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:61:- **Dual-level retrieval**: `retrievalLevel: 'local' | 'global' | 'auto'` parameter on memory_search — auto mode falls back to community search on weak results, gated by `SPECKIT_DUAL_RETRIEVAL`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:65:- **graphEvidence** field added to `PipelineRow` (types.ts) and `MemoryResultEnvelope` (search-results.ts)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/implementation-summary.md:125:| `handlers/memory-search.ts` | B | +retrievalLevel parameter, community fallback |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-05.md:171:`ftsSearch()` short-circuits to `[]` if `db` is missing or `memory_fts` is unavailable, and otherwise catches any query failure and returns `[]`. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts:426-437`] [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts:446-471`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-05.md:173:From prior iterations, we already know `db` is present and `memory_fts` exists, so the most likely remaining FTS-empty case is simply "no lexical matches for this query" rather than missing infrastructure.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:19:4. **Recency boost uses exponential decay with a 365-day half-life.** The formula `freshness = exp(-ageDays / 365)` with `RECENCY_BOOST_SCALE = 0.1` means a 1-day-old memory gets +0.01 boost, a 30-day-old gets +0.0092, and a 365-day-old gets +0.0037. This is extremely conservative -- the maximum recency boost (for a just-created memory with recencyWeight=0.2) is only 0.02. Post-boost renormalization to [0,1] further compresses scores.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:30:7. **Code Graph (structural code indexer) is SEPARATE from the causal memory graph.** The Code Graph (`lib/code-graph/code-graph-db.ts`) stores parsed code structure (functions, classes, imports, calls) in `code-graph.sqlite`. It has its own tables (`code_files`, `code_nodes`, `code_edges`). This is NOT the same as the causal memory graph used in the search pipeline (which uses `causal_edges` in the memory index DB).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:33:8. **Code Graph does NOT feed into memory search pipeline.** No imports or references to Code Graph exist in the `lib/search/pipeline/` directory. The Code Graph is exposed via separate MCP tools (`code_graph_scan`, `code_graph_query`, `code_graph_context`) and serves a different purpose: structural code navigation (call graphs, import chains, symbol outlines) rather than memory retrieval.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:36:9. **CocoIndex is completely separate from memory search.** CocoIndex is an external semantic code search tool with its own MCP server (`cocoindex_code`). It does not feed results into the memory search pipeline at all. The `code_graph_context` tool can accept CocoIndex results as "seeds" (via `provider: "cocoindex"` in the seeds array), but this is a bridge for the Code Graph context tool, not the memory search system.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:39:10. **The memory search pipeline's "graph signals" come from the causal memory graph, not Code Graph.** In stage2-fusion.ts, graph signals are applied via four distinct mechanisms: (a) causal boost (2-hop traversal on causal_edges, line 795), (b) co-activation spreading (line 820), (c) community detection/injection (line 862), (d) graph signals N2a+N2b momentum+depth (line 908). All gated by `isGraphUnifiedEnabled()`. These read from `causal_edges` in the memory DB, not from `code-graph.sqlite`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:42:11. **Graph bonus is tightly capped at 0.03 per row in stage2.** The `STAGE2_GRAPH_BONUS_CAP = 0.03` in `ranking-contract.ts` means no single memory can gain more than +0.03 from graph signals in stage2. This is extremely conservative -- on a 0-1 score scale, the graph can only move a result by 3%. With additional graph calibration profile enabled, this may be further adjusted but the cap remains the hard upper bound.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:57:- CocoIndex feeding into memory search -- confirmed architecturally separate
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:58:- Code Graph DB contributing to memory search fusion -- separate DB and tool surface
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-005.md:78:- Questions answered: Q9 (adaptive fusion fully characterized with 3 refinement opportunities), Q10 (Code Graph and CocoIndex are separate systems; memory graph is the search-pipeline contributor)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-005.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-005.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/description.json:22:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/description.json:23:  "memoryNameHistory": [],
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:2:  "topic": "Review: 012-memory-save-quality-pipeline implementation",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:4:  "reviewTarget": "012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:15:    ".opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:17:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/spec.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:18:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/plan.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:19:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:20:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:21:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:22:    ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/decision-record.md"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-config.json:27:  "specFolder": ".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/implementation-summary.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/implementation-summary.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:1:# Deep Research Strategy: Memory Save Quality Pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:18:- [x] **How can V8 contamination filter distinguish same-parent phase refs from genuine cross-spec contamination?** — Add upward sibling walk in extractAllowedSpecIds() + source-aware scattered threshold relaxation for JSON-mode + explicit relatedSpecs allowlist from JSON payload. ~15 LOC in validate-memory-quality.ts. (Iterations 009, 013)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:25:- [x] **What is the minimum viable JSON payload that should produce >= 50/100 quality memory?** -- sessionSummary (200+ chars) + 2 keyDecisions = projected 50-60/100. With 4 observations: 68-92 raw, 55-75 effective. MVP fix (Items 1+2+3, ~97 LOC) achieves this. (Iteration 020)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:31:- **Iteration 006**: Reading generate-context.ts first to understand CLI entry points, then tracing into data-loader.ts and input-normalizer.ts, revealed the --json path bypasses data-loader entirely.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:32:- **Iteration 009**: Complete file read of validate-memory-quality.ts (998 lines) yielded full V1-V14 rule inventory with JSON-mode risk assessment per rule.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:36:- **Iteration 013**: Direct code reading of validate-memory-quality.ts revealed exact V8 detection algorithm and extractAllowedSpecIds() gap.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:107:- 47 DenylistEntry patterns (14 high, 12 medium, 21 low); V8 is NOT a denylist pattern but a validation rule in validate-memory-quality.ts
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:110:- V8 allowlist fallback for missing spec_folder frontmatter at validate-memory-quality.ts:627-638
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:129:- JSON-mode normalization covered by runtime-memory-inputs.vitest.ts (snake_case, FILES, nextSteps, importanceTier)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-strategy.md:150:- extractFilesFromData caps FILES at MAX_FILES_IN_MEMORY=10 (config.ts:232) -- this cap does NOT apply to KEY_FILES in buildKeyFiles()
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/graph-metadata.json:199:        "name": "The Spec Kit Memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/009-graph-retrieval-improvements/graph-metadata.json:211:    "causal_summary": "The Spec Kit Memory graph has 3,854 causal edges at 79.92% coverage but is underutilized: `memory_search(\"Semantic Search\")` returns 0 results, graph signals are invisible to users, and the graph fires only reactively via causal boost. Phase 007 surveyed 7 external graph memory systems and produced a 12-item ranked improvement backlog. This spec implements the top 8 improvements across 4 dependency-ordered phases.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-01.md:14:- `isFtsAvailable()` also depends on the same `db` handle to query `sqlite_master` for `memory_fts` in `.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts:426-433`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-01.md:65:3. Verify whether the runtime process handling the failing request is entering `main()` and reaching `.opencode/skills/system-spec-kit/mcp_server/context-server.ts:1448` before the first memory search request.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:36:**Scope Boundary**: Document the shipped lifecycle test boundary. The suite uses real in-memory SQLite state and real adaptive ranking logic, while mocking runtime dependencies outside that boundary.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:73:The lifecycle suite existed, but the docs overstated what it covered. The shipped file uses real in-memory SQLite state and real adaptive ranking logic, yet it still mocks a small set of runtime dependencies such as embedding readiness, boost flags, and `executePipeline()`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:86:- Real `better-sqlite3` `:memory:` state created in `beforeEach`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:114:| REQ-001 | Real SQLite state drives the suite | `beforeEach` opens `new Database(':memory:')` and calls `ensureAdaptiveTables(db)` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:129:**Given** a fresh in-memory database, **when** the full lifecycle case seeds access, outcome, and correction rows, **then** proposal, evaluation, tuning, and reset all run on real SQLite state.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/spec.md:172:- **NFR-P02**: Real SQLite state must remain in-memory only
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:15:- `SPECKIT_MEMORY_ROADMAP_PHASE` (default: shared-rollout)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:16:- `SPECKIT_MEMORY_GRAPH_UNIFIED` (default: true)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:28:SPECKIT_CLASSIFICATION_DECAY, SPECKIT_COACTIVATION, SPECKIT_COACTIVATION_STRENGTH, SPECKIT_COMMUNITY_DETECTION, SPECKIT_CONSOLIDATION, SPECKIT_EVENT_DECAY, SPECKIT_MEMORY_ADAPTIVE_MODE, SPECKIT_MEMORY_ADAPTIVE_RANKING, SPECKIT_NOVELTY_BOOST, SPECKIT_PRESSURE_POLICY, SPECKIT_QUALITY_LOOP, SPECKIT_RECONSOLIDATION, SPECKIT_ASSISTIVE_RECONSOLIDATION, SPECKIT_WORKING_MEMORY
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:46:SPECKIT_HYDRA_ADAPTIVE_RANKING, SPECKIT_HYDRA_GOVERNANCE_GUARDRAILS, SPECKIT_HYDRA_GRAPH_UNIFIED, SPECKIT_HYDRA_LINEAGE_STATE, SPECKIT_HYDRA_PHASE, SPECKIT_HYDRA_SCOPE_ENFORCEMENT, SPECKIT_HYDRA_SHARED_MEMORY, SPECKIT_MEMORY_GOVERNANCE_GUARDRAILS, SPECKIT_MEMORY_SCOPE_ENFORCEMENT
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:58:SPECKIT_CONSUMPTION_LOG, SPECKIT_DASHBOARD_LIMIT, SPECKIT_EMPTY_RESULT_RECOVERY_V, SPECKIT_MEMORY_LINEAGE_STATE, SPECKIT_MEMORY_SUMMARIES, SPECKIT_SHARED_MEMORY_ADMIN_AGENT_ID, SPECKIT_SHARED_MEMORY_ADMIN_USER_ID, SPECKIT_TOKEN_BUDGET, SPECKIT_TRM, SPECKIT_VRULE_OPTIONAL, SPECKIT_N
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:137:| cross-encoder results | cross-encoder.ts:115 | NO | TTL check on read | Memory leak under diverse queries |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:144:| spec folder history | history.ts:68 | NO | None | Low (bounded by memory count) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-015.md:202:- `regexLruCache` in trigger-matcher.ts as a memory leak -- bounded in practice by finite trigger phrase count (typically <500 unique phrases)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-state.jsonl:1:{"type":"config","mode":"review","reviewTarget":"012-memory-save-quality-pipeline","reviewTargetType":"spec-folder","reviewDimensions":["correctness","security","traceability","maintainability","completeness"],"maxIterations":5,"convergenceThreshold":0.10,"createdAt":"2026-04-01T08:45:00.000Z","specFolder":".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-state.jsonl:3:{"type":"iteration","mode":"review","run":2,"status":"complete","focus":"security - input validation, path traversal, injection, ReDoS","dimension":"security","dimensions":["security"],"findingsCount":3,"newFindingsRatio":1.00,"noveltyJustification":"First security-focused iteration; all 3 findings are new discoveries with no prior security findings to compare against.","findingsSummary":{"P0":0,"P1":0,"P2":3},"filesReviewed":["scripts/utils/input-normalizer.ts","scripts/lib/validate-memory-quality.ts","scripts/extractors/collect-session-data.ts"],"dimensionScores":{"correctness":0,"security":8,"traceability":0,"maintainability":0},"findingsNew":{"P0":0,"P1":0,"P2":3},"findingsRefined":{"P0":0,"P1":0,"P2":0},"upgrades":[],"resolved":[],"findingRefs":["P2-004","P2-005","P2-006"],"traceabilityChecks":{"summary":{"required":0,"executed":0,"pass":0,"partial":0,"fail":0,"blocked":0,"notApplicable":0,"gatingFailures":0},"results":[]},"coverage":{"filesReviewed":3,"filesTotal":9,"dimensionsComplete":["correctness","security"]},"ruledOut":["ReDoS in collect-session-data.ts regex patterns","JSON.parse(JSON.stringify) injection vector","Template injection via sessionSummary (Handlebars auto-escapes)","Open-ended RawInputData index signature"],"focusTrack":"security","timestamp":"2026-04-01T09:02:00.000Z","durationMs":120000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-state.jsonl:5:{"type":"iteration","mode":"review","run":4,"status":"complete","focus":"maintainability - code clarity, coupling, magic numbers, comment quality","dimension":"maintainability","dimensions":["maintainability"],"findingsCount":4,"newFindingsRatio":1.00,"noveltyJustification":"First maintainability-focused iteration; all 4 findings are new P2s (4 x 1.0 weight = 4.0 total, all new).","findingsSummary":{"P0":0,"P1":0,"P2":4},"filesReviewed":["scripts/core/workflow.ts","scripts/utils/input-normalizer.ts","scripts/core/quality-scorer.ts","scripts/core/workflow-path-utils.ts","scripts/extractors/conversation-extractor.ts","scripts/extractors/collect-session-data.ts","scripts/extractors/decision-extractor.ts","scripts/lib/validate-memory-quality.ts"],"dimensionScores":{"correctness":0,"security":0,"traceability":0,"maintainability":7},"findingsNew":{"P0":0,"P1":0,"P2":4},"findingsRefined":{"P0":0,"P1":0,"P2":0},"upgrades":[],"resolved":[],"findingRefs":["P2-007","P2-008","P2-009","P2-010"],"traceabilityChecks":{"summary":{"required":0,"executed":0,"pass":0,"partial":0,"fail":0,"blocked":0,"notApplicable":0,"gatingFailures":0},"results":[]},"coverage":{"filesReviewed":8,"filesTotal":9,"dimensionsComplete":["correctness","security","maintainability"]},"ruledOut":["IIFE title derivation complexity","workflow-path-utils coupling","filesChanged alias confusion","20-file cap magic number (adequately commented)"],"focusTrack":"maintainability","timestamp":"2026-04-01T09:20:00.000Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-state.jsonl:6:{"type":"iteration","mode":"review","run":3,"status":"complete","focus":"traceability - spec/checklist/decision-record cross-reference against code","dimension":"traceability","dimensions":["traceability"],"findingsCount":5,"newFindingsRatio":1.00,"noveltyJustification":"First traceability iteration; all 5 findings are new. Severity-weighted: 1 P1 (5.0) + 4 P2 (1.0 each) = 9.0 total, all new.","findingsSummary":{"P0":0,"P1":1,"P2":4},"filesReviewed":["spec.md","checklist.md","tasks.md","decision-record.md","conversation-extractor.ts","collect-session-data.ts","workflow.ts","decision-extractor.ts","input-normalizer.ts","validate-memory-quality.ts","workflow-path-utils.ts"],"dimensionScores":{"correctness":0,"security":0,"traceability":7,"maintainability":0},"findingsNew":{"P0":0,"P1":1,"P2":4},"findingsRefined":{"P0":0,"P1":0,"P2":0},"upgrades":[],"resolved":[],"findingRefs":["P1-002","P2-007T","P2-008T","P2-009T","P2-010T"],"traceabilityChecks":{"summary":{"required":2,"executed":2,"pass":1,"partial":1,"fail":0,"blocked":0,"notApplicable":0,"gatingFailures":0},"results":[{"protocolId":"spec_code","status":"pass","gateClass":"hard","applicable":true,"counts":{"pass":8,"partial":0,"fail":0},"evidence":["workflow.ts:615-619","conversation-extractor.ts:57-127","collect-session-data.ts:1020-1030","decision-extractor.ts:273,338","workflow-path-utils.ts:64,97,99","validate-memory-quality.ts:562-583,803-810"],"findingRefs":["P2-009T"],"summary":"All 6 spec recommendations verified in code. data-loader.ts listed in spec but never modified (P2-009T)."},{"protocolId":"checklist_evidence","status":"partial","gateClass":"advisory","applicable":true,"counts":{"pass":23,"partial":4,"fail":0},"evidence":["checklist.md:13 vs input-normalizer.ts:797","checklist.md:21 vs conversation-extractor.ts:327"],"findingRefs":["P1-002","P2-007T","P2-008T","P2-010T"],"summary":"23/27 checked items verified with correct evidence. DR-002 _source:json flag not implemented (P1-002). 6 line references have 1-43 line offsets."}]},"coverage":{"filesReviewed":11,"filesTotal":15,"dimensionsComplete":["correctness","security","traceability","maintainability"]},"ruledOut":["tasks.md wave ordering mismatch","DR-001 2-line offset (same logical block)","DR-003 V8 too-broad relaxation (correctly scoped)","DR-004 floor implementation (confirmed in iter 1)","DR-005 filesChanged alias (confirmed at line 797)","DR-006 key_files cap (confirmed at lines 64,97,99)"],"focusTrack":"traceability","timestamp":"2026-04-01T09:35:00.000Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/deep-research-state.jsonl:7:{"type":"iteration","mode":"review","run":5,"status":"complete","focus":"completeness - spec requirement gaps, edge cases, P1 re-verification","dimension":"completeness","dimensions":["completeness"],"findingsCount":2,"newFindingsRatio":0.29,"noveltyJustification":"2 new P2 findings (edge cases in extractFromJsonPayload) plus 1 P2 refinement of existing P2-009T. P1-001 and P1-002 re-verified and retained. Conservative ratio: 2 genuinely new findings out of 7 total items examined.","findingsSummary":{"P0":0,"P1":0,"P2":2},"filesReviewed":["workflow.ts","conversation-extractor.ts","session-types.ts","decision-record.md","spec.md","input-normalizer.ts"],"dimensionScores":{"correctness":0,"security":0,"traceability":0,"maintainability":0,"completeness":8},"findingsNew":{"P0":0,"P1":0,"P2":2},"findingsRefined":{"P0":0,"P1":0,"P2":1},"upgrades":[],"resolved":[],"findingRefs":["P2-011","P2-012"],"traceabilityChecks":{"summary":{"required":1,"executed":1,"pass":1,"partial":0,"fail":0,"blocked":0,"notApplicable":0,"gatingFailures":0},"results":[{"protocolId":"spec_code","status":"pass","gateClass":"hard","applicable":true,"counts":{"pass":5,"partial":1,"fail":0},"evidence":["workflow.ts:616-619","conversation-extractor.ts:57-127","collect-session-data.ts","decision-extractor.ts:273,338","workflow-path-utils.ts:64,97,99","validate-memory-quality.ts:562-583","quality-scorer.ts:265-270"],"findingRefs":["P1-002"],"summary":"5/6 recommendations fully implemented. Rec 2 partial: extractFromJsonPayload exists but DR-002 _source:json flag absent from type and code."}]},"coverage":{"filesReviewed":6,"filesTotal":9,"dimensionsComplete":["correctness","security","traceability","maintainability","completeness"]},"ruledOut":["empty filesChanged causing pipeline failure","very long filesChanged paths causing truncation","keyDecisions non-string entries crash","cross-caller impact of normalizeInputData changes","missing validation bypass paths"],"focusTrack":"completeness","timestamp":"2026-04-01T09:50:00.000Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/graph-metadata.json:13:    "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/graph-metadata.json:145:        "name": "Spec Kit Memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/spec.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/spec.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/spec.md:172:- **NFR-S01**: Stored access rows carry only memory IDs, query text, and empty actor metadata in this path
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/description.json:19:  "memorySequence": 1,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/description.json:20:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/spec.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/spec.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/spec.md:40:| **Successor** | 012-memory-save-quality-pipeline |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/spec.md:159:| 7 | 007-external-graph-memory-research/ | External graph-memory validation and findings | 006-default-on-boost-rollout | Complete |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/spec.md:160:| 8 | 008-create-sh-phase-parent/ | Parent-phase wiring and packet structure completion | 007-external-graph-memory-research | Complete |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:5:Confirm the final root cause, validate the proposed fix direction, and check the real `MEMORY_DB_PATH` behavior across:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:11:5. the script-side indexer path used by `memory-indexer.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:17:- the **current interactive shell** does **not** have `MEMORY_DB_PATH` set
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:18:- the checked-in **MCP launcher configs do set** `MEMORY_DB_PATH`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:19:- the **currently running MCP server processes also have** `MEMORY_DB_PATH` set
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:21:- however, the code still contains a **latent split-brain path-selection bug**: if a process runs **without** `MEMORY_DB_PATH`, then the DB file selected by `initializeDb()` changes depending on whether the lazy embedding provider singleton has already been created
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:22:- the script-side indexer is especially exposed to this because it calls `generateDocumentEmbedding(...)` **before** `vectorIndex.indexMemory(...)`, so provider creation can happen before the first DB open
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:26:> The code-level root cause is real: DB path resolution is stateful and can drift from `context-index.sqlite` to `context-index__voyage__voyage-4__1024.sqlite` after lazy provider initialization, and there is no migration/backfill into the provider-specific DB. In the currently running MCP server, that drift is masked because the launcher correctly pins `MEMORY_DB_PATH` to the legacy DB. The remaining real risk is process inconsistency: any indexing or search process started without that env pin can still attach to the empty provider-specific DB and diverge from the pinned server.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:34:[SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:63-92`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:45:env | grep -i MEMORY_DB || true
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:50:So this shell does **not** export `MEMORY_DB_PATH` itself.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:52:[SOURCE: live shell probe on 2026-04-01: `env | grep -i MEMORY_DB || true`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:59:ps eww -p <pid> | tr ' ' '\n' | grep '^MEMORY_DB_PATH='
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:65:MEMORY_DB_PATH=.opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:74:Both checked-in launcher configs pin `MEMORY_DB_PATH` to the legacy DB.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:81:"MEMORY_DB_PATH": ".opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:91:"MEMORY_DB_PATH": ".opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:102:  if (process.env.MEMORY_DB_PATH) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:103:    return process.env.MEMORY_DB_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:119:1. `process.env.MEMORY_DB_PATH`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:126:export const DEFAULT_DB_PATH = process.env.MEMORY_DB_PATH || DATABASE_PATH;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:129:So when `MEMORY_DB_PATH` is present, the override wins cleanly and early.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:133:## 4. What happens when `MEMORY_DB_PATH` is explicitly set
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:138:MEMORY_DB_PATH=database/context-index.sqlite node --input-type=module ...
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:160:So explicit pinning works as expected. When `MEMORY_DB_PATH` is set, the search API reads from the populated legacy DB and returns results.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:174:    "memory_index": 1728,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:187:    "memory_index": 0,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:327:The script-side indexer is structurally capable of drifting onto a different DB than the MCP search server if the two processes do not share the same `MEMORY_DB_PATH` environment.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:331:`memory-indexer.ts` does two important things in this order:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:334:2. then write via `vectorIndex.indexMemory(...)`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:341:memoryId = vectorIndex.indexMemory({ ... });
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:344:[SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:72-92`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:345:[SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:159-172`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:355:And `index_memory(...)` defaults to:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:365:- if the indexer process starts **without** `MEMORY_DB_PATH`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:367:- then the later `initialize_db()` call inside `index_memory(...)` can resolve to the provider-specific DB
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:371:I ran a drift proof in a fresh process with `MEMORY_DB_PATH` explicitly unset:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:386:So the split-brain risk is not theoretical. It is reproducible in one process whenever `MEMORY_DB_PATH` is absent.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:388:[SOURCE: live runtime probe on 2026-04-01 with `env -u MEMORY_DB_PATH node --input-type=module ...`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:394:1. `resolve_database_path()` in `vector-index-store.ts` chooses DB path in this order: `MEMORY_DB_PATH` -> embedding profile path -> default legacy path.  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:404:4. The provider-specific Voyage DB in this workspace is empty: `memory_index = 0`, `active_memory_projection = 0`, `vec_memories = 0`.  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:407:5. The legacy DB is populated: `memory_index = 1728`, `active_memory_projection = 1708`, `vec_memories = 1721`.  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:418:8. The script-side indexer generates embeddings before calling `vectorIndex.indexMemory(...)`, so in an unpinned process it can initialize the provider and then write into the provider-specific DB.  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:419:   [SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts:72-92`]  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:422:9. The currently running MCP server is **not** suffering from this drift right now because it was launched with `MEMORY_DB_PATH=context-index.sqlite`.  
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:433:- Without `MEMORY_DB_PATH`, DB selection is not stable. It depends on mutable runtime state: whether the lazy embedding provider singleton already exists.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:439:- The live MCP server is **not currently ignoring** `MEMORY_DB_PATH`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:458:### Option 1: Make `MEMORY_DB_PATH` mandatory and fail closed when absent
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-10.md:462:- Require all MCP server and indexing entrypoints to set `MEMORY_DB_PATH`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-001.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-001.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/plan.md:3:description: "Describe the shipped lifecycle suite: fresh in-memory SQLite per test, targeted runtime mocks, scheduled replay coverage, and corrected signal counts."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/plan.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/plan.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/plan.md:35:| **Storage** | `better-sqlite3` `:memory:` databases |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/plan.md:39:The shipped Phase 5 suite uses one file with four focused scenarios. Each test starts from a fresh in-memory database, restores env flags in teardown, and exercises a different adaptive-ranking seam while mocking only runtime dependencies outside the lifecycle boundary.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-025.md:9:3. Phase `003-wire-tier3-llm-classifier` is best described as a small integration slice, not a large architecture change: add an OpenAI-compatible adapter around `buildTier3Prompt()`, add a `RouterCache` implementation, inject both at `memory-save.ts:1008`, and test the natural save path with success, cache-hit, null-response, and timeout cases. The realistic production diff is about `90-130` LOC plus `70-100` LOC of tests. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-025.md:22:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:8:### 1. Phase 1: CLI Argument Parsing (generate-context.ts lines 344-388)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:19:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:344-388, 546-567]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:30:Wait -- let me trace this more carefully. Looking at generate-context.ts line 558-563:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:62:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:558-567]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:160:### 9. Phase 9: Post-Render Validation (validate-memory-quality.ts)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:162:The rendered memory content is validated by `validateMemoryQualityContent()`. For a thin JSON-mode save:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:168:If V1 or V13 fires: `disposition = 'abort_write'` -- the memory file is NOT written at all.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:178:[1] parseStructuredModeArguments() -- generate-context.ts:344
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:229:[9] validateMemoryQualityContent() -- validate-memory-quality.ts
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:238:    If validation passes: writes thin memory file
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:253:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:558-567]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:264:- `.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts` (lines 1-607)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-010.md:273:- Questions addressed: ["How should extractConversations() build MESSAGES from sessionSummary/keyDecisions when userPrompts is empty?", "What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/review-report.md:2:title: "Review Report: Memory Save Quality Pipeline [023/012]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/review-report.md:5:# Review Report: Phase 012 — Memory Save Quality Pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/review-report.md:95:| P2-004 | security | No array-length limits on keyDecisions/filesChanged | input-normalizer.ts:893-904 | Unlike sessionSummary (50K cap), arrays have no size limits; could cause memory pressure with very large inputs |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/review-report.md:96:| P2-005 | security | resolveSpecFolderPath walks to filesystem root | validate-memory-quality.ts:498-531 | Constructs candidate paths from cwd to root; low practical risk (only statSync/readdirSync, not file reads) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/review/review-report.md:97:| P2-006 | security | Sibling scan adds all directories without depth limit | validate-memory-quality.ts:562-583 | Reads parent directory entries; could be wide in flat repos but bounded by filesystem |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:33:| `SPECKIT_DOCSCORE_AGGREGATION` | Document-level chunk-to-memory aggregation | Fusion |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:44:| `SPECKIT_MEMORY_SUMMARIES` | Memory summary generation (TF-IDF) | Graph |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:82:| `SPECKIT_RECONSOLIDATION` | Reconsolidation-on-save for memory dedup | Explicit opt-in (`=== 'true'`) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:85:| `SPECKIT_QUALITY_LOOP` | Verify-fix-verify memory quality loop | Explicit opt-in (`=== 'true'`) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:96:| `SPECKIT_MEMORY_LINEAGE_STATE` | ON (defaultValue=true) | Lineage state tracking |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:97:| `SPECKIT_MEMORY_GRAPH_UNIFIED` | ON (defaultValue=true) | Graph unified search |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:98:| `SPECKIT_MEMORY_ADAPTIVE_RANKING` | **OFF (defaultValue=false)** | Adaptive ranking NOT enabled by default |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:99:| `SPECKIT_MEMORY_SCOPE_ENFORCEMENT` | ON (defaultValue=true) but runtime check is OFF | See finding 5 |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:100:| `SPECKIT_MEMORY_GOVERNANCE_GUARDRAILS` | ON (defaultValue=true) but runtime check is OFF | See finding 5 |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:101:| `SPECKIT_MEMORY_SHARED_MEMORY` | OFF (defaultValue=false) | Expected -- shared memory excluded |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:112:  - `SPECKIT_MEMORY_SCOPE_ENFORCEMENT`: "Default: OFF -- scope enforcement is opt-in" (line 185)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:113:  - `SPECKIT_MEMORY_GOVERNANCE_GUARDRAILS`: "Default: OFF -- governance guardrails are opt-in" (line 200)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:151:| `SPECKIT_MEMORY_ROADMAP_PHASE` | Roadmap phase | `shared-rollout` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:160:| `SPECKIT_SHARED_MEMORY_ADMIN_USER_ID` | Shared memory admin user | (must configure) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:161:| `SPECKIT_SHARED_MEMORY_ADMIN_AGENT_ID` | Shared memory admin agent | (must configure) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:170:- **Intent weights**: Intent auto-detection is ON by default in `memory_search` tool schema (`autoDetectIntent: true`), and intent confidence floor defaults to 0.25
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-001.md:205:Investigate Q3 (remaining search quality issues) and Q5 (bugs in fusion pipeline stages). Examine the actual pipeline code in stage1-candidate-gen.ts, stage2-fusion.ts, stage3-rerank.ts, stage4-filter.ts for correctness and potential issues. Also explore the `SPECKIT_MEMORY_ADAPTIVE_RANKING=false` default and the governance flag discrepancy -- determine if these are intentional or bugs.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/plan.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/plan.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/plan.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/plan.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/plan.md:34:| **Framework** | Spec Kit Memory + CocoIndex + Code Graph |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:1:# Research Iteration 4: `active_memory_projection` reality check
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:5:Is the `JOIN active_memory_projection p ON p.active_memory_id = m.id` filtering out **all** vector search results?
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:17:- `SELECT COUNT(*) FROM active_memory_projection` → **1708**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:18:- `SELECT COUNT(*) FROM memory_index` → **1728**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:29:- Command result from `sqlite3 ... COUNT(*) FROM active_memory_projection`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:30:- Command result from `sqlite3 ... COUNT(*) FROM memory_index`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:40:- `memory_index`: **1728** rows
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:41:- `active_memory_projection`: **1708** rows
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:44:So the active projection JOIN narrows the working set from all historical memory versions down to active versions, but it does **not** collapse the candidate set to zero globally.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:50:- `memory_index m JOIN active_memory_projection p ON p.active_memory_id = m.id` → **1708** rows
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:51:- `memory_index m JOIN active_memory_projection p ... JOIN vec_memories v ON v.rowid = m.id` → **1701** rows
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:52:- `active_memory_projection` rows with no matching `memory_index` row → **0**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:53:- `active_memory_projection` rows with no matching `vec_memories` row → **7**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:59:If `active_memory_projection` were empty or structurally broken, those joins would be `0`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:63:- projection→memory coverage is **1708 / 1708**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:68:## What `active_memory_projection` is for
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:70:`active_memory_projection` is defined as a compact table of the currently active memory version per logical key:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:73:CREATE TABLE IF NOT EXISTS active_memory_projection (
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:75:  root_memory_id INTEGER NOT NULL,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:76:  active_memory_id INTEGER NOT NULL UNIQUE,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:81:The schema initializer also creates an index on `active_memory_id`:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:84:CREATE INDEX IF NOT EXISTS idx_active_memory_projection_active
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:85:  ON active_memory_projection(active_memory_id)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:100:- first deletes any stale row that points the same `active_memory_id` at a different `logical_key`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:104:DELETE FROM active_memory_projection WHERE active_memory_id = ? AND logical_key != ?
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:105:INSERT INTO active_memory_projection (logical_key, root_memory_id, active_memory_id, updated_at)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:108:  root_memory_id = excluded.root_memory_id,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:109:  active_memory_id = excluded.active_memory_id,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:123:- inserts into `memory_lineage`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:127:database.prepare(`INSERT INTO memory_lineage ...`).run(...);
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:128:upsertActiveProjection(database, logicalKey, rootMemoryId, memoryId, validFrom);
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:139:When a new append-only memory row is created, `insertAppendOnlyMemoryIndexRow()` inserts into `vec_memories` if an embedding exists and sqlite-vec is available:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:146:  `).run(BigInt(memoryId), to_embedding_buffer(embedding));
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:150:Then `createAppendOnlyMemoryRecord()` records the lineage transition, which in turn upserts `active_memory_projection`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:183:> all vector searches return 0 because every query joins through `active_memory_projection`, and that table may be empty.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:190:- the projection rows all map to real `memory_index` rows
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:208:- `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:213:- `memory_index.embedding_status` says success
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:214:- `active_memory_projection` marks the row active
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:221:**Answer:** `active_memory_projection` is **not** filtering out all results.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:225:- `active_memory_projection` = **1708**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/013-fts5-fix-and-search-dashboard/scratch/deep-research/research-04.md:226:- `memory_index` = **1728**
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:4:Trace the post-implementation always-on Tier 3 path through `memory-save.ts` and `content-router.ts`, with emphasis on where the handler attempts Tier 3 and how it falls back when the classifier is unavailable.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:7:1. Canonical routing is now unconditional in the save handler. `shouldUseCanonicalRouting()` returns `true` for every atomic save, so the live path no longer depends on a feature flag or explicit opt-in. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:2440]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:8:2. The handler now constructs the router through `buildCanonicalRouter()`, which injects both `classifyWithTier3Llm` and the shared `tier3RoutingCache`. That closes the exact runtime gap identified in iterations 15 and 23. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1208]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:9:3. `classifyWithTier3Llm()` fail-opens at every external boundary. Missing endpoint, non-OK HTTP response, invalid JSON payload, and thrown fetch or abort all return `null` rather than surfacing an error into the save path. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:986] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:999]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:11:5. "Always on" therefore means "always attempted on ambiguous routes," not "always authoritative." The shipped runtime still prefers safe fallback or refusal over forcing an unreliable model answer into a merge. [INFERENCE: trace across memory-save.ts and content-router.ts]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:20:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:21:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-028.md:22:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-006.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-006.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/decision-record.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/decision-record.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:2:title: "Verification Checklist [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:5:  - "memory save checklist"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:11:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:22:# Verification Checklist: Memory Save Quality Pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:93:- [x] CHK-050 [P1] Changes remain within `012-memory-save-quality-pipeline/`. [EVIDENCE: Verified in this phase artifact set.]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md:95:- [ ] CHK-052 [P2] Memory capture deferred until runtime verification closure.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-004.md:56:This means the rendered memory file will have structural sections (headers, tables) but with empty cells and missing values. For example, `{{MESSAGE_COUNT}}` renders as `""` (empty), `{{TOOL_COUNT}}` renders as `""`, and the `{{#MESSAGES}}...{{/MESSAGES}}` loop produces nothing.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-004.md:78:**Level 1 guard — learningIsTopical** (lines 857-862): Even if rawLearning exists, it must contain a word segment from the spec folder name. For example, if spec folder is `012-memory-save-quality-pipeline`, the learning text must contain "memory", "save", "quality", or "pipeline" (case-insensitive). Non-topical learning is rejected.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-004.md:280:- Questions addressed: ["How should the template renderer handle JSON-sourced observations vs transcript-sourced ones?", "What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-006.md:10:4. One `research_finding` sample was classified as `metadata_only` because it discussed overlap in metadata and continuity terms, showing that `_memory.continuity` vocabulary can overpower research intent when the chunk is framed as findings about metadata. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:365] [INFERENCE: live corpus example `RF-03` from dist/lib/routing/content-router.js]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-011.md:44:- Session boost gives working-memory attention context; recency should layer on top
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-011.md:60:- Effect: A memory updated today gets +0.07, 7 days ago gets +0.041, 30 days ago gets +0.018
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-011.md:75:- A memory with 0.85 semantic score would need the recency bonus to lose to a 0.92 semantic score -- the 0.07 bonus would bring it to 0.92, merely tying, not winning
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/spec.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/spec.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/spec.md:91:- Flipping `SPECKIT_MEMORY_ADAPTIVE_MODE` env var at runtime
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/spec.md:140:| Dependency | Phase 2 (persist thresholds) | Tuned thresholds are in-memory only via WeakMap — lost on restart | Accept for now; Phase 2 adds SQLite persistence |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/spec.md:171:| P1 | FIXED | `memory_validate` now stores `queryText` in the signal record; replay filtering matches against the stored query rather than performing a global cross-query lookup. Shared fix with Phase 3. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/review-report.md:1:# Deep Review Report: 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/description.json:20:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/description.json:21:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-008.md:11:5. A correct classification can still be rejected in `memory-save.ts` if the routed merge mode conflicts with an explicit `mergeModeHint` or if the target document is missing. Those rejections are routing-surface failures, not merge-operation bugs. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1069]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-008.md:23:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-002.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-002.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/spec.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/spec.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/spec.md:48:| **Predecessor** | 007-external-graph-memory-research |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/spec.md:175:- Parent contains non-phase directories such as `memory/` and `scratch/` that must not affect numbering
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:2:title: "Tasks: Memory Save Quality [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:5:  - "memory save quality tasks"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:11:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md:22:# Tasks: Memory Save Quality Pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:2:title: "Comprehensive Research Summary: Memory Save Quality Pipeline Root Causes and Recommendations"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:43:|   +-- CAUSE: deriveMemoryDescription() falls back to generic when no rich session data available
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:64:|   +-- CAUSE: evaluateMemorySufficiency() fails when content is too short/empty
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:126:| `scoreMemoryQuality()` | 235-238 | Reduce observation-absent penalty when structured input has sessionSummary (observations were consumed as messages) | 8 |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:127:| `scoreMemoryQuality()` | 148-158 | Consider adding minimum floor for triggerPhrases when structured input has rich source | 8 |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-020.md:214:3. **Regression Test Coverage**: The existing test infrastructure for generate-context.js is unclear. Are there existing integration tests that run the full pipeline with a JSON payload? If not, the risk of silent regression in transcript mode is higher. **Resolution path:** Grep for test files referencing `generate-context` or `extractConversations` before implementation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/plan.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/plan.md:40:Wire the `promotionGate` result from `runShadowEvaluation()` into `tuneAdaptiveThresholdsAfterEvaluation()` within the shadow evaluation scheduler path. Currently the scheduler logs the recommendation but takes no action. After this change, threshold adjustments will be applied in-memory (persistence deferred to Phase 2).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/plan.md:82:    → [in-memory WeakMap — Phase 2 adds SQLite]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/plan.md:160:Minimal risk — the tuning call only fires when `SPECKIT_MEMORY_ADAPTIVE_RANKING=true` (currently off). Rollback: revert the import and conditional call in `shadow-evaluation-runtime.ts`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:2:title: "...c-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:12:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:23:# Verification Checklist: External Graph Memory Research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:96:- [ ] CHK-052 [P2] Findings saved to memory/ [Pending: save via generate-context.js]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md:166:- [ ] CHK-143 [P2] Knowledge transfer documented [Pending: save memory after research execution]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-018.md:10:4. The save-handler tests currently prove only explicit `routeAs` routing, not natural routing. `handler-memory-save.vitest.ts` routes canonical saves into the target summary and task docs by forcing `routeAs`, so phase `003` still needs handler-level coverage that a naturally ambiguous atomic save can reach Tier3 and fall back safely when the classifier is unavailable. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1119]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-018.md:22:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:15:What IS ephemeral: the cognitive `working-memory.ts` in-process Map (attention signals, co-activation weights). This module is wiped when the MCP server process ends. The distinction matters for UX: session identity and dedup are durable; attention-based scoring adjustments are not.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:17:**Improvement opportunity**: The working-memory attention map could optionally persist to SQLite on a periodic flush (e.g., every 5 minutes or on graceful shutdown), enabling cross-restart attention continuity. Currently, attention signals built over many tool calls are lost on MCP restart.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:35:The `memory-surface.ts` module lives at `mcp_server/hooks/memory-surface.ts` despite being invoked by the MCP context-server dispatch path (fully hookless). This is a naming/organizational concern, not functional.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:38:1. Non-memory tool call arrives at context-server dispatch
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:40:3. Constitutional memories fetched (1-min cache, limit 10, SELECT from memory_index WHERE importance_tier='constitutional')
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:46:**Improvement opportunity A**: The trigger matcher receives only a single context hint (the current tool call's input/query text). It does not consider the *conversation trajectory* -- prior queries, established focus areas, or the working session's accumulated intent. If the trigger matcher received the session's top-N attention-weighted concepts (from working-memory), it could surface more relevant memories.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:48:**Improvement opportunity B**: The constitutional memory limit of 10 is hardcoded. For users with large memory stores (100+ constitutional memories), this could miss important always-surface content. A dynamic limit based on token budget utilization would be more adaptive.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:50:[SOURCE: hooks/memory-surface.ts:76-84 (MEMORY_AWARE_TOOLS), hooks/memory-surface.ts:86-95 (cache config), hooks/memory-surface.ts:120-138 (extractContextHint), hooks/memory-surface.ts:273-314 (autoSurfaceMemories)]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:61:- Memory system health (total memories, last index time, hot/warm/cold distribution)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:68:[SOURCE: hooks/memory-surface.ts:63-70 (PrimePackage interface), hooks/memory-surface.ts:317-349 (buildPrimePackage)]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:71:When a user references a spec folder (e.g., "check spec 011"), the system searches for matching memories but does NOT automatically load the related spec's metadata (parent phases, sibling specs, dependencies). The memory_context tool does intent-based routing but treats each query independently.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:78:This is partially available via `memory_drift_why` (causal chain tracing) but is not automatically injected. Auto-injecting a "spec neighborhood" summary when a specFolder is explicitly provided would reduce manual navigation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:80:[INFERENCE: based on memory-surface.ts auto-surface flow (no spec-neighborhood logic) and session-manager.ts (specFolder stored but not used for auto-expansion)]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:120:- `mcp_server/hooks/memory-surface.ts:1-350` (auto-surface flow, constitutional caching, Prime Package)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:131:- What worked and why: Reading the actual session-manager init() and SQLite schema setup revealed that session state IS persisted -- the "ephemeral by design" finding from iteration 8 was about working-memory attention signals specifically, not session state broadly. Reading source code corrected a prior simplification.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:132:- What did not work and why: The auto-surface file was not at the expected path (lib/search/auto-surface*.ts as suggested in dispatch instructions). It lives at hooks/memory-surface.ts. Glob found it quickly (1 extra tool call).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-016.md:136:The highest-impact improvement identified is **intent-to-profile auto-routing** (Finding 7). This connects two existing systems (intent classifier + profile formatters) with minimal code change. A follow-up iteration could draft the exact implementation or investigate whether the working-memory attention persistence (Finding 1) is worth the complexity.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/plan.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/plan.md:118:- [x] Define child number scanning rules that ignore `memory/`, `scratch/`, and non-phase entries
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/implementation-summary.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/implementation-summary.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-003.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-003.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:4:Design concrete fixes for: (a) deriving title/description from `sessionSummary`, (b) mapping observations to OBSERVATION template blocks, (c) capping `key_files` at 20, and (d) honoring `filesChanged` from JSON input. These are the core template population issues that cause JSON-mode saves to produce boilerplate or oversized memory files.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:16:4. `pickPreferredMemoryTask()` -- picks best from: `[enrichedTask, specTitle, sessionCandidates, folderBase]`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:19:6. `buildMemoryTitle()` -- formats final title string
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:21:**Key observation:** `sessionData._JSON_SESSION_SUMMARY` IS already in the candidate list at position [0] of `sessionCandidates` (line 1143). The problem is `pickPreferredMemoryTask` calls `pickBestContentName()` which selects the longest non-empty candidate that is not a generic stub. If `implSummary.task` is non-empty (even if low quality), it wins because it is the first argument.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:25:const memoryDescription = deriveMemoryDescription({
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:27:  title: memoryTitle,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:37:**Problem:** When JSON-mode provides `sessionSummary`, `implSummary.task` (extracted from conversation messages that don't exist) may still return a non-empty but low-quality string (e.g., from enrichment fallbacks), and `pickPreferredMemoryTask` prefers it over the JSON session summary.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:44:const preferredMemoryTask = pickPreferredMemoryTask(
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:127:**Problem:** There is NO cap. If `effectiveFiles` has 300 entries (common for large sessions with enrichment from git context and spec-folder scanning), all 300 become `KEY_FILES` in the template. This bloats the rendered memory file and wastes embedding tokens.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:233:- `.opencode/skills/system-spec-kit/scripts/utils/task-enrichment.ts:36-49` (pickPreferredMemoryTask)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-014.md:234:- `.opencode/skills/system-spec-kit/scripts/lib/memory-frontmatter.ts:97` (deriveMemoryDescription)
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-009.md:8:2. The save handler accepts the routed override category, but it still rejects the write if the caller supplies a conflicting `mergeModeHint`. In other words, override bypasses natural classification, not the downstream merge contract. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1206]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-009.md:11:5. Because Tier3 is currently unwired in production, the practical role of the `0.50` Tier3 threshold today is mostly the penalized Tier2 fallback/refusal cutoff, not an LLM acceptance threshold. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:518]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-009.md:22:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-016.md:9:3. The biggest operational risk is latency, not token volume. `memory-save.ts` feeds Tier3 the normalized routed chunk text after frontmatter/comment stripping, but it does not cap chunk length before routing. In typical prototype-sized content the prompt is modest, yet unusually long canonical save bodies could still push the request toward the 2-second deadline. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1009] [INFERENCE: prototype corpus averages roughly 45 words per chunk, but live save chunks are not hard-capped]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-016.md:21:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-002.md:4:Examine the 4-stage retrieval pipeline (stage1-candidate-gen.ts through stage4-filter.ts) for bugs, edge cases, dead code, and quality issues. Additionally investigate whether SPECKIT_MEMORY_ADAPTIVE_RANKING=false is intentional and whether the governance flag discrepancy (roadmap-ON/runtime-OFF) is a bug.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-002.md:17:The adaptive ranking system has 3 modes: `disabled` (default), `shadow` (collect data without affecting results), and `promoted` (actively affect ranking). The flag `SPECKIT_MEMORY_ADAPTIVE_RANKING` is documented in telemetry/README.md as "Default-off roadmap capability flag." The `getAdaptiveMode()` function returns `disabled` when the flag is off, which means `recordAdaptiveAccessSignals()` in stage2 is a no-op. This is by design -- the feature collects training data when shadow-enabled but does not yet have enough data to safely promote. NOT a bug.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-002.md:21:### Finding 4: Stage 4 has a defensive UNKNOWN_STATE_PRIORITY=6 workaround for missing memoryState column
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-002.md:22:Stage4 sets `UNKNOWN_STATE_PRIORITY = 6` (above HOT=5) so memories without a memoryState column always pass filtering. The comment explicitly states: "memoryState column doesn't exist yet -- all memories are UNKNOWN. Reset to 0 when the TRM state column is implemented." This means the state filtering is currently a no-op for all memories. While this is safe (no false filtering), it means the `minState` parameter is effectively ignored until TRM is implemented. This is documented tech debt, not a bug.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-dashboard.md:91:- [x] RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-dashboard.md:112:- Historical save-log mining. The packet scope and current memory model explicitly require synthetic payloads instead. (iteration 1)
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-dashboard.md:141:- Treating phase `003` as a one-line constructor tweak in `memory-save.ts`. (iteration 15)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-005.md:132:Deep-read `data-loader.ts` and `generate-context.ts` to map the JSON input parsing pipeline -- which fields are accepted, which are rejected, and how `--json` input flows to `CollectedDataFull`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:2:title: "...-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:5:  - "graph memory research tasks"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:12:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:23:# Tasks: External Graph Memory Research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md:76:- [x] T018 Save research context with `generate-context.js` after findings are complete [EVIDENCE: memory/01-04-26_11-16__phase-007-external-graph-memory-research-is.md created, quality 100/100, indexed as memory #69]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-007.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-007.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-019.md:9:3. Phase `003-wire-tier3-llm-classifier` should add a real classifier adapter and then inject it. The missing constructor seam is `memory-save.ts` line `1008`; the existing call graph is already ready to receive `classifyWithTier3` and `cache`. Reuse the fail-open, timeout-bounded `fetch()` pattern from `lib/search/llm-reformulation.ts`, but build the request from `buildTier3Prompt()` and return validated `Tier3RawResponse` objects. Then add handler coverage for natural routing without `routeAs`, plus router coverage for cache hits, timeouts, and unavailable-provider fallbacks in the live save path. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:203]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-019.md:10:4. Test work should follow the same phase boundaries. `content-router.vitest.ts` needs explicit regression samples for delivery-plus-implementation language, handover-plus-command language, and metadata-versus-research ambiguity. `handler-memory-save.vitest.ts` needs at least one naturally ambiguous atomic-save fixture that reaches Tier3 and proves safe fallback when the classifier returns `null` or times out. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:65] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-019.md:21:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-019.md:22:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-012.md:81:The 5-limit is per-injection-call, but the issue from iteration 4 (P1-2) was about the `includeConstitutional` parameter in memory_search which has a default `CONSTITUTIONAL_CACHE_LIMIT = 10` in the auto-surface middleware. These are two different caps:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-012.md:145:2. **trigger-matcher.ts**: Sophisticated Unicode word-boundary regex + n-gram indexing. Purpose: match user prompts against memory trigger phrases for retrieval.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-012.md:152:**Verdict: NOT worth fixing. The different matching strategies serve different purposes. Exact-match for complexity classification, boundary-match for memory retrieval. Changing either to match the other would break its intended use case.**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:2:  "specFolder": "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:3:  "description": "Feature Specification: External Graph Memory Research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:9:    "memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:14:  "folderSlug": "external-graph-memory-research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:20:  "memorySequence": 2,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:21:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:22:    "01-04-26_07-21__prepared-the-external-graph-memory-research-phase.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/description.json:23:    "01-04-26_11-16__phase-007-external-graph-memory-research-is.md"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-008.md:4:**Phase:** 007-external-graph-memory-research
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/iterations/iteration-008.md:10:- Phase folder: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:65:      "id": "question-9-rq-9-what-exact-code-is-missing-to-wire-tier3-into-memory-save-ts-and-what-laten",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:66:      "text": "RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:171:      "text": "Target selection is deterministic by category: progress and delivery append paragraphs to `implementation-summary.md`, research and handover append sections, tasks update a phase anchor, metadata writes `_memory.continuity`, and `decision` switches between ADR insertion on `L3/L3+` and in-place summary updates on `L1/L2`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:92]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:204:      "text": "The canonical save handler currently constructs `createContentRouter()` with no dependency injection, so `classifyWithTier3` defaults to `null` in the actual writer path. Tier3 exists in tests and the router contract, but not in the live save wiring studied here. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:386]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:209:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:220:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:231:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:242:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:248:      "text": "Because Tier3 is unwired in the save handler, ambiguous content in the live path either routes via Tier2 or lands in the penalized Tier2 fallback band before refusal. A direct runtime check showed an ambiguous sample refusing at `0.4965` with `tier3: null`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [INFERENCE: live execution of dist/lib/routing/content-router.js against an ambiguous sample derived from the Tier3 refusal test]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:347:      "text": "One `research_finding` sample was classified as `metadata_only` because it discussed overlap in metadata and continuity terms, showing that `_memory.continuity` vocabulary can overpower research intent when the chunk is framed as findings about metadata. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:365] [INFERENCE: live corpus example `RF-03` from dist/lib/routing/content-router.js]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:402:      "text": "`metadata_only` is the least fragile category at write time because it bypasses `anchorMergeOperation()` and writes `_memory.continuity` through thin-continuity helpers. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:167]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:406:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:407:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:413:      "text": "`task_update` is the most brittle category because `buildCanonicalMergePayload()` must discover a concrete `T###` or `CHK-###` ID, and the later merge requires exactly one matching checklist line. Classification accuracy alone is not enough to make task routing safe. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:952] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/merge/anchor-merge-operation.ts:440]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:417:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:418:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:424:      "text": "Category-to-merge mapping is fixed: `narrative_progress` and `narrative_delivery` use `append-as-paragraph`, `handover_state` and `research_finding` use `append-section`, `decision` uses `insert-new-adr` on `L3/L3+` and `update-in-place` on lower packet levels, `task_update` uses `update-in-place`, and `metadata_only` updates frontmatter continuity rather than anchor-merging. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:428:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:429:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:435:      "text": "The canonical writer derives merge payloads from routed content, not the original memory artifact type. That means the same text classification directly controls whether the writer looks for paragraphs, structured checklist IDs, or ADR fields. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1144]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:439:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:440:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:452:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:463:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:474:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:485:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:489:      "id": "finding-8-5-a-correct-classification-can-still-be-rejected-in-memory-save-ts-if-the-routed-m",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:490:      "text": "A correct classification can still be rejected in `memory-save.ts` if the routed merge mode conflicts with an explicit `mergeModeHint` or if the target document is missing. Those rejections are routing-surface failures, not merge-operation bugs. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1069]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:496:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:506:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:517:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:523:      "text": "Because Tier3 is currently unwired in production, the practical role of the `0.50` Tier3 threshold today is mostly the penalized Tier2 fallback/refusal cutoff, not an LLM acceptance threshold. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:518]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:528:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:539:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:545:      "text": "The save handler accepts the routed override category, but it still rejects the write if the caller supplies a conflicting `mergeModeHint`. In other words, override bypasses natural classification, not the downstream merge contract. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1206]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:550:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:556:      "text": "`routeAs` is powerful enough to rescue natural misclassifications, but it also weakens the semantic guardrail because it can force a merge against a natural `drop` decision. Operationally, overrides should stay explicit, audited, and paired with target/merge-mode validation. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:428] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:562:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:573:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:584:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:595:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:600:      "text": "The Tier3 prompt and tests are worth keeping, but threshold optimization should be revisited only after the canonical save path actually injects a real Tier3 classifier. Until then, the `0.50` floor is mostly a fallback/refusal parameter, not a live model-quality control. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:212]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:606:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:787:      "text": "Phase `003-wire-tier3-llm-classifier` therefore needs two concrete code changes, not one. First, add a real classifier adapter that calls the Tier3 prompt contract and returns `Tier3RawResponse | null`. Second, inject that adapter into the router constructor in `memory-save.ts` and, ideally, pass a cache implementation so repeated ambiguous saves can hit the existing session/spec-folder cache layer. [SOURCE: .opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/002-content-routing-accuracy/003-wire-tier3-llm-classifier/spec.md:10] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:630]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:792:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:798:      "text": "The live save path never provides those Tier3 dependencies. `buildCanonicalAtomicPreparedSave()` simply calls `createContentRouter()` with no arguments, so the default dependency closes over `classifyWithTier3: async () => null`. That means the current runtime can only use Tier1, Tier2, and penalized Tier2 fallback. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:391]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:803:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:814:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:825:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:836:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:841:      "id": "finding-16-3-the-biggest-operational-risk-is-latency-not-token-volume-memory-save-ts-feeds-ti",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:842:      "text": "The biggest operational risk is latency, not token volume. `memory-save.ts` feeds Tier3 the normalized routed chunk text after frontmatter/comment stripping, but it does not cap chunk length before routing. In typical prototype-sized content the prompt is modest, yet unusually long canonical save bodies could still push the request toward the 2-second deadline. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1009] [INFERENCE: prototype corpus averages roughly 45 words per chunk, but live save chunks are not hard-capped]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:847:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:858:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:869:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:925:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:936:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:947:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:952:      "text": "The save-handler tests currently prove only explicit `routeAs` routing, not natural routing. `handler-memory-save.vitest.ts` routes canonical saves into the target summary and task docs by forcing `routeAs`, so phase `003` still needs handler-level coverage that a naturally ambiguous atomic save can reach Tier3 and fall back safely when the classifier is unavailable. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1119]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:958:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:968:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:969:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:979:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:980:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:985:      "text": "Phase `003-wire-tier3-llm-classifier` should add a real classifier adapter and then inject it. The missing constructor seam is `memory-save.ts` line `1008`; the existing call graph is already ready to receive `classifyWithTier3` and `cache`. Reuse the fail-open, timeout-bounded `fetch()` pattern from `lib/search/llm-reformulation.ts`, but build the request from `buildTier3Prompt()` and return validated `Tier3RawResponse` objects. Then add handler coverage for natural routing without `routeAs`, plus router coverage for cache hits, timeouts, and unavailable-provider fallbacks in the live save path. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:203]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:990:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:991:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:996:      "text": "Test work should follow the same phase boundaries. `content-router.vitest.ts` needs explicit regression samples for delivery-plus-implementation language, handover-plus-command language, and metadata-versus-research ambiguity. `handler-memory-save.vitest.ts` needs at least one naturally ambiguous atomic-save fixture that reaches Tier3 and proves safe fallback when the classifier returns `null` or times out. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:65] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1001:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1002:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1012:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1023:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1034:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1045:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1051:      "text": "Tier3 wiring is worthwhile only as a targeted ambiguity resolver. The contract is already bounded and cache-aware, but the production classifier implementation is missing. Phase `003` should reuse the existing OpenAI-compatible fetch pattern, add audit visibility, and stay fail-open so canonical saves never depend on an LLM being available. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:185]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1056:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1210:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1211:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1216:      "text": "The production seam is still one unresolved constructor call. `createContentRouter()` already accepts `classifyWithTier3` and `cache`, and `resolveTier3Decision()` already consumes both, but `memory-save.ts` still creates the router with no dependencies at line `1008`. That leaves Tier 3 permanently stubbed to `null` in production. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:231] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:386] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1221:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1222:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1227:      "text": "The smallest realistic production diff is about `90-130` LOC. A thin OpenAI-compatible call helper modeled on `callLlmForReformulation()` is roughly `45-60` LOC, a small session/spec-folder cache wrapper is another `20-30` LOC, env/response plumbing is about `10-20` LOC, and the actual injection at `memory-save.ts:1008` is only `8-15` LOC. If the phase also introduces routing-specific env names instead of reusing an existing OpenAI-compatible endpoint contract, the diff moves toward the high end of that range. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:200] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [INFERENCE: line-count estimate based on the existing helper shape and the missing seams]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1232:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1233:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1238:      "text": "The test cost is separate and non-trivial: expect another `70-100` LOC across router and handler tests. `content-router.vitest.ts` already covers classifier injection, cache hits, below-floor refusals, and Tier 2 fallback, so phase `003` mostly needs adapter-path assertions. `handler-memory-save.vitest.ts` needs at least one natural-routing atomic-save case with no `routeAs`, one null/timeout fallback case, and one cache-reuse case that proves the real save path can reach Tier 3 without changing canonical outputs. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:212] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:338] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1243:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1244:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1254:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1255:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1266:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1277:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1288:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1293:      "text": "The handler path remains the bigger hole. The canonical atomic-save routing tests in `handler-memory-save.vitest.ts` all provide explicit `routeAs` values for progress and task updates, so there is still zero handler-level proof that ambiguous natural routing can reach Tier 3 in the real save flow. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1119] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1161]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1299:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1310:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1321:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1326:      "text": "Phase `003-wire-tier3-llm-classifier` is best described as a small integration slice, not a large architecture change: add an OpenAI-compatible adapter around `buildTier3Prompt()`, add a `RouterCache` implementation, inject both at `memory-save.ts:1008`, and test the natural save path with success, cache-hit, null-response, and timeout cases. The realistic production diff is about `90-130` LOC plus `70-100` LOC of tests. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1332:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1343:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1448:      "text": "\"Always on\" therefore means \"always attempted on ambiguous routes,\" not \"always authoritative.\" The shipped runtime still prefers safe fallback or refusal over forcing an unreliable model answer into a merge. [INFERENCE: trace across memory-save.ts and content-router.ts]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1451:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1452:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1453:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1459:      "text": "`classifyWithTier3Llm()` fail-opens at every external boundary. Missing endpoint, non-OK HTTP response, invalid JSON payload, and thrown fetch or abort all return `null` rather than surfacing an error into the save path. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:986] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:999]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1462:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1463:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1464:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1470:      "text": "Canonical routing is now unconditional in the save handler. `shouldUseCanonicalRouting()` returns `true` for every atomic save, so the live path no longer depends on a feature flag or explicit opt-in. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:2440]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1473:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1474:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1475:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1484:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1485:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1486:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1492:      "text": "The handler now constructs the router through `buildCanonicalRouter()`, which injects both `classifyWithTier3Llm` and the shared `tier3RoutingCache`. That closes the exact runtime gap identified in iterations 15 and 23. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1208]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1495:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1496:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1497:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1503:      "text": "A targeted routing-only Vitest run passed `7/7`, covering the new delivery/handover boundary assertions plus the natural Tier 3 and fail-open handler checks. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:76] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:133] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:503] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239] [INFERENCE: targeted `npx vitest run ... -t ...` execution]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1509:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1510:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1515:      "text": "Explicit `routeAs` saves against a child phase emit `PACKET_KIND: phase` and `SAVE_MODE: route-as`, which proves the prompt body distinguishes operator-forced routes from natural classification. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1347] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1207]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1521:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1522:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1527:      "text": "Natural canonical saves now reach Tier 3 with `PACKET_KIND: feature` and `SAVE_MODE: natural` in the prompt body, matching the handler's new `saveMode` labeling. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1206]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1533:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1534:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1539:      "text": "Research-root packets derive `PACKET_KIND: research` from spec frontmatter rather than pure path shape, which confirms the metadata-first packet-kind logic is live. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1294] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:870]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1545:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1546:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1551:      "text": "When Tier 3 transport throws, the handler still succeeds via natural Tier 2 routing and writes the note to the expected canonical target. That behavior matches the code-level fail-open contract from iteration 28. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:569] [INFERENCE: targeted `npx vitest run ... -t ...` execution]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1557:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1558:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1563:      "text": "`save.md` and `SKILL.md` both describe the live eight-category router correctly: `narrative_progress`, `narrative_delivery`, `decision`, `handover_state`, `research_finding`, `task_update`, `metadata_only`, and `drop`. [SOURCE: .opencode/commands/memory/save.md:76] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:389]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1566:        "`.opencode/commands/memory/save.md:76`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1569:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1577:        "`.opencode/commands/memory/save.md:76`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1580:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1585:      "text": "The delivery and handover boundary language is aligned with the code. Delivery is documented as sequencing, gating, rollout, and verification oriented, while handover explicitly keeps state-first stop/resume notes even when soft operational commands appear. [SOURCE: .opencode/commands/memory/save.md:95] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:384] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:935]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1588:        "`.opencode/commands/memory/save.md:76`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1591:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1596:      "text": "The override and context wording is also correct. Both docs say `routeAs` preserves the natural decision for audit, and that `packet_kind` comes from spec metadata first with a parent-phase fallback only when metadata is silent. [SOURCE: .opencode/commands/memory/save.md:101] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:479] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1599:        "`.opencode/commands/memory/save.md:76`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1602:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1607:      "text": "Their Tier flow description matches the code: Tier 1 uses strong heuristics, Tier 2 uses prototype similarity, and Tier 3 is wired into the save handler by default with a safe Tier 2 penalty fallback or refusal. [SOURCE: .opencode/commands/memory/save.md:89] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:569]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1610:        "`.opencode/commands/memory/save.md:76`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1613:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1618:      "text": "`save_workflow.md` matches the shipped category map, Tier flow, soft operational drop split, `routeAs` audit behavior, and metadata-first `packet_kind` derivation. [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:302] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:389] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1621:        "`.opencode/skills/system-spec-kit/references/memory/save_workflow.md:302`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1623:        "`.opencode/commands/memory/save.md:93`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1624:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1629:      "text": "That nuance is not a functional parity break because the same docs also state that unavailable Tier 3 falls back safely to Tier 2 with a penalty or refuses to route. The behavior description is correct even if the \"configured\" wording is slightly stronger than the code's guarantee. [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:321] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:569]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1632:        "`.opencode/skills/system-spec-kit/references/memory/save_workflow.md:302`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1634:        "`.opencode/commands/memory/save.md:93`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1635:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1643:        "`.opencode/skills/system-spec-kit/references/memory/save_workflow.md:302`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1645:        "`.opencode/commands/memory/save.md:93`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1646:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1651:      "text": "The one wording nuance is environmental. The docs phrase Tier 3 as if `LLM_REFORMULATION_ENDPOINT` is configured, while the code only checks whether the env var exists and otherwise returns `null` without hard failure. [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:321] [SOURCE: .opencode/commands/memory/save.md:93] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:953]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1654:        "`.opencode/skills/system-spec-kit/references/memory/save_workflow.md:302`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1656:        "`.opencode/commands/memory/save.md:93`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1657:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1662:      "text": "The same alignment also appears in `ARCHITECTURE.md`, so the deeper design doc, the operator command doc, and the skill entrypoint now tell the same routing story. [SOURCE: .opencode/skills/system-spec-kit/ARCHITECTURE.md:135] [SOURCE: .opencode/commands/memory/save.md:89] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1665:        "`.opencode/skills/system-spec-kit/references/memory/save_workflow.md:302`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1667:        "`.opencode/commands/memory/save.md:93`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1668:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1835:      "text": "The highest-leverage small changes are: stronger short-form drop wrappers for phrases like `captured file count`, `tool executions`, and `repository state`; a clearer research-versus-metadata distinction when `_memory.continuity` vocabulary appears inside analytical finding prose; and one additional guard so spec-doc nouns do not automatically push progress text into `research_finding`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:385] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:409] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:417] [INFERENCE: synthesis across preserved replay and residual error cases]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1898:      "text": "Because the preserved replay stayed flat and the current tree shows no further diff in `content-router.ts` or `routing-prototypes.json`, the F7 change is a write-target correctness fix, not a classifier-tuning change. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1064] [INFERENCE: comparison against iteration 36 replay]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1902:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1903:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1904:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1909:      "text": "The canonical save handler resolves `spec-frontmatter` to `implementation-summary.md` when that file exists and falls back to `spec.md` only when the implementation summary is missing. That matches the new regression tests covering both paths. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1913:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1914:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1915:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1920:      "text": "The routed identity helper now maps `metadata_only` saves to the continuity anchor on the canonical implementation summary host: `targetDocPath = implementation-summary.md` and `targetAnchorId = _memory.continuity`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:111] [INFERENCE: direct node probe against dist/handlers/save/create-record.js]",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1924:        "`.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1925:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157`",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1926:        "`.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200`"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1962:      "id": "ruled-out-1-2-historical-save-log-mining-the-packet-scope-and-current-memory-model-explicitly-",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:1963:      "text": "Historical save-log mining. The packet scope and current memory model explicitly require synthetic payloads instead.",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:2107:      "id": "ruled-out-15-2-treating-phase-003-as-a-one-line-constructor-tweak-in-memory-save-ts",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/findings-registry.json:2108:      "text": "Treating phase `003` as a one-line constructor tweak in `memory-save.ts`.",
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-002.md:8:2. Target selection is deterministic by category: progress and delivery append paragraphs to `implementation-summary.md`, research and handover append sections, tasks update a phase anchor, metadata writes `_memory.continuity`, and `decision` switches between ADR insertion on `L3/L3+` and in-place summary updates on `L1/L2`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:92]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-002.md:35:Inspect the Tier3 prompt contract, Tier3 cache conditions, and the memory-save integration path to determine whether the LLM tier is actually active in the canonical save flow.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:7:1. A targeted routing-only Vitest run passed `7/7`, covering the new delivery/handover boundary assertions plus the natural Tier 3 and fail-open handler checks. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:76] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:133] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:503] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239] [INFERENCE: targeted `npx vitest run ... -t ...` execution]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:8:2. Natural canonical saves now reach Tier 3 with `PACKET_KIND: feature` and `SAVE_MODE: natural` in the prompt body, matching the handler's new `saveMode` labeling. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1206]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:9:3. Research-root packets derive `PACKET_KIND: research` from spec frontmatter rather than pure path shape, which confirms the metadata-first packet-kind logic is live. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1294] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:870]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:10:4. Explicit `routeAs` saves against a child phase emit `PACKET_KIND: phase` and `SAVE_MODE: route-as`, which proves the prompt body distinguishes operator-forced routes from natural classification. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1347] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1207]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:11:5. When Tier 3 transport throws, the handler still succeeds via natural Tier 2 routing and writes the note to the expected canonical target. That behavior matches the code-level fail-open contract from iteration 28. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:569] [INFERENCE: targeted `npx vitest run ... -t ...` execution]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:23:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-029.md:24:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:11:   The V8 rule in `validate-memory-quality.ts` checks three contamination vectors: (a) frontmatter foreign spec mentions, (b) body content where foreign spec IDs dominate rendered content, (c) scattered foreign spec mentions in body text. All three are merged into a `v8Matches` array; the rule passes only when `v8Matches.length === 0`. V8 has severity "high", `blockOnWrite: true`, `blockOnIndex: true` -- meaning contaminated memories are blocked at both write and index stages.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:12:   [SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:101-108, 762-775]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:15:   V12 reads the parent spec folder's `spec.md` to extract `trigger_phrases`, then checks whether ANY of those phrases appear (case-insensitive) in the memory content. If zero phrases match, V12 fails with `V12_TOPICAL_MISMATCH`. V12 has severity "medium", `blockOnWrite: false`, `blockOnIndex: true` -- meaning off-topic memories are written to disk but excluded from the semantic index.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:16:   [SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:133-140, 841-872]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:19:   The `v-rule-bridge.ts` handler in the MCP server uses `createRequire(import.meta.filename)` to dynamically load the compiled `validate-memory-quality.js` from the scripts/dist directory. It attempts two candidate paths and falls back gracefully if the module is unavailable (returns error result or bypasses when SPECKIT_VRULE_OPTIONAL=true). The bridge exports `validateMemoryQualityContent()` and `determineValidationDisposition()`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:24:   [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/validation-v13-v14-v12.vitest.ts (file exists), .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:19-20]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:69:- `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts` (lines 23, 101-108, 133-140, 762-775, 841-872)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-003.md:82:- What did not work and why: The compiled JS (validate-memory-quality.js) did not contain searchable V8/V12 strings, requiring fallback to the TypeScript source. This suggests minification or name mangling during compilation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:2:title: "...rid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:3:description: "Research complete: 7 external graph memory systems surveyed, 12-item ranked improvement backlog produced, 2 ADRs filed."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:12:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:33:| **Spec Folder** | 007-external-graph-memory-research |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:43:Complete comparative survey of 7 external graph memory systems: Zep, Mem0, GraphRAG, LightRAG, Memoripy, Cognee, and Graphiti. Each system was evaluated against a fixed 4-dimension rubric (construction, traversal, UX transparency, automatic utilization) using the internal graph baseline as reference.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md:53:Research output is complete. Phase closeout pending (memory save via generate-context.js). The ranked improvement backlog provides concrete implementation guidance for follow-on phases. The known "Semantic Search" zero-result gap has a clear fix path via concept expansion + community fallback + graph-expanded retry.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:1:{"iteration":1,"dimension":"correctness","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":1,"p1":0,"p2":0},"notes":"P0: Strict spec validation is currently failing"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:2:{"iteration":2,"dimension":"traceability","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:3:{"iteration":3,"dimension":"completeness","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":0,"p1":0,"p2":1},"notes":"P2: Active review history is being initialized in this pass"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:4:{"iteration":4,"dimension":"synthesis","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":1,"p1":1,"p2":1},"notes":"P0: Strict spec validation is currently failing | P1: Tracked execution inventory remains open | P2: Active review history is being initialized in this pass"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:5:{"iteration":5,"dimension":"correctness","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":1,"p1":0,"p2":0},"notes":"P0: Strict spec validation is currently failing"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:6:{"iteration":6,"dimension":"traceability","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":0,"p1":1,"p2":0},"notes":"P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:7:{"iteration":7,"dimension":"completeness","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":0,"p1":0,"p2":0},"notes":"No active findings for this iteration."}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-state.jsonl:8:{"iteration":8,"dimension":"synthesis","status":"complete","runDate":"2026-04-02","phase":"007-external-graph-memory-research","verdict":"FAIL","findings":{"p0":1,"p1":1,"p2":0},"notes":"P0: Strict spec validation is currently failing | P1: Tracked execution inventory remains open"}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:3:{"type":"iteration","run":3,"status":"complete","focus":"Tier3 prompt contract and runtime wiring reality","findingsCount":4,"newInfoRatio":0.82,"noveltyJustification":"Two findings were new and two refined the earlier router architecture map.","keyQuestions":["RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"answeredQuestions":[],"ruledOut":["Treating the Tier3 prompt contract as live runtime behavior without checking the save handler"],"focusTrack":"runtime-wiring","toolsUsed":["Read","Grep","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:212"],"timestamp":"2026-04-13T05:07:00Z","durationMs":420000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:5:{"type":"iteration","run":5,"status":"complete","focus":"Synthetic corpus baseline accuracy and hard-rule performance","findingsCount":5,"newInfoRatio":0.86,"noveltyJustification":"Four findings were newly measured from the live router corpus run and one refined earlier trigger analysis.","keyQuestions":["RQ-1: What is the classification accuracy of Tier1 hard rules? Which of the 7 rules fire most often, and do any produce false positives?","RQ-3: What are the confusion pairs between categories? (for example, does `narrative_progress` get confused with `task_update`?)","RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?"],"answeredQuestions":["RQ-1: What is the classification accuracy of Tier1 hard rules? Which of the 7 rules fire most often, and do any produce false positives?"],"ruledOut":["Relying on static rule reading alone for accuracy claims"],"focusTrack":"measurement","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/routing-prototypes.json:1",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:48","memory-save runtime corpus execution via dist/lib/routing/content-router.js"],"timestamp":"2026-04-13T05:23:00Z","durationMs":540000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:7:{"type":"iteration","run":7,"status":"complete","focus":"Merge-mode mapping and payload construction by category","findingsCount":4,"newInfoRatio":0.7,"noveltyJustification":"Three findings were new and one connected earlier category analysis to the atomic save writer contract.","keyQuestions":["RQ-5: What merge modes succeed vs fail for each category? Are there categories where the default merge mode is wrong?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"answeredQuestions":[],"ruledOut":["Treating metadata-only saves as normal anchor merges"],"focusTrack":"merge","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:76"],"timestamp":"2026-04-13T05:38:00Z","durationMs":420000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:8:{"type":"iteration","run":8,"status":"complete","focus":"Merge legality and failure conditions","findingsCount":5,"newInfoRatio":0.66,"noveltyJustification":"Three findings were new and two consolidated the merge/validation safety model into one failure map.","keyQuestions":["RQ-5: What merge modes succeed vs fail for each category? Are there categories where the default merge mode is wrong?"],"answeredQuestions":["RQ-5: What merge modes succeed vs fail for each category? Are there categories where the default merge mode is wrong?"],"ruledOut":["Assuming a successful classification guarantees a legal merge"],"focusTrack":"merge","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/merge/anchor-merge-operation.ts:265",".opencode/skills/system-spec-kit/mcp_server/lib/validation/spec-doc-structure.ts:627",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1144"],"timestamp":"2026-04-13T05:46:00Z","durationMs":480000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:9:{"type":"iteration","run":9,"status":"complete","focus":"Override semantics and threshold sensitivity sweep","findingsCount":5,"newInfoRatio":0.62,"noveltyJustification":"Three findings were new and two quantified earlier wiring observations across the threshold grid.","keyQuestions":["RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"answeredQuestions":["RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"ruledOut":["Recommending a threshold change without comparing refusal cost"],"focusTrack":"thresholds","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:428",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1053",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:395"],"timestamp":"2026-04-13T05:55:00Z","durationMs":540000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:10:{"type":"iteration","run":10,"status":"complete","focus":"Synthesis and implementation-ready recommendations","findingsCount":5,"newInfoRatio":0.58,"noveltyJustification":"Two findings were new and the rest resolved contradictions between raw accuracy gains, refusal costs, and runtime wiring reality.","keyQuestions":["RQ-1: What is the classification accuracy of Tier1 hard rules? Which of the 7 rules fire most often, and do any produce false positives?","RQ-2: What is the Tier1->Tier2 escalation rate? What types of content trigger escalation (top1 below threshold, narrow margin, mixed signals)?","RQ-3: What are the confusion pairs between categories? (for example, does `narrative_progress` get confused with `task_update`?)","RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?","RQ-5: What merge modes succeed vs fail for each category? Are there categories where the default merge mode is wrong?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"answeredQuestions":["RQ-1: What is the classification accuracy of Tier1 hard rules? Which of the 7 rules fire most often, and do any produce false positives?","RQ-2: What is the Tier1->Tier2 escalation rate? What types of content trigger escalation (top1 below threshold, narrow margin, mixed signals)?","RQ-3: What are the confusion pairs between categories? (for example, does `narrative_progress` get confused with `task_update`?)","RQ-4: Are the 0.70/0.70/0.50 thresholds optimal, or would different values reduce escalation without losing accuracy?","RQ-5: What merge modes succeed vs fail for each category? Are there categories where the default merge mode is wrong?","RQ-6: How does the `routeAs` override interact with natural classification? Does override produce better or worse outcomes?"],"ruledOut":["Single-knob threshold tuning as the primary remediation"],"focusTrack":"synthesis","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:470",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/lib/validation/spec-doc-structure.ts:685"],"timestamp":"2026-04-13T06:03:00Z","durationMs":480000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:17:{"type":"iteration","run":15,"status":"complete","focus":"Tier3 wiring gap in the save path","findingsCount":4,"newInfoRatio":0.66,"noveltyJustification":"Three findings were new and one converted the callsite audit into a concrete missing-adapter requirement.","keyQuestions":["RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?"],"answeredQuestions":[],"ruledOut":["Treating phase `003` as a one-line constructor tweak in `memory-save.ts`"],"focusTrack":"runtime-wiring","toolsUsed":["Read","Grep","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:386",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:185"],"timestamp":"2026-04-13T09:00:00Z","durationMs":420000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:18:{"type":"iteration","run":16,"status":"complete","focus":"Tier3 latency and cost envelope","findingsCount":4,"newInfoRatio":0.57,"noveltyJustification":"Two findings were new and two turned existing contract constants into an operational rollout estimate.","keyQuestions":["RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?"],"answeredQuestions":["RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?"],"ruledOut":["Treating Tier3 cost as the main blocker before measuring the ambiguous-call rate"],"focusTrack":"runtime-wiring","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:12",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:470",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:806",".opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:203"],"timestamp":"2026-04-13T09:09:00Z","durationMs":360000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:20:{"type":"iteration","run":18,"status":"complete","focus":"Test coverage gaps and untested edges","findingsCount":4,"newInfoRatio":0.61,"noveltyJustification":"Three findings were new and one connected router-only coverage to the missing handler-level save-path assertions.","keyQuestions":["RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"answeredQuestions":["RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"ruledOut":["Treating the current test suite as sufficient because every category already has one positive-path assertion"],"focusTrack":"test-coverage","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:48",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:395",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076"],"timestamp":"2026-04-13T09:27:00Z","durationMs":360000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:21:{"type":"iteration","run":19,"status":"complete","focus":"Phase-by-phase implementation guidance","findingsCount":4,"newInfoRatio":0.46,"noveltyJustification":"Most raw evidence was already known, but this pass converted it into exact code-location guidance for phases 001-003.","keyQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?","RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?","RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"answeredQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?"],"ruledOut":["Treating the implementation phases as independent"],"focusTrack":"phase-guidance","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:345",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:877",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076"],"timestamp":"2026-04-13T09:36:00Z","durationMs":390000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:22:{"type":"iteration","run":20,"status":"complete","focus":"Remediation synthesis and sequencing","findingsCount":5,"newInfoRatio":0.38,"noveltyJustification":"This iteration added limited new raw evidence but produced the final ordering and implementation guidance across the full research set.","keyQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?","RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?","RQ-10: Are the Tier2 prototype vectors well distributed across categories, especially at the delivery/progress and handover/drop boundaries?","RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"answeredQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?","RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?","RQ-10: Are the Tier2 prototype vectors well distributed across categories, especially at the delivery/progress and handover/drop boundaries?","RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"ruledOut":["Treating Tier3 wiring as the fix for delivery/progress and handover/drop by itself"],"focusTrack":"synthesis","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:341",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:369",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:185"],"timestamp":"2026-04-13T09:45:00Z","durationMs":330000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:27:{"type":"iteration","run":23,"status":"complete","focus":"Tier3 wiring effort estimate and test strategy","findingsCount":5,"newInfoRatio":0.28,"noveltyJustification":"Three findings were new and two translated the known runtime gap into concrete production and test line-count bands.","keyQuestions":["RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?"],"answeredQuestions":["RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?"],"ruledOut":["Assuming a reusable production `RouterCache` already exists and phase `003` only needs to pass it through"],"focusTrack":"runtime-wiring","toolsUsed":["Read","Grep","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:231",".opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts:200",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:556"],"timestamp":"2026-04-13T10:25:00Z","durationMs":450000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:28:{"type":"iteration","run":24,"status":"complete","focus":"Routing-category coverage floor in content-router tests","findingsCount":4,"newInfoRatio":0.22,"noveltyJustification":"One finding was new and the rest clarified that the remaining gap is adversarial boundary coverage rather than category absence.","keyQuestions":["RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"answeredQuestions":["RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"ruledOut":["Looking for a routing category that is completely absent from `content-router.vitest.ts`"],"focusTrack":"test-coverage","toolsUsed":["Read","Grep","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:48",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:195",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:395",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1076"],"timestamp":"2026-04-13T10:34:00Z","durationMs":330000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:29:{"type":"iteration","run":25,"status":"complete","focus":"Final convergence synthesis with exact phase change descriptions","findingsCount":4,"newInfoRatio":0.14,"noveltyJustification":"This iteration added little new raw evidence and instead converted the convergence wave into the final implementation-ready handoff.","keyQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?","RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?","RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"answeredQuestions":["RQ-7: Which exact delivery-versus-progress cues cause the current misclassifications, and what delivery lexicon should be added?","RQ-8: Which handover patterns are currently pulled into `drop`, and how should the drop heuristic be relaxed?","RQ-9: What exact code is missing to wire Tier3 into `memory-save.ts`, and what latency or cost envelope does that imply?","RQ-11: Which routing categories and edge cases lack meaningful regression coverage today?"],"ruledOut":["Continuing the research loop instead of handing the packet back to implementation"],"focusTrack":"synthesis","toolsUsed":["Read","Grep","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:345",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:369",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:1128",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008"],"timestamp":"2026-04-13T10:43:00Z","durationMs":360000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:34:{"type":"iteration","run":28,"status":"complete","focus":"Tier 3 always-on runtime trace","findingsCount":5,"newInfoRatio":0.35,"noveltyJustification":"The code trace added new runtime certainty about where Tier 3 is now injected and how the live path degrades to Tier 2 or refusal.","keyQuestions":["RQ-13: Does the always-on Tier3 save path now route end to end with correct fail-open behavior?"],"answeredQuestions":[],"ruledOut":["Assuming that always-on Tier3 makes every canonical save network-dependent"],"focusTrack":"tier3-runtime","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:553"],"timestamp":"2026-04-13T11:12:00Z","durationMs":360000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:35:{"type":"iteration","run":29,"status":"complete","focus":"Tier 3 prompt-body and fail-open verification","findingsCount":5,"newInfoRatio":0.31,"noveltyJustification":"The targeted test run converted the runtime trace into verified prompt-body, packet-kind, save-mode, and fail-open behavior evidence.","keyQuestions":["RQ-13: Does the always-on Tier3 save path now route end to end with correct fail-open behavior?"],"answeredQuestions":["RQ-13: Does the always-on Tier3 save path now route end to end with correct fail-open behavior?"],"ruledOut":["Treating the routing-only Tier3 tests as redundant now that the handler wiring exists in code"],"focusTrack":"tier3-verification","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:76",".opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:503",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239","targeted routing-only vitest run"],"timestamp":"2026-04-13T11:20:00Z","durationMs":420000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:36:{"type":"iteration","run":30,"status":"complete","focus":"save.md and SKILL.md parity audit","findingsCount":5,"newInfoRatio":0.29,"noveltyJustification":"This pass added new doc-to-code parity evidence across the two primary operator-facing routing surfaces.","keyQuestions":["RQ-14: Do `save.md`, `SKILL.md`, and `save_workflow.md` match the shipped router behavior line by line?"],"answeredQuestions":[],"ruledOut":["Treating the packet as still documentation-drifted just because the earlier research was written before implementation landed"],"focusTrack":"doc-parity","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/commands/memory/save.md:76",".opencode/skills/system-spec-kit/SKILL.md:549",".opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:384",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858"],"timestamp":"2026-04-13T11:28:00Z","durationMs":360000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:37:{"type":"iteration","run":31,"status":"complete","focus":"save_workflow.md parity and endpoint wording nuance","findingsCount":5,"newInfoRatio":0.24,"noveltyJustification":"The workflow-doc pass added one small wording nuance about endpoint availability while confirming functional parity across the full canonical doc surface.","keyQuestions":["RQ-14: Do `save.md`, `SKILL.md`, and `save_workflow.md` match the shipped router behavior line by line?"],"answeredQuestions":["RQ-14: Do `save.md`, `SKILL.md`, and `save_workflow.md` match the shipped router behavior line by line?"],"ruledOut":["Treating the endpoint-availability wording nuance as a substantive documentation mismatch"],"focusTrack":"doc-parity","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/references/memory/save_workflow.md:302",".opencode/skills/system-spec-kit/ARCHITECTURE.md:135",".opencode/commands/memory/save.md:93",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899"],"timestamp":"2026-04-13T11:36:00Z","durationMs":330000}
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/deep-research-state.jsonl:45:{"type":"iteration","run":37,"status":"complete","focus":"Metadata-only identity verification","findingsCount":3,"newInfoRatio":0.04,"noveltyJustification":"Identity and handler checks confirmed the expected write-target fix shape without changing the research frontier or benchmark behavior.","keyQuestions":["RQ-17: Did the metadata_only target fix or doc cleanup change preserved-subset routing accuracy, and are any new router edge cases left after the post-fix verification sweep?"],"answeredQuestions":[],"ruledOut":["Treating F7 as a hidden fix for the research_finding versus metadata_only classification seam"],"focusTrack":"post-fix-identity","toolsUsed":["Read","Bash"],"sourcesQueried":[".opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:111",".opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157",".opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200"],"timestamp":"2026-04-13T12:28:00Z","durationMs":210000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/checklist.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/checklist.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:14:_memory:
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:18:    last_updated_by: "backfill-memory-block"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:19:    recent_action: "Backfilled _memory block (repo-wide frontmatter sweep)"
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:27:This packet stayed read-only and only updated `research/` artifacts. Iterations 1-25 established the pre-implementation baseline and produced the three remediation phases plus the doc-alignment follow-on. Iterations 26-35 reran the benchmark against shipped behavior, traced the always-on Tier 3 path end to end, checked the canonical docs against code, and measured prototype separation after the refresh. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:384] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951] [SOURCE: .opencode/commands/memory/save.md:76]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:55:- Canonical routing is unconditional because `shouldUseCanonicalRouting()` now returns `true`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:711]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:56:- The handler constructs the router through `buildCanonicalRouter()`, injecting both `classifyWithTier3Llm` and the shared `tier3RoutingCache`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:57:- `classifyWithTier3Llm()` fail-opens on missing endpoint, non-OK response, invalid JSON, and thrown transport errors by returning `null`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:951]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:62:  - explicit route overrides on child phases: `PACKET_KIND: phase`, `SAVE_MODE: route-as` [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1239] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1294] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1347]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:63:- The fail-open test also passes: when Tier 3 transport throws, the handler still succeeds via natural Tier 2 routing and writes the expected canonical target. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1401] [INFERENCE: targeted routing-only Vitest run]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:71:- `save.md`, `SKILL.md`, and `save_workflow.md` all describe the live eight-category router correctly. [SOURCE: .opencode/commands/memory/save.md:76] [SOURCE: .opencode/skills/system-spec-kit/SKILL.md:549] [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:304]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:72:- Their Tier-flow description matches the code: Tier 1 heuristics, Tier 2 prototypes, Tier 3 wired by default with safe fallback or refusal. [SOURCE: .opencode/commands/memory/save.md:89] [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:317] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1005]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:76:  - hard transcript, telemetry, and wrapper scaffolding still route to `drop` [SOURCE: .opencode/commands/memory/save.md:95] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:384] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:943]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:77:- The override and context rules are also aligned: `routeAs` preserves the natural decision for audit, and `packet_kind` derives from spec metadata first (`type`, `title`, `description`) with parent-phase fallback only when metadata is silent. [SOURCE: .opencode/commands/memory/save.md:101] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:479] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:858]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:81:- The code only checks whether the env var exists and otherwise returns `null`, preserving fail-open behavior. [SOURCE: .opencode/commands/memory/save.md:93] [SOURCE: .opencode/skills/system-spec-kit/references/memory/save_workflow.md:321] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:899]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:108:2. Distinguish `research_finding` from `metadata_only` more explicitly when `_memory.continuity`, `preflight`, or `postflight` vocabulary appears inside analytical prose rather than field-heavy payloads. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:409] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:417]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/research.md:117:- The `metadata_only` fix changes routed save-target identity, not classifier behavior. The create-record helper now resolves routed metadata saves onto `implementation-summary.md::_memory.continuity`, and the handler still falls back to `spec.md` only when `implementation-summary.md` is absent. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:111] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:4:Deep-read `data-loader.ts` and `generate-context.ts`. Map how `--json` input is parsed, validated, and converted to `CollectedDataFull`. Document which JSON fields are accepted, which are rejected (the "Unknown field" warnings), and what the `filesChanged` field status is.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:10:`generate-context.ts` `parseArguments()` (lines 393-433) handles three modes:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:20:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:393-433]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:39:However, `validateInputData()` and `normalizeInputData()` from `input-normalizer.ts` are still called. The validation happens at `generate-context.ts` line 100 indirectly -- actually no, for `--json`/`--stdin`, validation is NOT called by `data-loader.ts` since that module is bypassed. The question is whether `runWorkflow()` calls validation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:41:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:558-567]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:72:| importanceTier | `importanceTier`, `importance_tier` | string | Memory importance tier |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:73:| contextType | `contextType`, `context_type` | string (enum) | Memory context type |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:91:2. The data in that field will be silently dropped -- no files will appear in the memory output
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:130:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:348-388]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:142:[SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:369-377]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:152:- `.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts` (full file, 607 lines)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:159:- Questions addressed: ["How should extractConversations() build MESSAGES from sessionSummary/keyDecisions/observations when userPrompts is empty?", "What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-006.md:163:- What worked and why: Reading generate-context.ts first to understand the CLI entry points, then tracing the data flow into data-loader.ts and input-normalizer.ts, revealed that `--json` completely bypasses the data-loader and its validation. This is a significant architectural finding -- the two input paths have different validation coverage.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:3:  "packet_id": "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:4:  "spec_folder": "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:14:      "graph memory research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:17:      "knowledge graph memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:19:      "external graph memory research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:23:      "graph memory research tasks",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:29:      "memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:96:        "name": "Spec Kit Memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:108:        "name": "External Graph Memory Research",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:114:        "name": "The Spec Kit Memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/graph-metadata.json:198:    "causal_summary": "The Spec Kit Memory causal graph currently has 3,854 edges at 79.92% coverage, dominated by `supports` (2,578) and `caused` (1,265) relations. While structurally healthy, the graph is used reactively — retrieved only when causal boost or co-activation fires — rather than as a proactive, first-class retrieval channel. This research phase investigates how leading external graph memory systems (Zep, Mem0, GraphRAG, Memoripy, LightRAG, Cognee) handle graph construction, traversal, UX surface, and automatic utilization, and produces a ranked shortlist of improvements applicable to our system.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-dashboard.md:3:- Phase: `007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-dashboard.md:14:- Phase: `007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-013.md:4:Assess test coverage across the Spec Kit Memory MCP server search pipeline. Map existing tests to each of the 7 proposed backlog changes (P1-3 recency fusion, P1-4 GRAPH_WEIGHT_CAP, RECONSOLIDATION default-enable, QUALITY_LOOP default-enable, P2-4 doc-type shift, P3 NOVELTY_BOOST cleanup, P3 hasTriggerMatch). Identify gaps and propose minimal test additions.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-013.md:26:| `memory-save-ux-regressions.vitest.ts` | Save UX with QUALITY_LOOP env | QUALITY_LOOP |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-013.md:76:**QUALITY_LOOP:** `memory-save-ux-regressions.vitest.ts` references `SPECKIT_QUALITY_LOOP` in env setup/teardown but the flag default assertion needs to be verified. The `rollout-policy.vitest.ts` tests `isFeatureEnabled()` generically and would automatically cover QUALITY_LOOP if it uses the standard isFeatureEnabled pattern.
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-003.md:9:3. The canonical save handler currently constructs `createContentRouter()` with no dependency injection, so `classifyWithTier3` defaults to `null` in the actual writer path. Tier3 exists in tests and the router contract, but not in the live save wiring studied here. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:386]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-003.md:21:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1008`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:7:1. The routed identity helper now maps `metadata_only` saves to the continuity anchor on the canonical implementation summary host: `targetDocPath = implementation-summary.md` and `targetAnchorId = _memory.continuity`. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:111] [INFERENCE: direct node probe against dist/handlers/save/create-record.js]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:8:2. The canonical save handler resolves `spec-frontmatter` to `implementation-summary.md` when that file exists and falls back to `spec.md` only when the implementation summary is missing. That matches the new regression tests covering both paths. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:9:3. Because the preserved replay stayed flat and the current tree shows no further diff in `content-router.ts` or `routing-prototypes.json`, the F7 change is a write-target correctness fix, not a classifier-tuning change. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1064] [INFERENCE: comparison against iteration 36 replay]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:19:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:20:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1157`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-037.md:21:- `.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts:1200`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-016.md:4:Analyze the complete trigger phrase extraction pipeline for JSON-mode saves: from sessionSummary text input through SemanticSignalExtractor to the final filtered trigger phrases in the memory file frontmatter. Design an NLP strategy for extracting meaningful phrases, quality filtering to avoid bigram fragments, and dedup strategy.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-016.md:125:- "quality pipeline" vs "memory save quality pipeline" (subset words)
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-027.md:35:Trace the always-on Tier 3 path from `memory-save.ts` into the router and confirm that "wired by default" still fail-opens exactly the way the docs claim.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-strategy.md:3:- Review target: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/review/deep-review-strategy.md:12:- Review target: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-007.md:51:2. **Memory-level recency in Stage 2**: The `computeRecencyScore` imported at `stage2-fusion.ts:80` is the SAME folder-scoring function re-used for individual memory recency. It applies the same decay formula but in the context of fusion scoring.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-007.md:55:**Real issue**: The recency score is computed per-memory but applied through the folder scoring composite (40% weight). At the individual search result level, recency does NOT directly boost individual result scores in Stage 2 -- it only contributes through folder-level scoring when folder scoring is active. If a user searches without folder context, individual result recency is NOT factored into ranking.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-007.md:57:**Proposed fix**: Add a direct recency signal to Stage 2 fusion (after Step 6, before Step 7) that applies a small additive recency bonus to individual results based on their `updated_at` timestamp. Formula: `bonus = 0.05 * computeRecencyScore(row.updated_at)`. Effort: ~1-2 hours. This would give a recently-updated memory up to +0.05 score, which is meaningful but not overwhelming.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-007.md:88:The single highest-impact change for search quality would be **adding a direct recency signal to Stage 2 fusion** (P1-3 fix). Currently, a memory updated 5 minutes ago and a memory updated 6 months ago with identical semantic similarity get identical scores in the fusion pipeline (absent folder scoring context). Most users searching memory want recent context, and the session-based decay in folder scoring only helps when folder context is available.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/004-fix-access-signal-path/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/checklist.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/checklist.md:96:- [ ] CHK-052 [P2] Findings saved to memory/ [Pending: save after implementation work closes]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:12:- **MERGE path** (similarity >= 0.88): Archives the existing memory (`is_archived = 1`), creates a NEW merged memory record with combined content, boosts importance_weight by +0.1 (capped at 1.0), regenerates embedding for merged content, creates a `supersedes` causal edge, refreshes BM25 index, refreshes interference scores for the folder, and clears search cache. This is a **destructive** operation (the original is archived, not deleted, but no longer appears in search results).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:13:- **CONFLICT path** (similarity 0.75-0.88): Creates a `supersedes` causal edge between new and existing memory but does NOT modify the existing memory content. Non-destructive.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:14:- **COMPLEMENT path** (similarity < 0.75): No mutations to existing memories. New memory stored unchanged.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:22:**Risk assessment for default-enable:** The merge path IS destructive (archives old memory, creates merged replacement). However:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:46:The quality loop is used at save-time only (not search-time), and its output is consumed by the caller (`memory-save.ts`) to decide whether to proceed with the save. The `maxRetries` parameter (default 2) means it may re-run its internal scoring up to 2 times, but each retry is the same pure computation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:49:[SOURCE: /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:261-271]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:73:This is the Layer B cap (per-memory graph contribution cap). It coexists with:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:125:- **DEF-2 (QUALITY_LOOP default-ON)**: The quality loop is already called on every `memory_save` invocation (line 261 of memory-save.ts). The current behavior when `QUALITY_LOOP=false` appears to be that validation still runs but rejections are downgraded to warnings. Enabling it makes rejections enforceable. **Potential concern**: Users who have been saving low-quality memories that pass under the warn-only mode might see saves rejected after this change. This is actually the desired behavior (quality enforcement), but it is a behavior change that should be documented.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:127:[INFERENCE: Based on reconsolidation-bridge.ts checkpoint gate + memory-save.ts quality loop wiring + search-flags.ts flag patterns]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:140:- `/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts` (lines 261-271)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-019.md:157:Final iteration (20) should be used for: research.md polish with complete roadmap section, or memory save for future sessions. All verification targets confirmed -- no contradictions or errors found in prior claims.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:101:| DEF-2: QUALITY_LOOP default | `search-flags.ts` (change gating) | VERIFY `memory-save-ux-regressions.vitest.ts` | VERY LOW -- pure algorithmic, bounded (max 2 retries) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:123:| UX-1: Intent-to-profile routing | `memory-search.ts` (~30 lines), `memory-context.ts` (~15 lines), mapping constant | NEW ~40 lines of tests | VERY LOW -- explicit profile param overrides, env var kill-switch |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:124:| UX-2: Attention-enriched hints | `memory-surface.ts` (~20 lines) | NEW 2-3 tests | LOW -- additive 1.3x multiplier, only affects auto-surface ranking |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:147:| UX-3: Spec neighborhood auto-loading | `memory-context.ts` + new module (~200-300 lines) | NEW tests | MEDIUM -- new feature, requires causal graph aggregation at spec level |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:195:4. CACHE-1: Cross-encoder cache limit (30min) -- proven pattern, prevents memory leak
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:222:- Iterations 4/8 described session state as "ephemeral by design." Iteration 16 corrected this -- session_state IS SQLite-durable; only the working-memory attention Map is ephemeral.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-018.md:258:2. Memory save -- persist findings for future sessions
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:2:title: "Research: Memory Save [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:3:description: "20-iteration deep research campaign analyzing why JSON-mode memory saves produce 0/100 quality output and how to fix the generate-context.js pipeline."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:6:  - "memory"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:13:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:20:# Research: Memory Save Quality Pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:25:The `generate-context.js` memory save pipeline fails catastrophically when invoked via `--json` mode (the primary save path after context compaction). JSON-mode saves produce 0/100 quality scores, empty observation sections, generic boilerplate descriptions, poor trigger phrases, and 300+ key_files entries. The root cause is a single architectural assumption: the pipeline treats `userPrompts[]` as the sole primary data source. When JSON-mode provides structured data (sessionSummary, keyDecisions, observations) instead of conversation transcripts, the extraction pipeline produces empty or minimal output.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:29:Source: `scripts/core/workflow.ts`, `scripts/extractors/conversation-extractor.ts`, `scripts/core/quality-scorer.ts`, and `scripts/lib/validate-memory-quality.ts`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md:162:**Function:** `scoreMemoryQuality()` (line 127-279)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/description.json:21:  "memorySequence": 2,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/description.json:22:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:2:title: "...ec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:3:description: "Comparative analysis of 7 external graph memory systems with ranked improvement backlog for Spec Kit Memory"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:5:  - "external graph memory research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:6:  - "graph memory survey results"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:13:    packet_pointer: "system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:26:- Spec path: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:33:This survey compares seven external graph-memory systems—Zep, Mem0, GraphRAG, LightRAG, Memoripy, Cognee, and Graphiti—against Spec Kit Memory’s current state. Across the systems, the strongest recurring pattern is not “build a bigger graph,” but “turn graph structure into searchable, explainable, auto-utilized retrieval artifacts.” The external systems differ in sophistication, but they converge on several practical lessons: searchable graph text surfaces, hybrid retrieval, query-to-graph bridging, summaries/community abstractions, stronger provenance, and better user-facing explanations.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:35:The main diagnosis is that Spec Kit Memory already appears structurally healthy, but its graph is under-productized at retrieval time. Several current flags and features already cover pieces of the needed surface—graph concept routing, causal boost, community detection, response trace, explainability, summaries, query surrogates, query reformulation, adaptive fusion, session state—but the external comparison suggests the next step is tighter integration and more visible graph-native behavior rather than isolated graph signals.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:44:| 2 | Phase A (Build) | Searchable node/edge summaries | H | M | Zep, LightRAG, and Cognee all benefit when graph objects have natural-language retrieval surfaces instead of only raw memory text or relation labels. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:48:| 6 | Phase B (Retrieve) | Zero-result recovery for weak/empty searches | H | M | The known miss on `memory_search('Semantic Search')` indicates the current pipeline still needs a graph-assisted rescue path that can fire when primary retrieval returns nothing useful. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:66:Our system: 3,854 causal edges, 79.92% coverage, dominant supports (2,578) and caused (1,265), avg strength 0.76, 6 orphaned edges, memory_search('Semantic Search') returns 0 results
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md:75:Zep’s graph memory is built on **Graphiti**, which models memory as a three-layer temporal graph: **episodes** (raw ingested events), **semantic entities/facts** (resolved nodes and edges derived from those events), and **communities** (higher-level clusters with summaries). That layering matters: Zep does not just embed raw text; it keeps the source event, extracts structured meaning from it, and then builds cluster-level abstractions above it. ([paper](https://arxiv.org/html/2501.13956), [Graphiti overview](https://help.getzep.com/graphiti/getting-started/overview), [Graph overview](https://help.getzep.com/graph-overview))
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:1:# Iteration 17: Intent-to-Profile Auto-Routing Design + Working Memory Persistence Assessment
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:4:Design the intent-to-profile auto-routing system identified as the highest-impact hookless improvement in iteration 16. This iteration maps the exact code architecture: how `classifyIntent()` in `intent-classifier.ts` produces intent types, how `applyResponseProfile()` in `profile-formatters.ts` consumes profile names, where the gap exists, and how to bridge them. Also assesses working-memory attention persistence and spec neighborhood auto-loading feasibility.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:12:- **Intent Classifier** (`lib/search/intent-classifier.ts`): Produces 7 `IntentType` values (`add_feature`, `fix_bug`, `refactor`, `security_audit`, `understand`, `find_spec`, `find_decision`) with confidence scores. Uses a 3-channel scoring system: centroid embedding (50%), keyword matching (35%), regex patterns (15%). Already called automatically in both `memory-search.ts:578` and `memory-context.ts:846`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:31:The `applyResponseProfile()` function (line 407) accepts a profile string and formats results accordingly. In `memory-search.ts:1108`, it is applied ONLY when the caller explicitly passes a `profile` parameter. In `memory-context.ts`, the profile parameter is threaded through options but similarly requires explicit caller specification.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:35:[SOURCE: lib/response/profile-formatters.ts:407-430, handlers/memory-search.ts:1107-1123, handlers/memory-context.ts:126-127]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:51:**Injection point** (memory-search.ts): After line 597 (intent confidence floor) and before line 1107 (profile application), insert:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:75:**Estimated effort**: ~30 lines of code change in memory-search.ts, ~15 lines in memory-context.ts. Plus ~40 lines of tests. Total: ~85 lines, ~1 hour.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:77:[SOURCE: handlers/memory-search.ts:560-597 (intent detection), handlers/memory-search.ts:1107-1123 (profile application), INFERENCE: based on analysis of both systems' interfaces]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:79:### 4. Memory-Context Handler Also Needs Auto-Routing
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:81:The `memory-context.ts` handler at line 846 already calls `classifyIntent()` and threads the `profile` parameter through to sub-calls. The same mapping table should be applied in this handler's `resolveEffectiveMode()` function (line 832). Currently `memory-context.ts` maps intent to MODE (`INTENT_TO_MODE` at line 852) but not to PROFILE.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:85:[SOURCE: handlers/memory-context.ts:832-879, 684, 715, 749]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:87:### 5. Working-Memory Attention Persistence: Already Partially Solved
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:89:The working memory module (`lib/cognitive/working-memory.ts`) stores attention scores in a SQLite `working_memory` table. This data IS already persisted to disk -- the session-scoped attention map survives process restarts because it is in SQLite, not in-memory.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:91:However, there is a subtle gap: the `sessionModeRegistry` (line 129) is an in-process `Map<string, string>` that tracks inferred session modes. This is the ONLY ephemeral state in the working memory module. Everything else (attention scores, event counters, mention counts, focus history) is in SQLite.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:97:[SOURCE: lib/cognitive/working-memory.ts:46-63 (schema), 129 (sessionModeRegistry), 354-366 (inferred mode)]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:103:1. When `specFolder` is provided, query the memory index for related specs (parent, siblings, causally-linked via `causal_edges` table)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:108:- `memory_drift_why` tool already traverses causal chains
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:111:**Gap**: There is no "spec neighborhood resolver" function that takes a spec folder and returns related spec folders. The causal graph operates at the memory level, not the spec folder level. Building this would require:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:112:- A new function that aggregates memory-level causal edges into spec-folder-level relationships
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:114:- Integration into memory-context.ts to auto-inject neighbor summaries
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:118:[INFERENCE: based on causal_edges table schema (iteration 5), folder-relevance.ts architecture (iteration 3), and memory-context.ts handler structure]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:122:The `getSessionPromptContext()` function (working-memory.ts:325) already returns the top-N memories by attention score for a session. These could be passed to the auto-surface trigger matcher as "attention-boosted concepts" to bias which memories surface.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:124:**Current flow**: auto-surface in `hooks/memory-surface.ts` fires on every non-memory tool call, matching trigger phrases from high-attention memories. But it uses its own constitutional cache, not the working-memory attention map.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:126:**Proposed enrichment**: After auto-surface trigger matching, boost results that also appear in the working memory's top-N attention list. This is a ~20-line change in `memory-surface.ts`:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:130:const wmMemoryIds = new Set(wmContext.map(e => e.memoryId));
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:131:// Boost trigger-matched results that are also in working memory
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:133:  if (wmMemoryIds.has(r.id)) r.score *= 1.3; // attention boost
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:139:[SOURCE: lib/cognitive/working-memory.ts:325-351 (getSessionPromptContext), INFERENCE: based on memory-surface.ts architecture from iteration 4/16]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:144:- **Full working-memory persistence overhaul** -- the only ephemeral piece (sessionModeRegistry) has low impact; not worth a schema migration
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:152:- `lib/cognitive/working-memory.ts` (full file, 768 lines) -- attention persistence architecture
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:153:- `handlers/memory-search.ts:560-597, 1107-1123` -- intent detection and profile application points
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:154:- `handlers/memory-context.ts:830-879, 684-749` -- intent detection and profile threading
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:159:- Questions addressed: intent-to-profile design, working-memory persistence, spec neighborhood feasibility, attention-enriched hints
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:160:- Questions answered: intent-to-profile design (complete), working-memory persistence (assessed), attention-enriched hints (designed)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:163:- What worked and why: Reading the three core modules (intent-classifier, profile-formatters, working-memory) in full gave a complete picture of both systems' interfaces. The gap between them was immediately obvious -- classifyIntent() produces IntentType, applyResponseProfile() consumes profile string, but nothing maps one to the other. Reading the handler code confirmed the exact injection points.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-017.md:165:- What I would do differently: Could have read memory-context.ts more thoroughly to find if there is already an INTENT_TO_MODE map that could serve as a template for INTENT_TO_PROFILE. The grep approach for specific symbols was more efficient than reading full handler files.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/checklist.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/checklist.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/checklist.md:51:- [x] CHK-010 [P0] Fresh in-memory SQLite state created in `beforeEach` [EVIDENCE: Verified against the cited test setup.] [File: `adaptive-ranking-e2e.vitest.ts:103-115`]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:7:1. Category-to-merge mapping is fixed: `narrative_progress` and `narrative_delivery` use `append-as-paragraph`, `handover_state` and `research_finding` use `append-section`, `decision` uses `insert-new-adr` on `L3/L3+` and `update-in-place` on lower packet levels, `task_update` uses `update-in-place`, and `metadata_only` updates frontmatter continuity rather than anchor-merging. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts:918] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:8:2. The canonical writer derives merge payloads from routed content, not the original memory artifact type. That means the same text classification directly controls whether the writer looks for paragraphs, structured checklist IDs, or ADR fields. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1144]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:9:3. `metadata_only` is the least fragile category at write time because it bypasses `anchorMergeOperation()` and writes `_memory.continuity` through thin-continuity helpers. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts:167]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:10:4. `task_update` is the most brittle category because `buildCanonicalMergePayload()` must discover a concrete `T###` or `CHK-###` ID, and the later merge requires exactly one matching checklist line. Classification accuracy alone is not enough to make task routing safe. [SOURCE: .opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:952] [SOURCE: .opencode/skills/system-spec-kit/mcp_server/lib/merge/anchor-merge-operation.ts:440]
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:20:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:925`
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/006-skill-advisor/001-memory-search-routing-tuning/research/002-content-routing-accuracy-research/iterations/iteration-007.md:21:- `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1107`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:5:findings_summary: "The quality scorer uses 6 dimensions totaling 100 max points: trigger_phrases (0-20), key_topics (0-15), file_descriptions (0-20), content_length (0-15), html_safety (0-15), observation_dedup (0-15). Two penalty modifiers exist: contamination (-10% to -30% with caps) and sufficiency (caps at 40% of sufficiency score). None of the 6 dimensions directly count conversation messages. They measure rendered output quality. However, in JSON-mode the upstream extractors produce empty/minimal data, so the scorer receives impoverished inputs. quality-gates.ts is a thin pass/fail gate checking 6 conditions. validate-memory-quality.ts has 14 rules (V1-V14) operating on rendered content."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:12:Examine every scoring dimension in the quality scorer, its maximum points, and what triggers a zero score. Map which dimensions depend on conversation messages versus other data sources. Additionally, document quality-gates.ts decision logic and validate-memory-quality.ts validation rules (V1-V14).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:18:The `scoreMemoryQuality()` function (quality-scorer.ts:127-320) accepts 8 parameters and scores across 6 dimensions with a 100-point maximum. The function receives already-extracted data, NOT raw conversation messages.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:21:- `content: string` -- the rendered markdown memory content
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:26:- `sufficiencyResult?: MemorySufficiencyResult` -- pre-computed sufficiency assessment
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:139:- Not a contaminated memory name (`isContaminatedMemoryName`)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:171:### 10. Quality Gates: shouldIndexMemory() Decision Logic
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:173:`quality-gates.ts` exports `shouldIndexMemory()` (lines 17-68) which is a sequential pass/fail gate with 6 conditions checked in order:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:176:2. **templateContractValid**: If rendered memory fails template contract, skip indexing
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:190:The `validate-memory-quality.ts` module provides 14 post-render validation rules that operate on the rendered content string. These are INDEPENDENT of conversation messages -- they validate the final output:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:205:| V12 | medium | No | Yes | Topical coherence (zero overlap between memory content and spec trigger_phrases) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:222:[SOURCE: validate-memory-quality.ts:44-157, 624-915]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:254:- `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts` (lines 1-915, validation rules V1-V14)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:264:- What worked and why: Reading all three files (quality-scorer.ts, quality-gates.ts, validate-memory-quality.ts) in sequence revealed the full quality evaluation pipeline. The scorer and validator operate at different stages -- scorer on extracted data, validator on rendered content -- but both suffer when upstream extraction is poor.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-002.md:266:- What I would do differently: Next iteration should trace the callers of `scoreMemoryQuality()` in workflow.ts to understand how the extracted data (trigger phrases, key topics, observations) actually gets passed in, and where the JSON-mode path diverges.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:2:title: "Deep Research: Spec Kit Memory Feature Audit & Quality [system-spec-kit/023-hybrid-rag-fusion-refinement/research]"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:3:description: "This research audited the entire Spec Kit Memory system -- feature flags, search quality, fusion pipeline, UX automation, and cross-cutting infrastructure -- across specs 009 (r..."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:9:  - "memory"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:14:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:19:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:23:# Deep Research: Spec Kit Memory Feature Audit & Quality Verification
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:32:This research audited the entire Spec Kit Memory system -- feature flags, search quality, fusion pipeline, UX automation, and cross-cutting infrastructure -- across specs 009 (reindex validator), 010 (retrieval quality), and 011 (indexing and adaptive fusion). The investigation spanned 20 iterations with progressive convergence from newInfoRatio 1.0 to 0.21.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:74:The Spec Kit Memory system uses `isFeatureEnabled()` in `search-flags.ts` as the canonical gating mechanism. The default behavior is feature-ON: if a flag is not explicitly disabled, it is treated as enabled.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:87:| SPECKIT_RECONSOLIDATION | OFF (opt-in) | **ENABLE by default** | Medium | Full reconsolidation (similarity-based merge/conflict routing, thresholds: >=0.88 merge, 0.75-0.88 conflict, <0.75 complement). Assistive variant already ON. Requires auto-checkpoint guard -- `hasReconsolidationCheckpoint()` gate already exists in db-helpers.ts. Merge path IS destructive (archives old memory, creates merged record, generates causal edge, refreshes BM25+interference+cache). [SOURCE: reconsolidation.ts:212-300, db-helpers.ts] |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/research.md:92:| SPECKIT_MEMORY_ADAPTIVE_RANKING | OFF (roadmap) | KEEP OFF | Low-Medium | Roadmap feature in shadow mode. Needs standard graduation process (shadow -> promoted -> default-on). [SOURCE: rollout-policy.ts, capability-flags.ts] |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-009.md:126:- Many of these would overlap (same memory appears in multiple channels)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-config.json:2:  "specFolder": "system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-config.json:4:  "focus": "Fix generate-context.js pipeline so JSON-mode saves produce high-quality memories. Root cause: extractConversations() ignores structured JSON data, quality scorer requires conversation messages, template produces boilerplate when extractors return empty data, V8 contamination blocks cross-phase references.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-config.json:13:    "What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-config.json:23:    ".opencode/skills/system-spec-kit/scripts/memory/generate-context.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-config.json:27:    ".opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/checklist.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/checklist.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/checklist.md:67:- [x] CHK-008 [P0] Highest-risk recent surfaces are re-tested first before downstream standards docs are touched [EVIDENCE: Phase 4/5 — memory-save, memory-index, shared-memory, vector-index-store, session-manager, generate-context, workflow all retested and passing]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/checklist.md:68:- [x] CHK-009 [P0] Scripts interoperability proof exists and is treated as required, not optional, including `node scripts/dist/memory/generate-context.js --help`, scripts interop tests, and scripts-owned API loading paths [EVIDENCE: Phase 3 — generate-context.js --help passes, scripts interop tests green, and scripts-owned API loading paths use explicit async boundary handling]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/tasks.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/008-create-sh-phase-parent/tasks.md:72:- [x] T014 Save context to memory once implementation work closes [EVIDENCE: memory/01-04-26_11-16__phase-008-create-sh-phase-parent-support-is.md created, quality 97/100]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-008.md:11:Progressive disclosure uses cursor-based pagination with a 5-minute TTL. The "not stateful" observation from iteration 4 refers to the fact that cursor state is ephemeral (in-memory Map with TTL eviction). However, this is intentional and correct:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-008.md:14:- The MCP protocol is inherently request-response; long-lived cursors would leak memory
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-008.md:25:The goal IS persisted across calls within a session -- it lives in the in-memory SessionStateManager singleton (line 223: `const manager = new SessionStateManager()`). The 30-minute TTL (line 19: `SESSION_TTL_MS = 30 * 60 * 1000`) and LRU eviction at 100 sessions (line 22: `MAX_SESSIONS = 100`) are the boundaries.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/iterations/iteration-008.md:34:The module header states this explicitly at line 14: "STORAGE: In-memory only (ephemeral by design, no SQLite persistence). Sessions expire after 30 minutes of inactivity, LRU eviction at 100 capacity."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:50:[INFERENCE: based on CollectedDataBase fields and their downstream impact on memory retrievability]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:204:[INFERENCE: based on how each field contributes to downstream memory quality -- retrievability, trigger matching, and semantic richness]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:208:The score floor ensures that valid JSON input always produces a usable memory. The guarantee logic:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:301:The `exchanges[].userInput` contains the actual commands/requests the user gave during the session. These are exactly the phrases a future user would type when trying to find this memory. Examples:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:369:  "sessionSummary": "Designed and implemented the hybrid RAG fusion pipeline with BM25, vector, and graph channels. Calibrated RRF K parameter to 55 based on ablation study results. Added ground truth queries for 15 memory entries.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:378:    { "userInput": "Add ground truth for the new memories", "assistantResponse": "Created 15 new ground truth query-memory pairs covering recent spec folders. All pass at Recall@20.", "timestamp": "2026-03-28T12:00:00Z" }
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:414:// In scoreMemoryQuality(), after line 206 (final clamp):
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:415:function scoreMemoryQuality(inputs: QualityInputs): QualityScoreResult {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:446:const qualityV2 = scoreMemoryQualityV2({
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:483:- Questions addressed: ["What quality scoring dimensions should apply to JSON-mode inputs vs transcript inputs?", "What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?", "What is the optimal trigger phrase extraction strategy for structured JSON input?"]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-012.md:489:- What I would do differently: Include the sufficiency evaluator (memory-sufficiency.ts) in the analysis -- it also contributes to the final score cap and may need JSON-mode awareness.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/deep-research-state.jsonl:1:{"type":"config","topic":"Verify all Spec Kit Memory features (except shared memory) are enabled by default. Optimize search quality, UX/auto-utilization (hookless), bug/refinement audit across specs 009-011.","maxIterations":20,"convergenceThreshold":0.05,"createdAt":"2026-04-01T07:15:00Z","specFolder":".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/deep-research-state.jsonl:6:{"type":"iteration","run":5,"status":"complete","focus":"Q9 (adaptive fusion weights, scoring parameters, refinement opportunities) and Q10 (Code Graph and CocoIndex integration)","findingsCount":14,"newInfoRatio":0.89,"noveltyJustification":"12.5 of 14 findings are fully new (7 weight profiles, graph weight variance, doc-type shifting, recency boost magnitude, degraded mode contract, graphWeight as 4th RRF channel, Code Graph separate DB, Code Graph not in pipeline, CocoIndex absent from search, 4 causal graph mechanisms, stage2 graph cap 0.03, 3 refinement opportunities); 1.5 partially new (adaptive fusion flag extends Q1 findings, graph signals extend Q2 findings)","keyQuestions":["Q3: remaining search quality issues (5 improvement items + 3 refinement opportunities)"],"answeredQuestions":["Q1","Q2","Q4","Q5","Q6","Q7","Q8","Q9","Q10"],"ruledOut":["cocoindex-feeding-memory-search","code-graph-db-in-fusion-pipeline"],"focusTrack":"fusion-refinement","timestamp":"2026-04-01T08:15:00Z","durationMs":180000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/deep-research-state.jsonl:17:{"type":"iteration","run":16,"status":"complete","focus":"Hookless auto-utilization deep dive -- auto-surface optimization, session persistence architecture, profile-based formatting, auto-context, progressive disclosure","findingsCount":7,"newInfoRatio":0.50,"noveltyJustification":"3.5 of 7 findings are fully new (intent-to-profile auto-routing gap as highest-impact improvement, auto-context for spec neighborhood gap, Prime Package context-sparseness with enrichment design, working-memory attention persistence opportunity); 2 partially new (session persistence corrects iteration 4/8 ephemeral verdict with precise distinction -- session_state is SQLite-durable but working-memory is ephemeral, profile formatters extend iteration 9 confidence analysis to dynamic page sizing); 1 consolidation (auto-surface architecture confirmation from iteration 4 with incremental improvement areas)","keyQuestions":[],"answeredQuestions":["hookless-auto-surface-optimization","session-persistence-architecture","profile-auto-routing-gap","auto-context-gap","progressive-disclosure-improvement","prime-package-enrichment"],"ruledOut":["session-state-persistence-as-improvement","profile-system-as-missing","auto-surface-fundamental-redesign"],"focusTrack":"ux-optimization","timestamp":"2026-04-01T13:30:00Z","durationMs":180000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/deep-research-state.jsonl:18:{"type":"iteration","run":17,"status":"complete","focus":"Intent-to-profile auto-routing design + working-memory persistence + spec neighborhood feasibility","findingsCount":7,"newInfoRatio":0.57,"noveltyJustification":"4 of 7 findings are fully new (complete intent-to-profile mapping table with 7 intents to 4 profiles, exact injection points in both handlers at memory-search.ts:597/1108 and memory-context.ts:848, attention-enriched auto-surface 20-line design, dual-classifier structural gap proof); 2 partially new (working-memory sessionModeRegistry as only ephemeral state corrects/extends iteration 16 persistence finding, spec neighborhood feasibility extends iteration 5 causal graph findings with effort estimate); 1 consolidation (profile system architecture confirmation from iteration 16 with concrete code locations)","keyQuestions":[],"answeredQuestions":["intent-to-profile-mapping","injection-points","working-memory-persistence","spec-neighborhood-feasibility","attention-enriched-hints"],"ruledOut":["ML-based-intent-profile-routing","full-working-memory-persistence-overhaul","automatic-profile-without-override"],"focusTrack":"ux-optimization","timestamp":"2026-04-01T14:00:00Z","durationMs":180000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-state.jsonl:2:{"type":"iteration","run":12,"status":"complete","focus":"JSON-mode quality scoring model design","findingsCount":7,"newInfoRatio":0.90,"noveltyJustification":"All 7 findings are new: scoring architecture analysis, 6-dimension floor model, point allocation per dimension, minimum score guarantees with concrete examples, trigger phrase extraction from exchanges, integration point in V2 scorer, and 3 concrete scoring examples","keyQuestions":["What quality scoring dimensions should apply to JSON-mode inputs vs transcript inputs?","What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?","What is the optimal trigger phrase extraction strategy for structured JSON input?"],"answeredQuestions":["What quality scoring dimensions should apply to JSON-mode inputs vs transcript inputs?","What is the optimal trigger phrase extraction strategy for structured JSON input?"],"ruledOut":["Creating a completely separate JSON scorer","Replacing V-rule penalties with JSON bonuses","Using core quality scorer for JSON"],"focusTrack":"quality-scoring","timestamp":"2026-04-01T12:30:00Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-state.jsonl:3:{"type":"iteration","run":7,"status":"complete","focus":"workflow.ts Step 7-8: parallel extraction to template population data flow","findingsCount":6,"newInfoRatio":0.83,"noveltyJustification":"5 of 6 findings are new (trigger extraction 6-stage pipeline, key topics source disambiguation, quality scoring 4-step chain, template merge spread-override risk, KEY_FILES uncapped fallback); 1 finding (parallel extraction architecture) partially overlaps iteration 001 conversation-extractor analysis","keyQuestions":["What quality scoring dimensions should apply to JSON-mode inputs vs transcript inputs?","What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"],"answeredQuestions":[],"ruledOut":[],"focusTrack":"workflow-pipeline","timestamp":"2026-04-01T09:30:00Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-state.jsonl:4:{"type":"iteration","run":8,"status":"complete","focus":"session-extractor.ts and file-extractor.ts: session metadata generation in JSON mode","findingsCount":8,"newInfoRatio":0.75,"noveltyJustification":"6 of 8 findings are new (TITLE from folder basename only, SUMMARY 3-stage cascade with exact line 873 source, contextType RC5 honor path, importanceTier resolution chain, projectPhase RC5-ext inference, dead extractKeyTopics in session-extractor); 2 findings overlap prior iterations (file extraction 3-source paths partially known from iteration 006, MAX_FILES_IN_MEMORY cap known from iteration 014)","keyQuestions":["What quality scoring dimensions should apply to JSON-mode inputs vs transcript inputs?","What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"],"answeredQuestions":["Where does the generic Session focused on text come from?"],"ruledOut":[],"focusTrack":"session-metadata","timestamp":"2026-04-01T09:45:00Z"}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-state.jsonl:6:{"type":"iteration","run":20,"status":"complete","focus":"Comprehensive research summary: root cause tree, per-file recommendations, quality projections, open questions, spec/plan update recommendations","findingsCount":5,"newInfoRatio":0.50,"noveltyJustification":"2.5 of 5 findings contain new material (quality improvement projections with specific score ranges, open questions identification, spec/plan update recommendations); 2.5 consolidate prior findings (root cause tree, per-file change specifications)","keyQuestions":[],"answeredQuestions":["What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?"],"ruledOut":[],"focusTrack":"synthesis","timestamp":"2026-04-01T09:28:00Z","durationMs":180000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/deep-research-state.jsonl:7:{"type":"iteration","run":17,"status":"complete","focus":"Regression risk analysis — test coverage map for generate-context pipeline","findingsCount":8,"newInfoRatio":0.75,"noveltyJustification":"6 of 8 findings are new (comprehensive test file catalog, coverage matrix with 12 components, 6 critical JSON-mode gaps, 8 prioritized test recommendations, SessionData factory analysis, workflow-e2e bypass analysis); 2 findings partially overlap prior knowledge (quality scorer and contamination filter test coverage)","keyQuestions":["What new tests are needed to prevent regression when fixing JSON-mode quality?"],"answeredQuestions":["What regression risks exist when modifying the JSON-mode pipeline?"],"ruledOut":["mcp_server/tests/ as pipeline coverage (covers MCP handlers only)","legacy .js test files (CommonJS smoke tests only)"],"focusTrack":"regression-risk","timestamp":"2026-04-01T12:30:00Z","durationMs":300000}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/research/deep-research-config.json:2:  "topic": "Verify all Spec Kit Memory features (except shared memory) are enabled by default. Optimize search result quality further. Optimize UX and auto-utilization without hooks. Check for bugs and refinement possibilities across specs 009-reindex-validator-false-positives, 010-search-retrieval-quality-fixes, 011-indexing-and-adaptive-fusion.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/tasks.md:8:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/tasks.md:13:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/checklist.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:5:findings_summary: "contamination-filter.ts contains 47 DenylistEntry patterns (not 99) across 3 severity levels. The V8 rule is NOT in contamination-filter.ts — it lives in validate-memory-quality.ts (lines 702-775) as a post-render validation rule. V8 detects foreign spec-folder IDs via SPEC_ID_REGEX, using an allowlist of self+ancestor+child+related_specs IDs. Cross-phase references (e.g., '015-runtime-contract') trigger V8 when the referenced spec ID is not in the allowlist. CONTAMINATION_GATE_ABORT is raised in workflow.ts:1567-1570 when V8 or V9 are in the failed rules list."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:131:### 6. V8 Rule Is NOT in contamination-filter.ts — It Is in validate-memory-quality.ts
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:133:The V8 rule is a **post-render validation rule**, not a denylist pattern. It lives in `validate-memory-quality.ts` starting at line 101 with metadata:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:142:  reason: 'Foreign-spec contamination would corrupt both the saved memory and the semantic index.',
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:146:[SOURCE: validate-memory-quality.ts:101-108]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:161:[SOURCE: validate-memory-quality.ts:702-775]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:168:- Spec IDs extracted from the `specFolder` path string (e.g., `023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline` yields `{023-hybrid-rag-fusion-refinement, 012-memory-save-quality-pipeline}`)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:172:So if a memory for spec `012-memory-save-quality-pipeline` references `015-runtime-contract` in its body, and `015-runtime-contract` is:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:173:- NOT a child folder of `012-memory-save-quality-pipeline`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:174:- NOT listed in `related_specs` of `012-memory-save-quality-pipeline/spec.md`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:181:[SOURCE: validate-memory-quality.ts:524-555, 745-761]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:193:  `Content contains cross-spec contamination that would corrupt the memory index. Aborting write.`;
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:196:This fires AFTER the full `validateMemoryQualityContent()` check, inside the `determineValidationDisposition()` flow. Since V8 has `blockOnWrite: true`, any V8 failure produces `disposition: 'abort_write'`, and the workflow checks specifically for V8/V9 in the blocking rules to emit the CONTAMINATION_GATE_ABORT message.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:198:[SOURCE: workflow.ts:1567-1570, validate-memory-quality.ts:588-599]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:208:When the memory file lacks a `spec_folder` frontmatter field, `validate-memory-quality.ts` (lines 627-638) falls back to extracting the spec folder from the file path. Without this fallback, V8 sees `currentSpec` as unknown and treats ALL cross-references as foreign contamination. This was a critical bug fix.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:210:[SOURCE: validate-memory-quality.ts:627-638]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:215:- Looking for V8 in contamination-filter.ts — V8 is a validation rule in validate-memory-quality.ts, not a denylist pattern.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:219:None. The contamination system is well-documented in code and the architecture split between pre-render filtering (contamination-filter.ts) and post-render validation (V8 in validate-memory-quality.ts) is clear.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:224:- `validate-memory-quality.ts:90-157` — V8 rule metadata and all 14 rule definitions
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:225:- `validate-memory-quality.ts:524-555` — `extractAllowedSpecIds()` function (allowlist builder)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:226:- `validate-memory-quality.ts:624-775` — `validateMemoryQualityContent()` V8 check logic
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-003.md:238:- What worked and why: Direct deep-read of both contamination-filter.ts and validate-memory-quality.ts revealed that V8 is architecturally separate from the denylist filter. Grep for V8 across the scripts directory was the critical first step — it immediately showed the split between the two modules.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/implementation-summary.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/implementation-summary.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/description.json:20:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/description.json:21:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/description.json:19:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/001-wire-promotion-gate/description.json:20:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/implementation-summary.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/implementation-summary.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/implementation-summary.md:42:Phase 5 turned the adaptive ranking lifecycle into one practical regression suite. The file now covers proposal generation, replay evaluation, threshold tuning, reset behavior, and scheduled replay with real in-memory SQLite state, which means the Phase 3 and Phase 4 seams are exercised together instead of being left to separate unit tests.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/implementation-summary.md:60:Each test starts from a fresh in-memory database and restores env flags after it finishes. That keeps the lifecycle assertions deterministic while still using real SQLite-backed adaptive state.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/implementation-summary.md:82:| In-memory DB harness | PASS, `adaptive-ranking-e2e.vitest.ts:103-124` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/005-e2e-integration-test/README.md:12:This phase documents the lifecycle regression suite in `tests/adaptive-ranking-e2e.vitest.ts`. The suite uses real in-memory SQLite state and real adaptive ranking logic, while mocking a small set of runtime dependencies that sit outside the lifecycle boundary.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:10:The V8 rule lives in `validate-memory-quality.ts` (lines 700-775). It works as follows:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:26:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:101-775]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:30:When a JSON-mode save for spec `023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline` references sibling phases like `009-perfect-session-capturing`, `010-template-compliance-enforcement`, or `008-hydra-db-based-features`, these are **sibling specs under the same parent epic** (`022-hybrid-rag-fusion`). The current allowlist logic:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:32:- Extracts IDs from the spec folder path: `023-hybrid-rag-fusion-refinement`, `012-memory-save-quality-pipeline`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:33:- Scans child directories of `012-memory-save-quality-pipeline` for children
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:34:- Reads `related_specs` from `012-memory-save-quality-pipeline/spec.md`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:42:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:524-555]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:47:The file `contamination-filter.ts` handles *text pattern contamination* (orchestration chatter, AI self-references, tool scaffolding). It is NOT involved in spec-ID foreign-reference detection. V8 is purely in `validate-memory-quality.ts`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:51:- **V8 rule**: Detects foreign spec ID contamination in rendered memory content
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:53:The fix for same-parent references is entirely within `validate-memory-quality.ts`, specifically in `extractAllowedSpecIds()`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:56:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:524-555]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:125:- **Relaxing V8 entirely for JSON mode**: Too dangerous. Genuine cross-spec contamination in JSON payloads would corrupt the memory index.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:134:- `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:101-775` (V8 rule, extractAllowedSpecIds, detection logic)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-013.md:145:- What worked and why: Direct code reading of `validate-memory-quality.ts` revealed the exact detection algorithm and its allowlist gaps. The `extractAllowedSpecIds()` function is cleanly scoped and extensible, making the sibling walk straightforward.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:41:- `memory_validate` can resolve a query text for stored validation events
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:115:| REQ-002 | Replay labels aggregate real feedback | Runtime sums `outcome_total - correction_total` per memory |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:123:| REQ-005 | Validation feedback stores `queryText` | `memory_validate` passes `queryText` in the signal payload and metadata |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:132:**Given** validation feedback stored through `memory_validate`, **when** replay loads feedback, **then** it can match on `queryText` from the signal payload or metadata.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:144:- **SC-003**: `memory_validate` writes `queryText` so replay can match validation events to the original search
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:170:- **NFR-P01**: Replay feedback lookup stays batched over the replay memory ID set, not per-memory queries
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:175:- **NFR-S02**: No new sensitive fields are added beyond query text already recorded by `memory_validate`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/spec.md:188:- Empty replay memory set: returns an empty feedback map immediately
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-010-pass-a.md:19:- The `Test Impact` section is inaccurate. The implementation summary explicitly states `TypeScript: 0 new errors` and that regressions for `memory_match_triggers`, `memory_list`, `memory_health`, and `memory_search` were passing, so the `UNKNOWN` rows overstate what is unknown.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/implementation-summary.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/implementation-summary.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:5:findings_summary: "Step 7 runs 5 extractors in parallel via Promise.all (workflow.ts:979-1027). Trigger phrases are extracted AFTER parallel extraction during Step 8 (lines 1174-1263) from sessionData.SUMMARY + decisions + file descriptions + folder tokens. Key topics come from core/topic-extractor.ts (NOT session-extractor.ts's version). Quality scoring happens at Step 8.6 (lines 1449-1484) via scoreMemoryQualityV2() combining content validation, sufficiency, contamination, and signal counts. KEY_FILES has no cap in buildKeyFiles() — when effectiveFiles is empty, a recursive spec folder walk produces unbounded entries."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:108:const qualityValidation = validateMemoryQualityContent(files[ctxFilename]);
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:114:const sufficiencyResult = evaluateMemorySufficiency(sufficiencySnapshot);
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:120:const qualityV2 = scoreMemoryQualityV2({
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:158:  MEMORY_TITLE: memoryTitle,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:159:  MEMORY_DASHBOARD_TITLE: memoryDashboardTitle,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:160:  MEMORY_DESCRIPTION: memoryDescription,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:162:  ...memoryClassification,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:183:    return explicitKeyFiles;          // capped by MAX_FILES_IN_MEMORY (default: 10)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:190:The fallback `listSpecFolderKeyFiles()` (lines 61-97) recursively walks the spec folder collecting ALL `.md` and `.json` files, excluding only `memory/`, `scratch/`, `.git/`, `node_modules/` directories. It has no upper bound.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-007.md:192:**Config reference:** `MAX_FILES_IN_MEMORY` is set to `10` at config.ts:232 (`maxFilesInMemory: 10`), but this cap is only applied in `extractFilesFromData()` in file-extractor.ts:255-260. It is NOT applied in `buildKeyFiles()`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/README.md:19:- `memory_validate` now stores `queryText` so replay can match validation feedback to the original query
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/plan.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/plan.md:70:- **`checkpoints.ts`**: Persists `queryText` beside `queryId` when `memory_validate` records feedback
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/plan.md:108:| Shared metadata | `memory_validate` writes `queryText` for replay matching | Code inspection |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-011-pass-a.md:12:| `memory_health()` healthy runtime check | Yes | Covered in Verification table. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-011-pass-a.md:13:| `memory_index_scan(force: true)` / 1,228 memories re-indexed | Partial | Present in Verification, but not described as a discrete work item even though the changelog intro says BM25 memory search was repaired. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-011-pass-a.md:20:- BM25 memory re-indexing is only partially represented. The changelog intro says the phase "repairs BM25 memory search," but the body never gives BM25 re-indexing its own Problem/Fix treatment; it appears only as a verification line (`changelog...md:45-50`). That makes the coverage feel incomplete relative to `tasks.md:11`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-011-pass-a.md:21:- The changelog may slightly overstate the BM25 item by implying a direct logic repair, when the concrete phase work was memory re-indexing plus lexical-score trace preservation. Tightening that wording would reduce ambiguity.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-011-pass-a.md:26:The changelog is strong on the four core engineering changes and uses the expected expanded Problem/Fix format well, but it is not yet fully complete. It should be revised to add the missing TypeScript dist rebuild, clarify the BM25 memory-index work, and decide whether task-level documentation work like the retroactive spec folder should also be captured.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/description.json:20:  "memorySequence": 0,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/description.json:21:  "memoryNameHistory": []
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-004-pass-a.md:10:| Runtime smoke proof for `node dist/context-server.js` and `node scripts/dist/memory/generate-context.js --help` | Yes | Explicitly named in the full-matrix entry and reflected again in `Test Impact`. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-004-pass-a.md:25:- Minor note only: the technical-details section names `mcp_server/handlers/memory-search.ts` as the handler-side validation location after the schema compatibility change. That extra specificity is consistent with the codebase, but it is more detailed than the implementation summary itself.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/tasks.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/tasks.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/tasks.md:61:- [x] T009 Updated `memory-search.ts` and `shadow-evaluation-runtime.ts` imports to use `search-flags.ts` helpers
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/tasks.md:67:- [x] T022 Expanded `QUERY_PATTERNS`: research +7 keywords (search, retrieval, pipeline, indexing, embedding, vector, semantic); implementation-summary +5 (config, setup, env, flag, setting); memory +3 (resume, recover, continuation)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:48:Session boost was already wired through `isFeatureEnabled('SPECKIT_SESSION_BOOST')` which returns true for undefined env vars. The actual fix was in `stage2-fusion.ts`: when the boost ran but found no working_memory data to apply, metadata incorrectly reported `'off'` instead of `'enabled'`. Changed the fallback from `'off'` to `'enabled'` so the metadata distinguishes "feature disabled" (`'off'`) from "feature active but no data matched" (`'enabled'`). Added JSDoc kill-switch documentation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:60:Expanded keyword lists in `QUERY_PATTERNS`: 7 new terms for `research`, 5 for `implementation-summary`, 3 for `memory`. Added `getStrategyForQuery(query, specFolder?, intent?)` with an `INTENT_TO_ARTIFACT` fallback map covering 7 intents at confidence 0.4. Wired intent into the call site in `memory-search.ts` via a re-call when initial routing returns `unknown/0`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:64:Added `isSessionBoostEnabled()` and `isCausalBoostEnabled()` to `search-flags.ts` for consistency with other graduated flags. Updated imports in `memory-search.ts` and `shadow-evaluation-runtime.ts`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:77:| `mcp_server/handlers/memory-search.ts` | Modified | Updated imports to search-flags.ts; wired intent into artifact routing |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/implementation-summary.md:106:| Re-called `getStrategyForQuery` after intent detection instead of moving the call | Avoids reorganizing the control flow in `memory-search.ts`. Only re-calls when initial routing returns unknown/0, so performance impact is negligible. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:13:Map the existing test suite for the generate-context pipeline to identify: (a) which test cases cover transcript-mode saves, (b) which test cases cover JSON-mode saves, (c) what gaps exist that could allow regressions when fixing JSON-mode quality.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:25:1. **Happy-path save** -- writes markdown + metadata, updates memorySequence and memoryNameHistory
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:38:The `runtime-memory-inputs.vitest.ts` file tests the JSON-mode input path through `normalizeInputData()` and `loadCollectedData()`. It covers:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:48:This is the most comprehensive JSON-mode test file. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts:1-624]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:56:The `quality-scorer-calibration.vitest.ts` tests `scoreMemoryQuality()` with pre-rendered content strings. It validates V-rule penalty application, contamination severity caps (low: no cap, medium: 0.85, high: 0.60), and score01/score100 consistency. It does NOT test the score produced when the pipeline renders JSON-mode input, meaning a regression where JSON-mode produces thin rendered content would go undetected by these scorer tests. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/quality-scorer-calibration.vitest.ts:1-212]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:60:The `contamination-filter.vitest.ts` tests severity tracking (low/medium/high), pattern matching (API error prefix, JSON error payload, request_id leak), and source-capability-aware downgrades for `tool title with path` patterns. It does NOT test the V8 same-parent phase reference scenario critical for JSON-mode saves where the AI explicitly provides cross-phase spec folder references. V8 lives in `validate-memory-quality.ts`, not `contamination-filter.ts` (per iteration 003 finding), but there is no unit test for V8's allowlist behavior either. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/contamination-filter.vitest.ts:1-128] [SOURCE: iteration-003 finding on V8 location]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:62:### 7. Memory Sufficiency Tests Are Post-Render Only
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:64:The `memory-sufficiency.vitest.ts` tests `evaluateMemorySufficiency()` with pre-constructed memory content. It verifies: rich evidence passes, single-anchor prompt fails, rendered sections not counted as evidence, generic title fails, placeholder descriptions not counted, spec-specific tool evidence passes. This is post-render validation -- it catches thin JSON-mode output but only after the pipeline has already run. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts:1-170]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:74:| `generate-context-cli-authority.vitest.ts` | CLI arg passing (--json, data-file, spec-folder) | JSON | Yes -- verifies args reach workflow |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:76:| `memory-pipeline-regressions.vitest.ts` | Title truncation, trigger phrase filtering, embeddings | Both | Partial -- mode-agnostic |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:77:| `validate-memory-quality.vitest.ts` | V13 YAML frontmatter parsing | Both | Partial -- mode-agnostic |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:78:| `memory-template-contract.vitest.ts` | Structural anchor/section validation | Both | Partial -- structural only |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:89:| CLI argument parsing | `generate-context-cli-authority.vitest.ts` | -- | Yes | No |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:90:| Data loading / rejection | `runtime-memory-inputs.vitest.ts` | -- | Yes | No |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:91:| Input normalization | `runtime-memory-inputs.vitest.ts` | -- | Yes | No |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:97:| Memory sufficiency | `memory-sufficiency.vitest.ts` | Post-render | Post-render | No (detection, not prevention) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:98:| Template rendering quality | `memory-template-contract.vitest.ts` | Structural | Structural | **YES** (no content quality check) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:112:4. **V8 same-parent phase reference** -- Unit test for validate-memory-quality.ts V8 rule with cross-phase spec folder references from the same parent. Assert: same-parent references pass V8 allowlist.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:113:5. **Quality scorer with JSON-rendered content** -- Integration test: render JSON-mode data -> feed to `scoreMemoryQuality()`. Assert: score >= 0.50, no spurious contamination cap.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:123:- `mcp_server/tests/` files: these cover MCP handler tests (memory_save, memory_search), not the generate-context CLI pipeline.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:134:- `.opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts` (JSON input normalization)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:138:- `.opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts` (sufficiency evaluation)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:139:- `.opencode/skills/system-spec-kit/scripts/tests/validate-memory-quality.vitest.ts` (V-rule validation)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:140:- `.opencode/skills/system-spec-kit/scripts/tests/memory-template-contract.vitest.ts` (template contract)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:141:- `.opencode/skills/system-spec-kit/scripts/tests/generate-context-cli-authority.vitest.ts` (CLI argument passing)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-017.md:144:- `.opencode/skills/system-spec-kit/scripts/tests/memory-pipeline-regressions.vitest.ts` (title truncation, trigger filtering)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:14:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:19:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:43:| **Successor** | 007-external-graph-memory-research |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:91:| `mcp_server/handlers/memory-search.ts` | Modify | Wire intent classifier result as artifact routing fallback |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:92:| `.mcp.json` | Modify | Add `SPECKIT_SESSION_BOOST` and `SPECKIT_CAUSAL_BOOST` env vars to spec_kit_memory |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:131:- **SC-001**: A test `memory_search` call with no env vars set returns `sessionBoostApplied` not equal to `"off"` (when a sessionId is provided)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:132:- **SC-002**: A test `memory_search` call with no env vars set returns `causalBoostApplied` not equal to `"off"`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:139:**Given** a fresh MCP server with no `SPECKIT_SESSION_BOOST` env var set, **when** `memory_search` is called with a `sessionId`, **then** the response metadata shows `sessionBoostApplied` is not `"off"`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:141:**Given** a fresh MCP server with no `SPECKIT_CAUSAL_BOOST` env var set, **when** `memory_search` is called, **then** the response metadata shows `causalBoostApplied` is not `"off"`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:143:**Given** a populated memory database and `mode: "deep"` passed to `memory_search`, **when** the search executes, **then** the response metadata shows `deepExpansion: true`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:145:**Given** `SPECKIT_SESSION_BOOST=false` is set in the environment, **when** `memory_search` is called with a `sessionId`, **then** the response metadata shows `sessionBoostApplied: "off"`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/spec.md:147:**Given** `SPECKIT_CAUSAL_BOOST=false` is set in the environment, **when** `memory_search` is called, **then** the response metadata shows `causalBoostApplied: "off"`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-006-pass-a.md:12:| Add trusted-transport warnings for shared-memory admin operations | Yes | Covered under `Security` -> `Shared-memory admin operations had no transport trust warning`. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-006-pass-a.md:16:| Preserve typed file-persistence warnings across `memory-save.ts` and `response-builder.ts` | Yes | Covered under `Reliability` -> `Save warnings collapsed distinct failures into one vague category`. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-008-pass-a.md:8:| Discovery sweep across 186 spec folders and 135 memory files | Yes | Captured in the intro and `Baseline audit` section with the major error counts and audit scope. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-008-pass-a.md:15:| Hard-block memory cleanup: 46 deletions, 89 survivors, 84 pass, 5 soft-only remain | Yes | Covered in `Hard-block memory cleanup`. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/graph-metadata.json:51:      "mcp_server/handlers/memory-search.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/graph-metadata.json:105:        "name": "memory-search.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/graph-metadata.json:107:        "path": "mcp_server/handlers/memory-search.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/description.json:23:  "memorySequence": 2,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/description.json:24:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-009-pass-a.md:10:| V12 skip for `memory/` files | Yes | Covered in `changelog-009-reindex-validator-false-positives.md:25-30`. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-009-pass-a.md:19:| Runtime consumers updated to use shared canonical aliases | Partial | The changelog captures this at a summary level in `changelog-009-reindex-validator-false-positives.md:103-107`, but does not name the touched surfaces called out in the phase packet/spec (`session-extractor`, `intent-classifier`, `save-quality-gate`, `fsrs-scheduler`, `memory-state-baseline`). |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:5:findings_summary: "TITLE is always derived from folder basename at collect-session-data.ts:1017, never from JSON sessionSummary. SUMMARY cascades through 3 fallbacks (collect-session-data.ts:870-873): rawLearning -> observationFallback -> 'Session focused on implementing and testing features.' -- the generic text fires when observations lack titles AND rawLearning is empty or non-topical. contextType honors explicit JSON input since RC5 fix (session-extractor.ts:601-606) but detectContextType() defaults to 'general' when toolCounts are all zero (line 126). key_files 300+ problem: buildKeyFiles() falls through to listSpecFolderKeyFiles() when effectiveFiles is empty; the recursive walk has no cap and collects all .md/.json files. file-extractor.ts extractFilesFromData() caps FILES at MAX_FILES_IN_MEMORY=10 (config.ts:232) but this only applies to the main FILES list, not KEY_FILES."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:23:This takes the spec folder basename (e.g., `012-memory-save-quality-pipeline`), strips the leading 3-digit number prefix, and replaces hyphens with spaces: `"memory save quality pipeline"`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:25:**Problem:** The JSON payload's `sessionSummary` is never used for TITLE. Even when the AI provides a rich, descriptive sessionSummary like "Implemented ESM module compliance fixes for the shared parsing layer", the TITLE will always be the mechanical folder name derivative. The `sessionSummary` IS passed through as `_JSON_SESSION_SUMMARY` (line 1034) and used as a title candidate in `pickPreferredMemoryTask()` at workflow.ts:1143, but this only affects `MEMORY_TITLE` in the frontmatter, not the session TITLE used in the template body.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:149:if (allFiles.length > CONFIG.MAX_FILES_IN_MEMORY) {
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:150:  console.warn(`Warning: Truncating files list from ${allFiles.length} to ${CONFIG.MAX_FILES_IN_MEMORY}`);
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:152:return allFiles.slice(0, CONFIG.MAX_FILES_IN_MEMORY)  // default: 10
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-008.md:222:Deep-read `quality-scorer.ts` to understand scoring dimensions and how messageCount=0 / toolCount=0 affects the score. This determines the minimum viable JSON payload for a >= 50/100 quality memory.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/checklist.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/checklist.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/checklist.md:61:- [x] CHK-017 [P1] INTENT_TO_ARTIFACT covers all 7 intents: understand→research, find_spec→spec, find_decision→decision-record, add_feature→implementation-summary, fix_bug→memory, refactor→implementation-summary, security_audit→research. [EVIDENCE: Verified against the shipped intent-to-artifact mapping.]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/checklist.md:62:- [x] CHK-018 [P1] memory-search.ts re-calls `getStrategyForQuery(query, specFolder, detectedIntent)` when initial routing returns unknown/0 (L600-602). [EVIDENCE: Verified against the shipped handler fallback call.]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/checklist.md:110:- [ ] CHK-052 [P2] Session findings to be saved to memory/ at step 8.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:42:The Spec Kit Memory MCP server has a 4-stage retrieval pipeline. Three key scoring features are currently off-by-default, degrading search quality for all users:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:91:| T017 | `.mcp.json` | JSON `.mcpServers.spec_kit_memory.env` | Add `"SPECKIT_SESSION_BOOST": "true"`, `"SPECKIT_CAUSAL_BOOST": "true"` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:92:| T018 | `opencode.json` | JSON `.mcp.spec_kit_memory.environment` | Same + update `_NOTE_7` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:93:| T019 | `.claude/mcp.json` | JSON `.mcpServers.spec_kit_memory.env` | Same + update `_NOTE_7` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:94:| T020 | `.codex/config.toml` | TOML `[mcp_servers.spec_kit_memory.env]` | `SPECKIT_SESSION_BOOST = "true"` etc. + update `_NOTE_7` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:95:| T021 | `../Barter/coder/opencode.json` | JSON `.mcp.spec_kit_memory.environment` | Same + update `_NOTE_7` |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:107:- Add to `memory` keywords: `"resume"`, `"recover"`, `"continuation"`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:121:  fix_bug: 'memory',
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:137:- File: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/scratch/implement-prompt.md:174:| `mcp_server/handlers/memory-search.ts` | Search handler (wires intent to artifact routing) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:12:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:17:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:81:- **`memory-search.ts` handler**: Already detects intent before calling artifact routing. Currently does NOT pass intent into `getStrategyForQuery()` — wiring this through enables the fallback mapping.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:86:memory_search(mode: "deep", sessionId: "xyz")
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:121:  - `memory` class: add "resume", "recover", "continuation"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:127:  - `fix_bug` → `memory`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:130:- [ ] **memory-search.ts handler**: Wire the already-detected `intent` into the `getStrategyForQuery(query, specFolder, intent)` call so the fallback mapping has data to work with
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:132:  - `.mcp.json` — add to `spec_kit_memory.env`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:133:  - `opencode.json` — add to `spec_kit_memory.environment`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:134:  - `.claude/mcp.json` — add to `spec_kit_memory.env`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:135:  - `.codex/config.toml` — add to `[mcp_servers.spec_kit_memory.env]`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:136:  - `Barter/coder/opencode.json` — add to `spec_kit_memory.environment`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:140:- [ ] Run `memory_search({ query: "semantic search", sessionId: "test-session-001" })` — confirm `sessionBoostApplied` not `"off"`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:141:- [ ] Run `memory_search({ query: "semantic search" })` — confirm `causalBoostApplied` not `"off"`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:142:- [ ] Run `memory_search({ query: "semantic search", mode: "deep" })` — confirm `deepExpansion: true`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/006-default-on-boost-rollout/plan.md:158:| Manual | MCP `memory_search` tool calls with/without env vars | MCP client (opencode/Claude Code) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:35:**Expected Behavior:** Should produce a valid memory. The session summary provides enough semantic content for the title, OVERVIEW section, and CONTINUE SESSION anchor. Quality score should be low (no files, no decisions, no tool evidence) but the memory should NOT be rejected as insufficient if the summary text is substantive (>100 chars with spec-relevant keywords).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:39:**Test recommendation:** Assert that a sessionSummary-only JSON input produces a memory with score >= 30/100 and passes sufficiency IF the summary contains spec-relevant terms.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:61:The CRITICAL problem: without sessionSummary, the title builder in `core/title-builder.ts` will either use the empty string or fall back to a generic "Development session" title. The sufficiency gate at `evaluateMemorySufficiency()` explicitly checks for generic titles and REJECTS them (confirmed in `memory-sufficiency.vitest.ts` test "fails long content when the memory title stays generic"). [SOURCE: .opencode/skills/system-spec-kit/scripts/utils/input-normalizer.ts:198-261, 547-564] [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts:94-123]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:63:**Expected Behavior:** Should produce a valid memory -- the decisions provide real semantic substance. The title builder SHOULD derive a meaningful title from the keyDecisions when sessionSummary is absent (e.g., "ESM imports migration decisions" from the first decision). Currently, this path produces a generic title -> sufficiency rejection, which is incorrect for substantive decisions.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:86:With no observations of substance, no userPrompts, no recentContext, no files, and no sessionSummary, the memory is extremely thin. The sufficiency gate should reject this: no primary evidence items, no spec-relevant observations, and if any title is generated it will be generic. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts:323-412 (nextSteps normalization tests)] [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts:49-71 (insufficient context pattern)]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:121:The contamination filter does NOT have markdown-awareness. It does not skip fenced code blocks (```` ``` ... ``` ````). It scans the full text. Source-capability-aware downgrade (claude-code-capture gets `low` severity for tool-title-with-path) only applies when `sourceCapabilities` or `captureSource` metadata is passed. JSON-mode saves do NOT set capture source, so the default behavior applies: `tool title with path` = HIGH severity = quality score capped at 0.60. [SOURCE: .opencode/skills/system-spec-kit/scripts/tests/contamination-filter.vitest.ts:84-127 (source capability downgrades)] [SOURCE: iteration-003 finding on V8 being in validate-memory-quality.ts not contamination-filter.ts]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:155:- Extremely long memories that push past the memory template's designed balance of sections
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:159:**Risk Level:** MEDIUM -- Does not break the pipeline but produces suboptimal memories. The quality scorer does not penalize length. The sufficiency gate does not check for excessive length. The main damage is retrieval inefficiency: a 10K-char memory uses disproportionate context window budget when surfaced by `memory_search`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:191:- **Quality scoring:** The file count may actually help (HAS_FILES = true, FILE_COUNT = 100+) but the descriptions will all be placeholder text ("Modified workflow", "Modified config") which the sufficiency gate marks as NOT primary evidence (confirmed in `memory-sufficiency.vitest.ts` test "does not count placeholder file descriptions as primary evidence")
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:235:**Risk Level:** MEDIUM -- Potential for duplicate decision content in rendered output. Not a crash, but reduces memory quality through redundancy.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:250:- `.opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts` (existing JSON-mode tests for nextSteps, importanceTier, FILES)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:252:- `.opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts` (generic title rejection, placeholder description rejection)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-018.md:274:- Questions addressed: ["What is the minimum viable JSON payload that should produce a >= 50/100 quality memory?", "What key_files scoping strategy prevents 300+ entry lists?", "How should the template renderer handle JSON-sourced observations vs transcript-sourced ones?"]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:18:| Freeze canonical JSON v2 schema for `generate-context` input | No | This completed phase item appears in `tasks.md` (T017) but is not represented in the changelog. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:19:| Record `node scripts/dist/memory/generate-context.js --help` runtime smoke | Yes | Explicitly mentioned in Test Impact. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:22:| Record memory-save end-to-end verification (JSON mode -> generate-context -> MCP index) | Partial | The changelog describes save-path hardening and fallback behavior, but it does not clearly state that the full end-to-end save/index path was verified. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:27:- The changelog misses one documented completed item: freezing the canonical JSON v2 schema for `generate-context` input (`tasks.md` T017).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:28:- The changelog only partially captures the verification surface for the memory-save work. It explains the hardening and fallback behavior, but it does not clearly state that the full save pipeline was verified end-to-end (`tasks.md` T021).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-003-pass-a.md:32:The changelog is well written and captures most of the important Phase 003 work, especially the CommonJS/ESM interop story and the memory-save hardening fixes. It still needs revision before it can be considered fully accurate, because one completed work item is missing, one verification item is only implicit, and the implementation summary it is supposed to reflect has not actually been filled in.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:22:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:23:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:24:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:25:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:26:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:27:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:62:✓ CONTINUITY_FRESHNESS: Continuity freshness skipped: _memory.continuity.last_updated_at missing
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:79:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:80:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:81:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:82:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:83:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:117:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:118:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:119:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:120:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:121:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:155:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:156:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:157:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:158:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:159:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:193:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:194:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:195:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:196:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:197:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:231:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:232:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:233:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:234:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:235:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:271:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:272:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:273:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:274:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:275:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:276:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:312:⚠ FRONTMATTER_MEMORY_BLOCK: 6 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:313:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:314:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:315:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:316:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:317:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:318:    - SPECDOC_FRONTMATTER_002: research/research.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:348:  Phase: 008-spec-memory-compliance-audit
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:357:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:358:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:359:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:360:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:361:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:362:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:374:✓ FOLDER_NAMING: Folder name '008-spec-memory-compliance-audit' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:391:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:401:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:402:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:403:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:404:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:405:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:406:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:442:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:443:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:444:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:445:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:446:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:447:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:481:⚠ FRONTMATTER_MEMORY_BLOCK: 4 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:482:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:483:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:484:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:485:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:509:✓ CONTINUITY_FRESHNESS: Continuity freshness skipped: _memory.continuity.last_updated_at missing
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:514:  Phase: 012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:523:⚠ FRONTMATTER_MEMORY_BLOCK: 7 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:524:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:525:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:526:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:527:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:528:    - SPECDOC_FRONTMATTER_002: decision-record.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:529:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:530:    - SPECDOC_FRONTMATTER_002: research/research.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:540:✓ FOLDER_NAMING: Folder name '012-memory-save-quality-pipeline' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:557:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:567:⚠ FRONTMATTER_MEMORY_BLOCK: 6 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:568:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:569:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:570:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:571:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:572:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:573:    - SPECDOC_FRONTMATTER_002: handover.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:609:⚠ FRONTMATTER_MEMORY_BLOCK: 5 frontmatter_memory_block issue(s) found
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:610:    - SPECDOC_FRONTMATTER_002: spec.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:611:    - SPECDOC_FRONTMATTER_002: plan.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:612:    - SPECDOC_FRONTMATTER_002: tasks.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:613:    - SPECDOC_FRONTMATTER_002: checklist.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-full.txt:614:    - SPECDOC_FRONTMATTER_002: implementation-summary.md: missing _memory block
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/checklist.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/checklist.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/003-real-feedback-labels/checklist.md:51:- [x] CHK-010 [P0] Replay feedback lookup is batched over the replay memory set [EVIDENCE: Verified against the cited implementation location.] [File: `shadow-evaluation-runtime.ts:130-147`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:1:# Iteration 9: Deep-Read validate-memory-quality.ts (V1-V14 Rules)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:4:Exhaustive documentation of every validation rule in `validate-memory-quality.ts`, including trigger conditions, severity classification, disposition (blockOnWrite / blockOnIndex), and specific interaction patterns with JSON-mode saves.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:13:- `blockOnWrite`: boolean -- if true, the memory file is NOT written to disk
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:19:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:44-157]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:33:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:588-618]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:41:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:642-652]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:47:**JSON-mode interaction**: If the JSON payload includes `toolCalls` data that gets counted, but the template renders `[N/A]` for sections where no conversation data was extracted, V2 fires. This is a **secondary failure path** -- the memory gets written but is invisible to search.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:49:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:654-661]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:57:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:663-669]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:64:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:672-677]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:71:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:679-685]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:87:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:178-187, 687-693]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:94:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:695-700]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:105:**JSON-mode interaction**: CRITICAL. When the JSON `sessionSummary` or `keyDecisions` reference related spec folders (common in cross-cutting work), those references pass through contamination cleaning but then appear in the rendered memory body. If the allowed set does not include them, V8 triggers a hard block. This is the single most reported failure mode for JSON-mode saves doing cross-phase work.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:107:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:701-775]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:112:- Template instructional heading (e.g., "to promote a memory")
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:115:- Spec-ID-only title (e.g., "012-memory-save-quality-pipeline")
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:117:**JSON-mode interaction**: Low risk. JSON-mode saves usually provide a `sessionSummary` that becomes the title candidate. The title builder has multiple fallback layers (preferredMemoryTask, specTitle, folderBase). Only fires if ALL title sources produce contaminated output.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:119:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:777-783, 194-199]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:126:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:785-794]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:137:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:796-816]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:141:**Trigger**: Zero overlap between rendered memory content and the spec folder's `trigger_phrases` from `spec.md`. Skipped for files in `memory/` directories or known spec doc filenames.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:144:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:818-872]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:154:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:874-895]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:161:[SOURCE: .opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:897-916]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-009.md:189:- `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts` (lines 1-998, complete file)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-009-pass-b.md:27:- Rewrite `Fix` paragraphs to focus more on behavior change and user impact, and less on implementation mechanics. Examples that currently lean too technical include references to file paths, `memory/`, `spec.md`, `plan.md`, `warn-only`, `shared/context-types.ts`, and database constraint mechanics.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:21:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:65:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:99:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:133:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:167:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:201:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:237:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:273:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:303:  Phase: 008-spec-memory-compliance-audit
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:311:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:320:✓ FOLDER_NAMING: Folder name '008-spec-memory-compliance-audit' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:338:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:348:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:384:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:419:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:451:  Phase: 012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:459:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:468:✓ FOLDER_NAMING: Folder name '012-memory-save-quality-pipeline' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:485:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:495:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-after-copilot.txt:532:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-006-pass-b.md:25:- Remove file names, function names, environment variable names, and exact output paths from `Problem` / `Fix` prose. Examples include `context-server.ts`, `main()`, `package.json`, `dist/index.js`, `SPECKIT_VRULE_OPTIONAL`, `shared/paths.ts`, `response-builder.ts`, `memory-save.ts`, and `tryImportMcpApi`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:12:Consolidate all findings from deep code reading of the generate-context.js pipeline into a concrete, actionable implementation plan. Produce: (a) revised item list with exact LOC estimates per file, (b) dependency graph between items, (c) risk-ranked implementation order, (d) minimum viable subset that fixes the worst symptoms.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:23:- `scripts/memory/generate-context.ts` -- 5 LOC: Detect `--json`/`--stdin` mode, set `inputSource: 'json' | 'transcript'`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:77:**Current state:** The `scoreMemoryQuality()` function (line 127-136) scores based on 6 dimensions: triggerPhrases (0-20), keyTopics (0-15), fileDescriptions (0-20), contentLength (0-15), noLeakedTags (0-15), observationDedup (0-15). Total: 100 points.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:88:- workflow.ts:1473 calls `scoreMemoryQualityV2({...})` with the rendered content
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:106:**V8 problem:** The V8 rule flags references to other phase numbers (e.g., "Phase 015" mentioned in a Phase 012 memory) as contamination. For JSON-mode saves, the AI composes structured data that naturally references sibling phases within the same parent spec.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:126:- Title generation: when inputMode is 'structured', derive title from sessionSummary first meaningful clause (up to 80 chars) instead of generic fallback. Insertion point: workflow.ts where `memoryTitle` is set.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:127:- Description: use sessionSummary truncated to 200 chars. Currently `deriveMemoryDescription()` from `lib/memory-frontmatter.ts` generates descriptions -- needs structured mode branch.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/iterations/iteration-019.md:203:When: generate-context.js --json runs
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:172:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/implementation-summary.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:175:      "title": "Implementatio [system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/implementation-summary]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:179:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/tasks.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:182:      "title": "Tasks: Spec & Memory [system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/tasks]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:459:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:462:      "title": "...c-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/checklist]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:466:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/decision-record.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:469:      "title": "...023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/decision-record]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:473:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:476:      "title": "...rid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/implementation-summary]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:480:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/plan.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:483:      "title": "...m-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/plan]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:487:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research/research.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:490:      "title": "...ec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/research]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:494:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/spec.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:497:      "title": "...m-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/spec]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:501:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:504:      "title": "...-spec-kit/023-hybrid-rag-fusion-refinement/011-indexing-and-adaptive-fusion/007-external-graph-memory-research/tasks]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:620:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:623:      "title": "Verification Checklist: [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/checklist]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:627:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/decision-record.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:630:      "title": "Decision Record: [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/decision-record]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:634:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:637:      "title": "Implementatio [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/implementation-summary]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:641:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/plan.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:644:      "title": "Implementation Plan: Memory [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/plan]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:648:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research/research.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:651:      "title": "Research: Memory Save [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/research]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:655:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/spec.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:658:      "title": "Feature Specification: Memory [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/spec]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:662:      "filePath": "/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks.md",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:665:      "title": "Tasks: Memory Save Quality [system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/tasks]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/frontmatter-dry-run.json:742:      "title": "Deep Research: Spec Kit Memory Feature Audit & Quality [system-spec-kit/023-hybrid-rag-fusion-refinement/research]",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/tasks.md:9:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/tasks.md:14:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/tasks.md:79:- [x] T012 Re-test the hottest recent runtime surfaces first - WHY: research identified these as the most likely regression zones under ESM path changes - Acceptance: the first targeted retests cover `memory-save.ts`, `memory-index.ts`, `shared-memory.ts`, `vector-index-store.ts`, `session-manager.ts`, `scripts/memory/generate-context.ts`, and `scripts/core/workflow.ts` [EVIDENCE: Phase 4/5 — all high-risk surfaces retested, mcp-server 8997/8997 + scripts 483/483 pass]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-001.md:25:- Evidence: [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/cleanup-orphaned-vectors.ts:15]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-001.md:89:- [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/cleanup-orphaned-vectors.ts:15]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:155:`cli.ts`, `core/config.ts`, `handlers/index.ts`, `handlers/memory-crud-health.ts`, `handlers/shared-memory.ts`, `handlers/v-rule-bridge.ts`, `lib/cognitive/archival-manager.ts`, `lib/cognitive/tier-classifier.ts`, `lib/errors/core.ts`, `lib/eval/eval-db.ts`, `lib/ops/file-watcher.ts`, `lib/scoring/composite-scoring.ts`, `lib/search/vector-index-store.ts`, `scripts/map-ground-truth-ids.ts`, `scripts/reindex-embeddings.ts`, `startup-checks.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:189:| 4 | 3 (parallel) | xhigh+high mix | Memory save hardening files | T013-T017: V8 descendant detection, manual-fallback mode, evidence parser, related_specs, JSON v2 schema |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:191:| 5b | 1 | YOU | Runtime verification | T018-T021: `generate-context.js --help`, test suite, Vitest, memory save e2e |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:201:Split the results into 4 non-overlapping groups by directory. Assign 2 xhigh agents for complex files (workflow.ts, generate-context.ts) and 2 high agents for simpler consumer files.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:205:**Batch 4 Memory Save Hardening Split (3 agents):**
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:209:| F | xhigh | `scripts/lib/validate-memory-quality.ts` | T013: V8 descendant phase detection + T016: related_specs allowlist |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:210:| G | xhigh | `shared/parsing/memory-sufficiency.ts`, `mcp_server/handlers/save/markdown-evidence-builder.ts` | T014-T015: manual-fallback mode + primary evidence expansion |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:211:| H | high | `scripts/memory/generate-context.ts`, `scripts/utils/input-normalizer.ts` | T017: JSON v2 schema freeze + contract tests |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:213:**IMPORTANT**: Batch 3 (workflow.ts decoupling) MUST complete before Batch 5b runtime verification, because `generate-context.js` depends on workflow.ts which currently imports mcp-server directly.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:217:node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js --help
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:219:# NEW: Memory save end-to-end test
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:220:echo '{"specFolder":"023-hybrid-rag-fusion-refinement","sessionSummary":"test save"}' | node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js --stdin
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:225:feat(scripts): add CJS-to-ESM interop + memory save hardening for @spec-kit/scripts (Phase 3/4)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:251:| A | `memory-save.ts` | Run targeted test or smoke covering save paths |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:252:| B | `memory-index.ts` + `vector-index-store.ts` | Run index-related tests |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:253:| C | `shared-memory.ts` + `session-manager.ts` | Run shared-memory handler tests |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:254:| D | `generate-context.ts` | `node scripts/dist/memory/generate-context.js --help` + integration test |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:268:node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js --help
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/023-implementation-orchestration-prompt.md:305:4. Save context to memory via `generate-context.js`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:21:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:65:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:99:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:133:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:167:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:201:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:237:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:273:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:301:  Phase: 008-spec-memory-compliance-audit
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:309:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:318:✓ FOLDER_NAMING: Folder name '008-spec-memory-compliance-audit' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:335:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/008-spec-memory-compliance-audit/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:345:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:381:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:415:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:447:  Phase: 012-memory-save-quality-pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:455:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:464:✓ FOLDER_NAMING: Folder name '012-memory-save-quality-pipeline' follows naming convention
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:481:    - ENOENT: no such file or directory, scandir '/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/012-memory-save-quality-pipeline/[0-9][0-9][0-9]-*'
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:491:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/validator-final.txt:527:✓ FRONTMATTER_MEMORY_BLOCK: All spec-doc frontmatter memory blocks are structurally valid
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-b.md:17:| Non-developer voice | Fail | Several lines rely on internal terms such as "governance scope fields," "fail closed," "`TRM` state," "`memoryState`," and "`minState`" without enough plain-English framing. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-b.md:19:| Jargon explained | Fail | `vector search` and `FTS5` are explained, but `TRM`, `memoryState`, `minState`, and "governed deployments" are not. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-b.md:24:- The second fix uses internal terms like `TRM`, `memoryState`, and `minState` without explaining them for a smart non-developer reader.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-b.md:27:- The summary is directionally good, but it would be stronger if it led even more clearly with user impact before naming internal APIs like `memory_search` and `memory_context`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:41:5. **Missing `_memory` frontmatter blocks** (P1 — FRONTMATTER_MEMORY_BLOCK warnings, strict-upgraded to errors)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:42:   - ~60 spec files across root + 14 phases — mechanical backfill via `backfill-frontmatter.js` → `_memory.continuity` YAML block populated
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:45:   - Backfilled `_memory` blocks pushed `<!-- SPECKIT_TEMPLATE_SOURCE -->` past the validator's 20-line window in 6 files (007/spec.md, 007/implementation-summary.md, 008/spec.md, 010/spec.md, 013/plan.md, 014/spec.md)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:75:# Mechanical frontmatter _memory backfill (via copilot autopilot dispatch)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:110:- **Spec-doc content edits:** 148 markdown files (frontmatter `_memory` backfill + targeted content fixes)
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:122:- `memory_index_scan` for `system-spec-kit/023-hybrid-rag-fusion-refinement` (force=true, incremental=false) → **scanned 173, indexed 1, updated 148, unchanged 24, failed 0** ✓
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:131:2. Verify `memory_index_scan` completes post-lease-release.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/audit-2026-04-24/fix-report.md:132:3. Consider whether the `template_source_hint:` YAML field should be formally recognized by the TEMPLATE_SOURCE validator (alternate to the HTML comment) to stop this regression from recurring whenever `_memory` blocks are backfilled.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/description.json:17:  "memorySequence": 7,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/description.json:18:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-a.md:10:| Fix for Bug 1: `SPECKIT_MEMORY_SCOPE_ENFORCEMENT` must be explicitly set to enable enforcement | Yes | Changelog states the environment flag requirement and restored default behavior correctly. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-a.md:11:| Bug 2: default `minState: 'WARM'` filtered out all memories because `memoryState` is not materialized and resolves to `UNKNOWN` | Yes | Captured accurately in the second Problem/Fix entry. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/scratch/review-007-pass-a.md:12:| Fix for Bug 2: remove default/hardcoded `minState: 'WARM'` from `memory_search` and `memory_context` | Yes | Described correctly, including both handlers. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/deep-review-strategy.md:23:- Saving memory artifacts in this rerun
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-002.md:31:- Reviewed shared-memory and memory-save boundary surfaces; no new active auth bypass stronger than archived packet evidence was confirmed in this pass.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:19:- Evidence: [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:398]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:20:- Evidence: [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:562]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:32:  "claim": "The explicit session-selection contract for generate-context is currently unreliable.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:34:    ".opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:398",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:35:    ".opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:562",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:53:- Verified that memory-save recovery paths exist even though explicit session targeting is unreliable.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:60:- [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:398]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/iterations/iteration-006.md:61:- [SOURCE: .opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:562]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/review-report.md:79:- Evidence: `.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:398`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/review-report.md:80:- Evidence: `.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts:562`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/deep-research-state.jsonl:3:{"type": "iteration", "mode": "review", "run": 2, "status": "complete", "focus": "D2 Security \u2014 validation and boundary handling", "dimension": "2 Security", "dimensions": ["D2 Security"], "findingsCount": 1, "newFindingsRatio": 1.0, "noveltyJustification": "fresh live-tree findings", "findingsSummary": {"P0": 0, "P1": 0, "P2": 1}, "filesReviewed": [".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement"], "dimensionScores": {"correctness": 2, "security": 2, "traceability": 2, "maintainability": 2}, "findingsNew": {"P0": 0, "P1": 0, "P2": 1}, "findingsRefined": {"P0": 0, "P1": 0, "P2": 0}, "upgrades": [], "resolved": [], "findingRefs": ["P2-023-003"], "traceabilityChecks": {"summary": {"required": 2, "executed": 2, "pass": 0, "partial": 0, "fail": 0, "blocked": 0, "notApplicable": 0, "gatingFailures": 0}, "results": []}, "coverage": {"filesReviewed": 1, "filesTotal": 1, "dimensionsComplete": []}, "ruledOut": ["Reviewed shared-memory and memory-save boundary surfaces; no new active auth bypass stronger than archived packet evidence was confirmed in this pass."], "timestamp": "2026-04-02T18:22:00", "durationMs": 30500}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/review/deep-research-state.jsonl:7:{"type": "iteration", "mode": "review", "run": 6, "status": "complete", "focus": "D6 Reliability \u2014 context capture path", "dimension": "6 Reliability", "dimensions": ["D6 Reliability"], "findingsCount": 1, "newFindingsRatio": 1.0, "noveltyJustification": "fresh live-tree findings", "findingsSummary": {"P0": 0, "P1": 1, "P2": 0}, "filesReviewed": [".opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement"], "dimensionScores": {"correctness": 2, "security": 2, "traceability": 2, "maintainability": 2}, "findingsNew": {"P0": 0, "P1": 1, "P2": 0}, "findingsRefined": {"P0": 0, "P1": 0, "P2": 0}, "upgrades": [], "resolved": [], "findingRefs": ["P1-023-007"], "traceabilityChecks": {"summary": {"required": 2, "executed": 2, "pass": 0, "partial": 0, "fail": 0, "blocked": 0, "notApplicable": 0, "gatingFailures": 0}, "results": []}, "coverage": {"filesReviewed": 1, "filesTotal": 1, "dimensionsComplete": []}, "ruledOut": ["Verified that memory-save recovery paths exist even though explicit session targeting is unreliable."], "timestamp": "2026-04-02T18:26:00", "durationMs": 31500}
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:3:description: "Fixed false-positive validation rules blocking legitimate memory/spec files from bulk reindex, plus contextType migration from decision/discovery to planning/general across the full stack."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:11:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:16:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:43:Bulk reindex went from rejecting 1,106 files to accepting all of them. Two validation rules (V8 cross-spec contamination, V12 topical coherence) were producing false positives because the batch pipeline lacked per-file context. The fix threads file path context through validation, skips unnecessary checks on memory and spec doc files, and corrects a cascading frontmatter bug that was silently reverting `contextType` values across every backfill run.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:48:2. **V12 topical coherence**: Skip check for `*/memory/` directory files and spec doc files that define the spec itself.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:50:4. **File path threading**: Pass `filePath` through `v-rule-bridge.ts` and `memory-save.ts` validation bridge.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:57:11. **Runtime consumers**: Updated session-extractor, intent-classifier, save-quality-gate, fsrs-scheduler, and memory-state-baseline.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:65:5. **P1-5**: Added schema migration v25 that UPDATEs legacy values then rebuilds `memory_index` table with strict `CHECK(context_type IN ('research', 'implementation', 'planning', 'general'))`. Bumped `SCHEMA_VERSION` to 25.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:66:6. **P1-6**: Added 5 new test cases for filePath fallback (V8 multi/single-level) and V12 skip (memory dir, spec doc, descriptive names).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:77:| `scripts/lib/validate-memory-quality.ts` | Modified | V8 regex fix, descriptive `name` field on rule metadata/results |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:79:| `scripts/tests/validate-memory-quality.vitest.ts` | Modified | Added 5 new tests for filePath/V12/name coverage |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:80:| `mcp_server/lib/parsing/memory-parser.ts` | Modified | ContextType re-exported from shared, CONTEXT_TYPE_MAP uses shared aliases |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:86:| `mcp_server/tests/memory-parser-extended.vitest.ts` | Modified | Removed legacy types from T08 valid set |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:119:| validate-memory-quality tests | PASS: 7/7 (2 original + 5 new) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:120:| memory-parser-extended tests | PASS: 46/46 (including updated T08) |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/implementation-summary.md:137:2. **Batch reindex does not log per-file skip reasons.** The `runMemoryIndexScan` response format includes only aggregated counts, not individual file decisions.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:3:description: "Fix false-positive validation behavior that blocked legitimate memory and spec files during batch reindex."
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:7:  - "memory files not indexed"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:12:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:17:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:40:| **Predecessor** | 008-spec-memory-compliance-audit |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:50:Batch reindex discovered substantially more files on disk than were inserted into the memory index. Two validation rules were producing false positives in bulk mode, which blocked valid memory and spec documentation content from indexing.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:53:Make bulk reindex permissive for valid spec-memory content while keeping contamination safeguards intact for real cross-spec leakage.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:63:- Repair V12 topical coherence handling for memory/spec-document indexing paths.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:64:- Keep existing interactive `memory_save` behavior stable.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:76:| `scripts/lib/validate-memory-quality.ts` | Modify | Adjust V8/V12 behavior for bulk index path |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:77:| `mcp_server/handlers/memory-index.ts` | Modify | Pass contextual path/scope data into validation |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:93:| REQ-002 | V12 no longer blocks eligible memory/spec docs during index | Memory and spec-doc paths are indexable without false V12 hard-blocks |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/checklist.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/checklist.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/checklist.md:64:- [ ] CHK-021 [P0] Runtime evidence for memory/spec-doc indexing count refreshed.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/checklist.md:96:- [ ] CHK-052 [P2] Optional memory save pending after full verification closure.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:16:      "memory files not indexed",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:34:      "memory",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:46:      "scripts/lib/validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:48:      "mcp_server/lib/parsing/memory-parser.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:54:      "mcp_server/tests/memory-parser-extended.vitest.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:55:      "mcp_server/handlers/memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:76:        "name": "validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:78:        "path": "scripts/lib/validate-memory-quality.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:88:        "name": "memory-parser.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:90:        "path": "mcp_server/lib/parsing/memory-parser.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:124:        "name": "memory-parser-extended.vitest.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:126:        "path": "mcp_server/tests/memory-parser-extended.vitest.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:130:        "name": "memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:132:        "path": "mcp_server/handlers/memory-index.ts",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/graph-metadata.json:208:    "causal_summary": "Batch reindex discovered substantially more files on disk than were inserted into the memory index. Two validation rules were producing false positives in bulk mode, which blocked valid memory and spec documentation content from indexing.",
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/description.json:19:  "memorySequence": 2,
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/description.json:20:  "memoryNameHistory": [
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/plan.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/plan.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/plan.md:35:| **Framework** | Spec Kit Memory MCP server + scripts workspace |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/plan.md:69:- **Validation layer (`validate-memory-quality.ts`)**: Rule behavior and context interpretation.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/plan.md:70:- **Index handlers (`memory-index.ts`, `memory-save.ts`)**: Batch-mode parameter threading.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/tasks.md:10:_memory:
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/tasks.md:15:    recent_action: "Backfilled memory block"
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/tasks.md:56:- [x] T005 Adjust V12 eligibility handling for memory/spec-doc index paths.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:4:13 bug fixes for memory indexing pipeline and contextType migration across phases 008-009 of spec 023-hybrid-rag-fusion-refinement.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:12:1. `scripts/lib/validate-memory-quality.ts` — File path fallback for spec_folder extraction, skip V12 for memory/spec docs
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:15:4. `mcp_server/handlers/memory-index.ts` — Force reindex warn-only for all files
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:16:5. `mcp_server/handlers/memory-save.ts` — Thread filePath to validator
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:18:7. `mcp_server/lib/parsing/memory-parser.ts` — ContextType union, CONTEXT_TYPE_MAP decision→planning
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:24:13. `mcp_server/lib/eval/memory-state-baseline.ts` — Validation query includes planning
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:37:| 1 | Correctness | validate-memory-quality.ts regex + fallback, frontmatter-migration.ts defaults |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/deep-review-strategy.md:38:| 2 | Correctness | memory-parser.ts type map, session-extractor.ts return values |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/review-report.md:35:- **Files**: `mcp_server/tests/memory-parser-extended.vitest.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/review-report.md:42:- **Files**: `scripts/lib/validate-memory-quality.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/review-report.md:70:- **Files**: `scripts/tests/validate-memory-quality.vitest.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/review-report.md:71:- **Issue**: No tests pass `{ filePath }` to `validateMemoryQualityContent`. The exact reindex path that motivated the fix has no regression test.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:27:### ITER002-P1-1 — Shared-memory admin authorization is still spoofable because the handler trusts caller-supplied actor IDs
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:30:- **Evidence Check**: `mcp_server/handlers/shared-memory.ts:224-236` still states actor IDs are caller-supplied and not cryptographically bound; `validateCallerAuth()` still computes `isAdmin` by comparing those raw IDs to configured admin identity, and admin-only handlers still branch on that result (`shared-memory.ts:436-458`, `627-633`, `780-787`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:34:### ITER002-P1-2 — The ESM V-rule bridge fails open, so a load or packaging regression disables runtime validation for all `memory_save` calls
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:37:- **Evidence Check**: `mcp_server/handlers/v-rule-bridge.ts:90-101` now returns an error-shaped unavailable result by default, and `mcp_server/handlers/memory-save.ts:211-213` throws `VRuleUnavailableError` when that happens. The only bypass left is the explicit opt-out path guarded by `SPECKIT_VRULE_OPTIONAL === 'true'`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:76:### ITER006-P1-1 — `memory_save` collapses post-commit persistence failures into generic "anchor issues" warnings, obscuring partial-failure recovery
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:79:- **Evidence Check**: `mcp_server/handlers/memory-save.ts:987` now emits a `[file-persistence-failed] ...` warning tag, and `mcp_server/handlers/save/response-builder.ts:370-387` preserves typed warning categories and separates file-persistence warnings from anchor issues in the response message.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:104:### ITER009-P1-1 — Preflight exact-duplicate checks ignore governed scope, so `memory_save` can leak cross-tenant/shared-space memory metadata and falsely reject scoped saves
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:107:- **Evidence Check**: `mcp_server/lib/validation/preflight.ts:514-555` now includes `scopeFilters` in the exact-duplicate SQL, and `memory-save.ts:1285-1288` threads `tenantId`, `userId`, `agentId`, and `sharedSpaceId` into preflight. The duplicate result is also scope-redacted before payload shaping.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:148:  - Shared-memory admin auth still trusts caller-supplied identity.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-010.md:159:However, the remaining `P1` items are real enough that I would not call the packet fully release-clean. The codebase itself is substantially healthier than the earlier iterations suggested, but the release packet and shared-memory admin trust model still need follow-up. That makes the best adversarial verdict **CONDITIONAL**, with one advisory-level documentation cleanup still open.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:8:### 1. `validate-memory-quality` still lacks coverage for the new `filePath`-dependent regression paths
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:9:- **File/line:** `scripts/lib/validate-memory-quality.ts:624-638`, `scripts/lib/validate-memory-quality.ts:818-871`, `scripts/tests/validate-memory-quality.vitest.ts:5-43`, `scripts/tests/validation-v13-v14-v12.vitest.ts:207-249`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:10:- **Evidence:** The production validator now derives `specFolder` from `options.filePath` when frontmatter omits `spec_folder` (`624-638`) and skips V12 topical-coherence checks for `*/memory/*` and spec-doc paths based on `filePath` (`818-871`). The dedicated validator tests only cover YAML parsing (`validate-memory-quality.vitest.ts:5-43`) or V12 path normalization via `spec_folder` values passed in content, with every call using `validateMemoryQualityContent(content)` and no `{ filePath }` argument (`validation-v13-v14-v12.vitest.ts:217`, `231`, `245`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:11:- **Impact:** The exact reindex/save path that motivated these fixes can regress without a failing test: bulk reindex of older files lacking `spec_folder`, and file-path-based V12 skip behavior for memory/spec docs.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:12:- **Recommendation:** Add unit tests that call `validateMemoryQualityContent(content, { filePath })` for: (a) empty/missing `spec_folder` with path fallback, (b) `.../memory/...` path skipping V12, and (c) `spec.md`/`plan.md`/`decision-record.md` skip behavior.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:14:### 2. `memory-parser` coverage is stale and still asserts the pre-migration context map
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:15:- **File/line:** `mcp_server/lib/parsing/memory-parser.ts:108-124`, `mcp_server/tests/memory-parser-extended.vitest.ts:213-234`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:27:- **File/line:** `mcp_server/tests/memory-save-pipeline-enforcement.vitest.ts:62-118`, `mcp_server/tests/memory-save-pipeline-enforcement.vitest.ts:350-362`, `mcp_server/tests/integration-138-pipeline.vitest.ts:103-111`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:28:- **Evidence:** The save-pipeline fixture builds a memory document without `spec_folder`, but hard-codes `contextType = 'implementation'` and never inspects the persisted DB row (`62-118`). Its golden-path test only asserts that indexing does not reject and returns an id/status (`350-362`). The other pipeline integration fixture that mentions `spec_folder: ''` is a search/MMR fallback test, not a save/validate/index flow (`integration-138-pipeline.vitest.ts:103-111`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-008.md:30:- **Recommendation:** Add one integration test that writes a spec doc or memory file with empty/missing `spec_folder`, runs the real save/index path, and asserts both acceptance and the final `memory_index.context_type` value in SQLite.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:9:- **File:** `scripts/lib/validate-memory-quality.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:17:### 1. `memory_save` API does not accept caller-supplied `contextType`, so legacy external inputs are ignored rather than normalized through the save pipeline
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:18:- **File:** `mcp_server/tool-schemas.ts`, `mcp_server/schemas/tool-input-schemas.ts`, `mcp_server/lib/parsing/memory-parser.ts`, `mcp_server/handlers/memory-save.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:19:- **Lines:** `tool-schemas.ts:215-220`, `tool-input-schemas.ts:458`, `memory-parser.ts:108-124`, `604-620`, `memory-save.ts:209-217`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:20:- **Evidence:** `memory_save` only accepts `filePath`-based ingestion; `contextType` is not part of the allowed `memory_save` parameters. The parser does normalize legacy frontmatter/content values (`decision -> planning`) when reading the file content, and `memory-save` persists `parsed.contextType`, but an external tool sending `contextType: "decision"` in the API payload has that field rejected/ignored before it reaches the parser.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:22:- **Recommendation:** Document that `memory_save` derives `contextType` from file content only, or explicitly add/reject a `contextType` argument with a clear validation error so callers do not assume it participates in normalization.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:27:- No crash path found. `undefined`/`null`/`''` simply skip the fallback extraction and the memory/spec-doc path heuristics.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-007.md:41:- **No finding.** The validator regex only keys off path separators and `specs/.../<NNN-name>` segments (`scripts/lib/validate-memory-quality.ts:633-637`); spaces elsewhere in the absolute path (for example `Opencode Env`) do not affect the match.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:11:- **File:** `scripts/lib/frontmatter-migration.ts`, `scripts/extractors/session-extractor.ts`, `mcp_server/lib/parsing/memory-parser.ts`, `mcp_server/lib/search/intent-classifier.ts`, `mcp_server/lib/cognitive/fsrs-scheduler.ts`, `mcp_server/lib/validation/save-quality-gate.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:12:- **Lines:** `frontmatter-migration.ts:135-145, 824-845`; `session-extractor.ts:120-134`; `memory-parser.ts:108-124`; `intent-classifier.ts:197-205`; `fsrs-scheduler.ts:271-276, 383-397`; `save-quality-gate.ts:345-360`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:13:- **Evidence:** The same `contextType` domain is encoded independently in at least six places, and the mappings have already drifted. The clearest mismatch is alias normalization: `frontmatter-migration.ts` maps `bug -> discovery`, while `memory-parser.ts` maps `bug -> implementation`. Other modules then layer their own hard-coded policy on top of that same domain: `session-extractor.ts` infers only `planning/research/implementation/general`, `intent-classifier.ts` hard-codes per-intent target context types, `fsrs-scheduler.ts` hard-codes decay behavior by context type, and `save-quality-gate.ts` hard-codes its planning-only exception check.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:21:- **File:** `scripts/lib/frontmatter-migration.ts`, `mcp_server/lib/parsing/memory-parser.ts`, `mcp_server/lib/cognitive/fsrs-scheduler.ts`, `mcp_server/lib/validation/save-quality-gate.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:22:- **Lines:** `frontmatter-migration.ts:1032-1046`; `memory-parser.ts:113-114`; `fsrs-scheduler.ts:272-273, 384-385`; `save-quality-gate.ts:351-353`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:40:- **Evidence:** `validate-memory-quality.ts` still derives disposition solely from rule metadata and failed rules, returning `abort_write`, `write_skip_index`, or `write_and_index`. I did not find any `forceReindex`-specific path that downgrades failures to warn-only. See `scripts/lib/validate-memory-quality.ts:133-140, 588-609`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-005.md:47:- **Evidence:** V12 is defined as index-blocking but not write-blocking (`blockOnWrite: false`, `blockOnIndex: true`), and the tests explicitly document that when the validator cannot resolve a backing `spec.md`, V12 passes rather than failing. See `scripts/lib/validate-memory-quality.ts:133-140, 588-609` and `scripts/tests/validation-rule-metadata.vitest.ts:57-100`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:24:  - Canonicalize explicit payload values at the input/session boundary using the same alias map as `memory-parser` / `frontmatter-migration`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:31:- **Files:** `scripts/lib/frontmatter-migration.ts`, `scripts/extractors/session-extractor.ts`, `mcp_server/lib/parsing/memory-parser.ts`, `mcp_server/lib/search/intent-classifier.ts`, `mcp_server/lib/cognitive/fsrs-scheduler.ts`, `mcp_server/lib/validation/save-quality-gate.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:32:- **Lines:** `frontmatter-migration.ts:101-108, 135-147, 824-845`, `session-extractor.ts:120-135, 575-606`, `memory-parser.ts:84-124, 604-617`, `intent-classifier.ts:197-205`, `fsrs-scheduler.ts:271-277, 383-397`, `save-quality-gate.ts:336-360, 396-430`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:35:  - `memory-parser` canonicalizes both legacy aliases (`decision -> planning`, `discovery -> general`). [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:108-124`; `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:604-617`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:47:- **Files:** `mcp_server/lib/parsing/memory-parser.ts`, `mcp_server/handlers/memory-save.ts`, `mcp_server/handlers/chunking-orchestrator.ts`, `mcp_server/lib/search/vector-index-schema.ts`, `shared/normalization.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:48:- **Lines:** `memory-parser.ts:604-617`, `memory-save.ts:1055-1058, 1550-1553`, `chunking-orchestrator.ts:503-518`, `vector-index-schema.ts:1656-1659, 2226-2255`, `shared/normalization.ts:168-193`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:50:  - The main parse step canonicalizes `decision -> planning` before indexing. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:604-617`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:51:  - Both the normal index path and the atomic pending-file path feed the parsed object into `prepareParsedMemoryForIndexing()`, so the reviewed file-ingest flow persists `parsed.contextType`, not raw frontmatter text. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055-1058`; `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1550-1553`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:53:  - However, the database schema still allows `decision` and `discovery` in fresh installs, and low-level row serialization copies `memory.contextType` straight into `row.context_type` without normalization. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-schema.ts:2226-2255`; `.opencode/skills/system-spec-kit/shared/normalization.ts:168-193`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:56:  - I did **not** find a reviewed file-content path that stores raw `decision` in `memory_index.context_type`; the canonical parser/indexer path appears safe.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:67:| 3 | `mcp_server/lib/parsing/memory-parser.ts` | `CONTEXT_TYPE_MAP.decision -> 'planning'` | `CONTEXT_TYPE_MAP.planning -> 'planning'` | `CONTEXT_TYPE_MAP.discovery -> 'general'` | This is the strongest canonicalizer in the reviewed runtime path. |
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:81:  - `memory-parser` maps `decision -> planning`. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:108-124`; `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:604-617`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:95:- `memory-parser` public union / map still includes legacy `decision` and `discovery`, plus additional aliases such as `debug`, `analysis`, `bug`, `fix`, `feature`, `architecture`, `review`, `test`. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:84-124`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:104:- `extractContextType()` canonicalizes legacy `decision -> planning` before the parsed object is prepared for indexing. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:604-617`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:105:- Both `indexMemoryFile()` and the atomic pending-file save path immediately feed that parsed object into `prepareParsedMemoryForIndexing()`. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1055-1058`; `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1550-1553`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:112:- and `memoryToDbRow()` copies `memory.contextType` straight through. [SOURCE: `.opencode/skills/system-spec-kit/shared/normalization.ts:168-193`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:122:- `scripts/core/memory-metadata.ts` — `decision` and `discovery` still collapse into `semantic` memory type. [SOURCE: `.opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts:68-78`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-009.md:127:- `shared/normalization.ts` — DB row serializer copies `memory.contextType` verbatim. [SOURCE: `.opencode/skills/system-spec-kit/shared/normalization.ts:168-193`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:9:- **File**: `.opencode/skills/system-spec-kit/scripts/extractors/session-extractor.ts:120-150`; `.opencode/skills/system-spec-kit/scripts/extractors/collect-session-data.ts:886-893`; `.opencode/skills/system-spec-kit/scripts/extractors/collect-session-data.ts:1044-1047`; `.opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts:68-78`; `.opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts:127-137`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:10:- **Issue**: `detectContextType()` now returns `planning` for decision-heavy sessions, and that value is written through as `CONTEXT_TYPE`, but `inferMemoryType()` still only treats `decision`, `research`, and `discovery` as semantic memories. `planning` therefore falls through to `episodic`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:11:- **Evidence**: `session-extractor.ts` returns `planning` when `decisionCount > 0` and marks `planning` sessions as `important`. `collect-session-data.ts` persists that result into `CONTEXT_TYPE`. `memory-metadata.ts` then derives the fallback `memoryType` from `CONTEXT_TYPE`, but its semantic branch still checks `contextType === 'decision' || contextType === 'research' || contextType === 'discovery'`, so `planning` hits the default `episodic` path.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:12:- **Impact**: Decision-heavy sessions that previously classified as semantic memories now default to episodic memories with the shorter 30-day half-life instead of the semantic 365-day half-life, unless a caller explicitly overrides `memory_type`. That is a correctness regression in retention and retrieval behavior even though the session-level rename itself is intentional.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:13:- **Recommendation**: Update `inferMemoryType()` and any related downstream heuristics to treat `planning` the same as legacy `decision`, or keep emitting `decision` until all downstream consumers have been migrated.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:16:- **File**: `.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts:108-121`; `.opencode/skills/system-spec-kit/scripts/lib/frontmatter-migration.ts:831-840`; `.opencode/skills/system-spec-kit/scripts/lib/frontmatter-migration.ts:1026-1046`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:18:- **Evidence**: `memory-parser.ts` defines `bug: 'implementation'` in `CONTEXT_TYPE_MAP`. `frontmatter-migration.ts` still defines `bug: 'discovery'` in `normalizeContextType()`'s alias map, even though the same module documents that downstream consumers expect `implementation` / `planning` / `research` / `general` rather than the old default `decision`.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:19:- **Impact**: A legacy memory with `contextType: bug` can be normalized to `discovery` during migration but later parsed as `implementation` by the MCP server. That creates inconsistent stored metadata, breaks assumptions about stable canonicalization, and can skew context-type filtering, ranking, and migration audits.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:23:- **File**: `.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser-extended.vitest.ts:219-233`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-002.md:25:- **Evidence**: `memory-parser-extended.vitest.ts` hard-codes `['implementation', 'research', 'decision', 'discovery', 'general']` as the canonical `ContextType[]`, expects `planning` to alias to `decision`, and expects `bug` to alias to `discovery`. A targeted run of `npx vitest run tests/memory-parser-extended.vitest.ts --reporter=verbose` failed exactly those three assertions after the mapping change.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:16:  - The upgrade path adds the column with `ALTER TABLE memory_index ADD COLUMN context_type TEXT DEFAULT 'general'` and does not attach a `CHECK` constraint. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-schema.ts:1656-1659`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:18:  - The rebuild/downgrade path also recreates `memory_index` with the same `CHECK`, which confirms the mismatch between fresh/rebuilt schemas and in-place upgraded schemas. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/lib/storage/schema-downgrade.ts:112-162`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:23:  - Add a migration that rebuilds `memory_index` (or otherwise re-materializes the table) inside a transaction so upgraded databases receive the same `CHECK` constraint as fresh schemas.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:35:- `memory_save` validates and canonicalizes the incoming `filePath` before parsing or validation (`validateFilePathLocal(file_path)`), which blocks traversal outside the allowed base paths. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:1118-1129`; `.opencode/skills/system-spec-kit/shared/utils/path-security.ts:17-97`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:36:- `v-rule-bridge` itself is only a passthrough, but in the reviewed flow it receives the already-validated `parsed.filePath`. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:209-210`; `.opencode/skills/system-spec-kit/mcp_server/handlers/v-rule-bridge.ts:88-103`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:37:- The fallback regex only extracts a spec-folder-shaped substring from the canonical path and does not itself grant filesystem escape. [SOURCE: `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:633-637`; `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:482-515`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-003.md:54:- The reviewed extraction regex is `/[/\\]specs[/\\](.+?[/\\](?:\d{3}-[^/\\]+))/`. It performs a single lazy scan to the next `NNN-slug` segment and does not contain nested ambiguous quantified groups that would suggest catastrophic backtracking. [SOURCE: `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:633-637`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-001.md:7:- **File**: `scripts/lib/validate-memory-quality.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-001.md:9:- **Evidence**: The new fallback regex, `/[/\\]specs[/\\](.+?[/\\](?:\d{3}-[^/\\]+))/`, correctly extracts nested spec folders like `.opencode/specs/system-spec-kit/024-compact-code-graph/memory/foo.md` and also matches backslash-separated Windows paths. However, it does **not** match supported single-level paths such as `/specs/007-auth/memory/ctx-001.md`, because the pattern requires one more path separator before the `NNN-slug` leaf. The repository still treats `/specs/007-auth/...` as a valid spec path shape in other indexing code and tests (`mcp_server/tests/unit-normalization.vitest.ts:12-13`, `mcp_server/tests/artifact-routing.vitest.ts:18-53`). When this fallback misses, `specFolder` stays empty and V8 still evaluates against an empty allowlist (`scripts/lib/validate-memory-quality.ts:702-775`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-001.md:16:- **Evidence**: `normalizeContextType()` now maps `decision -> planning` unconditionally (`scripts/lib/frontmatter-migration.ts:831-840`), and existing frontmatter values are normalized before `inferContextType()` runs (`scripts/lib/frontmatter-migration.ts:1095-1097`). Because `inferContextType()` preserves any existing non-`decision` value unchanged (`scripts/lib/frontmatter-migration.ts:1031-1046`), an explicit existing `decision` context on a memory file is silently rewritten to `planning`. That is not just a legacy-doc cleanup: downstream code still treats `decision` as a legitimate persisted value in schema and behavior (`mcp_server/lib/search/vector-index-schema.ts:2254`, `mcp_server/lib/validation/save-quality-gate.ts:340-352`, `scripts/core/memory-metadata.ts:72-78`).
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-001.md:18:- **Recommendation**: Limit the `decision -> planning` override to the affected spec-doc defaults only, and preserve explicit `decision` values on memory files until the wider pipeline no longer depends on that context type.
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-001.md:21:- **File**: `scripts/lib/validate-memory-quality.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:13:- File: `mcp_server/handlers/memory-index.ts`, `mcp_server/handlers/save/dedup.ts`, `mcp_server/handlers/memory-save.ts`, `mcp_server/handlers/save/create-record.ts`, `mcp_server/lib/search/vector-index-mutations.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:14:- Line: `memory-index.ts:367-406`, `dedup.ts:182-239`, `242-307`, `memory-save.ts:728-805`, `927-981`, `create-record.ts:166-177`, `180-250`, `vector-index-mutations.ts:194-253`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:16:  - The scan handler disables the incremental fast path whenever `force` is set, then still sends every file through `indexSingleFile(...)`; `warn-only` only changes `qualityGateMode`, not whether the file is skipped. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts:367-406`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:18:  - The save pipeline performs embedding-cache lookup / generation before the write transaction, and because the duplicate guards above are disabled under `force`, unchanged files still reach that stage. On a cache miss they will regenerate embeddings even though content is unchanged. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:728-805`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:19:  - The write path then enters an immediate transaction and, for same-path existing files, routes through append-only lineage logic. That ultimately forces `vector-index` into the `INSERT` path instead of the in-place `UPDATE` path when `appendOnly` is true. [SOURCE: `.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts:927-981`; `.opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:166-177`; `.opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts:180-250`; `.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts:194-253`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:32:- File: `scripts/lib/validate-memory-quality.ts`
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:35:  - The new fallback regex for missing `spec_folder` is a single non-nested match against `filePath`; by itself it is cheap. [SOURCE: `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:624-637`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:36:  - The heavier part is the follow-on work done on every validation call: resolving candidate spec-folder paths by walking parent directories and calling `fs.statSync`, scanning child phase folders with `fs.readdirSync`, and re-reading `spec.md` once for `related_specs` and again for `trigger_phrases`. [SOURCE: `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:482-515`; `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:524-555`; `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:706-733`; `.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts:829-846`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:48:- I did not find the exact `DELETE FROM memory_index WHERE id NOT IN (SELECT MAX(id) FROM memory_index GROUP BY file_path)` statement in the reviewed source files; only the spec/checklist mention the cleanup. [SOURCE: `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/spec.md:105-106`; `.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/checklist.md:39-40`]
./.opencode/specs/system-spec-kit/023-hybrid-rag-fusion-refinement/009-reindex-validator-false-positives/review/iterations/iteration-006.md:61:- The CLI is a synchronous maintenance script that discovers targets, deduplicates them, then processes files serially with one read/build/write pass per file. [SOURCE: `.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts:236-303`; `.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts:343-395`; `.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts:487-571`]

codex
The first pass confirms this repo has a large memory subsystem, so I’m narrowing from “every mention” to the primary implementation and docs. The useful split looks like docs, MCP handlers, scripts, schema/search, tests, and historical specs.
exec
/bin/zsh -lc "sed -n '334,460p' README.md && sed -n '994,1020p' README.md && sed -n '1169,1210p' README.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
### 🧠 Memory Engine

The Memory Engine is a local-first cognitive memory system built as an MCP server. `generate-context.js` updates canonical packet continuity and may emit supporting generated context artifacts inside the spec folder. Canonical continuity lives in the spec packet itself: use `/spec_kit:resume` as the recovery surface, then rebuild context in this order: `handover.md` -> `_memory.continuity` -> canonical spec docs. The MCP server indexes those packet-local sources with vector embeddings, BM25 and FTS5 full-text search, and `memory_match_triggers()` can still surface relevant prior context automatically when deeper retrieval is needed.

`/memory:save` refreshes packet metadata on every invocation, and `session_resume` binds `args.sessionId` to transport caller context by default; set `MCP_SESSION_RESUME_AUTH_MODE=permissive` for rollout canaries. Copilot, Claude, and Gemini all share the same compact-cache provenance path.

The memory engine includes a compact code graph and session lifecycle surfaces alongside hybrid retrieval.

The full MCP API reference is in the [MCP Server README](.opencode/skills/system-spec-kit/mcp_server/README.md).

&nbsp;
#### Layered MCP Surface

The MCP tools are organized into a layered architecture. Each layer has a token budget that controls how much context it consumes:

| Layer | Name | Tools | Token Budget | Purpose |
|-------|------|-------|-------------|---------|
| **L1** | Orchestration | 3 | 2,000 | Unified context, resume, and bootstrap entry points |
| **L2** | Core | 4 | 1,500 | Search, quick search, trigger matching, save |
| **L3** | Discovery | 4 | 800 | List, stats, health checks, and session readiness |
| **L4** | Mutation | 4 | 500 | Delete, update, validate, bulk cleanup |
| **L5** | Lifecycle | 4 | 600 | Checkpoints and lifecycle state |
| **L6** | Analysis | 10 | 1,200 | Causal graph, epistemic baselines, evaluations, and dashboards |
| **L7** | Maintenance | 10 | 1,000 | Index scans, async ingest, learning history, and graph/CocoIndex maintenance |
| | **Total** | **47** | **8,400** | |

Lower layers load only when needed. L1 is always available. L2 loads for any search. L3-L7 load based on the specific command being used.

&nbsp;
#### Hybrid Search

Every search checks five core channels at once, with CocoIndex available as a semantic code search bridge:

- **Vector** - Semantic similarity via embeddings. Finds related content when words differ.
- **FTS5** - Full-text search on exact words and phrases.
- **BM25** - Keyword relevance scoring.
- **Causal Graph** - Follows cause-and-effect links between memories.
- **Degree** - Scores by graph connectivity, weighted by edge type.

**Reciprocal Rank Fusion (RRF)** combines results across channels so memories scoring well in multiple channels rise to the top. **Graph-first routing** dispatches structural queries to the Code Graph first, then CocoIndex for semantic code discovery, then the memory pipeline. A **3-tier FTS fallback** activates when graph and semantic channels miss: FTS5 full-text, BM25 keyword scoring, then Grep/Glob filesystem search. The system truncates weak results and ensures every active channel is represented.

&nbsp;
#### Search Pipeline

Every search passes through 4 stages:

- **Candidate generation** - Parallel retrieval from the active channels plus constitutional injection where applicable.
- **Fusion** - RRF-based scoring with post-fusion signals such as co-activation, FSRS decay, interference control, intent weights, and graph/session boosts when enabled.
- **Rerank** - Cross-encoder reranking with chunk reassembly, a minimum Stage 3 gate of 4 candidates, and compatibility-only length-penalty wiring that resolves to a neutral `1.0` multiplier. `getRerankerStatus()` exposes latency plus cache hits, misses, stale hits, and evictions; if the reranker is unavailable, Stage 2 order is preserved with degraded metadata.
- **Filtering** - State/quality filtering, confidence annotation, token-budget enforcement, and final response shaping without mutating post-rerank scores.

&nbsp;
#### Query Intelligence

- **Complexity routing** - Simple (2 channels), moderate (4), complex (all 5)
- **Intent classification** - 7 public types (`add_feature`, `fix_bug`, `refactor`, `security_audit`, `understand`, `find_spec`, `find_decision`) plus an internal continuity profile for resume-oriented retrieval (`semantic 0.52`, `keyword 0.18`, `recency 0.07`, `graph 0.23`; Stage 3 MMR lambda `0.65`)
- **Query decomposition** - Multi-topic queries split into sub-queries, expanded with related terms
- **Context pressure** - Downgrades search mode at 60% and 80% window usage
- **Fallback strategies** - LLM reformulation or HyDE for low-confidence searches

Four response modes: **quick** (top answer only), **focused** (one-topic), **deep** (full evidence trails), **resume** (state summary + next-steps).

&nbsp;
#### Memory Lifecycle

Memories fade using **FSRS** (Free Spaced Repetition Scheduler). Decay speed varies by content type and importance tier - critical decisions never fade; temporary debugging notes fade within days.

- **Cold-start boost** - Fresh memories (under 48h) get temporary scoring lift
- **Interference penalty** - Suppresses near-duplicate clusters
- **Auto-promotion** - Memories earn higher tiers through positive validation
- **Negative feedback** - 30-day decay prevents permanent blacklisting

Four active cognitive states drive normal retrieval weighting: **HOT** >> **WARM** >> **COLD** >> **DORMANT**.

&nbsp;
#### Causal Graph

Six relationship types: `caused`, `enabled`, `supersedes`, `contradicts`, `derived_from`, `supports`

- **Typed traversal** - Prioritizes connection types based on query intent
- **Community detection** - Louvain clustering with neighbor boosting
- **Co-activation spreading** - Fan-effect dampening prevents hub bias
- **Temporal contiguity** - Same-session grouping
- **Graph momentum** - Trending knowledge surfaces higher
- **LLM backfill** - Background discovery of missed causal links

&nbsp;
#### Trust Badges on Search Results

Every search result ships with a small `trustBadges` block that tells you how reliable the hit is at a glance. The badges are display-only — they read existing causal links and don't add new storage:

| Badge | What it tells you |
|-------|-------------------|
| `confidence` | How strong the strongest causal link to this result is |
| `extractionAge` | How long ago the supporting evidence was extracted |
| `lastAccessAge` | How recently anything in the chain was used |
| `orphan` | True when nothing else in the graph points at this result |
| `weightHistoryChanged` | True when the underlying edge weight has been re-tuned |

If the database is unreachable the formatter quietly skips badges instead of failing. Caller-provided badges pass through untouched, and every response profile (`quick`, `research`, `resume`) keeps the badges on the top result and the result list.

&nbsp;
#### Save Intelligence

When you save new knowledge, **Prediction Error gating** compares it against existing memories and picks one of four outcomes:

- **CREATE** - No similar memory exists. Stored as new knowledge.
- **REINFORCE** - Similar exists, new one adds value. Both kept, old one boosted.
- **UPDATE** - Similar exists, new one is better. Old version replaced.
- **SUPERSEDE** - New knowledge contradicts the old. Old one demoted to deprecated.

Additional save-time processing:

- **Semantic sufficiency gating** - Rejects content too thin to be useful
- **Verify-fix-verify** - Auto-fixes quality issues before storing
- **Content normalization** - Strips formatting clutter for cleaner embeddings
- **Auto-entity extraction** - Spots tool/project/concept names for cross-linking
- **SHA-256 deduplication** - Skips unchanged files instantly
- **Correction tracking** - Records how knowledge evolves across versions

&nbsp;
#### Session Awareness

- **Working memory** - Tracks current session findings with attention decay
- **Session deduplication** - Suppresses already-seen results in follow-up queries
- **Context pressure** - Downgrades search mode as the context window fills

#### MEMORY

**Save**
- Updates packet continuity and supporting generated context artifacts via `generate-context.js`
- AI composes structured JSON with session summary, key decisions and findings
- Indexes immediately for future retrieval via `memory_save()` or `memory_index_scan()`

**Search**
- Unified retrieval and analysis entry point with intent-aware routing
- Supports epistemic baselines, causal graph traversal, ablation studies, and dashboards
- Routes by intent: `add_feature`, `fix_bug`, `refactor`, `security_audit`, `understand`, `find_spec`, `find_decision`

**Learn**
- `/memory:learn` constitutional memory manager for always-surface rules
- Constitutional memories carry a 3.0x boost and never decay
- Lifecycle operations: create, list, edit, remove, budget

**Manage**
- Database admin: stats (memory counts, index health), health checks, cleanup (orphaned vectors)
- Checkpoint management: create, list, restore, delete
- Bulk operations and ingestion (start/status/cancel)

&nbsp;
#### CREATE

**Skill**
- Unified skill creation and update workflow
### Memory Engine Configuration

The memory server reads configuration from environment variables:

- **`VOYAGE_API_KEY`** (optional) - Voyage AI embeddings (recommended)
- **`OPENAI_API_KEY`** (optional) - OpenAI embeddings (alternative)
- **`MEMORY_DB_PATH`** (optional) - Override default database path

Default repo-local database path: `.opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite`

> [!TIP]
> If no API key is set, the memory engine auto-detects **HuggingFace Local** embeddings - free, no setup required.


&nbsp;
### Memory Feature Flags

Feature flags control search channels, scoring signals, save-time enforcement, and evaluation behavior. The important retrieval/runtime flags are resolved at call time, so long-lived MCP processes do not depend on frozen import-time snapshots.

- **Search Pipeline** - 5-channel retrieval, fallback routing, reranking, graph-walk rollout, confidence and token-budget policies.
- **Session/Cache** - Working memory, cache invalidation on DB rebind, session deduplication, recovery helpers.
- **Memory/Storage** - Save quality gate, reconsolidation, governed scopes, causal graph maintenance, projection cleanup.
- **Embedding/API** - Startup provider resolution, fail-fast dimension checks, structured fallback metadata for effective vs requested provider.
- **Evaluation/Debug** - Trace mode, eval logging, ablation/reporting guardrails, feedback evaluation, and proposal diagnostics that observe candidates without reordering live results.

For the complete flag reference with per-flag defaults, see [MCP Server README Section 5](.opencode/skills/system-spec-kit/mcp_server/README.md#5-configuration).

&nbsp;
### Database Schema

The runtime centers on a SQLite `memory_index` table with 56 columns plus companion FTS5/vector, lineage, checkpoint, working-memory, and eval tables.

- **Primary store** - `memory_index` holds the searchable memory rows plus governance, quality, chunking, and retrieval metadata.
- **Search companions** - FTS5 and vector tables support lexical and embedding retrieval alongside BM25 rebuild/index data.
- **Graph/lifecycle** - Causal edges, lineage projection, checkpoints, working memory, and access tracking support decision tracing and session continuity.
- **Evaluation** - Separate eval tables persist ablation/reporting metrics, with guards for missing query IDs and synthetic token-usage markers.
- **Paths** - The checked-in configs default to `.opencode/skills/system-spec-kit/mcp_server/database/context-index.sqlite`. If a runtime cannot write inside the repo, override `MEMORY_DB_PATH` (and, when relevant, `SPEC_KIT_DB_DIR`) to a writable location.

&nbsp;
### opencode.json Structure

```json

exec
/bin/zsh -lc "rg --files . | rg '("'^|/)(memory|mcp_server|feature_catalog|commands|scripts|references)(/|.*memory|.*Memory)'"'" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
./.opencode/commands/doctor/scripts/mcp-doctor.sh
./.opencode/commands/doctor/scripts/mcp-doctor-lib.sh
./.opencode/commands/memory/README.txt
./.opencode/commands/memory/save.md
./.opencode/commands/memory/manage.md
./.opencode/commands/memory/learn.md
./.opencode/commands/memory/search.md
./.opencode/skills/mcp-coco-index/scripts/update.sh
./.opencode/skills/mcp-coco-index/scripts/doctor.sh
./.opencode/skills/mcp-coco-index/scripts/install.sh
./.opencode/skills/mcp-coco-index/scripts/ensure_ready.sh
./.opencode/skills/mcp-coco-index/scripts/common.sh
./.opencode/skills/cli-gemini/references/integration_patterns.md
./.opencode/skills/cli-gemini/references/gemini_tools.md
./.opencode/skills/cli-gemini/references/agent_delegation.md
./.opencode/skills/cli-gemini/references/cli_reference.md
./.opencode/skills/mcp-coco-index/references/search_patterns.md
./.opencode/skills/mcp-coco-index/references/settings_reference.md
./.opencode/skills/mcp-coco-index/references/tool_reference.md
./.opencode/skills/mcp-coco-index/references/cross_cli_playbook.md
./.opencode/skills/mcp-coco-index/references/downstream_adoption_checklist.md
./.opencode/skills/mcp-clickup/scripts/install.sh
./.opencode/skills/cli-copilot/references/copilot_tools.md
./.opencode/skills/cli-copilot/references/integration_patterns.md
./.opencode/skills/cli-copilot/references/agent_delegation.md
./.opencode/skills/cli-copilot/references/cli_reference.md
./.opencode/skills/sk-deep-review/scripts/reduce-state.cjs
./.opencode/skills/sk-deep-review/scripts/runtime-capabilities.cjs
./.opencode/skills/sk-code-review/references/removal_plan.md
./.opencode/skills/sk-code-review/references/review_ux_single_pass.md
./.opencode/skills/sk-code-review/references/quick_reference.md
./.opencode/skills/sk-code-review/references/code_quality_checklist.md
./.opencode/skills/sk-code-review/references/security_checklist.md
./.opencode/skills/sk-code-review/references/test_quality_checklist.md
./.opencode/skills/sk-code-review/references/solid_checklist.md
./.opencode/skills/sk-code-review/references/review_core.md
./.opencode/skills/sk-git/references/commit_workflows.md
./.opencode/skills/sk-git/references/quick_reference.md
./.opencode/skills/sk-git/references/finish_workflows.md
./.opencode/skills/sk-git/references/worktree_workflows.md
./.opencode/skills/sk-git/references/github_mcp_integration.md
./.opencode/skills/sk-git/references/shared_patterns.md
./.opencode/skills/mcp-clickup/references/tool_reference.md
./.opencode/skills/mcp-clickup/references/cli_reference.md
./.opencode/skills/mcp-clickup/references/workflows.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/deep-review-config.json
./.opencode/skills/mcp-code-mode/mcp_server/index.ts
./.opencode/skills/mcp-code-mode/mcp_server/tsconfig.json
./.opencode/skills/mcp-code-mode/mcp_server/package-lock.json
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/iterations/iteration-001.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/iterations/iteration-002.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/iterations/iteration-003.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/deep-review-state.jsonl
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/deep-review-dashboard.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/deep-review-findings-registry.json
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/review/deep-review-strategy.md
./.opencode/skills/sk-deep-review/scripts/tests/fixtures/blocked-stop-session/README.md
./.opencode/skills/mcp-code-mode/scripts/validate_config.py
./.opencode/skills/mcp-code-mode/scripts/update.sh
./.opencode/skills/mcp-code-mode/scripts/install.sh
./.opencode/skills/system-spec-kit/mcp_server/context-server.ts
./.opencode/skills/system-spec-kit/mcp_server/ENV_REFERENCE.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/handlers/index.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/handlers/advisor-status.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/handlers/advisor-validate.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/handlers/advisor-recommend.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/prompt-policy.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/freshness.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/normalize-adapter-output.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/metrics.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/skill-advisor-brief.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/generation.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/render.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/freshness/generation.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/freshness/trust-state.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/freshness/rebuild-from-source.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/freshness/cache-invalidation.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/subprocess.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/source-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/daemon/lifecycle.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/daemon/watcher.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/daemon/lease.ts
./.opencode/skills/sk-deep-review/feature_catalog/04--severity-system/03-claim-adjudication.md
./.opencode/skills/sk-deep-review/feature_catalog/04--severity-system/05-quality-gates.md
./.opencode/skills/sk-deep-review/feature_catalog/04--severity-system/04-verdicts.md
./.opencode/skills/sk-deep-review/feature_catalog/04--severity-system/02-adversarial-self-check.md
./.opencode/skills/sk-deep-review/feature_catalog/04--severity-system/01-severity-classification.md
./.opencode/skills/mcp-code-mode/references/configuration.md
./.opencode/skills/mcp-code-mode/references/naming_convention.md
./.opencode/skills/mcp-code-mode/references/tool_catalog.md
./.opencode/skills/mcp-code-mode/references/architecture.md
./.opencode/skills/mcp-code-mode/references/workflows.md
./.opencode/skills/sk-deep-review/feature_catalog/02--state-management/04-findings-registry.md
./.opencode/skills/sk-deep-review/feature_catalog/02--state-management/05-dashboard.md
./.opencode/skills/sk-deep-review/feature_catalog/02--state-management/03-config-management.md
./.opencode/skills/sk-deep-review/feature_catalog/02--state-management/01-jsonl-state-log.md
./.opencode/skills/sk-deep-review/feature_catalog/02--state-management/02-strategy-tracking.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/ambiguity.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/weights-config.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/ablation.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/types.ts
./.opencode/skills/cli-opencode/references/integration_patterns.md
./.opencode/skills/cli-opencode/references/agent_delegation.md
./.opencode/skills/cli-opencode/references/opencode_tools.md
./.opencode/skills/cli-opencode/references/cli_reference.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/05-memory-save.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/06-resource-map-emission.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/01-initialization.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/04-synthesis.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/02-iteration-dispatch.md
./.opencode/skills/sk-deep-review/feature_catalog/01--loop-lifecycle/03-convergence-check.md
./.opencode/skills/sk-deep-review/feature_catalog/feature_catalog.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/lanes/explicit.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/lanes/graph-causal.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/lanes/lexical.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/lanes/semantic-shadow.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/lanes/derived.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/scoring-constants.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/attribution.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/fusion.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/text.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/scorer/projection.ts
./.opencode/skills/sk-deep-review/feature_catalog/03--review-dimensions/04-maintainability.md
./.opencode/skills/sk-deep-review/feature_catalog/03--review-dimensions/02-security.md
./.opencode/skills/sk-deep-review/feature_catalog/03--review-dimensions/01-correctness.md
./.opencode/skills/sk-deep-review/feature_catalog/03--review-dimensions/03-traceability.md
./.opencode/skills/system-spec-kit/mcp_server/utils/db-helpers.ts
./.opencode/skills/system-spec-kit/mcp_server/utils/tool-input-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/utils/json-helpers.ts
./.opencode/skills/system-spec-kit/mcp_server/utils/index.ts
./.opencode/skills/system-spec-kit/mcp_server/utils/validators.ts
./.opencode/skills/system-spec-kit/mcp_server/utils/README.md
./.opencode/skills/system-spec-kit/mcp_server/utils/batch-processor.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/utils/error-format.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/utils/json-guard.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/utils/workspace-root.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/utils/skill-markdown.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/error-diagnostics.ts
./.opencode/skills/sk-deep-review/references/quick_reference.md
./.opencode/skills/sk-deep-review/references/convergence.md
./.opencode/skills/sk-deep-review/references/state_format.md
./.opencode/skills/sk-deep-review/references/loop_protocol.md
./.opencode/skills/system-spec-kit/mcp_server/formatters/index.ts
./.opencode/skills/system-spec-kit/mcp_server/formatters/README.md
./.opencode/skills/system-spec-kit/mcp_server/formatters/search-results.ts
./.opencode/skills/system-spec-kit/mcp_server/formatters/token-metrics.ts
./.opencode/skills/system-spec-kit/mcp_server/cli.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/lifecycle/supersession.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/lifecycle/schema-migration.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/lifecycle/age-haircut.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/lifecycle/rollback.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/lifecycle/archive-handling.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/affordance-normalizer.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/corpus/df-idf.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/sync.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/sanitizer.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/trust-lanes.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/anti-stuffing.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/provenance.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/derived/extract.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/prompt-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/compat/daemon-probe.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/lib/compat/redirect-metadata.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill_advisor_runtime.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill-graph.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/fixtures/skill_advisor_regression_cases.jsonl
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill_advisor_regression.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/init-skill-graph.sh
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/check-prompt-quality-card-sync.sh
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/routing-accuracy/labeled-prompts.jsonl
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/routing-accuracy/score-routing-corpus.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/routing-accuracy/gate3-corpus-runner.mjs
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill_advisor.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill_advisor_bench.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/scripts/skill_graph_compiler.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/INSTALL_GUIDE.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/02--cli-hooks-and-plugin/005-opencode-plugin-bridge.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/02--cli-hooks-and-plugin/002-copilot-user-prompt-submit.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/02--cli-hooks-and-plugin/001-claude-user-prompt-submit.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/02--cli-hooks-and-plugin/003-gemini-user-prompt-submit.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/02--cli-hooks-and-plugin/004-codex-hook-and-wrapper.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/manual_testing_playbook.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/01--native-mcp-tools/002-native-status-transitions.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/01--native-mcp-tools/004-ambiguous-brief-rendering.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/01--native-mcp-tools/001-native-recommend-happy-path.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/01--native-mcp-tools/005-lifecycle-redirect-metadata.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/01--native-mcp-tools/003-native-validate-slices.md
./.opencode/skills/cli-codex/references/codex_tools.md
./.opencode/skills/cli-codex/references/integration_patterns.md
./.opencode/skills/cli-codex/references/agent_delegation.md
./.opencode/skills/cli-codex/references/hook_contract.md
./.opencode/skills/cli-codex/references/cli_reference.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/08--scorer-fusion/005-ablation.md
./.opencode/specs/skilled-agent-orchestration/z_archive/016-sk-code-review-creation/context/references/security-checklist.md
./.opencode/specs/skilled-agent-orchestration/z_archive/016-sk-code-review-creation/context/references/removal-plan.md
./.opencode/specs/skilled-agent-orchestration/z_archive/016-sk-code-review-creation/context/references/solid-checklist.md
./.opencode/specs/skilled-agent-orchestration/z_archive/016-sk-code-review-creation/context/references/code-quality-checklist.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/08--scorer-fusion/001-five-lane-fusion.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/08--scorer-fusion/002-projection.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/08--scorer-fusion/003-ambiguity.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/08--scorer-fusion/004-lane-attribution.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/03--compat-and-disable/001-python-shim-stdin.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/03--compat-and-disable/004-daemon-absent-fallback.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/03--compat-and-disable/002-force-local-force-native.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/03--compat-and-disable/003-global-disable-flag.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/SCENARIO_RUN_2026-04-21.md
./.opencode/skills/sk-improve-prompt/references/patterns_evaluation.md
./.opencode/skills/sk-improve-prompt/references/depth_framework.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/06--auto-indexing/001-derived-extraction.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/06--auto-indexing/005-anti-stuffing.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/06--auto-indexing/002-sanitizer-boundaries.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/06--auto-indexing/003-provenance-and-trust-lanes.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/06--auto-indexing/004-corpus-df-idf.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/10--python-compat/002-force-native-force-local.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/10--python-compat/003-threshold-flag.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/10--python-compat/001-stdin-mode.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/10--python-compat/004-regression-suite.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/10--python-compat/005-bench-runner.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/swiftui_patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/persistence_patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/mvvm_architecture.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/async_patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/swift_standards.md
./.opencode/skills/sk-code-full-stack/references/mobile/swift/testing_strategy.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/navigation-patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/mobile_testing.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/performance-optimization.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/react-hooks-patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/expo-patterns.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/react-native-standards.md
./.opencode/skills/sk-code-full-stack/references/mobile/react-native/native-modules.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/05--auto-update-daemon/001-watcher-narrow-scope.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/05--auto-update-daemon/002-lease-single-writer.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/05--auto-update-daemon/004-generation-publication.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/05--auto-update-daemon/005-rebuild-from-source.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/05--auto-update-daemon/003-daemon-lifecycle-shutdown.md
./.opencode/skills/system-spec-kit/mcp_server/tests/content-router-cache.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/smart-router-measurement.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/spec-folder-hierarchy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reconsolidation-bridge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-results-format.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/intent-routing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cold-start.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-search-fn.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-search.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/job-queue-state-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/entity-extractor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-health.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-normalization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-benchmark-session-resume.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stage2-fusion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/k-value-optimization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/ground-truth-feedback.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retry-manager.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pressure-monitor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mcp-error-format.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-path-security.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-triggers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/startup-brief.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retry-budget-telemetry.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mcp-tool-dispatch.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/eval-metrics.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/07--lifecycle-routing/004-schema-migration.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/07--lifecycle-routing/002-supersession.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/07--lifecycle-routing/003-archive-handling.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/07--lifecycle-routing/001-age-haircut.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/07--lifecycle-routing/005-rollback-lifecycle.md
./.opencode/skills/sk-code-full-stack/references/backend/go/di_configuration.md
./.opencode/skills/sk-code-full-stack/references/backend/go/deployment.md
./.opencode/skills/sk-code-full-stack/references/backend/go/validator_registration.md
./.opencode/skills/sk-code-full-stack/references/backend/go/database_patterns.md
./.opencode/skills/sk-code-full-stack/references/backend/go/go_standards.md
./.opencode/skills/sk-code-full-stack/references/backend/go/domain_layers.md
./.opencode/skills/sk-code-full-stack/references/backend/go/api_design.md
./.opencode/skills/sk-code-full-stack/references/backend/go/database_patterns_gorm_type_mappings.md
./.opencode/skills/sk-code-full-stack/references/backend/go/infrastructure_events.md
./.opencode/skills/sk-code-full-stack/references/backend/go/models_vs_entities_and_adapters.md
./.opencode/skills/sk-code-full-stack/references/backend/go/microservice_bootstrap_architecture.md
./.opencode/skills/sk-code-full-stack/references/backend/go/testing_strategy.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/04--operator-h5/001-degraded-daemon.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/04--operator-h5/002-quarantined-daemon.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/manual_testing_playbook/04--operator-h5/003-unavailable-daemon.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/SET-UP_GUIDE.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/validation/fixtures/evidence-nested-fence.md
./.opencode/skills/system-spec-kit/mcp_server/tests/validation/fixtures/evidence-indented-fence.md
./.opencode/skills/system-spec-kit/mcp_server/tests/validation/fixtures/evidence-mismatched-fence.md
./.opencode/skills/system-spec-kit/mcp_server/tests/validation/evidence-marker-audit.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hooks-ux-feedback.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/path-boundary.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-types.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cross-encoder-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-archival.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoints-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/causal-fixes.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/eval-logger.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/batch-learning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-crud-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-aware-stop.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-lineage-backfill.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/constitutional-filtering.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-dedup-order.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-delete-cascade.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-resume-auth.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/p0-c-graph-metadata-laundering.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/trigger-matcher.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/continue-session.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/api-key-validation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/extraction-adapter.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/result-confidence-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/run-enrichment-step.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-fallback-tiered.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/ensure-ready.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feature-eval-query-intelligence.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/publication-gate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-analytics-db.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-session-dedup.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/db-state.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoint-restore-invariant-enforcement.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-tools.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/quality-loop.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gemini-user-prompt-submit-hook.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-state-baseline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/context-metrics.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-cleanup.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reconsolidation-cleanup-ordering.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-composite-scoring-types.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoint-completeness.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/dynamic-token-budget.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retry-manager-health.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feature-eval-graph-signals.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-index-cooldown.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/k-value-judged-sweep.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-signals.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-roadmap-flags.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-causal-graph.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-ux-hooks.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-pipeline-weighting.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/trace-propagation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/scoring-observability.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-context-session-state.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-trigger-perf-benchmark.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/content-router.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/evidence-gap-detector.vitest.ts
./.opencode/skills/sk-code-full-stack/references/backend/nodejs/async_patterns.md
./.opencode/skills/sk-code-full-stack/references/backend/nodejs/nodejs_standards.md
./.opencode/skills/sk-code-full-stack/references/backend/nodejs/express_patterns.md
./.opencode/skills/sk-code-full-stack/references/backend/nodejs/testing_strategy.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/schemas/skill-derived-v2.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/schemas/advisor-tool-schemas.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/schemas/daemon-status.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/schemas/generation-metadata.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/cli-matrix.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/executor-audit.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/prompt-pack.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/dispatch-failure.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/post-dispatch-validate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop/executor-config.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/atomic-index-memory.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/shadow-comparison.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-quality-filter.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-memory-tiers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-pipeline-enforcement.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stage2b-enrichment.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-context.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/vector-index-store.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-lineage-state.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/vector-index-schema-migration-refinements.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-manager-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-summaries.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-flow-tracker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mutation-hooks.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mutation-ledger.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/shadow-scoring-holdout.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/bm25-baseline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/temporal-contiguity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/consumption-logger.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feedback-denylist.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/fsrs-hybrid-decay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/skill-graph-schema.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-4-stage-search-pipeline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-metadata-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cross-feature-integration-eval.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-trigger-pipeline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/resume-ladder.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cognitive-gaps.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/code-graph-db.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-lifecycle.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hooks-shared-provenance.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/error-sanitization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mcp-response-envelope.vitest.ts
./.opencode/skills/sk-doc/assets/documentation/feature_catalog/feature_catalog_template.md
./.opencode/skills/sk-doc/assets/documentation/feature_catalog/feature_catalog_snippet_template.md
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/codex-runtime-capability.json
./.opencode/skills/sk-code-full-stack/references/frontend/react/react_nextjs_standards.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/forms_validation.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/api_patterns.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/state_management.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/data_fetching.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/component_architecture.md
./.opencode/skills/sk-code-full-stack/references/frontend/react/testing_strategy.md
./.opencode/skills/sk-doc/references/global/hvr_rules.md
./.opencode/skills/sk-doc/references/global/quick_reference.md
./.opencode/skills/sk-doc/references/global/optimization.md
./.opencode/skills/sk-doc/references/global/core_standards.md
./.opencode/skills/sk-doc/references/global/validation.md
./.opencode/skills/sk-doc/references/global/workflows.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/03--lifecycle-routing/05-rollback.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/03--lifecycle-routing/03-archive-handling.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/03--lifecycle-routing/02-supersession.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/03--lifecycle-routing/04-schema-migration.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/03--lifecycle-routing/01-age-haircut.md
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/hooks/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/hooks/session-stop-replay.jsonl
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/contradiction-pairs.json
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/sample-memories.json
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/runtime-fixtures.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/fixtures/similarity-test-cases.json
./.opencode/skills/sk-doc/references/specific/readme_creation.md
./.opencode/skills/sk-doc/references/specific/manual_testing_playbook_creation.md
./.opencode/skills/sk-doc/references/specific/agent_creation.md
./.opencode/skills/sk-doc/references/specific/feature_catalog_creation.md
./.opencode/skills/sk-doc/references/specific/install_guide_creation.md
./.opencode/skills/sk-doc/references/specific/skill_creation.md
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-payload-validator.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-causal-graph.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-calibration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/dual-scope-hooks.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/adaptive-fallback.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoint-limit.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/redaction-gate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/score-resolution-consistency.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/coverage-graph-status.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/save-quality-gate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/opencode-plugin.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/schema-migration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/db-state-graph-reinit.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hybrid-search-flags.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/local-reranker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-bootstrap-gate-d.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/p0-a-cross-runtime-tempdir-poisoning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/learned-combiner.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/calibrated-overlap-bonus.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/envelope.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-folder-scoring-types.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/errors-comprehensive.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/encoding-intent.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-session-start.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/chunking-orchestrator-swap.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-context.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/vector-index-schema-compatibility.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/db-dimension-integrity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-resume-perf.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/edge-cases.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-search-pipeline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/causal-edges.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/folder-relevance.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/index-scope.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-normalization-roundtrip.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/migration-checkpoint-scripts.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-state.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/post-insert-deferred.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/spec-folder-canonicalization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-stats-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/review-fixes.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/prediction-error-gate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/entity-linker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/layer-definitions.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoints-storage.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cross-encoder.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-retry-stats.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-eval-reporting.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/coverage-graph-signals.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/bm25-index.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-checkpoints-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-transaction-metrics-types.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/access-tracker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/intent-weighting.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mcp-input-validation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/token-budget.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/vector-index-store-remediation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/protect-learning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-index-scope.vitest.ts
./.opencode/skills/sk-doc/scripts/validate_flowchart.sh
./.opencode/skills/sk-doc/scripts/extract_structure.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/06--mcp-surface/03-advisor-validate.md
./.opencode/skills/system-spec-kit/mcp_server/tests/description/repair-specimens.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/06--mcp-surface/01-advisor-recommend.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/06--mcp-surface/04-compat-entrypoint.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/06--mcp-surface/02-advisor-status.md
./.opencode/skills/sk-doc/scripts/tests/missing_sections.md
./.opencode/skills/sk-doc/scripts/tests/valid_skill.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/05-ablation.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/04-attribution.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/03-ambiguity.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/02-projection.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/06-weights-config.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/04--scorer-fusion/01-five-lane-fusion.md
./.opencode/skills/system-spec-kit/mcp_server/tests/description/fixtures/017-001-infrastructure-primitives.description.json
./.opencode/skills/system-spec-kit/mcp_server/tests/description/fixtures/017-review-findings-remediation.description.json
./.opencode/skills/system-spec-kit/mcp_server/tests/description/fixtures/017-002-cluster-consumers.description.json
./.opencode/skills/system-spec-kit/mcp_server/tests/description/repair.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/description/description-merge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/exclusion-ssot-unification.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/folder-discovery-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-fsrs-cognitive-decay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retrieval-telemetry.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/shared-payload-advisor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deep-loop-graph-query.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pipeline-architecture-remediation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feedback-ledger.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feature-eval-scoring-calibration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/codex-pre-tool-use.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/incremental-index.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-intent-routing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reranker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/eval-db.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stage3-rerank-regression.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/progressive-disclosure.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/token-budget-enforcement.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/rrf-fusion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/context-server.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/access-tracker-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pipeline-v2.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cross-runtime-fallback.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/quality-gate-exception.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/signal-vocab.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/orchestrator-error-cascade.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/sqlite-fts.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/corrections.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-embedding-semantic-search.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/vector-index-impl.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-scoring-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/smart-router-telemetry.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-intent-classifier.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/lazy-loading.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/tiered-injection-turnNumber.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-context-eval-channels.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-stop-token-tracking.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/transaction-manager-recovery.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-router-channel-interaction.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/hooks-reexport-parity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pe-orchestration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/compact-merger.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/modularization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/structural-trust-axis.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/transcript-planner-export.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/dead-code-regression.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-weighting.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-eval-channels.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/decay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/api-validation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pipeline-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/runtime-routing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/transaction-manager.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/learned-feedback.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-token-resume.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-circuit-breaker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/edge-density.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/create-record-identity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mmr-reranker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-benchmark-trigger-fast-path.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/copilot-user-prompt-submit-hook.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/working-memory.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/shadow-scoring.vitest.ts
./.opencode/skills/sk-doc/scripts/tests/command/auto_detect_command.md
./.opencode/skills/sk-doc/scripts/tests/valid_install_guide.md
./.opencode/skills/sk-doc/scripts/tests/test_flowchart_validator.sh
./.opencode/skills/sk-doc/scripts/tests/test_validator.py
./.opencode/skills/sk-doc/scripts/tests/valid_readme.md
./.opencode/skills/sk-doc/scripts/tests/test_package_skill_regressions.py
./.opencode/skills/sk-doc/scripts/tests/missing_toc.md
./.opencode/skills/sk-doc/scripts/tests/valid_spec.md
./.opencode/skills/sk-doc/scripts/tests/test_extract_structure_regressions.py
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/05-trust-state.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/03-lifecycle.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/01-watcher.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/06-rebuild-from-source.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/02-lease.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/07-cache-invalidation.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/01--daemon-and-freshness/04-generation.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/feature_catalog.md
./.opencode/skills/sk-deep-research/scripts/reduce-state.cjs
./.opencode/skills/sk-deep-research/scripts/runtime-capabilities.cjs
./.opencode/skills/system-spec-kit/mcp_server/tests/_support/vitest-setup.ts
./.opencode/skills/sk-doc/scripts/tests/specs/auto_detect_spec.md
./.opencode/skills/sk-doc/scripts/tests/single_dash_anchors.md
./.opencode/skills/sk-doc/scripts/tests/missing_emojis.md
./.opencode/skills/sk-doc/scripts/tests/valid_command.md
./.opencode/skills/sk-doc/scripts/quick_validate.py
./.opencode/skills/sk-doc/scripts/package_skill.py
./.opencode/skills/sk-doc/scripts/validate_document.py
./.opencode/skills/sk-doc/scripts/init_skill.py
./.opencode/skills/sk-doc/scripts/audit_readmes.py
./.opencode/skills/system-spec-kit/mcp_server/tests/anchor-merge-operation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/save-index-exports.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/p0-b-reconsolidation-composite.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/spec-kit-skill-advisor-plugin.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/governance-e2e.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/07--hooks-and-plugin/05-opencode-plugin-bridge.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/07--hooks-and-plugin/01-claude-hook.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/07--hooks-and-plugin/03-gemini-hook.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/07--hooks-and-plugin/04-codex-hook.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/07--hooks-and-plugin/02-copilot-hook.md
./.opencode/skills/system-spec-kit/mcp_server/tests/_support/hooks/replay-harness.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/_support/hooks/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/_support/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-138-pipeline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-ingest.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-expander.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/tree-sitter-parser.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/temporal-edges.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-quality-gates.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-crud-update-constitutional-guard.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reporting-dashboard.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/trigger-extractor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/budget-allocator.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-learning-history.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/community-detection.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/chunk-thinning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/codex-prompt-wrapper.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/job-queue.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/causal-edges-unit.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/channel-enforcement.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/anchor-prefix-matching.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/regression-suite.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/trigger-config-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/checkpoint-working-memory.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-health-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/feature-flag-reference-docs.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-tier-classifier-types.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-session-learning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/structure-aware-chunker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/slug-utils-boundary.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/concept-extraction.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/tool-cache.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/api-public-surfaces.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/deferred-features-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-roadmap-finalization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/folder-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-list-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/confidence-tracker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-precompact.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/transaction-manager-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hooks-mutation-wiring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-causal-graph.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/remediation-008-docs.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/safety.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/ablation-framework.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/recovery-hints.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-resume.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hybrid-search-context-headers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-constitutional-memory.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/bm25-security.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-trigger-fast-match.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/codex-session-start-hook.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retrieval-trace.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/adaptive-ranking.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/03-provenance-and-trust-lanes.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/06-df-idf-corpus.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/05-anti-stuffing.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/02-sanitizer.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/04-sync.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/02--auto-indexing/01-derived-extraction.md
./.opencode/skills/system-spec-kit/mcp_server/startup-checks.ts
./.opencode/skills/system-spec-kit/mcp_server/LICENSE
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/README.md
./.opencode/skills/sk-code-web/scripts/minify-webflow.mjs
./.opencode/skills/sk-code-web/scripts/verify-minification.mjs
./.opencode/skills/sk-code-web/scripts/test-minified-runtime.mjs
./.opencode/skills/system-spec-kit/mcp_server/tests/graph/graph-metadata-lineage.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/adaptive-fusion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/structural-contract.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-first-routing-nudge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/phase2-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/preflight.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/rrf-degree-channel.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/file-watcher.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/flag-ceiling.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-learning.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/smart-router-analyze.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/degree-computation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stdio-logging-safety.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/m8-trust-state-vocabulary.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-boost.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/community-search.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/copilot-compact-cycle.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/learning-stats-filters.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-crud.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/folder-scoring-overflow.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-lifecycle.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/channel-representation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/spec-folder-prefilter.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-flags.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/context-server-error-envelope.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-expansion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/config-cognitive.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mpab-quality-gate-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/thin-continuity-record.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-classifier.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-benchmark-memory-search.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/shadow-evaluation-runtime.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/artifact-routing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/d5-confidence-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-decomposer.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retry-budget.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/follow-up-api.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-router.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/p0-d-toctou-cleanup-regression.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/working-memory-event-decay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/folder-discovery.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-decomposition.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/n3lite-consolidation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/caller-context.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embedding-cache.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/concept-routing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-learning-regressions.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/claude-user-prompt-submit-hook.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/retrieval-directives.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/08--python-compat/02-regression-suite.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/08--python-compat/01-cli-shim.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/feature_catalog/08--python-compat/03-bench-runner.md
./.opencode/skills/system-spec-kit/mcp_server/core/db-state.ts
./.opencode/skills/system-spec-kit/mcp_server/core/config.ts
./.opencode/skills/system-spec-kit/mcp_server/core/index.ts
./.opencode/skills/system-spec-kit/mcp_server/core/README.md
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/deep-research-strategy.md
./.opencode/skills/system-spec-kit/mcp_server/tests/security/adversarial-unicode.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/response-profile-formatters.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/intent-aware-traversal.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/create-record-lineage-regressions.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/contradiction-detection.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/sparse-first-graph.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/skill-graph-handlers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-planner-first.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/walker-dos-caps.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/full-spec-doc-indexing.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-governance.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/content-hash-dedup.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/batch-processor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/importance-tiers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/ground-truth.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/five-factor-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stage1-expansion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/startup-checks.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cli.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/exhaustiveness.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-ingest-edge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/attention-decay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/context-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/index.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/skill-graph-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/types.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/README.md
./.opencode/skills/system-spec-kit/mcp_server/tools/causal-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/lifecycle-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/tools/checkpoint-tools.ts
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/iterations/iteration-001.md
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/iterations/iteration-002.md
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/iterations/iteration-003.md
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/deep-research-config.json
./.opencode/skills/sk-deep-research/scripts/tests/fixtures/interrupted-session/research/deep-research-state.jsonl
./.opencode/skills/system-spec-kit/mcp_server/tests/adversarial/compact-prime-identity-race.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/adversarial/README.md
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-flags.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/scoring-gaps.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/embeddings.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/composite-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-state.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/opencode-transport.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/affordance-normalizer.test.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/skill-graph-db.vitest.ts
./.opencode/skills/sk-code-web/references/standards/quick_reference.md
./.opencode/skills/sk-code-web/references/standards/code_style_guide.md
./.opencode/skills/sk-code-web/references/standards/code_quality_standards.md
./.opencode/skills/sk-code-web/references/standards/shared_patterns.md
./.opencode/skills/sk-code-web/references/standards/code_style_enforcement.md
./.opencode/skills/sk-deep-research/feature_catalog/04--research-output/02-negative-knowledge.md
./.opencode/skills/sk-deep-research/feature_catalog/04--research-output/01-progressive-synthesis.md
./.opencode/skills/system-spec-kit/mcp_server/tests/archive/coverage-graph-db.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/archive/coverage-graph-tools.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/interfaces.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/workflow-memory-tracking.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-manager.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/content-normalizer.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/readiness-contract.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/co-activation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-metadata-schema.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/decay-delete-race.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/incremental-index-v2.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-helpers.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/codex-hook-policy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/short-critical-quality-gate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/intent-classifier.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-save-pipeline.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/causal-boost.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/handlers/advisor-recommend.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/handlers/advisor-validate.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/handlers/advisor-status.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/daemon-freshness-foundation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/lifecycle-derived-metadata.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/routing-fixtures.affordance.test.ts
./.opencode/skills/sk-deep-research/references/quick_reference.md
./.opencode/skills/sk-deep-research/references/convergence.md
./.opencode/skills/sk-deep-research/references/state_format.md
./.opencode/skills/sk-deep-research/references/spec_check_protocol.md
./.opencode/skills/sk-deep-research/references/loop_protocol.md
./.opencode/skills/sk-deep-research/references/capability_matrix.md
./.opencode/skills/sk-code-web/references/performance/interaction_gated_loading.md
./.opencode/skills/sk-code-web/references/performance/webflow_constraints.md
./.opencode/skills/sk-code-web/references/performance/resource_loading.md
./.opencode/skills/sk-code-web/references/performance/cwv_remediation.md
./.opencode/skills/sk-code-web/references/performance/third_party.md
./.opencode/skills/sk-deep-research/feature_catalog/02--state-management/03-config-management.md
./.opencode/skills/sk-deep-research/feature_catalog/02--state-management/01-jsonl-state-log.md
./.opencode/skills/sk-deep-research/feature_catalog/02--state-management/02-strategy-tracking.md
./.opencode/skills/system-spec-kit/mcp_server/tests/memory/trust-badges.test.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/runtime-detection.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/search-limits-scoring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/empty-result-recovery.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/copilot-hook-wiring.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-reconsolidation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/codex-user-prompt-submit-hook.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/promotion-positive-validation-semantics.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/token-snapshot-store.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/validation-metadata.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/progressive-validation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-manager-stress.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/rollout-policy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/trigger-setAttentionScore.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-checkpoints.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-fallback-fingerprint.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/score-normalization.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/provenance-envelope.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/regression-010-index-large-files.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/crash-recovery.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/scope-governance-normalizer-parity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/tier-classifier.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-fsrs-formula.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-ablation-drift.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/fsrs-scheduler.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-integration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/eval-the-eval.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/usage-weighted-ranking.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hybrid-decay-policy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cleanup-script-audit-emission.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/session-bootstrap.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hybrid-search.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/graph-regression-flag-off.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-index.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/typed-traversal.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/migration-lineage-identity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/lifecycle-shutdown.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-ux-regressions.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/spec-doc-structure.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/d5-recovery-payload.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-error-recovery.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/cross-encoder-circuit-breaker.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/opencode-plugins-folder-purity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-context.resume-gate-d.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/chunking-orchestrator.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/tool-input-schema.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-session-stop.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/confidence-truncation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-session-dedup.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/assistive-reconsolidation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reranker-eval-comparison.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/anchor-metadata.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/pe-gating.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/hook-session-stop-replay.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/symlink-realpath-hardening.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/adaptive-ranking-e2e.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/database/README.md
./.opencode/skills/sk-code-web/references/implementation/webflow_patterns.md
./.opencode/skills/sk-code-web/references/implementation/performance_patterns.md
./.opencode/skills/sk-code-web/references/implementation/third_party_integrations.md
./.opencode/skills/sk-code-web/references/implementation/async_patterns.md
./.opencode/skills/sk-code-web/references/implementation/implementation_workflows.md
./.opencode/skills/sk-code-web/references/implementation/observer_patterns.md
./.opencode/skills/sk-code-web/references/implementation/security_patterns.md
./.opencode/skills/sk-code-web/references/implementation/animation_workflows.md
./.opencode/skills/sk-code-web/references/implementation/swiper_patterns.md
./.opencode/skills/sk-code-web/references/implementation/css_patterns.md
./.opencode/skills/sk-code-web/references/implementation/form_upload_workflows.md
./.opencode/skills/sk-code-web/references/implementation/focus_management.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/fixtures/lifecycle/index.ts
./.opencode/skills/sk-deep-research/feature_catalog/03--convergence/03-quality-guards.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/lane-attribution.test.ts
./.opencode/skills/sk-deep-research/feature_catalog/03--convergence/01-three-signal-model.md
./.opencode/skills/sk-deep-research/feature_catalog/03--convergence/04-graph-convergence.md
./.opencode/skills/sk-deep-research/feature_catalog/03--convergence/02-stuck-detection.md
./.opencode/skills/sk-code-web/references/deployment/cdn_deployment.md
./.opencode/skills/sk-code-web/references/deployment/minification_guide.md
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/livePassingSkill.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/promptPoisoningAdversarial.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/ambiguousTopTwo.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/unicodeInstructionalSkillLabel.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/skipPolicyEmptyPrompt.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/noPassingSkill.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/skipPolicyCommandOnly.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/staleHighConfidenceSkill.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/failOpenTimeout.json
./.opencode/skills/system-spec-kit/mcp_server/tests/advisor-fixtures/skippedShortCasual.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/hooks/settings-driven-invocation-parity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/manual-testing-playbook.vitest.ts
./.opencode/skills/system-spec-kit/shared/mcp_server/database/README.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/05-memory-save.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/06-resource-map-emission.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/01-initialization.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/04-synthesis.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/02-iteration-dispatch.md
./.opencode/skills/sk-deep-research/feature_catalog/01--loop-lifecycle/03-convergence-check.md
./.opencode/skills/sk-deep-research/feature_catalog/feature_catalog.md
./.opencode/skills/system-spec-kit/mcp_server/tests/continuity/timestamp-normalize.vitest.ts
./.opencode/skills/sk-code-web/references/verification/performance_checklist.md
./.opencode/skills/sk-code-web/references/verification/verification_workflows.md
./.opencode/skills/system-spec-kit/mcp_server/tests/history.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/mpab-aggregation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/interference.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/unit-rrf-fusion.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/stage2b-enrichment-extended.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/reconsolidation.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/integration-checkpoint-lifecycle.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/tests/query-surrogates.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/__shared__/affordance-injection-fixtures.json
./.opencode/skills/sk-code-opencode/scripts/verify_alignment_drift.py
./.opencode/skills/sk-code-opencode/scripts/test_verify_alignment_drift.py
./.opencode/skills/sk-code-web/references/debugging/debugging_workflows.md
./.opencode/skills/sk-code-web/references/debugging/error_recovery.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/scorer/native-scorer.vitest.ts
./.opencode/skills/sk-code-web/references/research/multi_agent_patterns.md
./.opencode/skills/sk-code-opencode/references/javascript/quick_reference.md
./.opencode/skills/sk-code-opencode/references/javascript/quality_standards.md
./.opencode/skills/sk-code-opencode/references/javascript/style_guide.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/parity/python-ts-parity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/query.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/index.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/README.md
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/ccc-reindex.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/context.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/detect-changes.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/scan.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/ccc-feedback.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/verify.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/status.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/handlers/ccc-status.ts
./.opencode/skills/sk-code-opencode/references/shared/code_organization.md
./.opencode/skills/sk-code-opencode/references/shared/universal_patterns.md
./.opencode/skills/sk-code-opencode/references/shared/alignment_verification_automation.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-subprocess.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-observability.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-graph-health.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-brief-producer.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-renderer.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-prompt-cache.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-graph-evidence-calibration.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-privacy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-freshness.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-corpus-parity.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-prompt-policy.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-timing.vitest.ts
./.opencode/skills/sk-code-opencode/references/typescript/quick_reference.md
./.opencode/skills/sk-code-opencode/references/typescript/quality_standards.md
./.opencode/skills/sk-code-opencode/references/typescript/style_guide.md
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/budget-allocator.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/structural-indexer.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/gold-query-verifier.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/runtime-detection.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/ensure-ready.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/diff-parser.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/phase-runner.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/index.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/indexer-types.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/readiness-contract.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/tree-sitter-parser.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/README.md
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/working-set-tracker.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/edge-drift.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/query-intent-classifier.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/code-graph-context.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/livePassingSkill.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/promptPoisoningAdversarial.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/ambiguousTopTwo.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/unicodeInstructionalSkillLabel.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/skipPolicyEmptyPrompt.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/noPassingSkill.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/skipPolicyCommandOnly.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/staleHighConfidenceSkill.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/failOpenTimeout.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-fixtures/skippedShortCasual.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/legacy/advisor-runtime-parity.vitest.ts
./.opencode/skills/sk-code-opencode/references/shell/quick_reference.md
./.opencode/skills/sk-code-opencode/references/shell/quality_standards.md
./.opencode/skills/sk-code-opencode/references/shell/style_guide.md
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/utils/workspace-path.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/python/test_skill_advisor.py
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/startup-brief.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/compact-merger.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/query-result-adapter.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/ops-hardening.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/code-graph-db.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/lib/seed-resolver.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/README.md
./.opencode/skills/system-spec-kit/feature_catalog/20--remediation-revalidation/03-feedback-driven-revalidation.md
./.opencode/skills/system-spec-kit/feature_catalog/20--remediation-revalidation/02-memory-health-auto-repair.md
./.opencode/skills/system-spec-kit/feature_catalog/20--remediation-revalidation/01-category-stub.md
./.opencode/skills/sk-code-opencode/references/config/quick_reference.md
./.opencode/skills/sk-code-opencode/references/config/quality_standards.md
./.opencode/skills/sk-code-opencode/references/config/style_guide.md
./.opencode/skills/mcp-figma/references/quick_start.md
./.opencode/skills/mcp-figma/references/tool_reference.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/cache/listener-uniqueness.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/phase-runner.test.ts
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/04-checkpoint-deletion-checkpointdelete.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/03-checkpoint-restore-checkpointrestore.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/05-async-ingestion-job-lifecycle.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/09-post-insert-retry-budget.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/01-checkpoint-creation-checkpointcreate.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/02-checkpoint-listing-checkpointlist.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/06-startup-pending-file-recovery.md
./.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/08-constitutional-memory-end-to-end-lifecycle.md
./.opencode/skills/sk-code-opencode/references/python/quick_reference.md
./.opencode/skills/sk-code-opencode/references/python/quality_standards.md
./.opencode/skills/sk-code-opencode/references/python/style_guide.md
./.opencode/skills/sk-improve-agent/scripts/score-candidate.cjs
./.opencode/skills/sk-improve-agent/scripts/mutation-coverage.cjs
./.opencode/skills/sk-improve-agent/scripts/reduce-state.cjs
./.opencode/skills/sk-improve-agent/scripts/promote-candidate.cjs
./.opencode/skills/sk-improve-agent/scripts/candidate-lineage.cjs
./.opencode/skills/sk-improve-agent/scripts/benchmark-stability.cjs
./.opencode/skills/sk-improve-agent/scripts/generate-profile.cjs
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/assets/code-graph-gold-queries.json
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-query-handler.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-ops-hardening.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-siblings-readiness.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-verify.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-context-handler.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-indexer.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/edge-drift.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/detect-changes.test.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-seed-resolver.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/code-graph-scan.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tests/edge-metadata-sanitize.test.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/compat/shim.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/compat/daemon-probe.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/compat/redirect-metadata.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/compat/python-compat.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tests/compat/plugin-bridge.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/graph-metadata.json
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/08-code-graph-edge-explanation-blast-radius-uplift.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/05-epistemic-baseline-capture-taskpreflight.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/07-learning-history-memorygetlearninghistory.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/06-post-task-learning-measurement-taskpostflight.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/02-causal-graph-statistics-memorycausalstats.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/01-causal-edge-creation-memorycausallink.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/04-causal-chain-tracing-memorydriftwhy.md
./.opencode/skills/system-spec-kit/feature_catalog/06--analysis/03-causal-edge-deletion-memorycausalunlink.md
./.opencode/skills/sk-improve-agent/scripts/tests/benchmark-stability.vitest.ts
./.opencode/skills/sk-improve-agent/scripts/tests/mutation-coverage.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tools/code-graph-tools.ts
./.opencode/skills/system-spec-kit/mcp_server/code_graph/tools/index.ts
./.opencode/skills/system-spec-kit/mcp_server/tsconfig.json
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/02-precompact-hook.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/23-tool-routing-enforcement.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/09-cocoindex-bridge-context.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/07-structural-code-indexer.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/06-runtime-detection.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/16-mcp-auto-priming.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/04-stop-token-tracking.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/13-tree-sitter-wasm-parser.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/11-working-set-tracker.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/18-session-resume-tool.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/05-cross-runtime-fallback.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/15-code-graph-auto-trigger.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/12-compact-merger.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/14-query-intent-classifier.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/08-code-graph-storage-query.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/01-category-overview.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/20-passive-context-enrichment.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/25-resource-map-template.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/17-session-health-tool.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/19-query-intent-routing.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/10-budget-allocator.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/22-context-preservation-metrics.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/24-code-graph-readiness-contract.md
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/21-gemini-cli-hooks.md
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/compat/index.ts
./.opencode/skills/system-spec-kit/feature_catalog/22--context-preservation-and-code-graph/03-session-start-priming.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/03-3-mcp-configuration.md
./.opencode/skills/system-spec-kit/mcp_server/api/index.ts
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/01-1-search-pipeline-features-speckit.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/08-audit-phase-020-mapping-note.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/10-filter-config-contract.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/11-memory-roadmap-capability-flags.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/09-runtime-config-contract.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/06-6-debug-and-telemetry.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/02-2-session-and-cache.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/04-4-memory-and-storage.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/07-7-ci-and-build-informational.md
./.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/05-5-embedding-and-api.md
./.opencode/skills/system-spec-kit/mcp_server/api/README.md
./.opencode/skills/system-spec-kit/mcp_server/api/providers.ts
./.opencode/skills/system-spec-kit/mcp_server/api/storage.ts
./.opencode/skills/system-spec-kit/mcp_server/api/search.ts
./.opencode/skills/system-spec-kit/mcp_server/api/eval.ts
./.opencode/skills/system-spec-kit/mcp_server/api/indexing.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tools/index.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tools/advisor-status.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tools/advisor-validate.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/tools/advisor-recommend.ts
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/03-single-and-folder-delete-memorydelete.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/08-prediction-error-save-arbitration.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/01-memory-indexing-memorysave.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/11-reconsolidation-conflict-transaction-helper.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/09-correction-tracking-with-undo.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/10-per-memory-history-log.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/04-tier-based-bulk-deletion-memorybulkdelete.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/02-memory-metadata-update-memoryupdate.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/06-transaction-wrappers-on-mutation-handlers.md
./.opencode/skills/system-spec-kit/feature_catalog/02--mutation/05-validation-feedback-memoryvalidate.md
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/improvement_config.json
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/improvement-journal.jsonl
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/candidate-lineage.json
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/mutation-coverage.json
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/trade-off-trajectory.json
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/agent-improvement-state.jsonl
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/README.md
./.opencode/skills/sk-improve-agent/scripts/tests/fixtures/low-sample-benchmark/benchmark-results.json
./.opencode/skills/sk-improve-agent/scripts/tests/candidate-lineage.vitest.ts
./.opencode/skills/sk-improve-agent/scripts/tests/trade-off-detector.vitest.ts
./.opencode/skills/sk-improve-agent/scripts/tests/improvement-journal.vitest.ts
./.opencode/skills/sk-improve-agent/scripts/run-benchmark.cjs
./.opencode/skills/sk-improve-agent/scripts/improvement-journal.cjs
./.opencode/skills/sk-improve-agent/scripts/rollback-candidate.cjs
./.opencode/skills/sk-improve-agent/scripts/trade-off-detector.cjs
./.opencode/skills/sk-improve-agent/scripts/scan-integration.cjs
./.opencode/skills/sk-improve-agent/scripts/check-mirror-drift.cjs
./.opencode/skills/system-spec-kit/mcp_server/hooks/response-hints.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/memory-surface.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/index.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/README.md
./.opencode/skills/system-spec-kit/mcp_server/plugin_bridges/spec-kit-opencode-message-schema.mjs
./.opencode/skills/system-spec-kit/mcp_server/plugin_bridges/spec-kit-skill-advisor-bridge.mjs
./.opencode/skills/system-spec-kit/mcp_server/plugin_bridges/spec-kit-compact-code-graph-bridge.mjs
./.opencode/skills/system-spec-kit/mcp_server/scripts/map-ground-truth-ids.ts
./.opencode/skills/system-spec-kit/mcp_server/scripts/reindex-embeddings.ts
./.opencode/skills/system-spec-kit/mcp_server/scripts/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/pre-tool-use.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/session-start.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/setup.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/user-prompt-submit.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/codex/prompt-wrapper.ts
./.opencode/skills/system-spec-kit/mcp_server/scripts/tests/resource-map-extractor.vitest.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/code-graph-parse-latency.bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/scorer-calibration.bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/scorer-bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/watcher-benchmark.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/scorer-calibration-baseline.json
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/hook-brief-signal-noise.bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/code-graph-query-latency.bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/latency-bench.ts
./.opencode/skills/system-spec-kit/mcp_server/skill_advisor/bench/code-graph-query-latency.baseline.json
./.opencode/skills/system-spec-kit/mcp_server/eslint.config.mjs
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/11-pipeline-and-mutation-hardening.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/13-strict-zod-schema-validation.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/22-mcp-server-public-api-barrel.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/05-validation-signals-as-retrieval-metadata.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/07-search-pipeline-safety.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/10-legacy-v1-pipeline-removal.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/17-cross-process-db-hot-rebinding.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/24-phase-017-maintainability-extracts.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/04-template-anchor-optimization.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/25-code-graph-phase-dag-runner.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/21-atomic-pending-file-recovery.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/23-embeddings-and-retry-api.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/20-7-layer-tool-architecture-metadata.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/22-lineage-state-active-projection-and-asof-resolution.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/02-mpab-chunk-to-memory-aggregation.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/06-learned-relevance-feedback.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/16-backend-storage-adapter-abstraction.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/08-performance-improvements.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/01-4-stage-pipeline-refactor.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/18-atomic-write-then-index-api.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/03-chunk-ordering-preservation.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/19-embedding-retry-orchestrator.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/12-dbpath-extraction-and-import-standardization.md
./.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/14-dynamic-server-instructions-at-mcp-initialization.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/04-classification-based-decay.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/01-score-normalization.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/23-usage-weighted-ranking.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/06-embedding-cache.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/05-folder-level-relevance-scoring.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/07-double-intent-weighting-investigation.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/11-scoring-and-ranking-corrections.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/22-rrf-k-experimental.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/10-auto-promotion-on-validation.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/19-learned-stage2-weight-combiner.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/08-rrf-k-value-sensitivity-analysis.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/12-stage-3-effectivescore-fallback-chain.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/16-access-driven-popularity-scoring.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/03-interference-scoring.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/14-local-gguf-reranker-via-node-llama-cpp.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/20-shadow-feedback-holdout-evaluation.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/15-tool-level-ttl-cache.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/17-temporal-structural-coherence-scoring.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/09-negative-feedback-confidence-signal.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/13-scoring-and-fusion-corrections.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/24-skill-advisor-affordance-evidence.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/18-adaptive-shadow-ranking-bounded-proposals-and-rollback.md
./.opencode/skills/system-spec-kit/feature_catalog/11--scoring-and-calibration/21-calibrated-overlap-bonus.md
./.opencode/skills/system-spec-kit/scripts/validation/evidence-marker-audit.ts
./.opencode/skills/system-spec-kit/mcp_server/scripts/migrations/restore-checkpoint.ts
./.opencode/skills/system-spec-kit/mcp_server/scripts/migrations/README.md
./.opencode/skills/system-spec-kit/mcp_server/scripts/migrations/create-checkpoint.ts
./.opencode/skills/system-spec-kit/scripts/validation/continuity-freshness.ts
./.opencode/skills/system-spec-kit/scripts/validation/evidence-marker-lint.ts
./.opencode/skills/system-spec-kit/scripts/wrap-all-templates.sh
./.opencode/skills/system-spec-kit/feature_catalog/04--maintenance/02-startup-runtime-compatibility-guards.md
./.opencode/skills/system-spec-kit/feature_catalog/04--maintenance/01-workspace-scanning-and-indexing-memoryindexscan.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/session-prime.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/claude-transcript.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/hook-state.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/shared.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/user-prompt-submit.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/session-stop.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/claude/compact-inject.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/mutation-feedback.ts
./.opencode/skills/system-spec-kit/scripts/resource-map/README.md
./.opencode/skills/system-spec-kit/scripts/resource-map/extract-from-evidence.cjs
./.opencode/skills/system-spec-kit/mcp_server/configs/README.md
./.opencode/skills/system-spec-kit/mcp_server/configs/cognitive.ts
./.opencode/skills/system-spec-kit/mcp_server/configs/search-weights.json
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/run-all.sh
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/dispatch-cli-opencode.sh
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/10-causal-neighbor-boost-and-injection.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/16-typed-traversal.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/01-typed-weighted-degree-channel.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/08-graph-and-cognitive-memory-fixes.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/19-ontology-hooks.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/15-graph-calibration-profiles.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/04-weight-history-audit-tracking.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/14-llm-graph-backfill.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/18-contradiction-detection.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/11-temporal-contiguity-layer.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/02-co-activation-boost-strength-increase.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/13-graph-lifecycle-refresh.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/03-edge-density-measurement.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/07-community-detection.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/17-temporal-edges.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/06-causal-depth-signal.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/12-unified-graph-retrieval-deterministic-ranking-explainability-and-rollback.md
./.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/05-graph-momentum-scoring.md
./.opencode/skills/system-spec-kit/mcp_server/lib/session/session-manager.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/session/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/session/session-snapshot.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/session/context-metrics.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-types.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-ingest.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-bulk-delete.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud.ts
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/07-llm-query-reformulation.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/04-confidence-based-result-truncation.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/03-channel-min-representation.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/09-index-time-query-surrogates.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/01-query-complexity-router.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/10-query-decomposition.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/05-dynamic-token-budget-allocation.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/11-graph-concept-routing.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/06-query-expansion.md
./.opencode/skills/system-spec-kit/feature_catalog/12--query-intelligence/08-hyde-hypothetical-document-embeddings.md
./.opencode/skills/system-spec-kit/scripts/loaders/index.ts
./.opencode/skills/system-spec-kit/scripts/loaders/data-loader.ts
./.opencode/skills/system-spec-kit/scripts/loaders/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/copilot/compact-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/copilot/custom-instructions.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/copilot/session-prime.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/copilot/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/copilot/user-prompt-submit.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/interfaces/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/interfaces/vector-store.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/schema-downgrade.ts
./.opencode/skills/system-spec-kit/feature_catalog/03--discovery/02-system-statistics-memorystats.md
./.opencode/skills/system-spec-kit/feature_catalog/03--discovery/03-health-diagnostics-memoryhealth.md
./.opencode/skills/system-spec-kit/feature_catalog/03--discovery/04-detect-changes-preflight.md
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/access-tracker.ts
./.opencode/skills/system-spec-kit/feature_catalog/03--discovery/01-memory-browser-memorylist.md
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/consolidation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/post-insert-metadata.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/checkpoints.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/lineage-state.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/reconsolidation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/causal-edges.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/incremental-index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/learned-triggers-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/mutation-ledger.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/transaction-manager.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/document-helpers.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/storage/history.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/skill-graph/query.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/skill-graph/index.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/skill-graph/validate.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/skill-graph/scan.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/skill-graph/status.ts
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/Q1.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/I2.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/S1.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/I3.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/S3.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/Q3.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/I1.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/Q2.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/prompts/S2.md
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/dispatch-cli-codex.sh
./.opencode/specs/system-spec-kit/026-graph-and-context-optimization/011-mcp-runtime-stress-remediation/001-search-intelligence-stress-playbook/001-search-scenario-design/scripts/dispatch-cli-copilot.sh
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/compact-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/session-prime.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/README.md
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/shared.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/user-prompt-submit.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/session-stop.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/gemini/compact-inject.ts
./.opencode/skills/system-spec-kit/mcp_server/hooks/shared-provenance.ts
./.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts
./.opencode/skills/system-spec-kit/mcp_server/INSTALL_GUIDE.md
./.opencode/skills/system-spec-kit/mcp_server/README.md
./.opencode/skills/system-spec-kit/scripts/extractors/quality-scorer.ts
./.opencode/skills/system-spec-kit/scripts/extractors/decision-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/index.ts
./.opencode/skills/system-spec-kit/scripts/extractors/session-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/diagram-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/spec-folder-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/README.md
./.opencode/skills/system-spec-kit/scripts/extractors/implementation-guide-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/session-activity-signal.ts
./.opencode/skills/system-spec-kit/scripts/extractors/file-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/git-context-extractor.ts
./.opencode/skills/system-spec-kit/scripts/extractors/collect-session-data.ts
./.opencode/skills/system-spec-kit/scripts/extractors/contamination-filter.ts
./.opencode/skills/system-spec-kit/scripts/extractors/conversation-extractor.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/analytics/session-analytics-db.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/analytics/README.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/16-dry-run-preflight-for-memory-save.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/17-outsourced-agent-memory-capture.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/26-spec-doc-structure-validator.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/21-assistive-reconsolidation.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/02-signal-vocabulary-expansion.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/01-verify-fix-verify-memory-quality-loop.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/10-auto-entity-extraction.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/14-quality-gate-timer-persistence.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/25-indexing-runtime-bootstrap-api.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/05-pre-storage-quality-gate.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/15-deferred-lexical-only-indexing.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/08-anchor-aware-chunk-thinning.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/23-hybrid-decay-policy.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/19-post-save-quality-review.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/07-smarter-memory-content-generation.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/11-content-aware-memory-filename-generation.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/06-reconsolidation-on-save.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/28-memory-causal-trust-display.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/09-encoding-intent-capture-at-index-time.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/04-spec-folder-description-discovery.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/27-canonical-continuity-save-substrate.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/18-session-enrichment-and-alignment-guards.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/03-pre-flight-token-budget-validation.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/24-save-quality-gate-exceptions.md
./.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/13-entity-normalization-consolidation.md
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/feedback-ledger.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/shadow-evaluation-runtime.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/rank-metrics.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/query-flow-tracker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/shadow-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/feedback/batch-learning.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/codex-hook-policy.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/db-helpers.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/spec-folder-mutex.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/index.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/atomic-index-memory.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/create-record.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/embedding-pipeline.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/types.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/README.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/reconsolidation-bridge.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/05-memory-summary-search-channel.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/markdown-evidence-builder.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/03-spec-folder-hierarchy-as-retrieval-structure.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/dedup.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/07-tier-2-fallback-channel-forcing.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/post-insert.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/12-graph-expanded-fallback.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/response-builder.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/02-constitutional-memory-as-expert-knowledge-injection.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/validation-responses.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/08-provenance-rich-response-envelopes.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/save/pe-orchestration.ts
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/06-cross-document-entity-linking.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/01-dual-scope-memory-auto-surface.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/10-session-boost-graduated.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/13-always-on-graph-context-injection.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/14-community-search-fallback.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/09-contextual-tree-injection.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/15-dual-level-retrieval.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/11-causal-boost-graduated.md
./.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/04-lightweight-consolidation.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-delete.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-update.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/session-resume.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/index.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/session-bootstrap.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/mutation-hooks.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-list.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/session-health.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-health.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/types.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/checkpoints.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/causal-links-processor.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/README.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index-discovery.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/session-learning.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/handler-utils.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/causal-graph.ts
./.opencode/skills/system-spec-kit/mcp_server/schemas/tool-input-schemas.ts
./.opencode/skills/system-spec-kit/mcp_server/schemas/README.md
./.opencode/skills/system-spec-kit/scripts/ops/heal-ledger-mismatch.sh
./.opencode/skills/system-spec-kit/scripts/ops/ops-common.sh
./.opencode/skills/system-spec-kit/mcp_server/lib/validation/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/validation/spec-doc-structure.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/validation/save-quality-gate.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/validation/preflight.ts
./.opencode/skills/system-spec-kit/scripts/ops/heal-index-drift.sh
./.opencode/skills/system-spec-kit/scripts/ops/heal-session-ambiguity.sh
./.opencode/skills/system-spec-kit/scripts/ops/README.md
./.opencode/skills/system-spec-kit/scripts/ops/runbook.sh
./.opencode/skills/sk-improve-agent/feature_catalog/03--scoring-system/01-five-dimension-rubric.md
./.opencode/skills/sk-improve-agent/feature_catalog/03--scoring-system/04-dimensional-progress.md
./.opencode/skills/sk-improve-agent/feature_catalog/03--scoring-system/03-deterministic-scoring.md
./.opencode/skills/system-spec-kit/scripts/ops/heal-telemetry-drift.sh
./.opencode/skills/sk-improve-agent/feature_catalog/03--scoring-system/02-dynamic-profiling.md
./.opencode/skills/system-spec-kit/scripts/tsconfig.json
./.opencode/skills/sk-improve-agent/feature_catalog/feature_catalog.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/11-working-memory-timestamp-fix.md
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/format-helpers.ts
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/07-canonical-id-dedup-hardening.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/07-error-response-credential-sanitization.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/04-sha-256-content-hash-deduplication.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/06-guards-and-edge-cases.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/10-chunking-orchestrator-safe-swap.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/03-co-activation-fan-effect-divisor.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/09-session-manager-transaction-gap-fixes.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/01-graph-channel-id-fix.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/02-chunk-collapse-deduplication.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/12-scope-normalizer-canonicalization-and-lint.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/05-database-and-schema-safety.md
./.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/08-mathmax-min-stack-overflow-elimination.md
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/logger.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/cocoindex-path.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/cleanup-helpers.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/index-scope.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/path-security.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/exhaustiveness.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/utils/canonical-path.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/convergence.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/query.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/index.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/README.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/upsert.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/coverage-graph/status.ts
./.opencode/skills/system-spec-kit/scripts/templates/compose.sh
./.opencode/skills/system-spec-kit/scripts/templates/README.md
./.opencode/skills/system-spec-kit/mcp_server/handlers/quality-loop.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/eval-reporting.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-stats.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/chunking-orchestrator.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-utils.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/v-rule-bridge.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index-alias.ts
./.opencode/skills/system-spec-kit/mcp_server/handlers/pe-gating.ts
./.opencode/skills/system-spec-kit/mcp_server/vitest.config.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/skill-graph/skill-graph-queries.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/skill-graph/skill-graph-db.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/spec/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/spec/spec-level.ts
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/05-rollback.md
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/01-initialization.md
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/03-scoring-dispatch.md
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/04-promotion-gates.md
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/02-candidate-generation.md
./.opencode/skills/sk-improve-agent/feature_catalog/01--evaluation-loop/06-plateau-detection.md
./.opencode/skills/system-spec-kit/mcp_server/lib/config/README.md
./.opencode/skills/system-spec-kit/feature_catalog/21--implement-and-remove-deprecated-features/02-lazy-loading-migration-and-warmup-compatibility.md
./.opencode/skills/system-spec-kit/mcp_server/lib/config/memory-types.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/config/type-inference.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/config/spec-doc-paths.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/config/capability-flags.ts
./.opencode/skills/system-spec-kit/scripts/kpi/README.md
./.opencode/skills/system-spec-kit/scripts/kpi/quality-kpi.sh
./.opencode/skills/system-spec-kit/feature_catalog/21--implement-and-remove-deprecated-features/05-adaptive-fusion-flag-drift.md
./.opencode/skills/system-spec-kit/feature_catalog/21--implement-and-remove-deprecated-features/04-inert-scoring-flags-and-compatibility-shims.md
./.opencode/skills/system-spec-kit/feature_catalog/21--implement-and-remove-deprecated-features/03-shadow-scoring-retirement.md
./.opencode/skills/system-spec-kit/feature_catalog/21--implement-and-remove-deprecated-features/01-category-stub.md
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/community-storage.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/graph-metadata-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/contradiction-detection.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/graph-metadata-parser.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/community-detection.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/graph-signals.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/usage-tracking.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/usage-ranking-signal.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/community-summaries.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/graph/temporal-edges.ts
./.opencode/skills/sk-improve-agent/feature_catalog/02--integration-scanning/03-command-dispatch.md
./.opencode/skills/system-spec-kit/mcp_server/lib/merge/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/merge/anchor-merge-operation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/MODULE_MAP.md
./.opencode/skills/sk-improve-agent/feature_catalog/02--integration-scanning/02-runtime-mirrors.md
./.opencode/skills/sk-improve-agent/feature_catalog/02--integration-scanning/01-surface-discovery.md
./.opencode/skills/system-spec-kit/mcp_server/lib/resume/resume-ladder.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/resume/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/redaction-gate.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/entity-extractor.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/extraction-adapter.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/ontology-hooks.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/extraction/entity-denylist.ts
./.opencode/skills/system-spec-kit/references/validation/phase_checklists.md
./.opencode/skills/system-spec-kit/references/validation/validation_rules.md
./.opencode/skills/system-spec-kit/references/validation/five_checks.md
./.opencode/skills/system-spec-kit/references/validation/template_compliance_contract.md
./.opencode/skills/system-spec-kit/references/validation/path_scoped_rules.md
./.opencode/skills/system-spec-kit/references/validation/decision_format.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/09-tool-result-extraction-to-working-memory.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/10-fast-delegated-search-memory-quick-search.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/05-4-stage-pipeline-architecture.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/06-bm25-trigger-phrase-re-index-gate.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/08-quality-aware-3-tier-search-fallback.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/02-semantic-and-lexical-search-memorysearch.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/07-ast-level-section-retrieval-tool.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/03-trigger-phrase-matching-memorymatchtriggers.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/12-search-api-surface.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/11-session-recovery-spec-kit-resume.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/01-unified-context-retrieval-memorycontext.md
./.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/04-hybrid-search-pipeline.md
./.opencode/skills/system-spec-kit/scripts/lib/wave-segment-state.cjs
./.opencode/skills/system-spec-kit/scripts/lib/coverage-graph-convergence.cjs
./.opencode/skills/system-spec-kit/scripts/lib/validator-registry.json
./.opencode/skills/system-spec-kit/scripts/lib/frontmatter-grandfather-allowlist.json
./.opencode/skills/system-spec-kit/scripts/lib/coverage-graph-signals.cjs
./.opencode/skills/system-spec-kit/scripts/lib/wave-lifecycle.cjs
./.opencode/skills/system-spec-kit/scripts/lib/simulation-factory.ts
./.opencode/skills/system-spec-kit/scripts/lib/coverage-graph-core.cjs
./.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts
./.opencode/skills/system-spec-kit/scripts/lib/coverage-graph-contradictions.cjs
./.opencode/skills/system-spec-kit/scripts/lib/anchor-generator.ts
./.opencode/skills/system-spec-kit/scripts/lib/trigger-phrase-sanitizer.ts
./.opencode/skills/system-spec-kit/scripts/lib/flowchart-generator.ts
./.opencode/skills/system-spec-kit/scripts/lib/topic-keywords.ts
./.opencode/skills/system-spec-kit/scripts/lib/wave-convergence.cjs
./.opencode/skills/system-spec-kit/scripts/lib/wave-coordination-board.cjs
./.opencode/skills/system-spec-kit/scripts/lib/unicode-normalization.ts
./.opencode/skills/system-spec-kit/scripts/lib/git-branch.sh
./.opencode/skills/system-spec-kit/scripts/lib/esm-entry.js
./.opencode/skills/system-spec-kit/scripts/lib/truncate-on-word-boundary.ts
./.opencode/skills/system-spec-kit/scripts/lib/shell-common.sh
./.opencode/skills/system-spec-kit/scripts/lib/README.md
./.opencode/skills/system-spec-kit/scripts/lib/coverage-graph-session.cjs
./.opencode/skills/system-spec-kit/scripts/lib/content-filter.ts
./.opencode/skills/system-spec-kit/scripts/lib/embeddings.ts
./.opencode/skills/system-spec-kit/scripts/lib/session-activity-signal.ts
./.opencode/skills/system-spec-kit/scripts/lib/decision-tree-generator.ts
./.opencode/skills/system-spec-kit/scripts/lib/semantic-signal-extractor.ts
./.opencode/skills/system-spec-kit/scripts/lib/memory-frontmatter.ts
./.opencode/skills/system-spec-kit/scripts/lib/template-utils.sh
./.opencode/skills/system-spec-kit/scripts/lib/wave-segment-planner.cjs
./.opencode/skills/system-spec-kit/scripts/lib/validator-registry.ts
./.opencode/skills/system-spec-kit/scripts/lib/ascii-boxes.ts
./.opencode/skills/system-spec-kit/scripts/lib/esm-entry.ts
./.opencode/skills/system-spec-kit/scripts/lib/frontmatter-migration.ts
./.opencode/skills/system-spec-kit/scripts/lib/cli-capture-shared.ts
./.opencode/skills/system-spec-kit/scripts/lib/trigger-extractor.ts
./.opencode/skills/system-spec-kit/scripts/lib/memory-telemetry.ts
./.opencode/skills/system-spec-kit/scripts/lib/phase-classifier.ts
./.opencode/skills/system-spec-kit/scripts/lib/semantic-summarizer.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/coverage-graph/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/coverage-graph/coverage-graph-query.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/coverage-graph/coverage-graph-signals.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/coverage-graph/coverage-graph-db.ts
./.opencode/skills/system-spec-kit/references/structure/folder_routing.md
./.opencode/skills/system-spec-kit/references/structure/sub_folder_versioning.md
./.opencode/skills/system-spec-kit/references/structure/phase_definitions.md
./.opencode/skills/system-spec-kit/references/structure/folder_structure.md
./.opencode/skills/system-spec-kit/mcp_server/lib/cache/scoring/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/cache/embedding-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cache/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/cache/tool-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/parsing/content-normalizer.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/parsing/trigger-matcher.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/parsing/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts
./.opencode/skills/system-spec-kit/feature_catalog/07--evaluation/01-ablation-studies-evalrunablation.md
./.opencode/skills/system-spec-kit/feature_catalog/07--evaluation/02-reporting-dashboard-evalreportingdashboard.md
./.opencode/skills/system-spec-kit/mcp_server/lib/providers/retry-manager.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/providers/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/providers/embeddings.ts
./.opencode/skills/sk-improve-agent/references/promotion_rules.md
./.opencode/skills/system-spec-kit/references/templates/template_style_guide.md
./.opencode/skills/sk-improve-agent/references/quick_reference.md
./.opencode/skills/sk-improve-agent/references/mirror_drift_policy.md
./.opencode/skills/sk-improve-agent/references/benchmark_operator_guide.md
./.opencode/skills/sk-improve-agent/references/target_onboarding.md
./.opencode/skills/sk-improve-agent/references/no_go_conditions.md
./.opencode/skills/sk-improve-agent/references/rollback_runbook.md
./.opencode/skills/sk-improve-agent/references/evaluator_contract.md
./.opencode/skills/sk-improve-agent/references/loop_protocol.md
./.opencode/skills/sk-improve-agent/references/integration_scanning.md
./.opencode/skills/system-spec-kit/references/templates/template_guide.md
./.opencode/skills/system-spec-kit/references/templates/level_specifications.md
./.opencode/skills/system-spec-kit/references/templates/level_selection_guide.md
./.opencode/skills/system-spec-kit/scripts/rules/check-level-match.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-canonical-save-helper.cjs
./.opencode/skills/system-spec-kit/scripts/rules/check-normalizer-lint.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-frontmatter.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-phase-links.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-toc-policy.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-sections.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-folder-naming.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-level.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-anchors.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-template-headers.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-complexity.sh
./.opencode/skills/system-spec-kit/scripts/rules/README.md
./.opencode/skills/system-spec-kit/scripts/rules/check-canonical-save.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-section-counts.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-evidence.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-ai-protocols.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-links.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-placeholders.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-spec-doc-integrity.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-template-source.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-priority-tags.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-graph-metadata.sh
./.opencode/skills/system-spec-kit/scripts/rules/check-files.sh
./.opencode/skills/system-spec-kit/mcp_server/lib/response/profile-formatters.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/response/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/response/envelope.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/contracts/README.md
./.opencode/skills/cli-claude-code/references/integration_patterns.md
./.opencode/skills/system-spec-kit/mcp_server/lib/deep-loop/prompt-pack.ts
./.opencode/skills/system-spec-kit/references/hooks/skill-advisor-hook.md
./.opencode/skills/system-spec-kit/references/hooks/skill-advisor-hook-validation.md
./.opencode/skills/cli-claude-code/references/claude_tools.md
./.opencode/skills/cli-claude-code/references/agent_delegation.md
./.opencode/skills/cli-claude-code/references/cli_reference.md
./.opencode/skills/system-spec-kit/mcp_server/lib/deep-loop/executor-audit.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/deep-loop/post-dispatch-validate.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/deep-loop/executor-config.ts
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/17-memory-roadmap-baseline-snapshot.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/15-evaluation-api-surface.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/14-cross-ai-validation-fixes.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/10-full-reporting-and-ablation-study-framework.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/01-evaluation-database-and-schema.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/12-test-quality-improvements.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/03-observer-effect-mitigation.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/06-synthetic-ground-truth-corpus.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/13-evaluation-and-housekeeping-fixes.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/07-bm25-only-baseline.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/05-quality-proxy-formula.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/09-scoring-observability.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/08-agent-consumption-instrumentation.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/02-core-metric-computation.md
./.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/16-int8-quantization-evaluation.md
./.opencode/skills/system-spec-kit/mcp_server/lib/context/caller-context.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/context/opencode-transport.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/context/publication-gate.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/context/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/context/shared-payload.ts
./.opencode/skills/system-spec-kit/references/cli/shared_smart_router.md
./.opencode/skills/system-spec-kit/mcp_server/lib/learning/index.ts
./.opencode/skills/system-spec-kit/references/cli/memory_handback.md
./.opencode/skills/system-spec-kit/mcp_server/lib/learning/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/learning/corrections.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/errors.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/errors/index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/errors/core.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/errors/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/errors/recovery-hints.ts
./.opencode/skills/system-spec-kit/references/workflows/quick_reference.md
./.opencode/skills/system-spec-kit/references/workflows/execution_methods.md
./.opencode/skills/system-spec-kit/references/workflows/worked_examples.md
./.opencode/skills/system-spec-kit/references/workflows/nested_changelog.md
./.opencode/skills/system-spec-kit/references/workflows/rollback_runbook.md
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/working-memory.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/tier-classifier.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/rollout-policy.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/pressure-monitor.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/adaptive-ranking.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/attention-decay.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/prediction-error-gate.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/co-activation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/temporal-contiguity.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/fsrs-scheduler.ts
./.opencode/skills/mcp-chrome-devtools/scripts/install.sh
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/negative-feedback.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/mpab-aggregation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/confidence-tracker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/interference-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/folder-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/composite-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/scoring/importance-tiers.ts
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/01-tree-thinning-for-spec-folder-consolidation.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/28-spec-folder-detection-and-description.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/14-source-dist-alignment-enforcement.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/26-core-workflow-infrastructure.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/02-architecture-boundary-enforcement.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/08-watcher-delete-rename-cleanup.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/07-standalone-admin-cli.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/27-session-extraction-and-enrichment.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/21-eval-runner-cli.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/10-schema-compatibility-validation.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/04-dead-code-removal.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/29-setup-native-module-health-and-mcp-installation.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/20-ops-self-healing-runbooks.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/16-json-mode-hybrid-enrichment.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/11-feature-catalog-code-references.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/23-spec-lifecycle-automation.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/33-memory-quality-kpi-reporting.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/24-spec-validation-rule-engine.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/03-progressive-validation-for-spec-documents.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/18-template-compliance-contract-enforcement.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/25-memory-maintenance-and-migration-clis.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/05-code-standards-alignment.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/31-evaluation-benchmark-and-import-policy-tooling.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/15-module-boundary-map.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/22-phase-system-knowledge-node.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/35-strict-validation-addons-continuity-freshness-and-evidence-markers.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/30-template-composition-system.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/09-migration-checkpoint-scripts.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/13-constitutional-memory-manager-command.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/12-session-capturing-pipeline-quality.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/19-completion-verification-workflow.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/06-real-time-filesystem-watching-with-chokidar.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/17-json-primary-deprecation-posture.md
./.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/34-research-metadata-backfill.md
./.opencode/skills/system-spec-kit/references/debugging/universal_debugging_methodology.md
./.opencode/skills/system-spec-kit/references/debugging/troubleshooting.md
./.opencode/skills/system-spec-kit/references/intake-contract.md
./.opencode/skills/system-spec-kit/mcp_server/lib/routing/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/routing/routing-prototypes.json
./.opencode/skills/system-spec-kit/mcp_server/lib/routing/content-router.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/continuity/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/continuity/timestamp-normalize.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/continuity/thin-continuity-record.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/governance/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/governance/scope-governance.ts
./.opencode/skills/system-spec-kit/references/config/environment_variables.md
./.opencode/skills/system-spec-kit/references/config/hook_system.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/11-final-token-metadata-recomputation.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/15-mode-aware-response-profiles.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/14-result-explainability.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/21-shared-provenance-and-copilot-compact-cache-parity.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/18-empty-result-recovery.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/07-mutation-response-ux-payload-exposure.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/06-mutation-hook-result-contract-expansion.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/09-duplicate-save-no-op-feedback-hardening.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/10-atomic-save-parity-and-partial-indexing-hints.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/05-dedicated-ux-hook-modules.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/12-hooks-readme-and-export-alignment.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/20-result-provenance.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/13-end-to-end-success-envelope-verification.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/08-context-server-success-hint-append.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/03-checkpoint-delete-confirmname-safety.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/19-result-confidence.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/04-schema-and-type-contract-synchronization.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/16-progressive-disclosure.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/02-memory-health-autorepair-metadata.md
./.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/17-retrieval-session-state.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/035-missing-tasks/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/035-missing-tasks/plan.md
./.opencode/skills/system-spec-kit/mcp_server/lib/description/repair.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/description/description-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/description/description-merge.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-feedback.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/edge-density.ts
./.opencode/skills/system-spec-kit/references/memory/epistemic_vectors.md
./.opencode/skills/system-spec-kit/references/memory/trigger_config.md
./.opencode/skills/system-spec-kit/references/memory/embedding_resilience.md
./.opencode/skills/system-spec-kit/references/memory/memory_system.md
./.opencode/skills/system-spec-kit/references/memory/save_workflow.md
./.opencode/skills/system-spec-kit/feature_catalog/17--governance/05-constitutional-gate-enforcement-rule-pack.md
./.opencode/skills/system-spec-kit/feature_catalog/17--governance/01-feature-flag-governance.md
./.opencode/skills/system-spec-kit/feature_catalog/17--governance/03-hierarchical-scope-governance-governed-ingest-retention-and-audit.md
./.opencode/skills/system-spec-kit/feature_catalog/17--governance/06-session-resume-caller-binding-and-unicode-sanitization.md
./.opencode/skills/system-spec-kit/feature_catalog/feature_catalog.md
./.opencode/skills/system-spec-kit/mcp_server/lib/architecture/layer-definitions.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/architecture/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/README.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/029-missing-checklist-sections/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/029-missing-checklist-sections/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/029-missing-checklist-sections/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/029-missing-checklist-sections/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/029-missing-checklist-sections/implementation-summary.md
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/data/ground-truth.json
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/data/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/bm25-baseline.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/warm-start-variant-runner.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/reporting-dashboard.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-db.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-metrics.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-quality-proxy.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/memory-state-baseline.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-generator.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/k-value-analysis.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/shadow-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/ablation-framework.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/ground-truth-data.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/eval/eval-logger.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/024-level-no-bold/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/024-level-no-bold/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/024-level-no-bold/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/024-level-no-bold/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/implementation-summary.md
./.opencode/skills/system-spec-kit/mcp_server/lib/chunking/chunk-thinning.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/chunking/anchor-chunker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/chunking/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/README.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/memory/context.md
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/eval-channel-tracking.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/retrieval-telemetry.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/consumption-logger.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/trace-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/telemetry/scoring-observability.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/018-evidence-checkmark-formats/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/018-evidence-checkmark-formats/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/018-evidence-checkmark-formats/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/018-evidence-checkmark-formats/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/018-evidence-checkmark-formats/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/migrate-deep-loop-legacy-owner-map.cjs
./.opencode/skills/system-spec-kit/mcp_server/lib/ops/job-queue.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/ops/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/ops/file-watcher.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/hybrid-search.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/auto-promotion.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/learned-feedback.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/folder-relevance.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/hyde.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/confidence-truncation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-types.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-flags.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/feedback-denylist.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/session-boost.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/evidence-gap-detector.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/surrogate-storage.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-calibration.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/embedding-expansion.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/reranker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-lifecycle.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/encoding-intent.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/intent-classifier.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/memory-summaries.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/validation-metadata.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/query-surrogates.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/anchor-metadata.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/query-decomposer.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/spec-folder-hierarchy.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-store.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/query-router.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/query-expander.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/retrieval-directives.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/search/search-utils.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/entity-linker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/tfidf-summarizer.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/dynamic-token-budget.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/confidence-scoring.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/search-types.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/cross-encoder.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/causal-boost.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/search-flags.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/deterministic-extractor.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/session-transition.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/sqlite-fts.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/graph-search-fn.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/query-classifier.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/session-state.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/bm25-index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/result-explainability.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/llm-reformulation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-aliases.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/channel-representation.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-schema.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/folder-discovery.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/community-search.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/chunk-reassembly.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-mutations.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-impl.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/fsrs.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/channel-enforcement.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/progressive-disclosure.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/local-reranker.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/recovery-payload.ts
./.opencode/skills/system-spec-kit/scripts/config/index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/enrichment/passive-enrichment.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/enrichment/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/enrichment/retry-budget.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/manage/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/search/llm-cache.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/artifact-routing.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/vector-index-queries.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/044-priority-p3-invalid/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/044-priority-p3-invalid/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/044-priority-p3-invalid/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/044-priority-p3-invalid/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/044-priority-p3-invalid/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/060-checklist-chk-format-invalid/checklist.md
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/ranking-contract.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage1-candidate-gen.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage3-rerank.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/index.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/types.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/README.md
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/orchestrator.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2b-enrichment.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage2-fusion.ts
./.opencode/skills/system-spec-kit/mcp_server/lib/search/pipeline/stage4-filter.ts
./.opencode/skills/system-spec-kit/scripts/optimizer/search.cjs
./.opencode/skills/system-spec-kit/scripts/optimizer/promote.cjs
./.opencode/skills/system-spec-kit/scripts/optimizer/replay-corpus.cjs
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/decision-record.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/030-missing-decision-sections/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/053-template-compliant-level2/graph-metadata.json
./.opencode/skills/system-spec-kit/scripts/types/save-mode.ts
./.opencode/skills/system-spec-kit/scripts/types/session-types.ts
./.opencode/skills/system-spec-kit/scripts/types/README.md
./.opencode/skills/system-spec-kit/scripts/types/js-yaml.d.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/003-valid-level2/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/003-valid-level2/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/003-valid-level2/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/003-valid-level2/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/003-valid-level2/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/registry-loader.sh
./.opencode/skills/system-spec-kit/scripts/wrap-all-templates.ts
./.opencode/skills/system-spec-kit/scripts/check-api-boundary.sh
./.opencode/skills/system-spec-kit/scripts/README.md
./.opencode/skills/system-spec-kit/scripts/optimizer/rubric.cjs
./.opencode/skills/system-spec-kit/scripts/optimizer/optimizer-manifest.json
./.opencode/skills/system-spec-kit/scripts/optimizer/replay-runner.cjs
./.opencode/skills/system-spec-kit/scripts/migrate-deep-loop-local-owner.cjs
./.opencode/skills/system-spec-kit/scripts/evals/run-redaction-calibration.ts
./.opencode/skills/system-spec-kit/scripts/evals/check-source-dist-alignment.ts
./.opencode/skills/system-spec-kit/scripts/evals/map-ground-truth-ids.ts
./.opencode/skills/system-spec-kit/scripts/evals/check-allowlist-expiry.ts
./.opencode/skills/system-spec-kit/scripts/evals/README.md
./.opencode/skills/system-spec-kit/scripts/evals/run-ablation.ts
./.opencode/skills/system-spec-kit/scripts/evals/check-architecture-boundaries.ts
./.opencode/skills/system-spec-kit/scripts/evals/check-handler-cycles-ast.ts
./.opencode/skills/system-spec-kit/scripts/evals/import-policy-allowlist.json
./.opencode/skills/system-spec-kit/scripts/evals/run-bm25-baseline.ts
./.opencode/skills/system-spec-kit/scripts/evals/import-policy-rules.ts
./.opencode/skills/system-spec-kit/scripts/evals/collect-redaction-calibration-inputs.ts
./.opencode/skills/system-spec-kit/scripts/evals/run-performance-benchmarks.ts
./.opencode/skills/system-spec-kit/scripts/evals/check-no-mcp-lib-imports-ast.ts
./.opencode/skills/system-spec-kit/scripts/evals/run-phase2-closure-metrics.mjs
./.opencode/skills/system-spec-kit/scripts/evals/check-no-mcp-lib-imports.ts
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-analyze-report-2026-04-19T17-57-07-192Z.md
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-measurement-results.jsonl
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-analyze.ts
./.opencode/skills/system-spec-kit/scripts/observability/LIVE_SESSION_WRAPPER_SETUP.md
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-measurement-report.md
./.opencode/skills/system-spec-kit/scripts/observability/live-session-wrapper.ts
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-measurement.ts
./.opencode/skills/system-spec-kit/scripts/observability/smart-router-telemetry.ts
./.opencode/skills/mcp-chrome-devtools/references/session_management.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/040-priority-context-reset/spec.md
./.opencode/skills/mcp-chrome-devtools/references/cdp_patterns.md
./.opencode/skills/mcp-chrome-devtools/references/troubleshooting.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/040-priority-context-reset/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/040-priority-context-reset/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/040-priority-context-reset/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/040-priority-context-reset/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/spec-folder/nested-changelog.ts
./.opencode/skills/system-spec-kit/scripts/spec-folder/folder-detector.ts
./.opencode/skills/system-spec-kit/scripts/spec-folder/index.ts
./.opencode/skills/system-spec-kit/scripts/spec-folder/README.md
./.opencode/skills/system-spec-kit/scripts/spec-folder/generate-description.ts
./.opencode/skills/system-spec-kit/scripts/spec-folder/directory-setup.ts
./.opencode/skills/system-spec-kit/scripts/spec-folder/alignment-validator.ts
./.opencode/skills/system-spec-kit/scripts/common.sh
./.opencode/skills/system-spec-kit/scripts/memory/backfill-research-metadata.ts
./.opencode/skills/system-spec-kit/scripts/memory/migrate-trigger-phrase-residual.ts
./.opencode/skills/system-spec-kit/scripts/memory/cleanup-orphaned-vectors.ts
./.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
./.opencode/skills/system-spec-kit/scripts/memory/ast-parser.ts
./.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts
./.opencode/skills/system-spec-kit/scripts/memory/rebuild-auto-entities.ts
./.opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts
./.opencode/skills/system-spec-kit/scripts/memory/cleanup-index-scope-violations.ts
./.opencode/skills/system-spec-kit/scripts/memory/README.md
./.opencode/skills/system-spec-kit/scripts/memory/fix-memory-h1.mjs
./.opencode/skills/system-spec-kit/scripts/memory/rank-memories.ts
./.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts
./.opencode/skills/system-spec-kit/scripts/scripts-registry.json
./.opencode/skills/system-spec-kit/scripts/utils/source-capabilities.ts
./.opencode/skills/system-spec-kit/scripts/utils/workspace-identity.ts
./.opencode/skills/system-spec-kit/scripts/utils/validation-utils.ts
./.opencode/skills/system-spec-kit/scripts/utils/task-enrichment.ts
./.opencode/skills/system-spec-kit/scripts/utils/prompt-utils.ts
./.opencode/skills/system-spec-kit/scripts/utils/index.ts
./.opencode/skills/system-spec-kit/scripts/utils/input-normalizer.ts
./.opencode/skills/system-spec-kit/scripts/utils/tool-detection.ts
./.opencode/skills/system-spec-kit/scripts/utils/tool-sanitizer.ts
./.opencode/skills/system-spec-kit/scripts/utils/logger.ts
./.opencode/skills/system-spec-kit/scripts/utils/fact-coercion.ts
./.opencode/skills/system-spec-kit/scripts/utils/path-utils.ts
./.opencode/skills/system-spec-kit/scripts/utils/README.md
./.opencode/skills/system-spec-kit/scripts/utils/data-validator.ts
./.opencode/skills/system-spec-kit/scripts/utils/slug-utils.ts
./.opencode/skills/system-spec-kit/scripts/utils/message-utils.ts
./.opencode/skills/system-spec-kit/scripts/utils/memory-frontmatter.ts
./.opencode/skills/system-spec-kit/scripts/utils/template-structure.js
./.opencode/skills/system-spec-kit/scripts/utils/spec-affinity.ts
./.opencode/skills/system-spec-kit/scripts/utils/file-helpers.ts
./.opencode/skills/system-spec-kit/scripts/utils/phase-classifier.ts
./.opencode/skills/system-spec-kit/scripts/renderers/template-renderer.ts
./.opencode/skills/system-spec-kit/scripts/renderers/index.ts
./.opencode/skills/system-spec-kit/scripts/renderers/README.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/037-placeholder-case-variations/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/037-placeholder-case-variations/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/037-placeholder-case-variations/tasks.md
./.opencode/skills/system-spec-kit/scripts/spec/check-template-staleness.sh
./.opencode/skills/system-spec-kit/scripts/spec/check-completion.sh
./.opencode/skills/system-spec-kit/scripts/spec/calculate-completeness.sh
./.opencode/skills/system-spec-kit/scripts/spec/upgrade-level.sh
./.opencode/skills/system-spec-kit/scripts/spec/check-smart-router.sh
./.opencode/skills/system-spec-kit/scripts/spec/create.sh
./.opencode/skills/system-spec-kit/scripts/spec/test-validation.sh
./.opencode/skills/system-spec-kit/scripts/spec/README.md
./.opencode/skills/system-spec-kit/scripts/spec/progressive-validate.sh
./.opencode/skills/system-spec-kit/scripts/spec/check-placeholders.sh
./.opencode/skills/system-spec-kit/scripts/spec/quality-audit.sh
./.opencode/skills/system-spec-kit/scripts/spec/archive.sh
./.opencode/skills/system-spec-kit/scripts/spec/recommend-level.sh
./.opencode/skills/system-spec-kit/scripts/spec/validate.sh
./.opencode/skills/system-spec-kit/scripts/core/quality-scorer.ts
./.opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts
./.opencode/skills/system-spec-kit/scripts/core/frontmatter-editor.ts
./.opencode/skills/system-spec-kit/scripts/core/workflow-path-utils.ts
./.opencode/skills/system-spec-kit/scripts/core/subfolder-utils.ts
./.opencode/skills/system-spec-kit/scripts/core/config.ts
./.opencode/skills/system-spec-kit/scripts/core/find-predecessor-memory.ts
./.opencode/skills/system-spec-kit/scripts/core/index.ts
./.opencode/skills/system-spec-kit/scripts/core/title-builder.ts
./.opencode/skills/system-spec-kit/scripts/core/topic-extractor.ts
./.opencode/skills/system-spec-kit/scripts/core/content-cleaner.ts
./.opencode/skills/system-spec-kit/scripts/core/save-context-path.ts
./.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts
./.opencode/skills/system-spec-kit/scripts/core/README.md
./.opencode/skills/system-spec-kit/scripts/graph/backfill-graph-metadata.ts
./.opencode/skills/system-spec-kit/scripts/core/post-save-review.ts
./.opencode/skills/system-spec-kit/scripts/core/quality-gates.ts
./.opencode/skills/system-spec-kit/scripts/core/workflow-accessors.ts
./.opencode/skills/system-spec-kit/scripts/core/workflow.ts
./.opencode/skills/system-spec-kit/scripts/core/tree-thinning.ts
./.opencode/skills/system-spec-kit/scripts/core/alignment-validator.ts
./.opencode/skills/system-spec-kit/scripts/check-links.sh
./.opencode/skills/system-spec-kit/scripts/migrate-deep-research-paths.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/015-anchors-no-memory/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/015-anchors-no-memory/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/015-anchors-no-memory/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/015-anchors-no-memory/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/setup/rebuild-native-modules.sh
./.opencode/skills/system-spec-kit/scripts/setup/check-native-modules.sh
./.opencode/skills/system-spec-kit/scripts/setup/check-prerequisites.sh
./.opencode/skills/system-spec-kit/scripts/setup/README.md
./.opencode/skills/system-spec-kit/scripts/setup/install.sh
./.opencode/skills/system-spec-kit/scripts/setup/record-node-version.js
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/notes.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/research.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/047-with-extra-files/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/009-valid-priority-tags/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/009-valid-priority-tags/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/009-valid-priority-tags/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/009-valid-priority-tags/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/009-valid-priority-tags/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/041-priority-inline-tags/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/041-priority-inline-tags/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/041-priority-inline-tags/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/041-priority-inline-tags/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/041-priority-inline-tags/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/008-invalid-anchors/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/008-invalid-anchors/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/008-invalid-anchors/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/025-level-out-of-range/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/025-level-out-of-range/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/025-level-out-of-range/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/025-level-out-of-range/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/008-invalid-anchors/memory/context.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/055-template-missing-header/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/021-invalid-priority-tags/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/021-invalid-priority-tags/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/021-invalid-priority-tags/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/021-invalid-priority-tags/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/021-invalid-priority-tags/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/056-template-reordered-header/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/022-level-explicit/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/022-level-explicit/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/022-level-explicit/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/022-level-explicit/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/022-level-explicit/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/016-evidence-all-patterns/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/016-evidence-all-patterns/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/016-evidence-all-patterns/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/016-evidence-all-patterns/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/016-evidence-all-patterns/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/post-save-review.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/semantic-signal-golden.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/validation-v13-v14-v12.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-phase-command-workflows.js
./.opencode/skills/system-spec-kit/scripts/tests/parent-spec-resolver.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/auto-detection-fixes.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-phase-system.sh
./.opencode/skills/system-spec-kit/scripts/tests/title-builder-no-filename-suffix.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/graph-aware-stop.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-review-contract-parity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/utils-regressions.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/graph-upgrades-regression-floor.vitest.ts.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/validate-memory-quality-v8-regex-narrow.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/optimizer-replay-corpus.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/workspace-identity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/import-policy-rules.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-utils.js
./.opencode/skills/system-spec-kit/scripts/tests/test-folder-detector-functional.js
./.opencode/skills/system-spec-kit/scripts/tests/tree-thinning.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-embeddings-behavioral.js
./.opencode/skills/system-spec-kit/scripts/tests/contamination-filter.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/workflow-session-id.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-cross-layer.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/manual-playbook-runner.ts
./.opencode/skills/system-spec-kit/scripts/tests/optimizer-search.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/phase-status-from-payload.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/trigger-phrase-filter.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/outsourced-agent-handback-docs.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-upgrade-level.sh
./.opencode/skills/system-spec-kit/scripts/tests/nested-changelog.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-contradictions.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-stress.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-bug-regressions.js
./.opencode/skills/system-spec-kit/scripts/tests/test-frontmatter-backfill.js
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/decision-record.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/045-valid-sections/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/043-priority-mixed-format/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/043-priority-mixed-format/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/043-priority-mixed-format/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/043-priority-mixed-format/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/043-priority-mixed-format/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/005-unfilled-placeholders/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/005-unfilled-placeholders/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/005-unfilled-placeholders/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/039-placeholder-in-inline-code/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/039-placeholder-in-inline-code/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/039-placeholder-in-inline-code/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/039-placeholder-in-inline-code/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/028-level3-missing-decision/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/028-level3-missing-decision/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/028-level3-missing-decision/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/028-level3-missing-decision/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/032-missing-plan/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/032-missing-plan/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/020-evidence-wrong-suffix/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/020-evidence-wrong-suffix/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/020-evidence-wrong-suffix/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/020-evidence-wrong-suffix/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/020-evidence-wrong-suffix/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/026-level-zero/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/026-level-zero/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/026-level-zero/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/026-level-zero/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/057-template-missing-anchor/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/empty-child/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/mixed-levels/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/memory/context.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/051-with-templates/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/059-checklist-h1-invalid/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/README.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/051-with-templates/templates/template.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/051-with-templates/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/051-with-templates/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/051-with-templates/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/002-implement/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/002-implement/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/002-implement/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/033-missing-plan-sections/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/033-missing-plan-sections/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/033-missing-plan-sections/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/033-missing-plan-sections/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/memory/invalid.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/memory/valid.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/decision-record.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/063-template-compliant-level3/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/038-placeholder-in-codeblock/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/038-placeholder-in-codeblock/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/038-placeholder-in-codeblock/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/038-placeholder-in-codeblock/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/001-design/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/001-design/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/001-design/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/broken-links/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/031-missing-evidence/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/one-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/034-missing-spec-sections/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/019-evidence-p2-exempt/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/019-evidence-p2-exempt/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/019-evidence-p2-exempt/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/019-evidence-p2-exempt/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/019-evidence-p2-exempt/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/031-missing-evidence/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/031-missing-evidence/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/031-missing-evidence/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/031-missing-evidence/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/034-missing-spec-sections/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/034-missing-spec-sections/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/034-missing-spec-sections/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/test-phase-system.js
./.opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/task-enrichment.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/description-enrichment.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-bug-fixes.js
./.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase2-pr3.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/trigger-phrase-sanitizer.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-validation-system.js
./.opencode/skills/system-spec-kit/scripts/tests/validation-rule-metadata.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-naming-migration.js
./.opencode/skills/system-spec-kit/scripts/tests/progressive-validation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/warm-start-bundle-benchmark.vitest.ts.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-loop-wave-executor.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/optimizer-replay-runner.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-learn-command-docs.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/trigger-phrase-no-prose-bigrams.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/tool-sanitizer.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-template-comprehensive.js
./.opencode/skills/system-spec-kit/scripts/tests/manual-playbook-runner.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-integration.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/quality-scorer-calibration.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-retry-manager-behavioral.js
./.opencode/skills/system-spec-kit/scripts/tests/save-context-paths.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-review-reducer-schema.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/phase-classification.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-alignment-validator.js
./.opencode/skills/system-spec-kit/scripts/tests/workflow-canonical-save-metadata.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/evidence-marker-audit.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-validation-extended.sh
./.opencode/skills/system-spec-kit/scripts/tests/test-subfolder-resolution.js
./.opencode/skills/system-spec-kit/scripts/tests/quality-scorer-disambiguation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/collect-session-data.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase3-pr6.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-scripts-modules.js
./.opencode/skills/system-spec-kit/scripts/tests/optimizer-promote.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/manual-playbook-runner.js
./.opencode/skills/system-spec-kit/scripts/tests/input-normalizer-unit.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-phase-validation.js
./.opencode/skills/system-spec-kit/scripts/tests/graph-metadata-backfill.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-cleanup-orphaned-vectors.js
./.opencode/skills/system-spec-kit/scripts/tests/trigger-phrase-sanitizer-manual-preservation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/canonical-sources-auto-discovery.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/continuity-freshness.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-loop-wave-resume.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-embeddings-factory.js
./.opencode/skills/system-spec-kit/scripts/tests/test-export-contracts.js
./.opencode/skills/system-spec-kit/scripts/tests/canonical-save-validation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/backfill-frontmatter.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/content-filter-parity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-pipeline-regressions.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/session-enrichment.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/template-structure.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/distinguishing-evidence-dedup.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/graph-convergence-parity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/gate-3-classifier.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/spec-affinity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/backfill-research-metadata.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/generate-context-cli-authority.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-memory-quality-lane.js
./.opencode/skills/system-spec-kit/scripts/tests/decision-confidence.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/validate-memory-quality-v12-normalization.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-template-system.js
./.opencode/skills/system-spec-kit/scripts/tests/normalizer-lint.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-signals.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/review-research-paths.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/alignment-drift-fixture-preservation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/session-isolation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/template-mustache-sections.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/project-phase-e2e.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-research-reducer.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/graph-metadata-refresh.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/evidence-marker-lint.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/overview-boundary-safe-truncation.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-template-contract.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase6-migration.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-loop-wave-merge.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/deep-loop-wave-planner.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-extractors-loaders.js
./.opencode/skills/system-spec-kit/scripts/tests/test-validation.sh
./.opencode/skills/system-spec-kit/scripts/tests/yaml-intake-event-payloads.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/optimizer-rubric.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test_dual_threshold.py
./.opencode/skills/system-spec-kit/scripts/tests/detector-regression-floor.vitest.ts.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/README.md
./.opencode/skills/system-spec-kit/scripts/tests/progressive-validation.vitest.js
./.opencode/skills/system-spec-kit/scripts/tests/deep-research-contract-parity.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-ast-parser.js
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-core.vitest.ts
./.opencode/skills/system-spec-kit/scripts/test-fixtures/023-level-inferred/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/023-level-inferred/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/023-level-inferred/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/023-level-inferred/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/010-valid-evidence/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/010-valid-evidence/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/010-valid-evidence/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/010-valid-evidence/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/010-valid-evidence/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/049-with-rule-order/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/049-with-rule-order/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/049-with-rule-order/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/049-with-rule-order/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/036-multiple-placeholders/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/036-multiple-placeholders/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/036-multiple-placeholders/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/deep-loop-replay/028/sample-iterations.jsonl
./.opencode/skills/system-spec-kit/scripts/test-fixtures/002-valid-level1/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/002-valid-level1/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/002-valid-level1/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/002-valid-level1/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/002-implement/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/002-implement/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/002-implement/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/deep-loop-replay/040/sample-iterations.jsonl
./.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/memory/context.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/001-design/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/001-design/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/001-design/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/valid-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/006-missing-required-files/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/006-missing-required-files/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-2/named-phases/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/042-priority-lowercase/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/042-priority-lowercase/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/042-priority-lowercase/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/042-priority-lowercase/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/042-priority-lowercase/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/three-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-2/multi-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/017-evidence-case-variations/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/017-evidence-case-variations/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/017-evidence-case-variations/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/017-evidence-case-variations/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/017-evidence-case-variations/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-2/single-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/058-template-reordered-anchor/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/001-design/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/001-design/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/missing-child-docs/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-2/error-cases/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/manual-playbook-fixture.js
./.opencode/skills/system-spec-kit/scripts/tests/file-capture-structured-mode.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/ascii-boxes.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/architecture-boundary-enforcement.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-integration.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/review-reducer-fail-closed.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/test-five-checks.js
./.opencode/skills/system-spec-kit/scripts/tests/session-cached-consumer.vitest.ts.test.ts
./.opencode/skills/system-spec-kit/scripts/tests/truncate-on-word-boundary.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/coverage-graph-convergence.vitest.ts
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/flat-spec/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/061-template-optional-absent/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/title-fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/no-children/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/no-children/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/no-children/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-validation/no-children/fixture.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/062-template-compliant-level1/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/062-template-compliant-level1/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/062-template-compliant-level1/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/062-template-compliant-level1/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/decision-record.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/review/review-report.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/054-template-extra-header/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/post-save-render/test-packet/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/session-data-factory.ts
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/manual-playbook-fixture.ts
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP7-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC3-path-fragment.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP-clean.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/deep-loop-optimizer/sample-040-corpus.jsonl
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/deep-loop-optimizer/sample-config-candidate.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/deep-loop-optimizer/sample-config-baseline.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/generate-phase1-5-dataset.ts
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-004a-in-progress.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP4-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC4-importance-tier.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-broken-D4.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-003-canonical-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP3-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC3-synthetic-bigrams.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-005b-clean.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-broken-D8.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-002b-proposition-overlap.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC3-standalone-stopwords.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP2-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP5-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-004a-completed-closure-triple.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC1-truncation.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/027-level2-missing-checklist/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/027-level2-missing-checklist/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/027-level2-missing-checklist/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/migration/F-MIG-003-title-overlap.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/migration/F-MIG-002-clean.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/migration/F-MIG-001-junk-residual.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC3-happy-path.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC2-authored-decisions.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP1-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-005a-anchor-scaffolding.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-CHECK-DUP6-trigger.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-001-trigger-cluster.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC3-suspicious-prefix.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-004b-last-clipping.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-broken-D7.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-003-tree-thinning-files.json
./.opencode/skills/system-spec-kit/scripts/test-fixtures/046-with-config/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/046-with-config/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/046-with-config/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/046-with-config/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/046-with-config/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/050-with-scratch/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/050-with-scratch/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/miss/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/002-phase-2/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/002-phase-2/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/002-phase-2/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/checklist.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/050-with-scratch/scratch/temp-notes.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/050-with-scratch/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/050-with-scratch/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/no-risk-factors/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/miss/memory/06-04-26_09-00__orphan-notes.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/001-phase-1/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/001-phase-1/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-2phase-default/001-phase-1/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/decision-record.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/checklist.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/004-valid-level3/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-maximum/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-maximum/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/ambiguity/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/decision-record.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/checklist.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/014-anchors-nested/spec.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/014-anchors-nested/plan.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/014-anchors-nested/tasks.md
./.opencode/skills/system-spec-kit/scripts/test-fixtures/014-anchors-nested/implementation-summary.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-blocked-by-level/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-blocked-by-level/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/ambiguity/memory/06-04-26_09-00__candidate-b.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/ambiguity/memory/06-04-26_09-00__candidate-a.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/003-verify/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/003-verify/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/003-verify/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/extreme-scale/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/boundary/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/hit/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-high/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-high/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-minimum/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/phase-minimum/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/001-design/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/001-design/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/001-design/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/hit/memory/06-04-26_12-30__project-notes.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC5-lineage/hit/memory/06-04-26_12-05__deep-research-run-8.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-005b-frontmatter-mirror.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-broken-D1.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-DUP-002a-blank-observation-titles.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC8-clean.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC6-provenance.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality/F-AC2-degraded-fallback.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/below-threshold/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/no-phase/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/no-phase/fixture.json
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/002-build/spec.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/002-build/plan.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-creation/expected-3phase-named/002-build/tasks.md
./.opencode/skills/system-spec-kit/scripts/tests/fixtures/phase-detection/above-threshold/fixture.json
./.opencode/specs/system-spec-kit/z_archive/020-mcp-working-memory-hybrid-rag/scratch/graphrag-hybrid/scripts/verify_db_structure.py
./.opencode/specs/system-spec-kit/z_archive/020-mcp-working-memory-hybrid-rag/scratch/graphrag-hybrid/scripts/import_docs.py
./.opencode/specs/system-spec-kit/z_archive/020-mcp-working-memory-hybrid-rag/scratch/graphrag-hybrid/scripts/index.md
./.opencode/specs/system-spec-kit/z_archive/020-mcp-working-memory-hybrid-rag/scratch/graphrag-hybrid/scripts/query_demo.py

exec
/bin/zsh -lc "find .opencode/skills/system-spec-kit -maxdepth 4 \\( -iname '*memory*' -o -path '*/references/memory/*' -o -path '*/mcp_server/handlers/memory*' -o -path '*/scripts/memory/*' \\) -print | sort" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/01-unified-context-retrieval-memorycontext.md
.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/02-semantic-and-lexical-search-memorysearch.md
.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/03-trigger-phrase-matching-memorymatchtriggers.md
.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/09-tool-result-extraction-to-working-memory.md
.opencode/skills/system-spec-kit/feature_catalog/01--retrieval/10-fast-delegated-search-memory-quick-search.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/01-memory-indexing-memorysave.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/02-memory-metadata-update-memoryupdate.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/03-single-and-folder-delete-memorydelete.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/04-tier-based-bulk-deletion-memorybulkdelete.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/05-validation-feedback-memoryvalidate.md
.opencode/skills/system-spec-kit/feature_catalog/02--mutation/10-per-memory-history-log.md
.opencode/skills/system-spec-kit/feature_catalog/03--discovery/01-memory-browser-memorylist.md
.opencode/skills/system-spec-kit/feature_catalog/03--discovery/02-system-statistics-memorystats.md
.opencode/skills/system-spec-kit/feature_catalog/03--discovery/03-health-diagnostics-memoryhealth.md
.opencode/skills/system-spec-kit/feature_catalog/04--maintenance/01-workspace-scanning-and-indexing-memoryindexscan.md
.opencode/skills/system-spec-kit/feature_catalog/05--lifecycle/08-constitutional-memory-end-to-end-lifecycle.md
.opencode/skills/system-spec-kit/feature_catalog/06--analysis/01-causal-edge-creation-memorycausallink.md
.opencode/skills/system-spec-kit/feature_catalog/06--analysis/02-causal-graph-statistics-memorycausalstats.md
.opencode/skills/system-spec-kit/feature_catalog/06--analysis/03-causal-edge-deletion-memorycausalunlink.md
.opencode/skills/system-spec-kit/feature_catalog/06--analysis/04-causal-chain-tracing-memorydriftwhy.md
.opencode/skills/system-spec-kit/feature_catalog/06--analysis/07-learning-history-memorygetlearninghistory.md
.opencode/skills/system-spec-kit/feature_catalog/08--bug-fixes-and-data-integrity/11-working-memory-timestamp-fix.md
.opencode/skills/system-spec-kit/feature_catalog/09--evaluation-and-measurement/17-memory-roadmap-baseline-snapshot.md
.opencode/skills/system-spec-kit/feature_catalog/10--graph-signal-activation/08-graph-and-cognitive-memory-fixes.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/01-verify-fix-verify-memory-quality-loop.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/07-smarter-memory-content-generation.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/11-content-aware-memory-filename-generation.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/16-dry-run-preflight-for-memory-save.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/17-outsourced-agent-memory-capture.md
.opencode/skills/system-spec-kit/feature_catalog/13--memory-quality-and-indexing/28-memory-causal-trust-display.md
.opencode/skills/system-spec-kit/feature_catalog/14--pipeline-architecture/02-mpab-chunk-to-memory-aggregation.md
.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/01-dual-scope-memory-auto-surface.md
.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/02-constitutional-memory-as-expert-knowledge-injection.md
.opencode/skills/system-spec-kit/feature_catalog/15--retrieval-enhancements/05-memory-summary-search-channel.md
.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/13-constitutional-memory-manager-command.md
.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/25-memory-maintenance-and-migration-clis.md
.opencode/skills/system-spec-kit/feature_catalog/16--tooling-and-scripts/33-memory-quality-kpi-reporting.md
.opencode/skills/system-spec-kit/feature_catalog/18--ux-hooks/02-memory-health-autorepair-metadata.md
.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/04-4-memory-and-storage.md
.opencode/skills/system-spec-kit/feature_catalog/19--feature-flag-reference/11-memory-roadmap-capability-flags.md
.opencode/skills/system-spec-kit/feature_catalog/20--remediation-revalidation/02-memory-health-auto-repair.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/001-unified-context-retrieval-memory-context.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/002-semantic-and-lexical-search-memory-search.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/002-targeted-memory-lookup.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/003-trigger-phrase-matching-memory-match-triggers.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/185-memory-search-command-routing.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/187-quick-search-memory-quick-search.md
.opencode/skills/system-spec-kit/manual_testing_playbook/01--retrieval/189-tool-result-extraction-to-working-memory.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/006-memory-indexing-memory-save.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/007-memory-metadata-update-memory-update.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/008-feature-09-direct-manual-scenario-per-memory-history-log.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/008-single-and-folder-delete-memory-delete.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/009-tier-based-bulk-deletion-memory-bulk-delete.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/010-validation-feedback-memory-validate.md
.opencode/skills/system-spec-kit/manual_testing_playbook/02--mutation/101-memory-delete-confirm-schema-tightening.md
.opencode/skills/system-spec-kit/manual_testing_playbook/03--discovery/011-memory-browser-memory-list.md
.opencode/skills/system-spec-kit/manual_testing_playbook/03--discovery/012-system-statistics-memory-stats.md
.opencode/skills/system-spec-kit/manual_testing_playbook/03--discovery/013-health-diagnostics-memory-health.md
.opencode/skills/system-spec-kit/manual_testing_playbook/04--maintenance/014-workspace-scanning-and-indexing-memory-index-scan.md
.opencode/skills/system-spec-kit/manual_testing_playbook/06--analysis/019-causal-edge-creation-memory-causal-link.md
.opencode/skills/system-spec-kit/manual_testing_playbook/06--analysis/020-causal-graph-statistics-memory-causal-stats.md
.opencode/skills/system-spec-kit/manual_testing_playbook/06--analysis/021-causal-edge-deletion-memory-causal-unlink.md
.opencode/skills/system-spec-kit/manual_testing_playbook/06--analysis/022-causal-chain-tracing-memory-drift-why.md
.opencode/skills/system-spec-kit/manual_testing_playbook/06--analysis/025-learning-history-memory-get-learning-history.md
.opencode/skills/system-spec-kit/manual_testing_playbook/09--evaluation-and-measurement/126-memory-roadmap-baseline-snapshot.md
.opencode/skills/system-spec-kit/manual_testing_playbook/10--graph-signal-activation/081-graph-and-cognitive-memory-fixes.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/005-outsourced-agent-memory-capture-round-trip.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/039-verify-fix-verify-memory-quality-loop-pi-a5.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/045-smarter-memory-content-generation-s1.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/119-memory-filename-uniqueness-ensureuniquememoryfilename.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/133-dry-run-preflight-for-memory-save.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/199-content-aware-memory-filename-generation.md
.opencode/skills/system-spec-kit/manual_testing_playbook/13--memory-quality-and-indexing/203-memory-causal-trust-display.md
.opencode/skills/system-spec-kit/manual_testing_playbook/14--pipeline-architecture/050-mpab-chunk-to-memory-aggregation-r1.md
.opencode/skills/system-spec-kit/manual_testing_playbook/15--retrieval-enhancements/055-dual-scope-memory-auto-surface-tm-05.md
.opencode/skills/system-spec-kit/manual_testing_playbook/15--retrieval-enhancements/056-constitutional-memory-as-expert-knowledge-injection-pi-a4.md
.opencode/skills/system-spec-kit/manual_testing_playbook/15--retrieval-enhancements/059-memory-summary-search-channel-r8.md
.opencode/skills/system-spec-kit/manual_testing_playbook/15--retrieval-enhancements/093-implemented-memory-summary-generation-r8.md
.opencode/skills/system-spec-kit/manual_testing_playbook/16--tooling-and-scripts/147-constitutional-memory-manager-command.md
.opencode/skills/system-spec-kit/manual_testing_playbook/16--tooling-and-scripts/149-rendered-memory-template-contract.md
.opencode/skills/system-spec-kit/manual_testing_playbook/16--tooling-and-scripts/186-memory-manage-command-routing.md
.opencode/skills/system-spec-kit/manual_testing_playbook/16--tooling-and-scripts/239-memory-maintenance-and-migration-clis.md
.opencode/skills/system-spec-kit/manual_testing_playbook/16--tooling-and-scripts/247-memory-quality-kpi-reporting.md
.opencode/skills/system-spec-kit/manual_testing_playbook/18--ux-hooks/210-memory-health-autorepair-metadata.md
.opencode/skills/system-spec-kit/manual_testing_playbook/19--feature-flag-reference/031-4-memory-and-storage.md
.opencode/skills/system-spec-kit/manual_testing_playbook/19--feature-flag-reference/125-memory-roadmap-capability-flags.md
.opencode/skills/system-spec-kit/manual_testing_playbook/20--remediation-revalidation/226-memory-health-auto-repair.md
.opencode/skills/system-spec-kit/mcp_server/database/memory.db
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-bulk-delete.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-bulk-delete.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-bulk-delete.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-bulk-delete.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-context.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-context.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-context.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-context.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-delete.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-delete.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-delete.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-delete.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-health.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-health.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-health.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-health.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-list.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-list.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-list.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-list.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-stats.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-stats.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-stats.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-stats.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-types.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-types.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-types.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-types.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-update.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-update.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-update.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-update.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-utils.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-utils.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-utils.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud-utils.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-crud.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-alias.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-alias.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-alias.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-alias.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-discovery.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-discovery.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-discovery.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index-discovery.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-index.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-ingest.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-ingest.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-ingest.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-ingest.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-save.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-save.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-save.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-save.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-search.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-search.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-search.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-search.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-triggers.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-triggers.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-triggers.js
.opencode/skills/system-spec-kit/mcp_server/dist/handlers/memory-triggers.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/hooks/memory-surface.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/hooks/memory-surface.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/hooks/memory-surface.js
.opencode/skills/system-spec-kit/mcp_server/dist/hooks/memory-surface.js.map
.opencode/skills/system-spec-kit/mcp_server/dist/tools/memory-tools.d.ts
.opencode/skills/system-spec-kit/mcp_server/dist/tools/memory-tools.d.ts.map
.opencode/skills/system-spec-kit/mcp_server/dist/tools/memory-tools.js
.opencode/skills/system-spec-kit/mcp_server/dist/tools/memory-tools.js.map
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-bulk-delete.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-delete.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-health.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-list.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-stats.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-types.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-update.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud-utils.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-crud.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index-alias.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index-discovery.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-index.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-ingest.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/memory-triggers.ts
.opencode/skills/system-spec-kit/mcp_server/handlers/save/atomic-index-memory.ts
.opencode/skills/system-spec-kit/mcp_server/hooks/memory-surface.ts
.opencode/skills/system-spec-kit/mcp_server/lib/cognitive/working-memory.ts
.opencode/skills/system-spec-kit/mcp_server/lib/config/memory-types.ts
.opencode/skills/system-spec-kit/mcp_server/lib/eval/memory-state-baseline.ts
.opencode/skills/system-spec-kit/mcp_server/lib/parsing/memory-parser.ts
.opencode/skills/system-spec-kit/mcp_server/lib/search/memory-summaries.ts
.opencode/skills/system-spec-kit/mcp_server/tests/atomic-index-memory.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/checkpoint-working-memory.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-benchmark-memory-search.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-constitutional-memory.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/gate-d-regression-memory-tiers.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-context.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-crud.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-health-edge.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-index-cooldown.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-index.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-ingest-edge.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-ingest.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-list-edge.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-save.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-search.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-stats-edge.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/handler-memory-triggers.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory
.opencode/skills/system-spec-kit/mcp_server/tests/memory-context-eval-channels.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-context-session-state.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-context.resume-gate-d.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-context.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-crud-extended.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-crud-update-constitutional-guard.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-delete-cascade.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-governance.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-lineage-backfill.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-lineage-state.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser-extended.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-parser.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-roadmap-flags.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-dedup-order.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-extended.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-fallback-fingerprint.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-index-scope.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-integration.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-pipeline-enforcement.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-planner-first.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save-ux-regressions.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-save.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-eval-channels.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-integration.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-quality-filter.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-search-ux-hooks.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-state-baseline.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-summaries.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-tools.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/memory-types.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/workflow-memory-tracking.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/working-memory-event-decay.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tests/working-memory.vitest.ts
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts
.opencode/skills/system-spec-kit/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts
.opencode/skills/system-spec-kit/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts
.opencode/skills/system-spec-kit/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts
.opencode/skills/system-spec-kit/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts
.opencode/skills/system-spec-kit/references/cli/memory_handback.md
.opencode/skills/system-spec-kit/references/memory
.opencode/skills/system-spec-kit/references/memory/embedding_resilience.md
.opencode/skills/system-spec-kit/references/memory/epistemic_vectors.md
.opencode/skills/system-spec-kit/references/memory/memory_system.md
.opencode/skills/system-spec-kit/references/memory/save_workflow.md
.opencode/skills/system-spec-kit/references/memory/trigger_config.md
.opencode/skills/system-spec-kit/scripts/core/find-predecessor-memory.ts
.opencode/skills/system-spec-kit/scripts/core/memory-indexer.ts
.opencode/skills/system-spec-kit/scripts/core/memory-metadata.ts
.opencode/skills/system-spec-kit/scripts/dist/core/find-predecessor-memory.d.ts
.opencode/skills/system-spec-kit/scripts/dist/core/find-predecessor-memory.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/core/find-predecessor-memory.js
.opencode/skills/system-spec-kit/scripts/dist/core/find-predecessor-memory.js.map
.opencode/skills/system-spec-kit/scripts/dist/core/memory-indexer.d.ts
.opencode/skills/system-spec-kit/scripts/dist/core/memory-indexer.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/core/memory-indexer.js
.opencode/skills/system-spec-kit/scripts/dist/core/memory-indexer.js.map
.opencode/skills/system-spec-kit/scripts/dist/core/memory-metadata.d.ts
.opencode/skills/system-spec-kit/scripts/dist/core/memory-metadata.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/core/memory-metadata.js
.opencode/skills/system-spec-kit/scripts/dist/core/memory-metadata.js.map
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-frontmatter.d.ts
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-frontmatter.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-frontmatter.js
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-frontmatter.js.map
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-telemetry.d.ts
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-telemetry.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-telemetry.js
.opencode/skills/system-spec-kit/scripts/dist/lib/memory-telemetry.js.map
.opencode/skills/system-spec-kit/scripts/dist/lib/validate-memory-quality.d.ts
.opencode/skills/system-spec-kit/scripts/dist/lib/validate-memory-quality.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/lib/validate-memory-quality.js
.opencode/skills/system-spec-kit/scripts/dist/lib/validate-memory-quality.js.map
.opencode/skills/system-spec-kit/scripts/dist/memory
.opencode/skills/system-spec-kit/scripts/dist/memory/validate-memory-quality.d.ts
.opencode/skills/system-spec-kit/scripts/dist/memory/validate-memory-quality.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/memory/validate-memory-quality.js
.opencode/skills/system-spec-kit/scripts/dist/memory/validate-memory-quality.js.map
.opencode/skills/system-spec-kit/scripts/dist/utils/memory-frontmatter.d.ts
.opencode/skills/system-spec-kit/scripts/dist/utils/memory-frontmatter.d.ts.map
.opencode/skills/system-spec-kit/scripts/dist/utils/memory-frontmatter.js
.opencode/skills/system-spec-kit/scripts/dist/utils/memory-frontmatter.js.map
.opencode/skills/system-spec-kit/scripts/lib/memory-frontmatter.ts
.opencode/skills/system-spec-kit/scripts/lib/memory-telemetry.ts
.opencode/skills/system-spec-kit/scripts/lib/validate-memory-quality.ts
.opencode/skills/system-spec-kit/scripts/memory
.opencode/skills/system-spec-kit/scripts/memory/README.md
.opencode/skills/system-spec-kit/scripts/memory/ast-parser.ts
.opencode/skills/system-spec-kit/scripts/memory/backfill-frontmatter.ts
.opencode/skills/system-spec-kit/scripts/memory/backfill-research-metadata.ts
.opencode/skills/system-spec-kit/scripts/memory/cleanup-index-scope-violations.ts
.opencode/skills/system-spec-kit/scripts/memory/cleanup-orphaned-vectors.ts
.opencode/skills/system-spec-kit/scripts/memory/fix-memory-h1.mjs
.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts
.opencode/skills/system-spec-kit/scripts/memory/migrate-trigger-phrase-residual.ts
.opencode/skills/system-spec-kit/scripts/memory/rank-memories.ts
.opencode/skills/system-spec-kit/scripts/memory/rebuild-auto-entities.ts
.opencode/skills/system-spec-kit/scripts/memory/reindex-embeddings.ts
.opencode/skills/system-spec-kit/scripts/memory/validate-memory-quality.ts
.opencode/skills/system-spec-kit/scripts/test-fixtures/007-valid-anchors/memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/008-invalid-anchors/memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/011-anchors-duplicate-ids/memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/012-anchors-empty-memory/memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/013-anchors-multiple-files/memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/015-anchors-no-memory
.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders
.opencode/skills/system-spec-kit/scripts/test-fixtures/048-with-memory-placeholders/memory
.opencode/skills/system-spec-kit/scripts/tests/fixtures/memory-quality
.opencode/skills/system-spec-kit/scripts/tests/memory-learn-command-docs.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-pipeline-regressions.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase2-pr3.test.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase3-pr6.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-quality-phase6-migration.test.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-sufficiency.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/memory-template-contract.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/runtime-memory-inputs.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/test-memory-quality-lane.js
.opencode/skills/system-spec-kit/scripts/tests/validate-memory-quality-v12-normalization.vitest.ts
.opencode/skills/system-spec-kit/scripts/tests/validate-memory-quality-v8-regex-narrow.vitest.ts
.opencode/skills/system-spec-kit/scripts/utils/memory-frontmatter.ts
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-sufficiency.d.ts
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-sufficiency.d.ts.map
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-sufficiency.js
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-sufficiency.js.map
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-template-contract.d.ts
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-template-contract.d.ts.map
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-template-contract.js
.opencode/skills/system-spec-kit/shared/dist/parsing/memory-template-contract.js.map
.opencode/skills/system-spec-kit/shared/parsing/memory-sufficiency.ts
.opencode/skills/system-spec-kit/shared/parsing/memory-template-contract.ts

exec
/bin/zsh -lc "sed -n '1,220p' .opencode/skills/system-spec-kit/references/memory/save_workflow.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
exec
/bin/zsh -lc "sed -n '1,220p' .opencode/skills/system-spec-kit/references/memory/memory_system.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: Memory System Reference
description: Detailed documentation for Spec Kit Memory MCP tools, behavior notes, and configuration
---

# Memory System Reference - MCP Tools & Behavior

Spec Kit Memory MCP tools, behavior notes, and configuration options.

Current baseline: schema v23 (`document_type`, `spec_level`), 3 indexed content sources, 7 intent types, and `includeSpecDocs: true` by default.

---

<!-- ANCHOR:overview -->
## 1. OVERVIEW

The Spec Kit Memory system provides context preservation across sessions through vector-based semantic search and packet-first continuity. Phase 018 makes `handover.md -> _memory.continuity -> spec docs` the canonical recovery chain; retired `[spec]/memory/*.md` artifacts are no longer produced at save time and only matter when older packets still contain them. This reference covers MCP tool behavior, importance tiers, decay scoring, and configuration.

When a save mutates indexed state, the runtime also updates the `DB_UPDATED_FILE` marker from `mcp_server/core/config.ts`. Long-lived MCP processes poll that marker with `checkDatabaseUpdated()` so canonical-doc writes become visible without restarting the server.

### Architecture

| Component | Location | Purpose |
|-----------|----------|---------|
| MCP Server | `mcp_server/context-server.ts` | Spec Kit Memory MCP with vector search |
| Database | `mcp_server/dist/database/context-index.sqlite` | SQLite with FTS5 + vector embeddings (canonical runtime path; `mcp_server/database/context-index.sqlite` is a compatibility symlink) |
| Constitutional | `constitutional/` | Always-surface rules (Gate 3 enforcement) |
| Scripts | runtime `scripts/dist/memory/generate-context.js` (source: `scripts/memory/generate-context.ts`) | Canonical continuity save entrypoint for packet docs |

### Core Capabilities

- **Semantic search** - Find indexed spec-doc records by meaning, not just keywords
- **Importance tiers** - Six-level system for prioritizing context
- **Decay scoring** - Recent indexed spec-doc records rank higher than older ones
- **Checkpoints** - Save/restore indexed-continuity state snapshots
- **Constitutional tier** - Critical rules that always surface

### Indexable Content Sources

The indexed-continuity store indexes content from two active sources, plus a retired-compatibility row preserved for read-side retrieval against historical packets:

| Source | Location Pattern | Memory Type | Default Tier | Discovery |
|--------|-----------------|-------------|--------------|-----------|
| **Spec Documents** | `specs/**/*.md` and `.opencode/specs/**/*.md` | Per-type (spec, plan, tasks, etc.) | `normal` | `findSpecDocuments()` |
| **Constitutional Rules** | `.opencode/skills/*/constitutional/*.md` | `meta-cognitive` | `constitutional` | `findConstitutionalFiles()` |
| **Retired Compatibility Artifacts** | Older `specs/*/memory/*.{md,txt}` files already present in historical packets | Varies (episodic, procedural, etc.) | `normal` | Historical compatibility only |

**Content Source Behavior:**

- **Spec Documents** — Canonical packet continuity source. Recovery should read `handover.md`, then `_memory.continuity`, then the rest of the packet docs before widening into search.
- **Constitutional Rules** — Always-surface critical rules. Injected at top of every search result. No decay.
- **Retired Compatibility Artifacts** — Older session notes may still exist in historical packets, but save workflows no longer produce them and operators should not treat them as an active surface.

**Spec Document Indexing Pipeline:**
1. `findSpecDocuments()` walks both supported specs roots and discovers supported doc filenames
2. `isMemoryFile()` validates each document as an indexable file
3. `extractDocumentType()` infers `document_type` (spec/plan/tasks/etc.) for scoring
4. Documents are indexed alongside memory and constitutional files
5. `createSpecDocumentChain()` links lifecycle docs for causal traversal

---

<!-- /ANCHOR:overview -->
<!-- ANCHOR:importance-tiers -->
## 2. IMPORTANCE TIERS

Six-tier system for prioritizing memory relevance:

| Tier | Weight | searchBoost | Purpose | Auto-Surface |
|------|--------|-------------|---------|--------------|
| **Constitutional** | 1.0 | 3.0 | Critical rules that ALWAYS apply | Yes (top of every search) |
| **Critical** | 1.0 | 2.0 | High-importance context | Yes (high relevance) |
| **Important** | 0.8 | 1.5 | Significant decisions/context | Relevance-based |
| **Normal** | 0.5 | 1.0 | Standard session context | Relevance-based |
| **Temporary** | 0.3 | 0.5 | Short-term notes | Relevance-based |
| **Deprecated** | 0.1 | 0.0 | Outdated (kept for history) | Never (excluded from search) |

**searchBoost Multipliers:** Applied to search scores to prioritize higher tiers:
- Constitutional memories get 3x boost in search ranking
- Critical memories get 2x boost
- Important memories get 1.5x boost
- Normal memories have no boost (1.0x)
- Temporary and Deprecated get reduced visibility (0.5x and 0x respectively)

### Constitutional Tier Behavior

- Stored in `constitutional/` folder
- Auto-indexed on MCP server startup
- **ALWAYS** surface at top of search results, regardless of query
- Used for gate enforcement (e.g., "always ask spec folder question")
- EXEMPT from decay scoring (always max relevance)

---

<!-- /ANCHOR:importance-tiers -->
<!-- ANCHOR:mcp-tools -->
## 3. MCP TOOLS

> **Note:** MCP tool names use plain names such as `memory_search`, `memory_save`, and `checkpoint_create`.

### Tool Reference (43 tools)

| Layer | Tool | Purpose | Example Use |
|-------|------|---------|-------------|
| L1: Orchestration | `memory_context()` | Unified entry point with intent-aware routing (7 intents) | START HERE for most memory operations |
| L1: Orchestration | `session_resume()` | Resume memory, code graph, and CocoIndex state in one call | Detailed recovery payload after reconnect, or when you want direct merged resume state |
| L1: Orchestration | `session_bootstrap()` | Composite bootstrap combining resume and health checks | Canonical first tool call in a fresh OpenCode-style session or after `/clear` |
| L2: Core | `memory_search()` | Semantic search with vector similarity | Find prior decisions on auth |
| L2: Core | `memory_quick_search()` | Simplified search wrapper for fast lookups | Quick keyword-based retrieval |
| L2: Core | `memory_match_triggers()` | Fast keyword matching (<50ms) with cognitive features | Gate enforcement |
| L2: Core | `memory_save()` | Index a saved continuity artifact or spec doc. Re-generates embedding when **content hash** changes. Title-only changes do not trigger re-embedding. | After generate-context.js |
| L3: Discovery | `memory_list()` | Browse stored spec-doc records with pagination (parent rows by default) | Review session history |
| L3: Discovery | `memory_stats()` | Get memory system statistics with composite scoring | Check index health |
| L3: Discovery | `memory_health()` | Check health status of memory system | Diagnose issues |
| L3: Discovery | `session_health()` | Report session readiness, graph freshness, and priming status | Detect stale session context before continuing |
| L4: Mutation | `memory_delete()` | Delete memory by ID or bulk delete by spec folder | Remove outdated memories |
| L4: Mutation | `memory_update()` | Update memory metadata (title, tier, triggers) | Correct memory properties |
| L4: Mutation | `memory_validate()` | Mark memory as useful/not useful | Confidence scoring |
| L4: Mutation | `memory_bulk_delete()` | Bulk delete memories by spec folder with confirmation | Clean up entire spec folder memories |
| L5: Lifecycle | `checkpoint_create()` | Save named state snapshot | Before risky changes |
| L5: Lifecycle | `checkpoint_list()` | List available checkpoints | Find restore points |
| L5: Lifecycle | `checkpoint_restore()` | Restore from checkpoint | Rollback if needed |
| L5: Lifecycle | `checkpoint_delete()` | Delete a checkpoint | Clean up old snapshots |
| L6: Analysis | `task_preflight()` | Capture epistemic baseline before task execution | Start of implementation work |
| L6: Analysis | `task_postflight()` | Capture epistemic state after task, calculate Learning Index | After completing implementation |
| L6: Analysis | `memory_drift_why()` | Trace causal chain for a spec-doc record ("why was this decided?") | Understand decision lineage |
| L6: Analysis | `memory_causal_link()` | Create causal relationship between two memories | Link decision to its cause |
| L6: Analysis | `memory_causal_stats()` | Get statistics about the causal memory graph | Check causal coverage |
| L6: Analysis | `memory_causal_unlink()` | Remove a causal relationship by edge ID | Clean up incorrect links |
| L6: Analysis | `eval_run_ablation()` | Run ablation study on memory scoring components | Compare scoring strategies |
| L6: Analysis | `eval_reporting_dashboard()` | Generate evaluation and reporting dashboard data | Review system metrics |
| L6: Analysis | `code_graph_query()` | Query structural relationships such as callers, imports, and outlines | Find what calls a symbol or which files import a module |
| L6: Analysis | `code_graph_context()` | Expand CocoIndex or symbol seeds into compact graph neighborhoods | Pull structural context for an LLM prompt |
| L7: Maintenance | `memory_index_scan()` | Bulk scan and index packet docs, constitutional files, and graph metadata | After continuity or spec-doc updates |
| L7: Maintenance | `memory_ingest_start()` | Start async bulk memory ingestion | Import large memory sets |
| L7: Maintenance | `memory_ingest_status()` | Check status of running ingestion job | Monitor import progress |
| L7: Maintenance | `memory_ingest_cancel()` | Cancel a running ingestion job | Stop runaway imports |
| L7: Maintenance | `memory_get_learning_history()` | Get learning history (preflight/postflight records) | Analyze learning patterns |
| L7: Maintenance | `code_graph_scan()` | Build or refresh the structural code graph index | Re-index after branch switches or large code changes |
| L7: Maintenance | `code_graph_status()` | Report code graph freshness and node/edge counts | Check whether the structural index is usable |
| L7: Maintenance | `ccc_status()` | Report CocoIndex availability and index health | Confirm semantic code search is ready |
| L7: Maintenance | `ccc_reindex()` | Trigger incremental or full CocoIndex re-indexing | Refresh semantic search after a refactor |
| L7: Maintenance | `ccc_feedback()` | Submit search-quality feedback for CocoIndex results | Record whether semantic hits were helpful |

### memory_index_scan() Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `specFolder` | string | - | Limit scan to specific spec folder |
| `force` | boolean | false | Force re-index all files (ignore content hash) |
| `includeConstitutional` | boolean | true | Scan `.opencode/skills/*/constitutional/` directories |
| `includeSpecDocs` | boolean | true | Scan for spec folder documents in `.opencode/specs/`. When true, discovers and indexes specs, plans, tasks, decision records, etc. with document-type scoring multipliers (11 types). Also controllable via `SPECKIT_INDEX_SPEC_DOCS` env var. |
| `incremental` | boolean | true | Skip files whose mtime and content hash are unchanged since last index |

---

<!-- /ANCHOR:mcp-tools -->
<!-- ANCHOR:memory-search-behavior -->
## 4. MEMORY_SEARCH() BEHAVIOR

### Parameter Requirements

> **IMPORTANT:** You MUST provide either `query` OR `concepts` parameter. Calling `memory_search({ specFolder: "..." })` without a search parameter will cause an E040 error.

**Required Parameters (one of):**
- `query`: Natural language search query (string)
- `concepts`: Multiple concepts for AND search (array of 2-5 strings)

**Optional Parameters:**
- `specFolder`: Limit search to specific spec folder
- `tenantId` (string, optional): Tenant boundary for governed retrieval
- `userId` (string, optional): User boundary for governed retrieval
- `agentId` (string, optional): Agent boundary for governed retrieval
- `includeContent`: Include full file content in results
- `includeConstitutional`: Include constitutional tier memories
- `anchors`: Array of anchor IDs for targeted section retrieval (token-efficient)
- `tier`: Filter by importance tier
- `limit`: Maximum results to return
- `useDecay`: Apply temporal decay scoring

When operating in shared or multi-actor deployments, always provide scope parameters to prevent cross-scope data exposure.

### Parameter Reference

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | string | One of query/concepts | - | Natural language search query |
| `concepts` | string[] | One of query/concepts | - | 2-5 concepts for AND search (results must match ALL) |
| `specFolder` | string | No | - | Filter to specific spec folder |
| `tenantId` | string | No | - | Tenant boundary for governed retrieval |
| `userId` | string | No | - | User boundary for governed retrieval |
| `agentId` | string | No | - | Agent boundary for governed retrieval |
| `includeConstitutional` | boolean | No | true | Include constitutional memories |
| `includeContent` | boolean | No | false | Embed full file content in results |
| `includeContiguity` | boolean | No | false | Include adjacent memories |
| `anchors` | string[] | No | - | Anchor IDs to extract (e.g., `['summary', 'decisions']`) |
| `tier` | string | No | - | Filter by importance tier |
| `limit` | number | No | 10 | Maximum results to return |
| `useDecay` | boolean | No | true | Apply temporal decay scoring |

### Intent-Aware Retrieval (7 Intents)

The system detects query intent and applies task-specific search weights. Seven intent types are supported:

| Intent | Weight Adjustments |
|--------|-------------------|
| `add_feature` | +procedural, +architectural |
| `fix_bug` | +error logs, +debug, +recent |
| `refactor` | +patterns, +structure |
| `security_audit` | +security, +vulnerabilities |
| `understand` | +semantic, +explanatory |
| `find_spec` | +spec documents, +plans, +decision records |
| `find_decision` | +decision records, +architectural context |

### Constitutional Memory Behavior

> **Important:** Constitutional memories ALWAYS appear at the top of search results, even when a `specFolder` filter is applied. This is BY DESIGN to ensure critical context (e.g., Gate enforcement rules) is never accidentally filtered out.

| Parameter | Behavior |
|-----------|----------|

 succeeded in 0ms:
---
title: Memory Save Workflow
description: Complete guide to saving conversation context including execution methods, output format, and retrieval.
---

# Memory Save Workflow - Context Preservation Methods

Complete guide to saving conversation context, execution methods, and retrieval.

---

<!-- ANCHOR:overview -->
## 1. OVERVIEW

### Core Principle

Execute save operations through whichever method fits your workflow - slash commands for convenience, direct scripts for control. All paths feed the same canonical save entrypoint, update the target packet's continuity surfaces, and reindex the resulting packet docs for retrieval.

When direct CLI mode includes an explicit spec-folder argument, that target is authoritative. Session-learning matches, JSON `SPEC_FOLDER` fields, and auto-detect may inform diagnostics, but they must not reroute the save to another folder.

Direct phase-folder targets are supported. If the explicit CLI target resolves to a policy-defined phase folder, `generate-context.js` preserves that target and updates the selected phase folder's canonical continuity surfaces instead of rerouting elsewhere.

### Governed Save Boundaries

The save workflow stays compatible with private and agent-scoped operation. When the surrounding runtime enables governance, save and follow-up retrieval flows may carry `tenantId`, `userId`, and `agentId` so memory capture stays inside the intended boundary.

### Execution Paths

The indexed-continuity store supports **2 independent execution paths**. Any method can be used standalone.

### Method Comparison

| Method            | AI Agent Required | Best For                           | Effort | Token Cost |
| ----------------- | ----------------- | ---------------------------------- | ------ | ---------- |
| **Slash Command** | Yes               | Interactive saves, manual triggers | Low    | ~200       |
| **Direct Script** | No                | Testing, debugging, CI/CD          | Medium | 0          |

### Execution Flow

```
┌────────────────────────────────────────────────────────────────┐
│                    MEMORY SAVE PATHWAYS                        │
├────────────────────────────────────────────────────────────────┤
│                                                                │
│   Slash Command                    Direct Script               │
│   ┌──────────┐                    ┌──────────┐                 │
│   │ /memory: │                    │  node    │                 │
│   │  save    │                    │ script.ts│                 │
│   └────┬─────┘                    └────┬─────┘                 │
│        │                               │                       │
│        ▼                               ▼                       │
│   ┌──────────┐                    ┌──────────┐                 │
│   │ AI Agent │                    │   JSON   │                 │
│   │ Analysis │                    │   Input  │                 │
│   └────┬─────┘                    └────┬─────┘                 │
│        │                               │                       │
│        └───────────────────────────────┘                       │
│                              │                                 │
│                              ▼                                 │
│                    ┌─────────────────┐                         │
│                    │ generate-context│                         │
│                    │      .ts        │                         │
│                    └────────┬────────┘                         │
│                             │                                  │
│                             ▼                                  │
│                    ┌─────────────────┐                         │
│                    │ canonical packet│                         │
│                    │ continuity docs │                         │
│                    └─────────────────┘                         │
│                                                                │
└────────────────────────────────────────────────────────────────┘
```

---

<!-- /ANCHOR:overview -->
<!-- ANCHOR:method-selection -->
## 2. METHOD SELECTION

### Decision Tree

```
┌─────────────────────────────────────────────────────────────────┐
│              WHICH METHOD SHOULD I USE?                         │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
              ┌───────────────────────────────┐
              │ Is an AI agent active in      │
              │ the current conversation?     │
              └───────────────┬───────────────┘
                              │
               ┌──────────────┴──────────────┐
               │                             │
              YES                           NO
               │                             │
               ▼                             ▼
┌─────────────────────────┐   ┌─────────────────────────┐
│ Need automatic          │   │ Prepare JSON, then use  │
│ conversation analysis?  │   │ Direct Script method    │
└────────────┬────────────┘   └─────────────────────────┘
             │
      ┌──────┴──────┐
      │             │
     YES           NO
      │             │
      ▼             ▼
┌───────────┐ ┌───────────┐
│   SLASH   │ │  DIRECT   │
│  COMMAND  │ │  SCRIPT   │
│           │ │ (custom   │
│ /memory:  │ │  JSON)    │
│   save    │ │           │
└───────────┘ └───────────┘
```

### Quick Selection Guide

| Scenario                                  | Recommended Method |
| ----------------------------------------- | ------------------ |
| End of work session, want AI to summarize | **Slash Command**  |
| CI/CD pipeline, automated saves           | **Direct Script**  |
| Quick manual save, no AI available        | **Direct Script**  |
| Testing memory system functionality       | **Direct Script**  |
| Batch processing multiple saves           | **Direct Script**  |
| Interactive session with full context     | **Slash Command**  |

---

<!-- /ANCHOR:method-selection -->
<!-- ANCHOR:slash-commands -->
## 3. SLASH COMMANDS

**When to Use:** Manual save with AI-powered conversation analysis
**Requirement:** Slash command files exist in `.opencode/commands/memory/`

### Available Commands

```
/memory:save       # Save current conversation context
/memory:search  # Unified retrieval + analysis: search, epistemic baselines, causal graph, evaluation
```

### Execution Flow

1. Slash command expands to full prompt
2. AI agent analyzes conversation history
3. AI agent creates structured JSON summary (the main agent or a delegated packet writer can invoke generate-context.js for memory under distributed governance)
4. AI agent calls `generate-context.js` with JSON data
5. Canonical continuity updated inside the active root-spec or phase packet

### Validation Checkpoints

| Checkpoint       | Verification                   | Action on Failure         |
| ---------------- | ------------------------------ | ------------------------- |
| Command exists   | `ls .opencode/commands/memory/` | Create command file       |
| AI agent active  | Check response capability      | Use Direct Script instead |
| Spec folder arg  | Passed via CLI argument        | Specify folder manually   |
| Write permission | `test -w specs/###/`           | Check packet permissions  |

### Example Output

```
✓ Context analyzed (12 exchanges detected)
✓ Spec folder: 049-anchor-context-retrieval
✓ Continuity surfaces updated for: 049-anchor-context-retrieval
✓ Primary continuity block: implementation-summary.md::_memory.continuity
✓ Packet docs reindexed
```

---

<!-- /ANCHOR:slash-commands -->
<!-- ANCHOR:direct-script -->
## 4. DIRECT SCRIPT

**When to Use:** Testing, debugging, custom workflows, CI/CD pipelines
**Requirement:** Node.js installed

### Usage Pattern

```bash
# Create minimal JSON data file
cat > /tmp/test-save-context.json << 'EOF'
{
  "SPEC_FOLDER": "049-anchor-context-retrieval",
  "recent_context": [{
    "request": "Test save-context execution",
    "completed": "Verified system works standalone",
    "learning": "Direct script execution requires minimal JSON",
    "duration": "5m",
    "date": "2025-11-28T18:30:00Z"
  }],
  "observations": [{
    "type": "discovery",
    "title": "Standalone execution test",
    "narrative": "Testing direct script invocation",
    "timestamp": "2025-11-28T18:30:00Z",
    "files": [],
    "facts": ["Standalone execution works", "Minimal data sufficient"]
  }],
  "user_prompts": [{
    "prompt": "Test save-context standalone",
    "timestamp": "2025-11-28T18:30:00Z"
  }]
}
EOF

# Execute script directly
node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js \
  /tmp/test-save-context.json \
  "049-anchor-context-retrieval"

# Inline JSON mode (preferred for routine saves)
node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js \
  --json '{"specFolder":"049-anchor-context-retrieval","sessionSummary":"Implemented anchor retrieval..."}' \
  "049-anchor-context-retrieval"

# Stdin mode (preferred for routine saves)
echo '{"specFolder":"049-anchor-context-retrieval","sessionSummary":"..."}' | \

exec
/bin/zsh -lc "sed -n '1,220p' .opencode/commands/memory/README.txt && sed -n '1,180p' .opencode/commands/memory/search.md && sed -n '1,180p' .opencode/commands/memory/save.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
---
title: "Memory Commands"
description: "Slash commands for managing the Spec Kit Memory system including search, session recovery, constitutional memory management, database operations, and async ingestion."
trigger_phrases:
  - "memory command"
  - "memory save"
  - "memory search"
  - "memory learn"
  - "memory manage"
---

# Memory Commands

> Slash commands for managing the Spec Kit Memory system across sessions.

---

<!-- ANCHOR:table-of-contents -->
## TABLE OF CONTENTS

- [1. OVERVIEW](#1--overview)
- [2. COMMANDS](#2--commands)
- [3. STRUCTURE](#3--structure)
- [4. USAGE EXAMPLES](#4--usage-examples)
- [5. MANAGE SUBCOMMANDS](#5--manage-subcommands)
- [6. TOOL COVERAGE MATRIX](#6--tool-coverage-matrix)
- [7. FAQ](#7--faq)
- [8. TROUBLESHOOTING](#8--troubleshooting)
- [9. RELATED DOCUMENTS](#9--related-documents)

<!-- /ANCHOR:table-of-contents -->

---

<!-- ANCHOR:overview -->
## 1. OVERVIEW

The `memory` command group provides operations for the Spec Kit Memory MCP system. These 4 commands cover context preservation, unified knowledge retrieval and analysis, constitutional memory management, and database maintenance plus async ingest. Session recovery now lives under `/spec_kit:resume`.

All commands interact with the memory MCP server tools (`spec_kit_memory_*`). They follow a gate-based argument validation pattern: if required arguments are missing, the command prompts the user before proceeding.

### Canonical Section Order

All 4 memory commands follow a consistent user-first section order:

```text
GATE -> TITLE -> §1 PURPOSE -> §2 CONTRACT -> §3 QUICK REFERENCE
-> §4 ARGUMENT ROUTING -> [MODE/WORKFLOW HANDLERS] -> ERROR HANDLING
-> RELATED COMMANDS -> APPENDIX A: MCP TOOL REFERENCE -> [APPENDIX B+]
```

Everything above the `---` divider is for users. Appendices below are AI agent reference material.

<!-- /ANCHOR:overview -->

---

<!-- ANCHOR:commands -->
## 2. COMMANDS

| Command | Invocation | Description |
|---------|------------|-------------|
| **search** | `/memory:search <query> [--intent:<type>]` or `/memory:search <subcommand>` | Unified retrieval and analysis: intent-aware search, epistemic baselines, causal graph, ablation, dashboard |
| **learn** | `/memory:learn [rule] \| list \| edit \| remove \| budget` | Create and manage constitutional memories (always-surface rules) |
| **manage** | `/memory:manage <subcommand>` | Database operations (scan, cleanup, tier, health, checkpoint, ingest) |
| **save** | `/memory:save <spec-folder>` | Update packet continuity with semantic indexing |

### Intent Types for Search Command (Retrieval Mode)

| Intent | Trigger Keywords | Weight Focus |
|--------|-----------------|--------------|
| `add_feature` | implement, add new, create new | Implementation, architecture, patterns |
| `fix_bug` | bug, error, fix, broken, debug | Decisions, implementation, errors |
| `refactor` | refactor, restructure, optimize | Architecture, patterns, decisions |
| `security_audit` | security, vulnerability, auth | Decisions, implementation, security |
| `understand` | how, why, what, explain | Architecture, decisions, overview |
| `find_spec` | spec, specification, find spec | Spec docs, architecture, overview |
| `find_decision` | decision, rationale, why did we | Decisions, rationale, context |

### Learn Subcommands

| Subcommand | Invocation | Description |
|------------|------------|-------------|
| (default) | `/memory:learn [rule]` | Create new constitutional memory (guided) |
| list | `/memory:learn list` | Show all constitutional memories and budget |
| edit | `/memory:learn edit <filename>` | Edit existing constitutional memory |
| remove | `/memory:learn remove <filename>` | Remove constitutional memory |
| budget | `/memory:learn budget` | Token budget status (~2000 max) |

### Search Subcommands

| Subcommand | Invocation | Description |
|------------|------------|-------------|
| preflight | `/memory:search preflight <specFolder> <taskId>` | Capture epistemic baseline before task |
| postflight | `/memory:search postflight <specFolder> <taskId>` | Calculate learning delta after task |
| causal | `/memory:search causal <memoryId>` | Trace causal chain for a memory |
| link | `/memory:search link <source> <target> <relation>` | Create causal relationship |
| unlink | `/memory:search unlink <edgeId>` | Remove causal relationship |
| causal-stats | `/memory:search causal-stats` | View causal graph statistics |
| ablation | `/memory:search ablation` | Run channel ablation study |
| dashboard | `/memory:search dashboard` | View reporting dashboard |
| history | `/memory:search history <specFolder>` | View learning history and LI trends |

<!-- /ANCHOR:commands -->

---

<!-- ANCHOR:structure -->
## 3. STRUCTURE

```text
memory/
├── README.txt      # This file, 4-command index and coverage matrix
├── search.md       # /memory:search - Unified retrieval + analysis (intent-aware search, epistemic, causal, eval)
├── learn.md        # /memory:learn - Constitutional memory manager
├── manage.md       # /memory:manage - Database management and ingest
└── save.md         # /memory:save - Context saving
```

No `assets/` folder exists for memory commands. Workflows are defined inline within each command file.

<!-- /ANCHOR:structure -->

---

<!-- ANCHOR:usage-examples -->
## 4. USAGE EXAMPLES

```bash
# Save context to a spec folder
/memory:save specs/007-feature-name

# Retrieve context with auto-detected intent
/memory:search "how does the auth system work"

# Retrieve context with explicit intent
/memory:search "auth flow" --intent:fix_bug

# Recover from a crashed or interrupted session
/spec_kit:resume

# Auto-recovery mode
/spec_kit:resume :auto

# Create a constitutional memory (always-surface rule)
/memory:learn "Never commit API keys or secrets to git"

# List all constitutional memories and budget
/memory:learn list

# Check token budget status
/memory:learn budget

# View database stats
/memory:manage stats

# Scan for new or updated canonical spec documents
/memory:manage scan

# Force re-index all files
/memory:manage scan --force

# Check system health
/memory:manage health

# View learning history for a spec folder
/memory:search history specs/007-auth

# Capture epistemic baseline before a task
/memory:search preflight specs/007-auth T1

# Calculate learning delta after a task
/memory:search postflight specs/007-auth T1

# Trace causal chain for a memory
/memory:search causal 42

# Create causal link between memories
/memory:search link 42 43 caused

# View causal graph statistics
/memory:search causal-stats

# Run channel ablation study
/memory:search ablation

# View reporting dashboard
/memory:search dashboard

# Start async ingestion of multiple files
/memory:manage ingest start /path/to/file1.md /path/to/file2.md

# Check ingestion job progress
/memory:manage ingest status abc-123

# Cancel a running ingestion job
/memory:manage ingest cancel abc-123
```

<!-- /ANCHOR:usage-examples -->

---

<!-- ANCHOR:manage-subcommands -->
## 5. MANAGE SUBCOMMANDS

The `/memory:manage` command accepts these subcommands:

| Subcommand | Arguments | Description |
|------------|-----------|-------------|
| `stats` | (none) | Show memory database statistics |
| `scan` | `[--force]` | Scan workspace for new/changed continuity artifacts and canonical spec docs |
| `cleanup` | (none) | Remove orphaned or invalid entries |
| `bulk-delete` | `<tier> [--older-than <days>] [--folder <spec>]` | Bulk delete by tier |
| `tier` | `<id> <tier>` | Change importance tier of a memory |
| `triggers` | `<id>` | View trigger phrases for a memory |
| `validate` | `<id> <useful\|not>` | Record validation feedback for a memory |
| `delete` | `<id>` | Delete a specific memory |
| `health` | (none) | Check memory system health status |
| `checkpoint` | `create\|list\|restore\|delete` | Manage named checkpoints of memory state |
---
description: Unified continuity retrieval and analysis - canonical spec-doc context search, epistemic baselines, causal graph, ablation studies, and dashboards
argument-hint: "<query> [--intent:<type>] | preflight <specFolder> <taskId> | postflight <specFolder> <taskId> | history <specFolder> | causal <memoryId> | link <sourceId> <targetId> <relation> | unlink <edgeId> | causal-stats | ablation | dashboard"
allowed-tools: Read, spec_kit_memory_memory_context, spec_kit_memory_memory_quick_search, spec_kit_memory_memory_search, spec_kit_memory_memory_match_triggers, spec_kit_memory_task_preflight, spec_kit_memory_task_postflight, spec_kit_memory_memory_drift_why, spec_kit_memory_memory_causal_link, spec_kit_memory_memory_causal_stats, spec_kit_memory_memory_causal_unlink, spec_kit_memory_eval_run_ablation, spec_kit_memory_eval_reporting_dashboard, spec_kit_memory_memory_get_learning_history
---

# 🚨 MANDATORY FIRST ACTION - DO NOT SKIP

**BEFORE READING ANYTHING ELSE IN THIS FILE, CHECK `$ARGUMENTS`:**

```text
IF $ARGUMENTS is empty, undefined, or contains only whitespace:
    → STOP IMMEDIATELY
    → Present the user with this question:
        question: "What would you like to retrieve context for?"
        options:
          - label: "Add feature"
            description: "Context for implementing a new feature"
          - label: "Fix bug"
            description: "Context for debugging and fixing an issue"
          - label: "Refactor"
            description: "Context for code restructuring"
          - label: "Security audit"
            description: "Context for security review"
          - label: "Understand"
            description: "Context for learning existing code"
          - label: "Find spec"
            description: "Context for spec document retrieval"
          - label: "Find decision"
            description: "Context for decision rationale lookup"
          - label: "Analysis tools"
            description: "Epistemic baselines, causal graph, ablation, dashboards"
    → WAIT for user response
    → If "Analysis tools" selected → Display ANALYSIS OVERVIEW (Section 8)
    → Otherwise → Use their response to determine the intent and query
    → Only THEN continue with this workflow

IF $ARGUMENTS starts with a KNOWN ANALYSIS SUBCOMMAND (Section 3):
    → Route to ANALYSIS MODE (Section 5)

IF $ARGUMENTS contains a query (any other text):
    → Route to RETRIEVAL MODE (Section 4)
```

**CRITICAL RULES:**
- **DO NOT** infer query from conversation context
- **DO NOT** assume the user's intent without explicit input
- **DO NOT** proceed past this point without explicit query from user
- The query and intent MUST come from `$ARGUMENTS` or user's answer above

---

# Memory Search Command

Unified entry point for knowledge retrieval and analysis. Combines intent-aware context search (retrieval mode) with epistemic measurement, causal graph tools, and evaluation dashboards (analysis mode).

---

## 0. INSTRUCTIONS

Start by classifying `$ARGUMENTS` into retrieval mode or analysis mode. Follow the routing contract below, prefer canonical packet sources in retrieval mode, and only invoke the analysis subcommands that match the user's explicit request.

---

```yaml
role: Retrieval & Analysis Specialist
purpose: Unified entry point combining intent-aware retrieval with epistemic measurement, causal graph, and evaluation tools
action: Route through retrieval or analysis mode based on argument pattern

operating_mode:
  workflow: argument_routing
  workflow_compliance: MANDATORY
  approvals: none_required
  tracking: intent_classification
```

---

## 1. PURPOSE

> **L1 Orchestration + L6 Analysis**: This command operates at both the L1 retrieval layer (orchestrating lower-level context-retrieval operations) and the L6 analysis layer (epistemic baselines, causal graph, evaluation). It provides a single entry point for all knowledge-related context-retrieval operations.

Provide a unified entry point that:

**Retrieval mode** (default):
- Automatically detects task intent from the query
- Applies task-specific weights for search optimization
- Combines search + load in a single operation
- Returns context with relevance explanation
- Enforces L1 token budget constraints (target: ~2000 tokens per call)
- Handles session deduplication for cross-session queries
- Targets canonical packet sources first: `handover.md`, `_memory.continuity`, then the packet spec docs

**Analysis mode** (subcommand-triggered):
- Epistemic measurement: Capture knowledge baselines before and after tasks (`task_preflight`, `task_postflight`)
- Causal graph: Trace decision lineage, create/remove causal links, view graph stats (`memory_drift_why`, `memory_causal_link`, `memory_causal_unlink`, `memory_causal_stats`)
- Evaluation: Run channel ablation studies and view reporting dashboards (`eval_run_ablation`, `eval_reporting_dashboard`)
- Learning history: View PREFLIGHT/POSTFLIGHT records and Learning Index trends (`memory_get_learning_history`)

### Hybrid Retrieval Runtime (Retrieval Mode)

The unified context tool runs a hybrid retrieval pipeline with **graph-first routing** (026):

- **Graph channel has priority** in the fusion strategy: structural queries (callers, imports, dependencies) are routed to `code_graph_query` first, before semantic or lexical channels
- Tri-channel retrieval (graph + vector/semantic + FTS5/BM25) with graph results given precedence in the fusion merge
- CocoIndex semantic search (`mcp__cocoindex_code__search`) integrates as the vector/semantic channel, providing natural-language code discovery alongside indexed-continuity vector search
- When graph and semantic channels miss or return weak results, a 3-tier FTS fallback activates: FTS5 full-text → BM25 keyword scoring → Grep/Glob filesystem search. Post-026 FTS5 remediation improved BM25 tokenization and ranking accuracy
- Intent-adaptive fusion and reranking (weights adapt when `SPECKIT_ADAPTIVE_FUSION` is enabled, including the internal continuity profile: semantic `0.52`, keyword `0.18`, recency `0.07`, graph `0.23`)
- MMR diversity pruning to reduce redundant chunks, with continuity-oriented Stage 3 passes using a dedicated lambda of `0.65`
- Cross-encoder reranking only runs when at least 4 candidates reach Stage 3; `applyLengthPenalty` remains on the API surface for compatibility but currently resolves to a neutral `1.0` multiplier for every document
- `getRerankerStatus()` exposes reranker latency plus cache `hits`, `misses`, `staleHits`, and `evictions`
- Deep-mode query expansion for broader lexical coverage
- Evidence-gap detection (026) to flag low-confidence retrievals with explicit gap warnings, enabling downstream reasoning to remain cautious and avoid acting on sparse evidence

### Canonical Retrieval Order

- `/spec_kit:resume` is the recovery surface for session continuation.
- Resume-oriented retrieval follows `handover.md -> _memory.continuity -> spec docs`.
- Packet-oriented retrieval may additionally use indexed `document_type='graph_metadata'` rows for dependency, supersession, related-packet, and key-file signals.
- `find_spec` and `find_decision` should resolve against canonical spec docs and anchors, not against standalone continuity artifacts.

---

## 2. CONTRACT

**Inputs:** `$ARGUMENTS`: Query with optional intent override, OR analysis subcommand with parameters
**Outputs:** Context with relevance scores and intent explanation, OR `STATUS=<OK|FAIL>` with subcommand-specific output

---

## 3. QUICK REFERENCE

### Retrieval Mode (default)

| Command | Result |
|---------|--------|
| `/memory:search "implement auth"` | Auto-detect add_feature, apply weights |
| `/memory:search "auth bug" --intent:fix_bug` | Explicit fix_bug intent |
| `/memory:search "how does auth work?"` | Auto-detect understand intent |
| `/memory:search "optimize auth code"` | Auto-detect refactor intent |
| `/memory:search "auth security review"` | Auto-detect security_audit intent |
| `/memory:search "find the spec for auth"` | Auto-detect find_spec intent |
| `/memory:search "why did we choose JWT"` | Auto-detect find_decision intent |

### Analysis Mode (subcommand-triggered)

| Command | Result |
|---------|--------|
| `/memory:search preflight specs/007-auth T1` | Capture epistemic baseline |
| `/memory:search postflight specs/007-auth T1` | Calculate learning delta |
| `/memory:search history specs/007-auth` | View learning history |
| `/memory:search causal 42` | Trace causal chain for memory #42 |
| `/memory:search link 42 43 caused` | Link memory #42 → #43 as caused |
| `/memory:search unlink 5` | Remove causal edge #5 |
| `/memory:search causal-stats` | View causal graph statistics |
| `/memory:search ablation` | Run channel ablation study |
| `/memory:search dashboard` | View reporting dashboard |

---

## 4. ARGUMENT ROUTING

```text
$ARGUMENTS
    │
    ├─ Empty (no args)                        → INTERACTIVE PROMPT (see gate above)
    │
    ├─ ANALYSIS SUBCOMMAND DETECTED?
    │   First token matches one of:
    │   "preflight", "postflight", "history",
    │   "causal", "link", "unlink",
    │   "causal-stats", "ablation", "dashboard"
    │   └─► YES → ANALYSIS MODE (Section 5)
    │
    └─ OTHERWISE (any other text)
        └─► RETRIEVAL MODE (Section 4A)
            Parse: <query> [--intent:<type>]
```

**Routing logic:** If the first argument token exactly matches a known analysis subcommand keyword → route to analysis mode. Otherwise → treat entire input as a retrieval query (with optional `--intent:` flag).
---
description: Save current conversation context into canonical spec-doc continuity surfaces with semantic indexing
argument-hint: "<spec-folder>"
allowed-tools: Read, Edit, Bash, Task, spec_kit_memory_memory_save, spec_kit_memory_memory_index_scan, spec_kit_memory_memory_stats, spec_kit_memory_memory_update
---

# MANDATORY FIRST ACTION - SPEC FOLDER RESOLUTION

**BEFORE READING ANYTHING ELSE IN THIS FILE, resolve `target_folder`:**

```text
IF $ARGUMENTS contains a spec folder path:
    → Validate folder exists
    → Store as target_folder
    → Continue reading this file

IF $ARGUMENTS is empty, undefined, or contains only whitespace:
    → Run AUTO-DETECTION (Tier 1 → Tier 2 → Tier 3):

    TIER 1: Gate 3 Carry-Over (highest confidence - no confirmation needed)
    - Check if a spec folder was established via Gate 3 earlier in this conversation
    - If yes → use it directly as target_folder (per CLAUDE.md Memory Save Rule)
    - Announce: "Using active spec folder from this session: [folder]"

    TIER 2: Conversation Signal Analysis (high confidence - confirm)
    - Scan files modified/read during this conversation
    - Map file paths to spec folders:
      * Files under specs/NNN-name/ or its children
      * Files referenced in a spec folder's description.json
      * Supporting docs (feature_catalog, manual_testing_playbook) linked via symlinks to a spec tree
    - If ALL modified files map to a single spec folder (or one parent and its children):
      → Propose: "Based on this session's work, the target folder is [folder]. Saving there. [Y/n]"
      → If user confirms or does not object → store as target_folder
    - If modified files span multiple unrelated spec folders → proceed to Tier 3

    TIER 3: Guided Selection (fallback - must ask)
    - List the spec folders touched in this conversation, ranked by file-edit count
    - ASK: "Multiple spec folders were touched. Which one should this context be saved to?"
    - If no spec folders detected at all → list recent/related spec folders and ask
    - WAIT for user response → store as target_folder
```

**CRITICAL RULES:**
- Tier 1 (Gate 3 carry-over) proceeds without confirmation per CLAUDE.md Memory Save Rule
- Tier 2 proposals MUST show the detected folder and ask for brief confirmation
- Tier 3 MUST wait for explicit user response before proceeding
- When ambiguous (files in multiple unrelated spec folders), ALWAYS ask - do not guess

---

# /memory:save

> Save current conversation context into the packet's canonical continuity surfaces with semantic indexing.

---

## 1. INSTRUCTIONS

Resolve the target spec folder first, build structured JSON from the session evidence, then run the save workflow below. Prefer canonical packet docs and `_memory.continuity` over any legacy supporting artifacts.

---

## 2. PURPOSE

Save the current conversation context, including session summary, key decisions, modified files, and trigger phrases, into the packet's canonical continuity surfaces so `/spec_kit:resume` and `/memory:search` read the same source of truth.

**Key difference from `/memory:learn`:**
- `/memory:save` = Session context routed into canonical packet docs and `_memory.continuity`
- `/memory:learn` = Constitutional rules saved to `constitutional/` (always-surface tier)

### Canonical Routing Model

- `handover.md` remains the top recovery document for active-session state and pending work.
- `_memory.continuity` stores the compact continuity block used by `/spec_kit:resume`.
- AI may directly edit `_memory.continuity` frontmatter blocks in `implementation-summary.md` when only those doc-local continuity hints need updating.
- Canonical spec docs such as `implementation-summary.md` and `decision-record.md` receive the durable narrative content when the route applies.
- `generate-context.js` remains the primary save mechanism when the workflow also needs DB indexing, embedding generation, `description.json` refresh, `graph-metadata.json` refresh, or anchor-managed compatibility output.
- Canonical save requests now default to **planner-first** behavior: return the routed target, proposed edit summary, blockers, advisories, and follow-up actions before any mutation-first apply path is requested.
- Explicit fallback remains available with `plannerMode: "full-auto"` or CLI `--full-auto` when an operator wants the legacy atomic writer behavior.
- Standalone spec-doc markdown is not the primary operator-facing destination for this command.

### Handover Document Maintenance

`/memory:save` is the canonical maintainer for `handover.md` through `handover_state` routing. When a packet does not already contain `handover.md`, create it from `.opencode/skills/system-spec-kit/templates/handover.md`, then merge subsequent stop-state updates into `handover.md::session-log` while keeping `_memory.continuity` aligned for `/spec_kit:resume`.

### Routed Save Categories

The canonical save router works with 8 categories:

| Category | Typical target | Notes |
| -------- | -------------- | ----- |
| `narrative_progress` | `implementation-summary.md::what-built` | What changed in the system or packet |
| `narrative_delivery` | `implementation-summary.md::how-delivered` | Sequencing, gating, rollout, and verification story |
| `decision` | `decision-record.md::adr-NNN` on L3/L3+ or `implementation-summary.md::decisions` on L1/L2 | Choice, tradeoff, rationale |
| `handover_state` | `handover.md::session-log` | Stop-state, blockers, recent action, next safe action. Use `.opencode/skills/system-spec-kit/templates/handover.md` for initial creation when `handover.md` does not exist. |
| `research_finding` | `research/research.md::findings` | Evidence, investigation result, cited upstream behavior |
| `task_update` | `tasks.md::<phase-anchor>` | Checklist/task status mutation |
| `metadata_only` | `_memory.continuity` in frontmatter | Machine-owned continuity payloads |
| `drop` | `scratch/pending-route-<hash>.json` via refusal | Non-canonical transcript/tooling noise; never auto-merged |

Routing tiers:

- Tier 1 handles structured routes and strong heuristics.
- Tier 2 uses prototype similarity against the frozen routing library.
- Tier 3 is part of the live save handler by default. When `LLM_REFORMULATION_ENDPOINT` is reachable and returns a usable decision, it participates automatically; if that endpoint is unavailable or unusable, the save path falls back to Tier 2 with a confidence penalty when safe, otherwise it refuses the merge.

Boundary rules:

- Delivery cues are now stronger when the chunk mentions sequencing, gating, rollout, or verification.
- Handover keeps state-first stop/resume notes even if they mention soft operational commands like `git diff`, `list spec-doc records`, or `force re-index`.
- Hard transcript, telemetry, and wrapper scaffolding still route to `drop`.

Override and context rules:

- `routeAs` can force any of the 8 categories. The router preserves the natural decision for audit and warns if an override is accepted against a natural `drop`.
- Router context passes `packet_kind` derived from spec metadata first (`type`, `title`, `description`), with parent-phase fallback only when the metadata is silent.

---

## 3. CONTRACT

| Field   | Value                                                                                        |
| ------- | -------------------------------------------------------------------------------------------- |
| Input   | Spec folder path (from Gate 3 or `$ARGUMENTS`) + AI-composed JSON data                       |
| Output  | Canonical spec-doc continuity updates + indexed continuity data. Also refreshes `graph-metadata.json` derived fields in the spec folder: `trigger_phrases` are deduplicated and capped at 12, `key_files` are sanitized before storage, `entities` are deduplicated with canonical-path preference, and `status` is checklist-aware and normalized to lowercase. |
| Script  | `node .opencode/skills/system-spec-kit/scripts/dist/memory/generate-context.js`               |
| Primary | **JSON mode:** `generate-context.js <json-data-path>` (e.g. a path under `$TMPDIR` or `/tmp/save-context-data-<session-id>.json`) or `--json '<data>'` |
| Trigger | "save context", "save memory", `/memory:save`                                                |

Planner behavior:
- Default: `plan-only` for canonical save requests, with explicit follow-up actions such as `apply`, `refresh-graph`, and `reindex`
- Fallback: `full-auto` restores the legacy mutation-first canonical writer
- Deferred freshness actions: graph refresh and spec-doc reindex are surfaced as follow-ups instead of assumed default side effects

---

## 4. QUICK REFERENCE

| Usage                                                  | Behavior                                                |
| ------------------------------------------------------ | ------------------------------------------------------- |
| `/memory:save`                                         | Auto-detect the active packet, confirm if needed, then route into canonical continuity targets |
| `/memory:save 011-memory`                              | Save to a specific spec folder                          |
| `/memory:save specs/006-semantic-memory/003-debugging` | Save to a nested spec folder                            |
| `node .../generate-context.js --full-auto ...`         | Opt back into the legacy full-auto canonical apply path |

---

## 5. VALIDATION

### Pre-Flight Checks (Phase 0)

Execute BEFORE folder validation to prevent data quality issues. All checks must pass.

#### Check 1: Anchor Format Validation

- Scan conversation for existing canonical spec-doc references
- If any canonical spec documents (`decision-record.md`, `implementation-summary.md`, `handover.md`, `resource-map.md`) were read during the session, verify they contain BOTH opening AND closing ANCHOR tags
- Pattern: `<!-- ANCHOR:id --> ... <!-- /ANCHOR:id -->`
- If missing closing tags → WARN user before proceeding
- Why: Broken anchors break section-specific retrieval (93% token waste)

#### Check 2: Token Budget Validation

- Estimate conversation size: `message_count * avg_tokens_per_message`
- If estimated > 50,000 tokens:
  - WARN: "Large conversation detected"
  - OPTIONS: `[C]ontinue anyway | [S]plit save | [E]dit scope`
  - WAIT for response

#### Check 3: Spec Folder Existence

- If `$ARGUMENTS` contains folder → validate exists, store as `pending_folder`
- If `$ARGUMENTS` empty → defer to Phase 1

#### Check 4: Stop Hook Awareness

- Confirm whether recent hook-driven context preservation evidence exists for this session
- Current limitation: no dedicated `pendingStopSave` field is shipped in the hook state, so `/memory:save` must not claim a guaranteed auto-save merge marker
- If no recent hook-save evidence can be established: PASSED (proceed normally)


exec
/bin/zsh -lc "rg -n \"memory_context|memory_search|memory_match_triggers|memory_save|TOOL_DEFINITIONS|name: 'memory|name: \\\"memory|memory_index_scan\" .opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts .opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts .opencode/skills/system-spec-kit/mcp_server/README.md" in /Users/michelkerkmeester/MEGA/Development/Code_Environment/Public
 succeeded in 0ms:
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:62:  'memory_search',
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:64:  'memory_match_triggers',
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:65:  'memory_save',
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:78:    case 'memory_search':         return handleMemorySearch(parseArgs<SearchArgs>(validateToolArgs('memory_search', args)));
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:80:      // E3: Delegate to memory_search with sensible defaults
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:98:    case 'memory_match_triggers': return handleMemoryMatchTriggers(parseArgs<TriggerArgs>(validateToolArgs('memory_match_triggers', args)));
.opencode/skills/system-spec-kit/mcp_server/tools/memory-tools.ts:99:    case 'memory_save':           return handleMemorySave(parseArgs<SaveArgs>(validateToolArgs('memory_save', args)));
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:47:  name: 'memory_context',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:49:  inputSchema: { type: 'object', additionalProperties: false, properties: { input: { type: 'string', minLength: 1, description: 'The query, prompt, or context description (required)' }, mode: { type: 'string', enum: ['auto', 'quick', 'deep', 'focused', 'resume'], default: 'auto', description: 'Context retrieval mode: auto (detect intent), quick (fast triggers), deep (comprehensive search), focused (intent-optimized), resume (session recovery)' }, intent: { type: 'string', enum: ['add_feature', 'fix_bug', 'refactor', 'security_audit', 'understand', 'find_spec', 'find_decision'], description: 'Explicit task intent. If not provided and mode=auto, intent is auto-detected from input.' }, specFolder: { type: 'string', description: 'Limit context to specific spec folder' }, tenantId: { type: 'string', description: 'Tenant boundary for governed retrieval when memory_context routes to memory_search.' }, userId: { type: 'string', description: 'User boundary for governed retrieval when memory_context routes to memory_search.' }, agentId: { type: 'string', description: 'Agent boundary for governed retrieval when memory_context routes to memory_search.' }, limit: { type: 'number', minimum: 1, maximum: 100, description: 'Maximum results (mode-specific defaults apply)' }, sessionId: { type: 'string', description: 'Optional server-issued session identifier for working-memory continuity. When provided, it must match an existing server-managed session or the call is rejected. Omit it to let the server generate a new session for this request.' }, enableDedup: { type: 'boolean', default: true, description: 'Enable session deduplication' }, includeContent: { type: 'boolean', default: false, description: 'Include full file content in results' }, includeTrace: { type: 'boolean', default: false, description: 'Include provenance-rich trace data (scores, source, trace) in results when underlying memory_search is called' }, tokenUsage: { type: 'number', minimum: 0.0, maximum: 1.0, description: "Optional caller token usage ratio (0.0-1.0)" }, anchors: { type: 'array', items: { type: 'string' }, description: 'Filter content to specific anchors (e.g., ["state", "next-steps"] for resume mode)' }, profile: { type: 'string', enum: ['quick', 'research', 'resume', 'debug'], description: 'Optional response profile formatter. Returns a reduced or mode-aware response shape when profile formatting is enabled.' } }, required: ['input'] },
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:54:  name: 'memory_search',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:194:// E3: Simplified search — 3 params, sensible defaults, delegates to memory_search
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:196:  name: 'memory_quick_search',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:197:  description: '[L2:Core] Simplified search — query + optional limit + optional spec folder. Delegates to memory_search with sensible defaults (intent auto-detect ON, dedup ON, content included, limit 10). Use this when you want fast search without configuring 31 parameters.',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:214:  name: 'memory_match_triggers',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:221:  name: 'memory_save',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:228:  name: 'memory_list',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:234:  name: 'memory_stats',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:240:  name: 'memory_health',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:280:  name: 'memory_delete',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:295:  name: 'memory_update',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:301:  name: 'memory_validate',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:323:  name: 'memory_bulk_delete',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:416:  name: 'memory_drift_why',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:423:  name: 'memory_causal_link',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:429:  name: 'memory_causal_stats',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:435:  name: 'memory_causal_unlink',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:494:  name: 'memory_index_scan',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:500:  name: 'memory_get_learning_history',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:506:  name: 'memory_ingest_start',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:529:  name: 'memory_ingest_status',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:542:  name: 'memory_ingest_cancel',
.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:899:export const TOOL_DEFINITIONS: ToolDefinition[] = [
.opencode/skills/system-spec-kit/mcp_server/README.md:9:  - "memory_context"
.opencode/skills/system-spec-kit/mcp_server/README.md:10:  - "memory_search"
.opencode/skills/system-spec-kit/mcp_server/README.md:207:  "tool": "memory_save",
.opencode/skills/system-spec-kit/mcp_server/README.md:218:  "tool": "memory_context",
.opencode/skills/system-spec-kit/mcp_server/README.md:405:**Causal trust display badges** -- `memory_search` results carry an additive `trustBadges` payload per `MemoryResultEnvelope`, derived at response time from existing causal-edge columns. The `formatSearchResults()` formatter at `mcp_server/formatters/search-results.ts` batch-reads connected causal-edge data and attaches the following display-only fields to each result envelope: `confidence` (clamped from the strongest connected edge `strength`), `extractionAge` (human-readable age from the newest connected `extracted_at`), `lastAccessAge` (human-readable age from the newest connected `last_accessed`), `orphan` (`true` when the result has no incoming causal edges), and `weightHistoryChanged` (`true` when any connected edge has a `weight_history` row). The formatter fails open when the DB handle or `weight_history` table is unavailable, and preserves any precomputed `trustBadges` payload a caller already supplied. `mcp_server/lib/response/profile-formatters.ts` extends response-profile result typing so the `quick`, `research`, and `resume` profiles preserve the badge payload on `results[]` and `topResult` rather than dropping it during shaping. The placement decision is per-result, not top-level — the trust signal belongs beside the specific spec-doc record claim the user is judging. No schema change, no new relation types, no new storage of code/process/tool facts.
.opencode/skills/system-spec-kit/mcp_server/README.md:566:**Query routing:** Structural queries (callers, imports, dependencies) go to `code_graph_query`. Semantic and concept queries go to CocoIndex (`mcp__cocoindex_code__search`). Session and memory queries go to `memory_context`.
.opencode/skills/system-spec-kit/mcp_server/README.md:612:**Start here for most tasks**: `memory_context` (L1) automatically figures out what you need. Use the lower-level tools when you want precise control.
.opencode/skills/system-spec-kit/mcp_server/README.md:618:##### `memory_context`
.opencode/skills/system-spec-kit/mcp_server/README.md:641:  "tool": "memory_context",
.opencode/skills/system-spec-kit/mcp_server/README.md:676:##### `memory_search`
.opencode/skills/system-spec-kit/mcp_server/README.md:699:  "tool": "memory_search",
.opencode/skills/system-spec-kit/mcp_server/README.md:726:##### `memory_match_triggers`
.opencode/skills/system-spec-kit/mcp_server/README.md:740:  "tool": "memory_match_triggers",
.opencode/skills/system-spec-kit/mcp_server/README.md:751:##### `memory_save`
.opencode/skills/system-spec-kit/mcp_server/README.md:774:  "tool": "memory_save",
.opencode/skills/system-spec-kit/mcp_server/README.md:1093:##### `memory_index_scan`
.opencode/skills/system-spec-kit/mcp_server/README.md:1289:| | **Total** | **51** | **9,600** | Canonical: `TOOL_DEFINITIONS.length` in `tool-schemas.ts`; deferred / not-yet-wired handlers do NOT count |
.opencode/skills/system-spec-kit/mcp_server/README.md:1330:| `SPEC_KIT_BATCH_SIZE` | `5` | Batch size for `memory_index_scan` |
.opencode/skills/system-spec-kit/mcp_server/README.md:1352:  "tool": "memory_context",
.opencode/skills/system-spec-kit/mcp_server/README.md:1382:  "tool": "memory_index_scan",
.opencode/skills/system-spec-kit/mcp_server/README.md:1526:| Find a past decision | `memory_context` | Set `intent: "find_decision"` |
.opencode/skills/system-spec-kit/mcp_server/README.md:1527:| Search for specific terms | `memory_search` | Use `concepts: ["term1", "term2"]` for AND search |
.opencode/skills/system-spec-kit/mcp_server/README.md:1528:| Check triggers on every prompt | `memory_match_triggers` | Pass the user's prompt text |
.opencode/skills/system-spec-kit/mcp_server/README.md:1531:| Test a save without committing | `memory_save` | Set `dryRun: true` |
.opencode/skills/system-spec-kit/mcp_server/README.md:1544:**What you see**: Irrelevant or low-scoring results from `memory_search` or `memory_context`.
.opencode/skills/system-spec-kit/mcp_server/README.md:1555:{ "tool": "memory_search", "arguments": { "query": "your query", "min_quality_score": 0.5 } }
.opencode/skills/system-spec-kit/mcp_server/README.md:1569:{ "tool": "memory_save", "arguments": { "filePath": "/path/to/file.md", "dryRun": true } }
.opencode/skills/system-spec-kit/mcp_server/README.md:1629:| Search returning empty | Run `memory_index_scan` to re-index |
.opencode/skills/system-spec-kit/mcp_server/README.md:1698:Start with `memory_context` for all retrieval tasks. It handles intent detection and routing automatically. Use `memory_search` when you want explicit control over channels. Use `memory_match_triggers` when processing a raw prompt at the start of each turn. Use L4-L7 tools only for mutation, analysis or maintenance.
.opencode/skills/system-spec-kit/mcp_server/README.md:1702:**Q: What does the dryRun parameter do on memory_save?**

codex
I found the memory subsystem. It is mainly under:

[.opencode/skills/system-spec-kit](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit)

Core entry points:

- [README.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/README.md:334) has the high-level Memory Engine overview.
- [memory_system.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/references/memory/memory_system.md:1) is the main reference doc.
- [save_workflow.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/references/memory/save_workflow.md:1) explains `/memory:save` and `generate-context.js`.
- [README.txt](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/commands/memory/README.txt:1) documents the slash commands: `/memory:search`, `/memory:save`, `/memory:learn`, `/memory:manage`.

Implementation hotspots:

- [tool-schemas.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:47) defines the MCP memory tools.
- [memory-context.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts) handles unified retrieval.
- [memory-search.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts) handles search.
- [memory-save.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts) handles indexing/saves.
- [generate-context.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts) is the canonical save script source.

My read: “memory” here means Spec Kit Memory, a local-first MCP system for indexing spec docs, continuity, constitutional rules, causal links, working memory, and retrieval via vector/FTS/BM25/graph channels. The docs say recovery should prefer `handover.md -> _memory.continuity -> canonical spec docs`, then widen into `memory_context()` / `memory_search()` when needed.
hook: Stop
hook: Stop Completed
2026-04-26T18:11:09.708251Z ERROR codex_core::session: failed to record rollout items: thread 019dcafc-67ca-7983-be01-fff282c19095 not found
tokens used
52,484
I found the memory subsystem. It is mainly under:

[.opencode/skills/system-spec-kit](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit)

Core entry points:

- [README.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/README.md:334) has the high-level Memory Engine overview.
- [memory_system.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/references/memory/memory_system.md:1) is the main reference doc.
- [save_workflow.md](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/references/memory/save_workflow.md:1) explains `/memory:save` and `generate-context.js`.
- [README.txt](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/commands/memory/README.txt:1) documents the slash commands: `/memory:search`, `/memory:save`, `/memory:learn`, `/memory:manage`.

Implementation hotspots:

- [tool-schemas.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/tool-schemas.ts:47) defines the MCP memory tools.
- [memory-context.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-context.ts) handles unified retrieval.
- [memory-search.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-search.ts) handles search.
- [memory-save.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/mcp_server/handlers/memory-save.ts) handles indexing/saves.
- [generate-context.ts](/Users/michelkerkmeester/MEGA/Development/Code_Environment/Public/.opencode/skills/system-spec-kit/scripts/memory/generate-context.ts) is the canonical save script source.

My read: “memory” here means Spec Kit Memory, a local-first MCP system for indexing spec docs, continuity, constitutional rules, causal links, working memory, and retrieval via vector/FTS/BM25/graph channels. The docs say recovery should prefer `handover.md -> _memory.continuity -> canonical spec docs`, then widen into `memory_context()` / `memory_search()` when needed.
