feat(#1963): emit blameless-postmortem Prevention block at resolution (#2410)

* test(#1963): add failing-first prevention/postmortem contract tests

Epic #1957 Phase 3B. Source-text-is-the-product contract tests: blameless
5-Whys that BRANCHES per Phase 2A RCA (not a single-cause chain; treats agent
error as 'why was that possible?'), the 'why wasn't this caught?' question,
the recurrence-guard taxonomy (regression test / assertion / lint rule / KB
pattern), the KB-entry why_not_caught + recurrence_guard fields with backward
compat, the session-manager prevention summary line, and the Zawinski
scope-boundary (a block, not a subsystem).

Failing-first: reference, archive_session edit, KB schema extension, and
session-manager summary do not yet exist.

* feat(#1963): emit blameless-postmortem Prevention block at resolution

Epic #1957 Phase 3B. At archive_session the debugger now produces a
Prevention block with three blame-free components: a branching 5-Whys causal
chain (branches per Phase 2A RCA, not a single chain; 'agent error' prompts
'why was that possible?', never blame), a 'why wasn't this caught?' answer
naming the missed gate (test/typecheck/lint/review/verify), and a concrete
recurrence guard (regression test / assertion / lint rule / KB pattern).

The knowledge-base entry gains two structured fields (why_not_caught +
recurrence_guard) so future Phase-0 recall surfaces the prior prevention, not
just the prior fix. Additive: old entries without the fields still load. The
session-manager compact summary surfaces a one-line prevention summary.

Full rules extracted to gsd-core/references/debugger-prevention.md (slim
archive_session step + 2 KB fields kept in the agent). INVENTORY + manifest +
agent-size baseline + install-parity goldens + AGENTS.md updated.

* fix(#1963): address orthogonal review (CRITICAL append-template drift + Phase-0 consumption + parity test)

- CRITICAL: the archive_session KB append template omitted Why not caught +
  Recurrence guard (only the Entry Format had them) — the feature's core
  deliverable silently did not happen. Added both fields to the append template
  the agent actually follows (nearest-instruction wins).
- HIGH: Phase 0 (KB read) only surfaced root_cause + fix; the new fields were
  dead data. Extended the Phase 0 Evidence line to consume why_not_caught +
  recurrence_guard when present (absent on old entries — backward compat holds).
- MEDIUM: added a cross-section parity test (every Entry-Format field must also
  appear in the append template — the guard that would have caught the
  Critical) + a Phase-0-consumption assertion.
- MEDIUM: the 'branches per Phase 2A' claim is now wired — reuses
  reasoning_checkpoint.candidate_causes across the four categories.
- MEDIUM: recurrence-guard taxonomy gains type refinement + config-default
  change; LOW: added 'build' gate to both surfaces for parity.
- NIT: compact-summary fallback shape ('no gate existed'); verify the guard
  artifact exists before recording it.

* test(#1963): anchor Phase-0 consumption test on the specific heading

The regex /Phase 0[\s\S]{0,1200}/ matched the first 'Phase 0' in the file
(in knowledge_base_protocol prose), not the Phase 0 block in investigation_loop.
Anchor on '**Phase 0: Check knowledge base**' and widen to 1500 chars.

* chore(#1963): backfill changeset pr number (PR #2410)
This commit is contained in:
Tom Boucher
2026-07-18 17:38:54 -04:00
committed by GitHub
parent 36a311c5bb
commit c67f301867
45 changed files with 311 additions and 41 deletions

View File

@@ -0,0 +1,5 @@
---
type: Added
pr: 2410
---
**`gsd-debugger` now emits a blameless-postmortem Prevention block at resolution, closing the loop on bug-class prevention** — at `archive_session` the debugger produces three blame-free components: a **branching 5-Whys** causal chain (branching per the Phase 2A RCA discipline, not a single linear chain; "agent error" prompts "why was that error possible?", never blame), a **"why wasn't this caught?"** answer naming the existing gate (test/typecheck/lint/review/verify) that missed it, and a **concrete recurrence guard** (a regression test / assertion / lint rule / knowledge-base pattern). The knowledge-base entry gains two structured fields — `why_not_caught` and `recurrence_guard` — so a future Phase-0 recall surfaces not just the prior fix but the prior *prevention* (additive; old entries without the fields still load). The session-manager's compact summary surfaces a one-line prevention summary. Full rules live in `gsd-core/references/debugger-prevention.md`; kept minimal — a block, not an incident-management subsystem. (#1963)

View File

@@ -321,6 +321,7 @@ Return compact summary (terminal — investigation resolved):
**Cycles:** {N} (investigation) + {M} (fix)
**TDD:** {yes/no}
**Specialist review:** {specialist_hint used, or "none"}
**Prevention:** {one-line from the blameless postmortem — "why not caught: <gate, or 'none (no gate existed for this class)'>; guard: <artifact>"}
```
If the session was abandoned by user choice, return (terminal — user stopped):

View File

@@ -807,6 +807,8 @@ Each resolved session appends one entry:
- **Root cause(s):** {from Resolution.root_cause — one cause, or a '; '-joined list when the AND-gate fired}
- **Fix:** {from Resolution.fix}
- **Files changed:** {from Resolution.files_changed}
- **Why not caught:** {which existing gate (test/typecheck/lint/review/verify/build) should have caught it — or "no gate existed for this class"}
- **Recurrence guard:** {the concrete artifact preventing this class from returning — regression test (path:name) / assertion / lint rule / type refinement / config-default change / KB pattern}
---
```
@@ -987,7 +989,7 @@ At investigation decision points, apply structured reasoning:
- Scan knowledge base entries for 2+ keyword overlap (case-insensitive)
- 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}.`
- 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)
- Test this hypothesis FIRST in Phase 2 — but treat it as one hypothesis, not a certainty
- If no match: proceed normally
@@ -1212,9 +1214,13 @@ Then commit planning docs via CLI (respects `commit_docs` config automatically):
gsd_run query commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
```
**Append to knowledge base:**
**Append to knowledge base (with the Prevention block):**
Read `.planning/debug/resolved/{slug}.md` to extract final `Resolution` values. Then append to `.planning/debug/knowledge-base.md` (create file with header if it doesn't exist):
Read `.planning/debug/resolved/{slug}.md` to extract final `Resolution` values. Then produce the **Prevention block** — a blameless postmortem (branching 5-Whys per RCA, "why wasn't this caught?", and a concrete recurrence guard):
@~/.claude/gsd-core/references/debugger-prevention.md
Then append to `.planning/debug/knowledge-base.md` (create file with header if it doesn't exist):
If creating for the first time, write this header first:
```markdown
@@ -1234,6 +1240,8 @@ Then append the entry:
- **Root cause(s):** {Resolution.root_cause — joined as '; ' when multiple contributing causes were confirmed}
- **Fix:** {Resolution.fix}
- **Files changed:** {Resolution.files_changed joined as comma list}
- **Why not caught:** {which existing gate (test/typecheck/lint/review/verify/build) should have caught it — or "no gate existed for this class"}
- **Recurrence guard:** {concrete artifact preventing this class from returning — regression test (path:name) / assertion / lint rule / KB pattern / type refinement / config-default change}
---
```

View File

@@ -405,6 +405,7 @@ runs its default whole-repo scan.
- Branches root-cause analysis across ≥2 Ishikawa categories and applies an AND-gate check before committing root_cause (guards against 5-Whys single-cause bias); root_cause may hold a set when the AND-gate fires
- 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
- Appends to persistent knowledge base on resolution
- Consults knowledge base on new sessions

View File

@@ -217,6 +217,7 @@
"debugger-bug-taxonomy.md",
"debugger-fix-acceptance.md",
"debugger-philosophy.md",
"debugger-prevention.md",
"debugger-rca-branching.md",
"debugger-repro-hardening.md",
"debugger-sbfl.md",

View File

@@ -299,6 +299,7 @@ Full roster at `gsd-core/references/*.md`. References are shared knowledge docum
| `debugger-rca-branching.md` | RCA branching (fishbone + AND-gate) anti-single-cause discipline loaded by `gsd-debugger`. |
| `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`. |
| `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. |

View File

@@ -0,0 +1,98 @@
# Prevention / Blameless-Postmortem Output
Loaded by `gsd-debugger` via `@-include` from `archive_session`. Emits the
forward-looking half of a resolved debug session — not just *what* was wrong and
the fix, but **why it happened, why it wasn't caught, and the guard that
prevents its whole class from returning**.
## Why this exists
When a session resolves, the debugger records `root_cause` + `fix` and appends a
keyword entry to the knowledge base. What it did **not** produce is the
forward-looking half that industry incident practice (Google SRE Book, AWS COE)
treats as the whole point: a blameless postmortem / Correction of Error. The
bug gets fixed; the *class* of bug and the *reason it slipped through* are never
captured — so the same class recurs and no guardrail is added. This block closes
that gap. It reuses the existing debug file and knowledge base; it does not add a
new command or workflow.
## The Prevention block (three blame-free components)
At `archive_session`, after the fix is confirmed, emit a Prevention block and
fold its two structured fields (`why_not_caught`, `recurrence_guard`) into the
knowledge-base entry.
### 1. Blameless 5-Whys that BRANCHES (per Phase 2A RCA)
A causal chain — but **branch across ≥2 Ishikawa categories**, do not collapse to
a single linear "why" (the same single-cause bias Phase 2A guards the diagnosis
against applies to the postmortem). For each branch ask "why" until you reach an
actionable condition.
**Reuse the diagnosis branches:** the `reasoning_checkpoint.candidate_causes`
recorded at Phase 2A already enumerated the candidate causes across the four
categories (**code / config / environment / data** — see
`debugger-rca-branching.md`); start the postmortem from those branches and the
AND-gate answer rather than re-deriving a chain from scratch.
**Blame-free:** treat "agent error" / "human error" as a prompt for *"why was
that error possible?"* — not a terminal cause. A postmortem that stops at "the
engineer made a mistake" prevents nothing; one that asks "why was the mistake
possible / not caught" produces a guard. Never assign blame to a person.
### 2. "Why wasn't this caught?"
Name the **existing gate** that should have caught this bug class and didn't —
a test, a type check, a lint rule, code review, the verify step, the build. If
the honest answer is "no gate existed for this class," that itself is the finding
(and the recurrence guard below is "add the gate").
### 3. The recurrence guard
The **concrete artifact** that prevents this class from returning. Choose the
strongest applicable:
- a **regression test** (already produced by Test-First Debugging — reference it),
- an **assertion / precondition** (fail loud at runtime if the bad condition recurs),
- a **type refinement** (make the bad state unrepresentable — the strongest guard
in a typed codebase; e.g., a branded type / exhaustive union that rules out the
invalid value at compile time),
- a **config-default change** (eliminate the misconfiguration that enabled the
bug — flip the default so the unsafe path is opt-in, not the path of least resistance),
- a **lint rule / broken-window ledger entry** (fail the build / surface in review),
- a **knowledge-base pattern** — this very entry, so a future Phase-0 recall
surfaces the prior guard when a similar symptom appears.
State the guard concretely (which file, which rule, which test name) — not "add
a test" but "the regression test at `tests/foo.test.cjs:42` now covers this
class." **Verify the artifact exists before recording it** (the test passes, the
type compiles, the lint rule is registered) — a stale or unverified path is worse
than none, since a future Phase-0 match would surface it as if it were real.
## Knowledge-base entry: the two structured fields
The KB entry gains two fields (additive — see backward-compat below):
- **Why not caught:** {the existing gate that should have caught it, or "no gate existed for this class"}
- **Recurrence guard:** {the concrete artifact — regression test / assertion / lint rule / KB pattern — with its location}
These ride alongside the existing `Error patterns` / `Root cause(s)` / `Fix` /
`Files changed` fields so a future Phase-0 match surfaces not just the prior fix
but the prior *prevention*.
## Backward compatibility (additive — no format break)
Old knowledge-base entries without `why_not_caught` / `recurrence_guard`
**still load** unchanged. The matcher reads the `Error patterns` field (which
every entry has); the two new fields are consumed when present and ignored when
absent. A knowledge base with a mix of old and new entries works correctly —
there is no migration, no schema version bump.
## Scope boundary (Zawinski's Law)
A **block**, not an incident-management subsystem. It reuses the existing debug
file's `archive_session` step and the existing knowledge base; it adds two
fields and three prompt-level questions. It is not a new command, not a
reporting framework, not a metrics pipeline. Where a bug is trivial and the
postmortem would add nothing, a one-line recurrence guard suffices — the
discipline scales down.

View File

@@ -5,8 +5,8 @@
"gsd-code-fixer.md": 36640,
"gsd-code-reviewer.md": 16870,
"gsd-codebase-mapper.md": 21485,
"gsd-debug-session-manager.md": 17012,
"gsd-debugger.md": 55758,
"gsd-debug-session-manager.md": 17161,
"gsd-debugger.md": 56835,
"gsd-doc-classifier.md": 11717,
"gsd-doc-synthesizer.md": 13154,
"gsd-doc-verifier.md": 12403,

View File

@@ -0,0 +1,119 @@
// allow-test-rule: source-text-is-the-product (see #1963)
// Agent .md + reference .md files — their text IS what the runtime loads.
// Testing text content tests the deployed prevention/postmortem contract.
// Per CONTRIBUTING.md exception matrix. Covers epic #1957 Phase 3B (#1963).
'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 SESSION_MGR = path.join(ROOT, 'agents/gsd-debug-session-manager.md');
const REFERENCE = path.join(ROOT, 'gsd-core/references/debugger-prevention.md');
describe('prevention / blameless-postmortem output (#1963, epic #1957 Phase 3B)', () => {
describe('reference extract exists and is wired into archive_session', () => {
test('gsd-core/references/debugger-prevention.md exists', () => {
assert.ok(fs.existsSync(REFERENCE), 'debugger-prevention.md reference must exist');
});
test('gsd-debugger.md @-includes the prevention reference', () => {
const content = fs.readFileSync(AGENT, 'utf8');
assert.ok(
content.includes('@~/.claude/gsd-core/references/debugger-prevention.md'),
'gsd-debugger.md must @-include the prevention reference from archive_session'
);
});
});
describe('the Prevention block has three blame-free components (criterion 1)', () => {
test('reference documents a blameless 5-Whys causal chain', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/5-?\s*whys|five whys|causal chain/i.test(content), 'must document a 5-Whys causal chain');
assert.ok(/blame|blameless|blame-free/i.test(content), 'must state the chain is blame-free/blameless');
});
test('the 5-Whys branches per RCA (Phase 2A), not a single-cause chain', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/branch/i.test(content), 'the postmortem must branch (not chain) per the Phase 2A RCA discipline');
assert.ok(/single[\s-]?cause|agent error|why was that (?:error|possible)/i.test(content),
'must treat "agent error" as a prompt for "why was that error possible?" (blame-free), not a terminal cause');
});
test('reference documents the "why wasn\'t this caught?" question', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/why (?:wasn'?t|was not|didn'?t).*(?:caught|prevent)/i.test(content) || /why[\s-]?not[\s-]?caught/i.test(content),
'must document the "why wasn\'t this caught?" question (which existing gate missed it)');
});
test('reference documents the recurrence-guard taxonomy', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/recurrence guard|recurrence-guard/i.test(content), 'must name the recurrence guard');
// The concrete artifact options from the issue
assert.ok(/regression test/i.test(content), 'guard option: regression test');
assert.ok(/lint rule|assertion|precondition/i.test(content), 'guard option: lint rule / assertion / precondition');
});
});
describe('knowledge-base entry stores the prevention fields (criterion 2)', () => {
test('KB entry format in gsd-debugger.md includes why_not_caught + recurrence_guard', () => {
const content = fs.readFileSync(AGENT, 'utf8');
assert.ok(/why.not.caught/i.test(content), 'KB entry format must include a why_not_caught field');
assert.ok(/recurrence.guard/i.test(content), 'KB entry format must include a recurrence_guard field');
});
test('reference documents backward compatibility (old entries without the fields still load)', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/backward|back.compat|old entries|without.*fields.*load|absent.*field/i.test(content),
'must document that old KB entries without the new fields still load (additive, no format break)');
});
});
describe('session-manager compact return surfaces the prevention summary (criterion 3)', () => {
test('gsd-debug-session-manager.md compact summary includes a prevention line', () => {
const content = fs.readFileSync(SESSION_MGR, 'utf8');
assert.ok(/prevention|recurrence guard|why not caught/i.test(content),
'session-manager compact summary must surface the prevention summary (recurrence guard / why-not-caught)');
});
});
describe('scope boundary (Zawinski) — a block, not an incident-management subsystem', () => {
test('reference states the prevention block reuses existing structures and adds no subsystem', () => {
const content = fs.readFileSync(REFERENCE, 'utf8');
assert.ok(/reuse|existing|no(?:t| new).*(?:subsystem|framework|command)|block, not/i.test(content),
'must state the prevention block reuses the existing debug file + knowledge base (no new subsystem)');
});
});
describe('cross-section parity (guards the Critical: Entry-Format fields must also appear in the archive append template)', () => {
test('every Entry-Format KB field appears in the archive_session append template', () => {
// DEFECT.GENERATIVE-FIX guard: the <knowledge_base_protocol> Entry Format
// and the archive_session append template are two parallel surfaces that
// must agree. A field declared in one but not the other is dead data.
const content = fs.readFileSync(AGENT, 'utf8');
const requiredFields = ['Date', 'Error patterns', 'Root cause', 'Fix', 'Files changed', 'Why not caught', 'Recurrence guard'];
for (const field of requiredFields) {
const re = new RegExp(`\\*\\*${field}`, 'i');
const matches = content.match(new RegExp(`\\*\\*${field}`, 'gi'));
assert.ok(
matches && matches.length >= 2,
`KB field "${field}" must appear in BOTH the Entry Format and the archive append template (found ${matches ? matches.length : 0} occurrence(s)) — parallel-surface drift`
);
}
});
test('Phase 0 consumes the prevention fields (why_not_caught + recurrence_guard) when present', () => {
const content = fs.readFileSync(AGENT, 'utf8');
// Anchor on the specific Phase 0 heading in investigation_loop (the
// string "Phase 0" also appears in knowledge_base_protocol prose, which
// would match the wrong region).
const phase0Block = content.match(/\*\*Phase 0: Check knowledge base\*\*[\s\S]{0,1500}/);
assert.ok(phase0Block, 'a Phase 0: Check knowledge base block must exist in investigation_loop');
assert.ok(/why.?not.?caught/i.test(phase0Block[0]) && /recurrence.?guard/i.test(phase0Block[0]),
'the Phase 0 Evidence line must include why_not_caught + recurrence_guard (consume when present, absent on old entries)');
});
});
});

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "6937a1f20beaa1c6",
"agents/gsd-code-reviewer.md": "a700d295bbf110a9",
"agents/gsd-codebase-mapper.md": "afdae82284cb21b4",
"agents/gsd-debug-session-manager.md": "523f28a1ed8a4536",
"agents/gsd-debugger.md": "a4ea87f55b1c9718",
"agents/gsd-debug-session-manager.md": "8a7ae327a00d47cd",
"agents/gsd-debugger.md": "b4d6a994d6c433c4",
"agents/gsd-doc-classifier.md": "fca19595590391df",
"agents/gsd-doc-synthesizer.md": "0e5184bbcf0dca02",
"agents/gsd-doc-verifier.md": "888c6ac870cb91a6",
@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "4c13da220b6a4261",
"gsd-core/references/debugger-fix-acceptance.md": "87d367e4e864910e",
"gsd-core/references/debugger-philosophy.md": "459a8ac647c4ce9c",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "745e517012e03d23",
"gsd-core/references/debugger-sbfl.md": "de9cd1bd0e1485c6",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "68b2d2faccfdd8a3",
"agents/gsd-code-reviewer.md": "bc8a6f2e1f787ff5",
"agents/gsd-codebase-mapper.md": "85ea778ad9cf7e66",
"agents/gsd-debug-session-manager.md": "d2b983f774816e9a",
"agents/gsd-debugger.md": "714649ac8c7fabce",
"agents/gsd-debug-session-manager.md": "1d966d0bbf22660c",
"agents/gsd-debugger.md": "7141e0c61747befe",
"agents/gsd-doc-classifier.md": "262a94b947a4e2aa",
"agents/gsd-doc-synthesizer.md": "01f90ea9b0d05d7d",
"agents/gsd-doc-verifier.md": "b3433e0db51e1c60",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -6,8 +6,8 @@
"agents/gsd-code-fixer.md": "c6148e5511d02459",
"agents/gsd-code-reviewer.md": "e2c45baa8c0b5f6d",
"agents/gsd-codebase-mapper.md": "f96958e5f85b93fb",
"agents/gsd-debug-session-manager.md": "11afaabc2a749f32",
"agents/gsd-debugger.md": "76e3f9b0ccdeb4db",
"agents/gsd-debug-session-manager.md": "d5fbb343fac38729",
"agents/gsd-debugger.md": "13cfdb9e8caa78d9",
"agents/gsd-doc-classifier.md": "a76778bdde1c7f72",
"agents/gsd-doc-synthesizer.md": "8b0b6fc187c9d353",
"agents/gsd-doc-verifier.md": "4232dcf9076e3566",
@@ -133,6 +133,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -6,8 +6,8 @@
"agents/gsd-code-fixer.md": "3d5f67cfd24ac452",
"agents/gsd-code-reviewer.md": "d626a828e8de3648",
"agents/gsd-codebase-mapper.md": "8c2e9f2ce3aedf78",
"agents/gsd-debug-session-manager.md": "3a6614424653612b",
"agents/gsd-debugger.md": "f6323235d733c990",
"agents/gsd-debug-session-manager.md": "1e23cdf4376bed3c",
"agents/gsd-debugger.md": "54cb91f574d020ed",
"agents/gsd-doc-classifier.md": "a636ae9594b25770",
"agents/gsd-doc-synthesizer.md": "dfb95eedfb3789bf",
"agents/gsd-doc-verifier.md": "4232dcf9076e3566",
@@ -62,6 +62,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -10,8 +10,8 @@
"agents/gsd-code-fixer.md": "6aa74a2fb2ad244a",
"agents/gsd-code-reviewer.md": "e5ec12d4d409e800",
"agents/gsd-codebase-mapper.md": "e5b7941bdda53c91",
"agents/gsd-debug-session-manager.md": "55788b44fdfc4375",
"agents/gsd-debugger.md": "51f39ada470339ff",
"agents/gsd-debug-session-manager.md": "444fa983fdc85325",
"agents/gsd-debugger.md": "815a2b65d85c29dd",
"agents/gsd-doc-classifier.md": "5011d7358d2b2848",
"agents/gsd-doc-synthesizer.md": "e59cdd669876582d",
"agents/gsd-doc-verifier.md": "b60290c9d9f6d8d2",
@@ -66,6 +66,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "63521aea0206d4ac",
"gsd-core/references/debugger-fix-acceptance.md": "1057d70f7f2d654a",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "98872822b7f1ef08",
"gsd-core/references/debugger-sbfl.md": "6e4975ee50973c23",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "1cf3a9fdade9a470",
"agents/gsd-code-reviewer.md": "5342fcc0da974696",
"agents/gsd-codebase-mapper.md": "b995bf01af0193d2",
"agents/gsd-debug-session-manager.md": "9f56455afb580275",
"agents/gsd-debugger.md": "0dd86ecf4e9e3ee9",
"agents/gsd-debug-session-manager.md": "8a495718576f24e6",
"agents/gsd-debugger.md": "dbf1b89a5ef6a7ea",
"agents/gsd-doc-classifier.md": "c2bf59af9467810b",
"agents/gsd-doc-synthesizer.md": "b2a179bf3c9bd636",
"agents/gsd-doc-verifier.md": "e74d930905a782ea",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -84,10 +84,10 @@
"agents/gsd-code-reviewer.toml": "66420d6e6ffd14eb",
"agents/gsd-codebase-mapper.md": "cf8f8550b44aec35",
"agents/gsd-codebase-mapper.toml": "a4609f3ac66c2081",
"agents/gsd-debug-session-manager.md": "c2b615fce5adc13e",
"agents/gsd-debug-session-manager.toml": "4420cb596ad6b183",
"agents/gsd-debugger.md": "8b40ec1a784b1c84",
"agents/gsd-debugger.toml": "9ade5b336aae9a91",
"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-doc-classifier.md": "2745bc04d7b93666",
"agents/gsd-doc-classifier.toml": "3fe5ec83f62b586e",
"agents/gsd-doc-synthesizer.md": "4f545f2e916458ad",
@@ -169,6 +169,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "49f94fe75cabba52",
"gsd-core/references/debugger-fix-acceptance.md": "b2732420bdbcadcd",
"gsd-core/references/debugger-philosophy.md": "459a8ac647c4ce9c",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566",
"gsd-core/references/debugger-sbfl.md": "391e732abf32786a",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.agent.md": "8f39aacb760aab57",
"agents/gsd-code-reviewer.agent.md": "fa1e7c421c78eae1",
"agents/gsd-codebase-mapper.agent.md": "949bc73f2a7ea44d",
"agents/gsd-debug-session-manager.agent.md": "77ee029f0f81c09d",
"agents/gsd-debugger.agent.md": "943af322184a1479",
"agents/gsd-debug-session-manager.agent.md": "e669e5d76bfd7810",
"agents/gsd-debugger.agent.md": "1f5cd5c6d3d7d1aa",
"agents/gsd-doc-classifier.agent.md": "aea81c0ba00e06cf",
"agents/gsd-doc-synthesizer.agent.md": "6ae32e4db005696d",
"agents/gsd-doc-verifier.agent.md": "0230208ae7ab1a08",
@@ -64,6 +64,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "ddfb2bbc1f3de50a",
"gsd-core/references/debugger-fix-acceptance.md": "812922e2b5db9410",
"gsd-core/references/debugger-philosophy.md": "459a8ac647c4ce9c",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "62089f91dfa470bd",
"gsd-core/references/debugger-sbfl.md": "5bb65a8653bf2e06",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "76085f4442f268e6",
"agents/gsd-code-reviewer.md": "f29d6edbac0a01b6",
"agents/gsd-codebase-mapper.md": "d49c91fdab4efc70",
"agents/gsd-debug-session-manager.md": "5e47d7b36e262219",
"agents/gsd-debugger.md": "327fe2ec83e46205",
"agents/gsd-debug-session-manager.md": "c723ce1b8691296f",
"agents/gsd-debugger.md": "3a568af40765db29",
"agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b",
"agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d",
"agents/gsd-doc-verifier.md": "9934ec11845d41c3",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "63c03b8afbd21b8a",
"gsd-core/references/debugger-fix-acceptance.md": "86b7cbde0171fafd",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "d5f1796cde97e7d2",
"gsd-core/references/debugger-sbfl.md": "838445590aab52e3",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "94628312f25decb5",
"agents/gsd-code-reviewer.md": "5ef947ca5baed775",
"agents/gsd-codebase-mapper.md": "feccaeeacd05e34b",
"agents/gsd-debug-session-manager.md": "de03d1f43295518f",
"agents/gsd-debugger.md": "1912fdfe312b3482",
"agents/gsd-debug-session-manager.md": "d46222bd8037b695",
"agents/gsd-debugger.md": "ef869f69333fdcd9",
"agents/gsd-doc-classifier.md": "29b563a146c9d22c",
"agents/gsd-doc-synthesizer.md": "652beb928e93fa1d",
"agents/gsd-doc-verifier.md": "d3d8457bdd44bf10",
@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "fd9b10fffb3bd052",
"gsd-core/references/debugger-fix-acceptance.md": "b04b913d5ea0ac90",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "8318008696c1e0b2",
"gsd-core/references/debugger-sbfl.md": "70e699200f6197e0",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "9652d5b56a2afbf5",
"agents/gsd-code-reviewer.md": "922c08885bc78662",
"agents/gsd-codebase-mapper.md": "0ccbf6a685804979",
"agents/gsd-debug-session-manager.md": "59191275e650f655",
"agents/gsd-debugger.md": "5dfaadd8e26b5d57",
"agents/gsd-debug-session-manager.md": "42a775633c9b1b34",
"agents/gsd-debugger.md": "753165cedae67dd6",
"agents/gsd-doc-classifier.md": "6256bbc0b887f60f",
"agents/gsd-doc-synthesizer.md": "212aaf89a34b51d7",
"agents/gsd-doc-verifier.md": "8016f792d0766b77",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "49f94fe75cabba52",
"gsd-core/references/debugger-fix-acceptance.md": "b2732420bdbcadcd",
"gsd-core/references/debugger-philosophy.md": "459a8ac647c4ce9c",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566",
"gsd-core/references/debugger-sbfl.md": "391e732abf32786a",

View File

@@ -43,9 +43,9 @@
"agents/subagents/gsd-code-reviewer.yaml": "5f2398f56018f50d",
"agents/subagents/gsd-codebase-mapper.md": "04c7528a13fa3de7",
"agents/subagents/gsd-codebase-mapper.yaml": "bce1c6d15f55c477",
"agents/subagents/gsd-debug-session-manager.md": "c71b4debebaa978e",
"agents/subagents/gsd-debug-session-manager.md": "cec62a7fd99ab1c3",
"agents/subagents/gsd-debug-session-manager.yaml": "aab147717b5082e7",
"agents/subagents/gsd-debugger.md": "9302c5c4b7d5a2b7",
"agents/subagents/gsd-debugger.md": "ce8ab001fde869cb",
"agents/subagents/gsd-debugger.yaml": "6d02d7feb90cad43",
"agents/subagents/gsd-doc-classifier.md": "632dc6c61bafa63e",
"agents/subagents/gsd-doc-classifier.yaml": "a4e9cf7025b57503",
@@ -127,6 +127,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "3622ae5d90fb15f6",
"agents/gsd-code-reviewer.md": "2249774416314c57",
"agents/gsd-codebase-mapper.md": "948612acd505e87f",
"agents/gsd-debug-session-manager.md": "b5a39dcf10210cbb",
"agents/gsd-debugger.md": "2cb64b4cac666e81",
"agents/gsd-debug-session-manager.md": "e4b96ea41c74c479",
"agents/gsd-debugger.md": "e7f3e6c558756918",
"agents/gsd-doc-classifier.md": "fb776cfbb7e991b0",
"agents/gsd-doc-synthesizer.md": "2389f388d291c2eb",
"agents/gsd-doc-verifier.md": "65bbc2ae6b9ace29",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "49f94fe75cabba52",
"gsd-core/references/debugger-fix-acceptance.md": "b2732420bdbcadcd",
"gsd-core/references/debugger-philosophy.md": "459a8ac647c4ce9c",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "097c2da83d697566",
"gsd-core/references/debugger-sbfl.md": "391e732abf32786a",

View File

@@ -30,6 +30,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "3ed1a27ddc372ef8",
"agents/gsd-code-reviewer.md": "27eeeee6cb600e9b",
"agents/gsd-codebase-mapper.md": "032ff8ac55466a74",
"agents/gsd-debug-session-manager.md": "afe383b6483d4097",
"agents/gsd-debugger.md": "620e92debfaa906c",
"agents/gsd-debug-session-manager.md": "c1c9c5f538acb941",
"agents/gsd-debugger.md": "2a6bf0bb1a964771",
"agents/gsd-doc-classifier.md": "bdf3d54082424e76",
"agents/gsd-doc-synthesizer.md": "96c383b74a60fbbe",
"agents/gsd-doc-verifier.md": "da9ab6f3ec27778a",
@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "47e7929972c06378",
"gsd-core/references/debugger-fix-acceptance.md": "ab6a1cce253944f4",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "07ad93b8bcad3c34",
"gsd-core/references/debugger-sbfl.md": "061b719c754a12d3",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "5fe29063843be67e",
"agents/gsd-code-reviewer.md": "338c46ab59c4e45f",
"agents/gsd-codebase-mapper.md": "8529d8a1ede8bbfb",
"agents/gsd-debug-session-manager.md": "ada53877ba56d894",
"agents/gsd-debugger.md": "c2dea41cd878723c",
"agents/gsd-debug-session-manager.md": "913a370b529ec717",
"agents/gsd-debugger.md": "7a2fd82d5f328d23",
"agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b",
"agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d",
"agents/gsd-doc-verifier.md": "e51e50892963ccc7",
@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "d0458c690c4487c9",
"gsd-core/references/debugger-fix-acceptance.md": "134f83886c343733",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "4bf1af239ae875f3",
"gsd-core/references/debugger-sbfl.md": "23d7a3bb15bc8b7c",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "f00d815ec535a168",
"agents/gsd-code-reviewer.md": "efc0d2dee321c654",
"agents/gsd-codebase-mapper.md": "cfa2bbfaf264e1fd",
"agents/gsd-debug-session-manager.md": "b7d57cd8ed9103d3",
"agents/gsd-debugger.md": "8d91db51d9fe1959",
"agents/gsd-debug-session-manager.md": "86d75b269a6c40e7",
"agents/gsd-debugger.md": "77a2f8edc9193e54",
"agents/gsd-doc-classifier.md": "a6ab02b8f45f9d0b",
"agents/gsd-doc-synthesizer.md": "fd3c18addbc8265d",
"agents/gsd-doc-verifier.md": "ede2f297b73b5a86",
@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "5d8c0a266a6d61f8",
"gsd-core/references/debugger-fix-acceptance.md": "ddd00cbd78dd3fdf",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "b5d7c4a5804327c3",
"gsd-core/references/debugger-sbfl.md": "071651eaf7414a4c",

View File

@@ -7,8 +7,8 @@
"agents/gsd-code-fixer.md": "78549833f0411b0c",
"agents/gsd-code-reviewer.md": "7d94fe8bfa6661aa",
"agents/gsd-codebase-mapper.md": "7cc9d387f29c46e1",
"agents/gsd-debug-session-manager.md": "baf23c3834eb36ba",
"agents/gsd-debugger.md": "240cb56fcb4fa4a7",
"agents/gsd-debug-session-manager.md": "dc4e8a556dbf1708",
"agents/gsd-debugger.md": "95854ad0457494f2",
"agents/gsd-doc-classifier.md": "146acf4d176134b5",
"agents/gsd-doc-synthesizer.md": "b1f5e2eb28fa3659",
"agents/gsd-doc-verifier.md": "7ed4d9611f678a95",
@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md": "78fb8c1711acc971",
"gsd-core/references/debugger-fix-acceptance.md": "5616622f33e00436",
"gsd-core/references/debugger-philosophy.md": "16f0cb55eb457f33",
"gsd-core/references/debugger-prevention.md": "74b6c5556a428efd",
"gsd-core/references/debugger-rca-branching.md": "7dcf3ddbe3591250",
"gsd-core/references/debugger-repro-hardening.md": "fdf55a6cee9b1792",
"gsd-core/references/debugger-sbfl.md": "a7d0cd5940d6d2cd",

View File

@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -133,6 +133,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -62,6 +62,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -66,6 +66,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -169,6 +169,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -64,6 +64,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -127,6 +127,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -30,6 +30,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -63,6 +63,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",

View File

@@ -134,6 +134,7 @@
"gsd-core/references/debugger-bug-taxonomy.md",
"gsd-core/references/debugger-fix-acceptance.md",
"gsd-core/references/debugger-philosophy.md",
"gsd-core/references/debugger-prevention.md",
"gsd-core/references/debugger-rca-branching.md",
"gsd-core/references/debugger-repro-hardening.md",
"gsd-core/references/debugger-sbfl.md",