fix(config): prevent workflow.research reset during milestone transitions

Two bugs caused workflow.research to silently reset to false:

1. new-milestone.md unconditionally overwrote workflow.research via
   config-set after asking about research — coupling a per-milestone
   decision to a persistent user preference. Now the research question
   is per-invocation only; persistent config changes via /gsd:settings.

2. verify.cjs health repair (createConfig/resetConfig) used flat keys
   (research, plan_checker, verifier) instead of the canonical nested
   workflow object from config.cjs, also missing branch templates,
   nyquist_validation, and brave_search fields.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Maxim Brashenko
2026-03-15 21:08:59 +05:00
committed by GitHub
parent 63823c2e8a
commit eba9423ce0
4 changed files with 36 additions and 13 deletions

View File

@@ -9,6 +9,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
### Added
- **Node repair operator** (`workflows/node-repair.md`) — autonomous recovery when task verification fails. Instead of immediately asking the user, the executor attempts structured repair: RETRY (different approach), DECOMPOSE (break into sub-tasks), or PRUNE (skip with justification). Only escalates to the user when the repair budget is exhausted or an architectural decision is needed. Repair budget defaults to 2 attempts per task; configurable via `workflow.node_repair_budget`. Disable entirely with `workflow.node_repair: false` to restore original behavior.
### Fixed
- `/gsd:new-milestone` no longer overwrites `workflow.research` config — milestone research decision is now per-invocation, persistent preference only changes via `/gsd:settings`
- `/gsd:health --repair` now creates config.json with correct nested `workflow` structure matching `config-ensure-section` canonical format
## [1.22.4] - 2026-03-03
### Added