From dd5a2211c9f2255d16969d2b2e788645b244d6a4 Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Sat, 18 Jul 2026 19:01:04 -0400 Subject: [PATCH] enhance(#1964): semantic knowledge-base recall via MemPalace (keyword fallback) (#2416) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(#1964): add failing-first semantic-recall contract tests Epic #1957 Phase 3C (final). Source-text-is-the-product contract tests: semantic recall via MemPalace (top-k meaning-similar prior resolutions, catches same-root-cause/different-wording cases), indexing resolved sessions at archive, graceful degradation to keyword matching when MemPalace is absent, knowledge-base.md stays the durable plain-text source of truth, agent Phase 0 / Matching Logic is semantic-first (the stale 'keyword overlap, not semantic similarity' claim must go), and no new embedding/vector infra (reuse MemPalace). Failing-first: reference, the Matching Logic reframe, the Phase 0 consolidation, and the archive indexing step do not yet exist. * feat(#1964): semantic knowledge-base recall via MemPalace (keyword fallback) Epic #1957 Phase 3C (FINAL). Replaces keyword-overlap matching with semantic recall: at Phase 0 the debugger queries MemPalace with the current symptoms and surfaces the top-k meaning-similar prior resolutions, catching the same-root-cause/different-wording cases keyword overlap missed (the self-noted 'keyword overlap, not semantic similarity' limitation). Resolved sessions are indexed into MemPalace at archive (symptoms + root_cause(s) + fix + recurrence guard). knowledge-base.md remains the durable plain-text source of truth; when MemPalace is absent the debugger falls back to keyword-overlap matching (logged, never a silent skip). No new embedding/vector infrastructure — MemPalace is reused. Size-neutral agent edits: the Matching Logic section reframed (keyword-only -> semantic-first + keyword-fallback + @-include); Phase 0's three keyword bullets consolidated into one semantic-first bullet; one MemPalace-indexing step added at archive. Agent at 57222 B (122 B headroom — final phase). Full rules in gsd-core/references/debugger-semantic-recall.md. INVENTORY + manifest + agent-size baseline + install-parity goldens + AGENTS.md updated. * fix(#1964): address orthogonal review (invocation mechanism, index Resolution-not-symptoms + redaction, fallback detail) - HIGH: the 'query MemPalace' instruction was WHAT-level only; the agent has no MCP tools. Added an Invocation section naming the Bash CLI (mempalace search --wing ) + MCP-when-registered + wing resolution (config.mempalace.wing -> project_code -> project dir), matching every other MemPalace integration. Without this the feature silently degraded to keyword matching even when MemPalace was present. - MEDIUM (security x2): index the agent-authored Resolution summary (root_cause + fix + recurrence_guard), NOT raw user-supplied Symptoms — excludes attacker-controlled prose from the cross-session index AND reduces secret/PII leakage. Redact secret-shaped values before indexing. Stated the write order (KB append + commit MUST succeed before indexing). - LOW: restored 'identifiers' + 'case-insensitive' to the keyword fallback; added a test asserting the fallback mechanics survived the Phase 0 consolidation (Error patterns field, 2+ token overlap, identifiers, case-insensitive). * chore(#1964): ratchet agent-size baseline downward (leaner archive bullet shrank gsd-debugger.md 57222->57197) * chore(#1964): backfill changeset pr number (PR #2416) --- .changeset/1964-semantic-kb-recall.md | 5 + agents/gsd-debugger.md | 12 +- docs/AGENTS.md | 1 + docs/INVENTORY-MANIFEST.json | 1 + docs/INVENTORY.md | 1 + .../references/debugger-semantic-recall.md | 81 ++++++++++++++ tests/agent-size-baseline.json | 2 +- tests/debugger-semantic-recall.test.cjs | 104 ++++++++++++++++++ .../golden-install-parity/antigravity.json | 3 +- .../golden-install-parity/augment.json | 3 +- .../golden-install-parity/claude-local.json | 3 +- .../golden-install-parity/claude.json | 3 +- .../fixtures/golden-install-parity/cline.json | 3 +- .../golden-install-parity/codebuddy.json | 3 +- .../fixtures/golden-install-parity/codex.json | 5 +- .../golden-install-parity/copilot.json | 3 +- .../golden-install-parity/cursor.json | 3 +- .../golden-install-parity/hermes.json | 3 +- .../fixtures/golden-install-parity/kilo.json | 3 +- .../fixtures/golden-install-parity/kimi.json | 3 +- .../golden-install-parity/opencode.json | 3 +- tests/fixtures/golden-install-parity/pi.json | 1 + .../fixtures/golden-install-parity/qwen.json | 3 +- .../fixtures/golden-install-parity/trae.json | 3 +- .../golden-install-parity/windsurf.json | 3 +- .../fixtures/golden-install-parity/zcode.json | 3 +- tests/fixtures/install-tree/antigravity.json | 1 + tests/fixtures/install-tree/augment.json | 1 + tests/fixtures/install-tree/claude-local.json | 1 + tests/fixtures/install-tree/claude.json | 1 + tests/fixtures/install-tree/cline.json | 1 + tests/fixtures/install-tree/codebuddy.json | 1 + tests/fixtures/install-tree/codex.json | 1 + tests/fixtures/install-tree/copilot.json | 1 + tests/fixtures/install-tree/cursor.json | 1 + tests/fixtures/install-tree/hermes.json | 1 + tests/fixtures/install-tree/kilo.json | 1 + tests/fixtures/install-tree/kimi.json | 1 + tests/fixtures/install-tree/opencode.json | 1 + tests/fixtures/install-tree/pi.json | 1 + tests/fixtures/install-tree/qwen.json | 1 + tests/fixtures/install-tree/trae.json | 1 + tests/fixtures/install-tree/windsurf.json | 1 + tests/fixtures/install-tree/zcode.json | 1 + 44 files changed, 255 insertions(+), 24 deletions(-) create mode 100644 .changeset/1964-semantic-kb-recall.md create mode 100644 gsd-core/references/debugger-semantic-recall.md create mode 100644 tests/debugger-semantic-recall.test.cjs diff --git a/.changeset/1964-semantic-kb-recall.md b/.changeset/1964-semantic-kb-recall.md new file mode 100644 index 000000000..5a4b542ec --- /dev/null +++ b/.changeset/1964-semantic-kb-recall.md @@ -0,0 +1,5 @@ +--- +type: Changed +pr: 2416 +--- +**`gsd-debugger` now recalls prior resolved sessions semantically via MemPalace instead of keyword overlap** — at Phase 0 the debugger queries MemPalace with the current symptoms and surfaces the top-k meaning-similar prior resolutions as candidate hypotheses, catching the same-root-cause / different-wording cases keyword overlap missed (a prior "requests hang under load" now surfaces for "API times out when many users connect"). Resolved sessions are indexed into MemPalace at archive (symptoms + root cause(s) + fix + recurrence guard). `knowledge-base.md` remains the durable plain-text source of truth; when MemPalace is absent the debugger falls back to keyword-overlap matching against it (logged, never a silent skip). No new embedding/vector infrastructure — MemPalace is reused. Full rules live in `gsd-core/references/debugger-semantic-recall.md`. (#1964) diff --git a/agents/gsd-debugger.md b/agents/gsd-debugger.md index cc6a75157..f5f9cf57f 100644 --- a/agents/gsd-debugger.md +++ b/agents/gsd-debugger.md @@ -822,9 +822,11 @@ At the **end of `archive_session`**, after the session file is moved to `resolve ## Matching Logic -Matching is keyword overlap, not semantic similarity. Extract nouns and error substrings from `Symptoms.errors` and `Symptoms.actual`. Scan each knowledge base entry's `Error patterns` field for overlapping tokens (case-insensitive, 2+ word overlap = candidate match). +**Semantic-first, keyword-fallback.** Query MemPalace with the current symptoms and surface the top-k meaning-similar prior resolutions — this catches same-root-cause/different-wording cases keyword overlap misses. Fall back to keyword overlap on `knowledge-base.md` when MemPalace is absent. See: -**Important:** A match is a **hypothesis candidate**, not a confirmed diagnosis. Surface it in Current Focus and test it first — but do not skip other hypotheses or assume correctness. +@~/.claude/gsd-core/references/debugger-semantic-recall.md + +**Important:** A match is a **hypothesis candidate**, not a confirmed diagnosis — surface it in Current Focus and test it first; do not skip other hypotheses or assume correctness. @@ -984,9 +986,7 @@ At investigation decision points, apply structured reasoning: **Autonomous investigation. Update file continuously.** **Phase 0: Check knowledge base** -- If `.planning/debug/knowledge-base.md` exists, read it -- Extract keywords from `Symptoms.errors` and `Symptoms.actual` (nouns, error substrings, identifiers) -- Scan knowledge base entries for 2+ keyword overlap (case-insensitive) +- Query MemPalace semantically with the current symptoms (top-k meaning-similar prior resolutions); fall back to reading `.planning/debug/knowledge-base.md` and keyword overlap when MemPalace is absent - If match found: - Note in Current Focus: `known_pattern_candidate: "{matched slug} — {description}"` - Add to Evidence: `found: Knowledge base match on [{keywords}] → Root cause was: {root_cause}. Fix was: {fix}. Why not caught: {why_not_caught}. Recurrence guard: {recurrence_guard}.` (the last two are absent on old entries — that's fine; consume them when present) @@ -1251,6 +1251,8 @@ Commit the knowledge base update alongside the resolved session: gsd_run query commit "docs: update debug knowledge base with {slug}" --files .planning/debug/knowledge-base.md ``` +**Index into MemPalace (when available)** per the semantic-recall reference — the Resolution summary (not raw symptoms), redacted — so a future Phase-0 query surfaces it by meaning. Skip with a logged note when MemPalace is absent or the KB write failed; `knowledge-base.md` is the durable fallback. + Report completion and offer next steps. diff --git a/docs/AGENTS.md b/docs/AGENTS.md index c31ac1ae4..462375240 100644 --- a/docs/AGENTS.md +++ b/docs/AGENTS.md @@ -406,6 +406,7 @@ runs its default whole-repo scan. - Classifies each failure as Bohrbug / Heisenbug-Mandelbug / Concurrency at Phase 1.75 and routes the investigation technique accordingly (routes Bohrbugs to SBFL+bisect, Heisenbugs to record-replay/stability with SBFL skipped, Concurrency to the atomicity/order/deadlock checklist) - Hardens regression tests via PBT shrinking (minimized counterexample as the seed), explicit oracle classification (specified/derived/metamorphic/implicit), and boundary neighbors around the fixed equivalence class - Emits a blameless-postmortem Prevention block at resolution (branching 5-Whys, why-wasn't-this-caught, a concrete recurrence guard) and records `why_not_caught` + `recurrence_guard` in the knowledge base so the same bug class is prevented, not just fixed +- Recalls prior resolved sessions semantically via MemPalace at Phase 0 (top-k meaning-similar), catching same-root-cause/different-wording cases keyword overlap misses; falls back to keyword matching when MemPalace is absent - Appends to persistent knowledge base on resolution - Consults knowledge base on new sessions diff --git a/docs/INVENTORY-MANIFEST.json b/docs/INVENTORY-MANIFEST.json index a25692e4a..517f811fd 100644 --- a/docs/INVENTORY-MANIFEST.json +++ b/docs/INVENTORY-MANIFEST.json @@ -221,6 +221,7 @@ "debugger-rca-branching.md", "debugger-repro-hardening.md", "debugger-sbfl.md", + "debugger-semantic-recall.md", "decimal-phase-calculation.md", "doc-conflict-engine.md", "domain-probes.md", diff --git a/docs/INVENTORY.md b/docs/INVENTORY.md index 6771e2ffb..5503fb4bd 100644 --- a/docs/INVENTORY.md +++ b/docs/INVENTORY.md @@ -300,6 +300,7 @@ Full roster at `gsd-core/references/*.md`. References are shared knowledge docum | `debugger-bug-taxonomy.md` | Bug-taxonomy classification (Bohrbug/Heisenbug/Concurrency) + technique routing table loaded by `gsd-debugger`. | | `debugger-repro-hardening.md` | Regression-test hardening (PBT shrinking + oracle classification + boundary neighbors) loaded by `gsd-debugger`. | | `debugger-prevention.md` | Prevention / blameless-postmortem output (5-Whys + why-not-caught + recurrence guard) loaded by `gsd-debugger`. | +| `debugger-semantic-recall.md` | Semantic knowledge-base recall via MemPalace (keyword-fallback) loaded by `gsd-debugger`. | | `mandatory-initial-read.md` | Shared required-reading boilerplate injected into agent prompts. | | `agent-skills-bootstrap.md` | Shared agent_skills self-load contract (query + Read + dedup guard) injected into all 22 consumer agents. | | `project-skills-discovery.md` | Shared project-skills-discovery boilerplate injected into agent prompts. | diff --git a/gsd-core/references/debugger-semantic-recall.md b/gsd-core/references/debugger-semantic-recall.md new file mode 100644 index 000000000..71ce6a5d7 --- /dev/null +++ b/gsd-core/references/debugger-semantic-recall.md @@ -0,0 +1,81 @@ +# Semantic Knowledge-Base Recall via MemPalace + +Loaded by `gsd-debugger` via `@-include` from the `knowledge_base_protocol` +Matching Logic. Replaces keyword-overlap matching with **semantic recall** so a +prior session that resolved "requests hang under load" surfaces for a new "API +times out when many users connect" — same root cause, no shared keywords. + +## Why this exists + +The knowledge base's self-noted limitation was explicit: *"Matching is keyword +overlap, not semantic similarity."* Keyword overlap only fires on lexical +coincidence — the highest-value recalls (same root cause, different wording) +are exactly the ones it misses, and its value decays as the corpus grows. + +## The approach — reuse MemPalace, add no new infrastructure + +Layer semantic recall on top of the existing knowledge base by **reusing +MemPalace** (the semantic-memory capability already in this environment) — +**without adding new embedding or vector infrastructure** (Choose Boring / +Zawinski: spend no new "innovation token" on a bespoke vector store the +debugger would own). + +`.planning/debug/knowledge-base.md` remains the **durable plain-text source of +truth**; semantic recall is an additive layer over it, not a replacement. + +## Write — index resolved sessions at archive + +At `archive_session`, after appending the entry to `knowledge-base.md` (the KB +append + commit MUST succeed first — `knowledge-base.md` is the durable source +of truth; skip indexing on KB-write failure), **index the resolved session into +MemPalace**. + +**Index the agent-authored `Resolution` summary — `root_cause(s)` + `fix` + the +Prevention `recurrence_guard` — NOT the raw user-supplied `Symptoms`.** The +Resolution is the post-investigation, agent-synthesized signal; indexing it +(rather than raw symptoms) excludes attacker-controlled prose from the +cross-session index and reduces secret/PII leakage. Even so, **redact +secret-shaped values** (API keys, bearer tokens, JWTs, passwords, credentials) +from the summary before indexing — a bug report's error string can echo a +secret, and MemPalace is a cross-session, cross-project store. + +## Invocation (the agent has no MCP tools — use the CLI) + +The `gsd-debugger` `tools:` frontmatter grants no MCP tools, so query and index +via the **Bash CLI** (the headless/autonomous path): `mempalace search +"" --wing ` to recall, and the matching index command on +archive. If an `mempalace_search(query, wing)` MCP tool is registered in the +runtime, prefer it. **Resolve the wing** from `config.mempalace.wing` → else the +project's `project_code` → else the project directory name (the same precedence +every other MemPalace integration uses). + +## Read — query MemPalace at Phase 0 + +At Phase 0, **query MemPalace semantically with the current symptoms** and +surface the **top-k meaning-similar prior resolutions** as candidate +hypotheses. Each surfaced candidate flows into Evidence exactly as a +keyword-match candidate would — a hypothesis to test first, not a confirmed +diagnosis. + +This catches the **same-root-cause / different-wording** case: a prior +"requests hang under load" resolution surfaces for "API times out when many +users connect" even though no keywords overlap. + +## Graceful degradation — MemPalace absent + +When MemPalace is unavailable (not installed, not configured, or the query +errors), **fall back to keyword-overlap matching** against +`knowledge-base.md`: extract nouns, error substrings, and **identifiers** +(function/variable names — often the highest-signal token) from +`Symptoms.errors` and `Symptoms.actual`, and scan each entry's `Error patterns` +field for **2+ token overlap (case-insensitive)**. The fallback is logged +(Kernighan — never a silent skip), and `knowledge-base.md` continues to be +written regardless, so no session is lost to a missing palace. + +## Scope boundary (Zawinski's Law) + +An additive recall layer over the existing knowledge base, reusing an existing +semantic-memory capability. Not a new command, not a vector database, not an +embedding pipeline the debugger owns. Where MemPalace is absent the debugger +behaves exactly as it did before this layer — keyword matching against the +plain-text knowledge base. diff --git a/tests/agent-size-baseline.json b/tests/agent-size-baseline.json index baf41a51b..11212ff5e 100644 --- a/tests/agent-size-baseline.json +++ b/tests/agent-size-baseline.json @@ -6,7 +6,7 @@ "gsd-code-reviewer.md": 16870, "gsd-codebase-mapper.md": 21485, "gsd-debug-session-manager.md": 17161, - "gsd-debugger.md": 56835, + "gsd-debugger.md": 57197, "gsd-doc-classifier.md": 11717, "gsd-doc-synthesizer.md": 13154, "gsd-doc-verifier.md": 12403, diff --git a/tests/debugger-semantic-recall.test.cjs b/tests/debugger-semantic-recall.test.cjs new file mode 100644 index 000000000..2b89543d5 --- /dev/null +++ b/tests/debugger-semantic-recall.test.cjs @@ -0,0 +1,104 @@ +// allow-test-rule: source-text-is-the-product (see #1964) +// Agent .md + reference .md files — their text IS what the runtime loads. +// Testing text content tests the deployed semantic-recall contract. +// Per CONTRIBUTING.md exception matrix. Covers epic #1957 Phase 3C (#1964). +'use strict'; + +const { describe, test } = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); + +const ROOT = process.cwd(); +const AGENT = path.join(ROOT, 'agents/gsd-debugger.md'); +const REFERENCE = path.join(ROOT, 'gsd-core/references/debugger-semantic-recall.md'); + +describe('semantic knowledge-base recall via MemPalace (#1964, epic #1957 Phase 3C)', () => { + describe('reference extract exists and is wired in', () => { + test('gsd-core/references/debugger-semantic-recall.md exists', () => { + assert.ok(fs.existsSync(REFERENCE), 'debugger-semantic-recall.md reference must exist'); + }); + + test('gsd-debugger.md @-includes the semantic-recall reference', () => { + const content = fs.readFileSync(AGENT, 'utf8'); + assert.ok( + content.includes('@~/.claude/gsd-core/references/debugger-semantic-recall.md'), + 'gsd-debugger.md must @-include the semantic-recall reference from the knowledge_base_protocol / Matching Logic' + ); + }); + }); + + describe('semantic recall via MemPalace (criterion 1 — same root cause, different wording)', () => { + test('reference documents querying MemPalace for meaning-similar prior resolutions', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/mempalace/i.test(content), 'must name MemPalace as the semantic-memory surface'); + assert.ok(/semantic/i.test(content), 'must document semantic (not keyword) recall'); + assert.ok(/top-?k|meaning.similar|semantically.similar/i.test(content), + 'must document surfacing top-k meaning-similar prior resolutions'); + }); + + test('reference states the payoff: catches lexically-different / same-root-cause cases', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/different.{0,30}word|lexically|same root cause|wording/i.test(content), + 'must state that semantic recall catches same-root-cause/different-wording cases keyword overlap misses (the self-noted limitation)'); + }); + + test('reference documents indexing resolved sessions into MemPalace at archive', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/index|archive|store|capture/i.test(content), + 'must document that resolved sessions are indexed into MemPalace at archive time'); + }); + }); + + describe('graceful degradation — MemPalace absent falls back to keyword matching (criterion 2)', () => { + test('reference documents the keyword fallback when MemPalace is unavailable', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/fall[\s-]?back|fallback|when.*(?:absent|unavailable)|degrade/i.test(content), + 'must document degradation to keyword matching when MemPalace is absent'); + assert.ok(/keyword/i.test(content), 'must name keyword matching as the fallback'); + }); + + test('the keyword-fallback mechanics survived the Phase 0 consolidation', () => { + // Guards against the consolidation dropping the extraction detail the + // fallback path needs. The reference must still document the Error + // patterns field scan + the 2+ token threshold + identifiers + case-insensitive. + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/error patterns/i.test(content), 'fallback must scan the Error patterns field'); + assert.ok(/2\+ token overlap/i.test(content), 'fallback must keep the 2+ token overlap threshold'); + assert.ok(/identifier/i.test(content), 'fallback must keep identifier extraction (highest-signal token)'); + assert.ok(/case-insensitive/i.test(content), 'fallback must keep the case-insensitive qualifier'); + }); + + test('knowledge-base.md remains the durable plain-text source of truth', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/knowledge-base\.md|durable|plain[\s-]?text|source of truth/i.test(content), + 'must state that knowledge-base.md remains the durable plain-text source of truth (semantic recall is layered on top)'); + }); + }); + + describe('agent wiring — Phase 0 / Matching Logic is semantic-first', () => { + test('gsd-debugger.md knowledge_base_protocol describes semantic-first matching', () => { + const content = fs.readFileSync(AGENT, 'utf8'); + // The Matching Logic section must now lead with semantic recall, not "keyword overlap, not semantic" + assert.ok(/semantic/i.test(content), 'agent must reference semantic recall'); + assert.ok(/mempalace/i.test(content), 'agent must name MemPalace'); + assert.ok(/fall[\s-]?back|fallback/i.test(content), 'agent must describe the keyword fallback'); + }); + + test('the stale "keyword overlap, not semantic similarity" claim is gone', () => { + const content = fs.readFileSync(AGENT, 'utf8'); + assert.ok( + !/keyword overlap, not semantic similarity/i.test(content), + 'the old "Matching is keyword overlap, not semantic similarity" claim must be removed (it is now semantic-first)' + ); + }); + }); + + describe('no new embedding/vector infrastructure (Choose Boring / Zawinski)', () => { + test('reference states MemPalace is reused — no new vector store', () => { + const content = fs.readFileSync(REFERENCE, 'utf8'); + assert.ok(/reuse|no new|without adding|existing.*(?:semantic|memory|capability)/i.test(content), + 'must state MemPalace is reused rather than adding new embedding/vector infrastructure'); + }); + }); +}); diff --git a/tests/fixtures/golden-install-parity/antigravity.json b/tests/fixtures/golden-install-parity/antigravity.json index a32277971..0c748ea85 100644 --- a/tests/fixtures/golden-install-parity/antigravity.json +++ b/tests/fixtures/golden-install-parity/antigravity.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "a700d295bbf110a9", "agents/gsd-codebase-mapper.md": "afdae82284cb21b4", "agents/gsd-debug-session-manager.md": "8a7ae327a00d47cd", - "agents/gsd-debugger.md": "b4d6a994d6c433c4", + "agents/gsd-debugger.md": "9c8f34fc022b2616", "agents/gsd-doc-classifier.md": "fca19595590391df", "agents/gsd-doc-synthesizer.md": "0e5184bbcf0dca02", "agents/gsd-doc-verifier.md": "888c6ac870cb91a6", @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "745e517012e03d23", "gsd-core/references/debugger-sbfl.md": "de9cd1bd0e1485c6", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/augment.json b/tests/fixtures/golden-install-parity/augment.json index 1b8f07a07..2d7c287d1 100644 --- a/tests/fixtures/golden-install-parity/augment.json +++ b/tests/fixtures/golden-install-parity/augment.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "bc8a6f2e1f787ff5", "agents/gsd-codebase-mapper.md": "85ea778ad9cf7e66", "agents/gsd-debug-session-manager.md": "1d966d0bbf22660c", - "agents/gsd-debugger.md": "7141e0c61747befe", + "agents/gsd-debugger.md": "584692481a9f5e0f", "agents/gsd-doc-classifier.md": "262a94b947a4e2aa", "agents/gsd-doc-synthesizer.md": "01f90ea9b0d05d7d", "agents/gsd-doc-verifier.md": "b3433e0db51e1c60", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/golden-install-parity/claude-local.json b/tests/fixtures/golden-install-parity/claude-local.json index 38ca4e85a..b4587b6d0 100644 --- a/tests/fixtures/golden-install-parity/claude-local.json +++ b/tests/fixtures/golden-install-parity/claude-local.json @@ -7,7 +7,7 @@ "agents/gsd-code-reviewer.md": "e2c45baa8c0b5f6d", "agents/gsd-codebase-mapper.md": "f96958e5f85b93fb", "agents/gsd-debug-session-manager.md": "d5fbb343fac38729", - "agents/gsd-debugger.md": "13cfdb9e8caa78d9", + "agents/gsd-debugger.md": "d6785173fbeee901", "agents/gsd-doc-classifier.md": "a76778bdde1c7f72", "agents/gsd-doc-synthesizer.md": "8b0b6fc187c9d353", "agents/gsd-doc-verifier.md": "4232dcf9076e3566", @@ -137,6 +137,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/claude.json b/tests/fixtures/golden-install-parity/claude.json index 8177bdb95..c1da80a0b 100644 --- a/tests/fixtures/golden-install-parity/claude.json +++ b/tests/fixtures/golden-install-parity/claude.json @@ -7,7 +7,7 @@ "agents/gsd-code-reviewer.md": "d626a828e8de3648", "agents/gsd-codebase-mapper.md": "8c2e9f2ce3aedf78", "agents/gsd-debug-session-manager.md": "1e23cdf4376bed3c", - "agents/gsd-debugger.md": "54cb91f574d020ed", + "agents/gsd-debugger.md": "064815a723abac0c", "agents/gsd-doc-classifier.md": "a636ae9594b25770", "agents/gsd-doc-synthesizer.md": "dfb95eedfb3789bf", "agents/gsd-doc-verifier.md": "4232dcf9076e3566", @@ -66,6 +66,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/cline.json b/tests/fixtures/golden-install-parity/cline.json index 88b662785..326674cb1 100644 --- a/tests/fixtures/golden-install-parity/cline.json +++ b/tests/fixtures/golden-install-parity/cline.json @@ -11,7 +11,7 @@ "agents/gsd-code-reviewer.md": "e5ec12d4d409e800", "agents/gsd-codebase-mapper.md": "e5b7941bdda53c91", "agents/gsd-debug-session-manager.md": "444fa983fdc85325", - "agents/gsd-debugger.md": "815a2b65d85c29dd", + "agents/gsd-debugger.md": "427daaf994a596ba", "agents/gsd-doc-classifier.md": "5011d7358d2b2848", "agents/gsd-doc-synthesizer.md": "e59cdd669876582d", "agents/gsd-doc-verifier.md": "b60290c9d9f6d8d2", @@ -70,6 +70,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "98872822b7f1ef08", "gsd-core/references/debugger-sbfl.md": "6e4975ee50973c23", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/golden-install-parity/codebuddy.json b/tests/fixtures/golden-install-parity/codebuddy.json index f9a529536..a83090e61 100644 --- a/tests/fixtures/golden-install-parity/codebuddy.json +++ b/tests/fixtures/golden-install-parity/codebuddy.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "5342fcc0da974696", "agents/gsd-codebase-mapper.md": "b995bf01af0193d2", "agents/gsd-debug-session-manager.md": "8a495718576f24e6", - "agents/gsd-debugger.md": "dbf1b89a5ef6a7ea", + "agents/gsd-debugger.md": "e454548710419254", "agents/gsd-doc-classifier.md": "c2bf59af9467810b", "agents/gsd-doc-synthesizer.md": "b2a179bf3c9bd636", "agents/gsd-doc-verifier.md": "e74d930905a782ea", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/golden-install-parity/codex.json b/tests/fixtures/golden-install-parity/codex.json index 68b2c120c..11e1a52e6 100644 --- a/tests/fixtures/golden-install-parity/codex.json +++ b/tests/fixtures/golden-install-parity/codex.json @@ -86,8 +86,8 @@ "agents/gsd-codebase-mapper.toml": "a4609f3ac66c2081", "agents/gsd-debug-session-manager.md": "8a336fd497d2e6b2", "agents/gsd-debug-session-manager.toml": "277a54c7661ff018", - "agents/gsd-debugger.md": "ad9aa9530c891872", - "agents/gsd-debugger.toml": "b05785c9a4dad6f6", + "agents/gsd-debugger.md": "b2a4aff97b1b87e3", + "agents/gsd-debugger.toml": "dcf71d070a325e67", "agents/gsd-doc-classifier.md": "2745bc04d7b93666", "agents/gsd-doc-classifier.toml": "3fe5ec83f62b586e", "agents/gsd-doc-synthesizer.md": "4f545f2e916458ad", @@ -173,6 +173,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566", "gsd-core/references/debugger-sbfl.md": "391e732abf32786a", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "ee363ec47be68922", "gsd-core/references/doc-conflict-engine.md": "257aba80c93854d4", "gsd-core/references/domain-probes.md": "4901deac8eac0f49", diff --git a/tests/fixtures/golden-install-parity/copilot.json b/tests/fixtures/golden-install-parity/copilot.json index 7a67178e8..77b9f6561 100644 --- a/tests/fixtures/golden-install-parity/copilot.json +++ b/tests/fixtures/golden-install-parity/copilot.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.agent.md": "fa1e7c421c78eae1", "agents/gsd-codebase-mapper.agent.md": "949bc73f2a7ea44d", "agents/gsd-debug-session-manager.agent.md": "e669e5d76bfd7810", - "agents/gsd-debugger.agent.md": "1f5cd5c6d3d7d1aa", + "agents/gsd-debugger.agent.md": "f7d0307490617a8a", "agents/gsd-doc-classifier.agent.md": "aea81c0ba00e06cf", "agents/gsd-doc-synthesizer.agent.md": "6ae32e4db005696d", "agents/gsd-doc-verifier.agent.md": "0230208ae7ab1a08", @@ -68,6 +68,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "62089f91dfa470bd", "gsd-core/references/debugger-sbfl.md": "5bb65a8653bf2e06", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/cursor.json b/tests/fixtures/golden-install-parity/cursor.json index 240a6b7ae..c830ea540 100644 --- a/tests/fixtures/golden-install-parity/cursor.json +++ b/tests/fixtures/golden-install-parity/cursor.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "f29d6edbac0a01b6", "agents/gsd-codebase-mapper.md": "d49c91fdab4efc70", "agents/gsd-debug-session-manager.md": "c723ce1b8691296f", - "agents/gsd-debugger.md": "3a568af40765db29", + "agents/gsd-debugger.md": "bd40d58a35995f22", "agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b", "agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d", "agents/gsd-doc-verifier.md": "9934ec11845d41c3", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "d5f1796cde97e7d2", "gsd-core/references/debugger-sbfl.md": "838445590aab52e3", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/hermes.json b/tests/fixtures/golden-install-parity/hermes.json index 4b2235f42..65467490f 100644 --- a/tests/fixtures/golden-install-parity/hermes.json +++ b/tests/fixtures/golden-install-parity/hermes.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "5ef947ca5baed775", "agents/gsd-codebase-mapper.md": "feccaeeacd05e34b", "agents/gsd-debug-session-manager.md": "d46222bd8037b695", - "agents/gsd-debugger.md": "ef869f69333fdcd9", + "agents/gsd-debugger.md": "3b00e344e8200dce", "agents/gsd-doc-classifier.md": "29b563a146c9d22c", "agents/gsd-doc-synthesizer.md": "652beb928e93fa1d", "agents/gsd-doc-verifier.md": "d3d8457bdd44bf10", @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "8318008696c1e0b2", "gsd-core/references/debugger-sbfl.md": "70e699200f6197e0", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/kilo.json b/tests/fixtures/golden-install-parity/kilo.json index ab851bf7a..670eb83cf 100644 --- a/tests/fixtures/golden-install-parity/kilo.json +++ b/tests/fixtures/golden-install-parity/kilo.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "922c08885bc78662", "agents/gsd-codebase-mapper.md": "0ccbf6a685804979", "agents/gsd-debug-session-manager.md": "42a775633c9b1b34", - "agents/gsd-debugger.md": "753165cedae67dd6", + "agents/gsd-debugger.md": "aab7ddbbdc75f6c8", "agents/gsd-doc-classifier.md": "6256bbc0b887f60f", "agents/gsd-doc-synthesizer.md": "212aaf89a34b51d7", "agents/gsd-doc-verifier.md": "8016f792d0766b77", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566", "gsd-core/references/debugger-sbfl.md": "391e732abf32786a", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/kimi.json b/tests/fixtures/golden-install-parity/kimi.json index eb3dd33a6..3b964e019 100644 --- a/tests/fixtures/golden-install-parity/kimi.json +++ b/tests/fixtures/golden-install-parity/kimi.json @@ -45,7 +45,7 @@ "agents/subagents/gsd-codebase-mapper.yaml": "bce1c6d15f55c477", "agents/subagents/gsd-debug-session-manager.md": "cec62a7fd99ab1c3", "agents/subagents/gsd-debug-session-manager.yaml": "aab147717b5082e7", - "agents/subagents/gsd-debugger.md": "ce8ab001fde869cb", + "agents/subagents/gsd-debugger.md": "2021c72a39d56fe5", "agents/subagents/gsd-debugger.yaml": "6d02d7feb90cad43", "agents/subagents/gsd-doc-classifier.md": "632dc6c61bafa63e", "agents/subagents/gsd-doc-classifier.yaml": "a4e9cf7025b57503", @@ -131,6 +131,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/golden-install-parity/opencode.json b/tests/fixtures/golden-install-parity/opencode.json index c287a411f..ccd47f4c2 100644 --- a/tests/fixtures/golden-install-parity/opencode.json +++ b/tests/fixtures/golden-install-parity/opencode.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "2249774416314c57", "agents/gsd-codebase-mapper.md": "948612acd505e87f", "agents/gsd-debug-session-manager.md": "e4b96ea41c74c479", - "agents/gsd-debugger.md": "e7f3e6c558756918", + "agents/gsd-debugger.md": "f08bcc712bc98469", "agents/gsd-doc-classifier.md": "fb776cfbb7e991b0", "agents/gsd-doc-synthesizer.md": "2389f388d291c2eb", "agents/gsd-doc-verifier.md": "65bbc2ae6b9ace29", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566", "gsd-core/references/debugger-sbfl.md": "391e732abf32786a", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/pi.json b/tests/fixtures/golden-install-parity/pi.json index 813d5cef0..955ed5f77 100644 --- a/tests/fixtures/golden-install-parity/pi.json +++ b/tests/fixtures/golden-install-parity/pi.json @@ -34,6 +34,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/golden-install-parity/qwen.json b/tests/fixtures/golden-install-parity/qwen.json index f0d62358c..82282f03c 100644 --- a/tests/fixtures/golden-install-parity/qwen.json +++ b/tests/fixtures/golden-install-parity/qwen.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "27eeeee6cb600e9b", "agents/gsd-codebase-mapper.md": "032ff8ac55466a74", "agents/gsd-debug-session-manager.md": "c1c9c5f538acb941", - "agents/gsd-debugger.md": "2a6bf0bb1a964771", + "agents/gsd-debugger.md": "41bdbb009989d3a0", "agents/gsd-doc-classifier.md": "bdf3d54082424e76", "agents/gsd-doc-synthesizer.md": "96c383b74a60fbbe", "agents/gsd-doc-verifier.md": "da9ab6f3ec27778a", @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "07ad93b8bcad3c34", "gsd-core/references/debugger-sbfl.md": "061b719c754a12d3", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/trae.json b/tests/fixtures/golden-install-parity/trae.json index 1ae706265..1897c913e 100644 --- a/tests/fixtures/golden-install-parity/trae.json +++ b/tests/fixtures/golden-install-parity/trae.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "338c46ab59c4e45f", "agents/gsd-codebase-mapper.md": "8529d8a1ede8bbfb", "agents/gsd-debug-session-manager.md": "913a370b529ec717", - "agents/gsd-debugger.md": "7a2fd82d5f328d23", + "agents/gsd-debugger.md": "2d6762c3a0974a31", "agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b", "agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d", "agents/gsd-doc-verifier.md": "e51e50892963ccc7", @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "4bf1af239ae875f3", "gsd-core/references/debugger-sbfl.md": "23d7a3bb15bc8b7c", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/windsurf.json b/tests/fixtures/golden-install-parity/windsurf.json index a3dab3fe9..c559271c7 100644 --- a/tests/fixtures/golden-install-parity/windsurf.json +++ b/tests/fixtures/golden-install-parity/windsurf.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "efc0d2dee321c654", "agents/gsd-codebase-mapper.md": "cfa2bbfaf264e1fd", "agents/gsd-debug-session-manager.md": "86d75b269a6c40e7", - "agents/gsd-debugger.md": "77a2f8edc9193e54", + "agents/gsd-debugger.md": "7f9bd63ccb6e57c2", "agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b", "agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d", "agents/gsd-doc-verifier.md": "ede2f297b73b5a86", @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "b5d7c4a5804327c3", "gsd-core/references/debugger-sbfl.md": "071651eaf7414a4c", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "883d0a1b9d9ff96e", "gsd-core/references/domain-probes.md": "762b965e84035b72", diff --git a/tests/fixtures/golden-install-parity/zcode.json b/tests/fixtures/golden-install-parity/zcode.json index b3749a62b..80bc7743e 100644 --- a/tests/fixtures/golden-install-parity/zcode.json +++ b/tests/fixtures/golden-install-parity/zcode.json @@ -8,7 +8,7 @@ "agents/gsd-code-reviewer.md": "7d94fe8bfa6661aa", "agents/gsd-codebase-mapper.md": "7cc9d387f29c46e1", "agents/gsd-debug-session-manager.md": "dc4e8a556dbf1708", - "agents/gsd-debugger.md": "95854ad0457494f2", + "agents/gsd-debugger.md": "7840ed78e3f662a8", "agents/gsd-doc-classifier.md": "146acf4d176134b5", "agents/gsd-doc-synthesizer.md": "b1f5e2eb28fa3659", "agents/gsd-doc-verifier.md": "7ed4d9611f678a95", @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250", "gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792", "gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd", + "gsd-core/references/debugger-semantic-recall.md": "4add324d495cb25c", "gsd-core/references/decimal-phase-calculation.md": "46b5ba045852c474", "gsd-core/references/doc-conflict-engine.md": "67d019d23e17f934", "gsd-core/references/domain-probes.md": "62d23ed1992c48a9", diff --git a/tests/fixtures/install-tree/antigravity.json b/tests/fixtures/install-tree/antigravity.json index 217154cd2..5b1f1a8d3 100644 --- a/tests/fixtures/install-tree/antigravity.json +++ b/tests/fixtures/install-tree/antigravity.json @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/augment.json b/tests/fixtures/install-tree/augment.json index 43edd9e6e..704dd0e81 100644 --- a/tests/fixtures/install-tree/augment.json +++ b/tests/fixtures/install-tree/augment.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/claude-local.json b/tests/fixtures/install-tree/claude-local.json index 4f415d9c5..4fe08e262 100644 --- a/tests/fixtures/install-tree/claude-local.json +++ b/tests/fixtures/install-tree/claude-local.json @@ -137,6 +137,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/claude.json b/tests/fixtures/install-tree/claude.json index c16839311..b0a5df5d8 100644 --- a/tests/fixtures/install-tree/claude.json +++ b/tests/fixtures/install-tree/claude.json @@ -66,6 +66,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/cline.json b/tests/fixtures/install-tree/cline.json index 5dfb31b1e..95ee215f2 100644 --- a/tests/fixtures/install-tree/cline.json +++ b/tests/fixtures/install-tree/cline.json @@ -70,6 +70,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/codebuddy.json b/tests/fixtures/install-tree/codebuddy.json index fb466af3d..f9494e56b 100644 --- a/tests/fixtures/install-tree/codebuddy.json +++ b/tests/fixtures/install-tree/codebuddy.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/codex.json b/tests/fixtures/install-tree/codex.json index 65f058430..02218d87f 100644 --- a/tests/fixtures/install-tree/codex.json +++ b/tests/fixtures/install-tree/codex.json @@ -173,6 +173,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/copilot.json b/tests/fixtures/install-tree/copilot.json index 22fa6e8ef..f567d5057 100644 --- a/tests/fixtures/install-tree/copilot.json +++ b/tests/fixtures/install-tree/copilot.json @@ -68,6 +68,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/cursor.json b/tests/fixtures/install-tree/cursor.json index da2e15654..5bfa08e68 100644 --- a/tests/fixtures/install-tree/cursor.json +++ b/tests/fixtures/install-tree/cursor.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/hermes.json b/tests/fixtures/install-tree/hermes.json index 841716d98..709080eeb 100644 --- a/tests/fixtures/install-tree/hermes.json +++ b/tests/fixtures/install-tree/hermes.json @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/kilo.json b/tests/fixtures/install-tree/kilo.json index 585f773d5..371012a9d 100644 --- a/tests/fixtures/install-tree/kilo.json +++ b/tests/fixtures/install-tree/kilo.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/kimi.json b/tests/fixtures/install-tree/kimi.json index 55e7347a7..0d7616990 100644 --- a/tests/fixtures/install-tree/kimi.json +++ b/tests/fixtures/install-tree/kimi.json @@ -131,6 +131,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/opencode.json b/tests/fixtures/install-tree/opencode.json index e27c1ad56..3cce8915f 100644 --- a/tests/fixtures/install-tree/opencode.json +++ b/tests/fixtures/install-tree/opencode.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/pi.json b/tests/fixtures/install-tree/pi.json index e490bdf86..f9a68bda4 100644 --- a/tests/fixtures/install-tree/pi.json +++ b/tests/fixtures/install-tree/pi.json @@ -34,6 +34,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/qwen.json b/tests/fixtures/install-tree/qwen.json index 12b22a379..d2bf91df8 100644 --- a/tests/fixtures/install-tree/qwen.json +++ b/tests/fixtures/install-tree/qwen.json @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/trae.json b/tests/fixtures/install-tree/trae.json index b0724a520..536ddf383 100644 --- a/tests/fixtures/install-tree/trae.json +++ b/tests/fixtures/install-tree/trae.json @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/windsurf.json b/tests/fixtures/install-tree/windsurf.json index 0a6b36d35..5b4b52b07 100644 --- a/tests/fixtures/install-tree/windsurf.json +++ b/tests/fixtures/install-tree/windsurf.json @@ -67,6 +67,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md", diff --git a/tests/fixtures/install-tree/zcode.json b/tests/fixtures/install-tree/zcode.json index 472031595..cafc11fae 100644 --- a/tests/fixtures/install-tree/zcode.json +++ b/tests/fixtures/install-tree/zcode.json @@ -138,6 +138,7 @@ "gsd-core/references/debugger-rca-branching.md", "gsd-core/references/debugger-repro-hardening.md", "gsd-core/references/debugger-sbfl.md", + "gsd-core/references/debugger-semantic-recall.md", "gsd-core/references/decimal-phase-calculation.md", "gsd-core/references/doc-conflict-engine.md", "gsd-core/references/domain-probes.md",