Require human verification before resolving debug sessions
This commit is contained in:
@@ -6,6 +6,9 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- `/gsd:debug` flow now requires a `human-verify` checkpoint after self-verification before marking debug sessions `resolved` and moving files to `.planning/debug/resolved/`
|
||||||
|
|
||||||
## [1.20.3] - 2026-02-16
|
## [1.20.3] - 2026-02-16
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@@ -737,7 +737,7 @@ DEBUG_RESOLVED_DIR=.planning/debug/resolved
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
---
|
---
|
||||||
status: gathering | investigating | fixing | verifying | resolved
|
status: gathering | investigating | fixing | verifying | awaiting_human_verify | resolved
|
||||||
trigger: "[verbatim user input]"
|
trigger: "[verbatim user input]"
|
||||||
created: [ISO timestamp]
|
created: [ISO timestamp]
|
||||||
updated: [ISO timestamp]
|
updated: [ISO timestamp]
|
||||||
@@ -801,10 +801,10 @@ files_changed: []
|
|||||||
## Status Transitions
|
## Status Transitions
|
||||||
|
|
||||||
```
|
```
|
||||||
gathering -> investigating -> fixing -> verifying -> resolved
|
gathering -> investigating -> fixing -> verifying -> awaiting_human_verify -> resolved
|
||||||
^ | |
|
^ | | |
|
||||||
|____________|___________|
|
|____________|___________|_________________|
|
||||||
(if verification fails)
|
(if verification fails or user reports issue)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Resume Behavior
|
## Resume Behavior
|
||||||
@@ -907,6 +907,7 @@ Based on status:
|
|||||||
- "investigating" -> Continue investigation_loop from Current Focus
|
- "investigating" -> Continue investigation_loop from Current Focus
|
||||||
- "fixing" -> Continue fix_and_verify
|
- "fixing" -> Continue fix_and_verify
|
||||||
- "verifying" -> Continue verification
|
- "verifying" -> Continue verification
|
||||||
|
- "awaiting_human_verify" -> Wait for checkpoint response and either finalize or continue investigation
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step name="return_diagnosis">
|
<step name="return_diagnosis">
|
||||||
@@ -966,11 +967,52 @@ Update status to "fixing".
|
|||||||
- Update status to "verifying"
|
- Update status to "verifying"
|
||||||
- Test against original Symptoms
|
- Test against original Symptoms
|
||||||
- If verification FAILS: status -> "investigating", return to investigation_loop
|
- If verification FAILS: status -> "investigating", return to investigation_loop
|
||||||
- If verification PASSES: Update Resolution.verification, proceed to archive_session
|
- If verification PASSES: Update Resolution.verification, proceed to request_human_verification
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step name="request_human_verification">
|
||||||
|
**Require user confirmation before marking resolved.**
|
||||||
|
|
||||||
|
Update status to "awaiting_human_verify".
|
||||||
|
|
||||||
|
Return:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## CHECKPOINT REACHED
|
||||||
|
|
||||||
|
**Type:** human-verify
|
||||||
|
**Debug Session:** .planning/debug/{slug}.md
|
||||||
|
**Progress:** {evidence_count} evidence entries, {eliminated_count} hypotheses eliminated
|
||||||
|
|
||||||
|
### Investigation State
|
||||||
|
|
||||||
|
**Current Hypothesis:** {from Current Focus}
|
||||||
|
**Evidence So Far:**
|
||||||
|
- {key finding 1}
|
||||||
|
- {key finding 2}
|
||||||
|
|
||||||
|
### Checkpoint Details
|
||||||
|
|
||||||
|
**Need verification:** confirm the original issue is resolved in your real workflow/environment
|
||||||
|
|
||||||
|
**Self-verified checks:**
|
||||||
|
- {check 1}
|
||||||
|
- {check 2}
|
||||||
|
|
||||||
|
**How to check:**
|
||||||
|
1. {step 1}
|
||||||
|
2. {step 2}
|
||||||
|
|
||||||
|
**Tell me:** "confirmed fixed" OR what's still failing
|
||||||
|
```
|
||||||
|
|
||||||
|
Do NOT move file to `resolved/` in this step.
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step name="archive_session">
|
<step name="archive_session">
|
||||||
**Archive resolved debug session.**
|
**Archive resolved debug session after human confirmation.**
|
||||||
|
|
||||||
|
Only run this step when checkpoint response confirms the fix works end-to-end.
|
||||||
|
|
||||||
Update status to "resolved".
|
Update status to "resolved".
|
||||||
|
|
||||||
@@ -1127,6 +1169,8 @@ Orchestrator presents checkpoint to user, gets response, spawns fresh continuati
|
|||||||
**Commit:** {hash}
|
**Commit:** {hash}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Only return this after human verification confirms the fix.
|
||||||
|
|
||||||
## INVESTIGATION INCONCLUSIVE
|
## INVESTIGATION INCONCLUSIVE
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
@@ -1176,7 +1220,8 @@ Check for mode flags in prompt context:
|
|||||||
**goal: find_and_fix** (default)
|
**goal: find_and_fix** (default)
|
||||||
- Find root cause, then fix and verify
|
- Find root cause, then fix and verify
|
||||||
- Complete full debugging cycle
|
- Complete full debugging cycle
|
||||||
- Archive session when verified
|
- Require human-verify checkpoint after self-verification
|
||||||
|
- Archive session only after user confirmation
|
||||||
|
|
||||||
**Default mode (no flags):**
|
**Default mode (no flags):**
|
||||||
- Interactive debugging with user
|
- Interactive debugging with user
|
||||||
|
|||||||
@@ -110,6 +110,9 @@ Task(
|
|||||||
**If `## CHECKPOINT REACHED`:**
|
**If `## CHECKPOINT REACHED`:**
|
||||||
- Present checkpoint details to user
|
- Present checkpoint details to user
|
||||||
- Get user response
|
- Get user response
|
||||||
|
- If checkpoint type is `human-verify`:
|
||||||
|
- If user confirms fixed: continue so agent can finalize/resolve/archive
|
||||||
|
- If user reports issues: continue so agent returns to investigation/fixing
|
||||||
- Spawn continuation agent (see step 5)
|
- Spawn continuation agent (see step 5)
|
||||||
|
|
||||||
**If `## INVESTIGATION INCONCLUSIVE`:**
|
**If `## INVESTIGATION INCONCLUSIVE`:**
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Template for `.planning/debug/[slug].md` — active debug session tracking.
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
---
|
---
|
||||||
status: gathering | investigating | fixing | verifying | resolved
|
status: gathering | investigating | fixing | verifying | awaiting_human_verify | resolved
|
||||||
trigger: "[verbatim user input]"
|
trigger: "[verbatim user input]"
|
||||||
created: [ISO timestamp]
|
created: [ISO timestamp]
|
||||||
updated: [ISO timestamp]
|
updated: [ISO timestamp]
|
||||||
@@ -127,9 +127,14 @@ files_changed: []
|
|||||||
- Update Resolution.verification with results
|
- Update Resolution.verification with results
|
||||||
- If verification fails: status → "investigating", try again
|
- If verification fails: status → "investigating", try again
|
||||||
|
|
||||||
|
**After self-verification passes:**
|
||||||
|
- status -> "awaiting_human_verify"
|
||||||
|
- Request explicit user confirmation in a checkpoint
|
||||||
|
- Do NOT move file to resolved yet
|
||||||
|
|
||||||
**On resolution:**
|
**On resolution:**
|
||||||
- status → "resolved"
|
- status → "resolved"
|
||||||
- Move file to .planning/debug/resolved/
|
- Move file to .planning/debug/resolved/ (only after user confirms fix)
|
||||||
|
|
||||||
</lifecycle>
|
</lifecycle>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user