feat: debug skill dispatch and session manager sub-orchestrator (#2154)

* feat(2148): add specialist_hint to ROOT CAUSE FOUND and skill dispatch to /gsd-debug

- Add specialist_hint field to ROOT CAUSE FOUND return format in gsd-debugger structured_returns section
- Add derivation guidance in return_diagnosis step (file extensions → hint mapping)
- Add Step 4.5 specialist skill dispatch block to debug.md with security-hardened DATA_START/DATA_END prompt
- Map specialist_hint values to skills: typescript-expert, swift-concurrency, python-expert-best-practices-code-review, ios-debugger-agent, engineering:debug
- Session manager now handles specialist dispatch internally; debug.md documents delegation intent

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(2151): add gsd-debug-session-manager agent and refactor debug command as thin bootstrap

- Create agents/gsd-debug-session-manager.md: handles full checkpoint/continuation loop in isolated context
- Agent spawns gsd-debugger, handles ROOT CAUSE FOUND/TDD CHECKPOINT/DEBUG COMPLETE/CHECKPOINT REACHED/INVESTIGATION INCONCLUSIVE returns
- Specialist dispatch via AskUserQuestion before fix options; user responses wrapped in DATA_START/DATA_END
- Returns compact ≤2K DEBUG SESSION COMPLETE summary to keep main context lean
- Refactor commands/gsd/debug.md: Steps 3-5 replaced with thin bootstrap that spawns session manager
- Update available_agent_types to include gsd-debug-session-manager
- Continue subcommand also delegates to session manager

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(2148,2151): add tests for skill dispatch and session manager

- Add 8 new tests in debug-session-management.test.cjs covering specialist_hint field,
  skill dispatch mapping in debug.md, DATA_START/DATA_END security boundaries,
  session manager tools, compact summary format, anti-heredoc rule, and delegation check
- Update copilot-install.test.cjs expected agent list to include gsd-debug-session-manager

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-04-12 09:40:36 -04:00
committed by GitHub
parent 20fe395064
commit 1aa89b8ae2
5 changed files with 447 additions and 151 deletions

View File

@@ -1099,6 +1099,18 @@ Based on status:
Update status to "diagnosed".
**Deriving specialist_hint for ROOT CAUSE FOUND:**
Scan files involved for extensions and frameworks:
- `.ts`/`.tsx`, React hooks, Next.js → `typescript` or `react`
- `.swift` + concurrency keywords (async/await, actor, Task) → `swift_concurrency`
- `.swift` without concurrency → `swift`
- `.py` → `python`
- `.rs` → `rust`
- `.go` → `go`
- `.kt`/`.java` → `android`
- Objective-C/UIKit → `ios`
- Ambiguous or infrastructure → `general`
Return structured diagnosis:
```markdown
@@ -1116,6 +1128,8 @@ Return structured diagnosis:
- {file}: {what's wrong}
**Suggested Fix Direction:** {brief hint}
**Specialist Hint:** {one of: typescript, swift, swift_concurrency, python, rust, go, react, ios, android, general — derived from file extensions and error patterns observed. Use "general" when no specific language/framework applies.}
```
If inconclusive:
@@ -1370,6 +1384,8 @@ Orchestrator presents checkpoint to user, gets response, spawns fresh continuati
- {file2}: {related issue}
**Suggested Fix Direction:** {brief hint, not implementation}
**Specialist Hint:** {one of: typescript, swift, swift_concurrency, python, rust, go, react, ios, android, general — derived from file extensions and error patterns observed. Use "general" when no specific language/framework applies.}
```
## DEBUG COMPLETE (goal: find_and_fix)