Files
msd-core/.changeset/3210-precondition-blocking-human-retry-ceiling.md
Tom Boucher 8fc88f663d fix(#3210): gate unmet preconditions as blocking-human; cap blocker retries at needs_human (#3528)
* fix(#3210): gate unmet preconditions as blocking-human and cap blocker retries at needs_human

* chore(#3210): add changeset fragment for PR #3528

* fix(#3210): restore blocking-human carve-out and CRLF-safe split

---------

Co-authored-by: sim <sim@local>
2026-08-14 23:01:30 -04:00

978 B

type, pr
type pr
Fixed 3528

Autonomous/auto-mode no longer auto-approves unmet <precondition> checkpoints, and the blocker loop now halts needs_human instead of retrying forever — the checkpoint an executor returns when a task's <precondition> is unmet (an unmet user_setup step, a missing env var, an absent prior-phase artifact) now carries gate="blocking-human", which both auto-mode bypass layers (executor checkpoint protocol and execute-phase checkpoint handling) honor, so it always stops for a human instead of being silently approved with a synthetic "approved" and then failing <verify> on the still-missing prerequisite. Independently, /gsd:autonomous's blocker handler now counts "Fix and retry" attempts per phase step and, after 3 failed attempts, escalates to a terminal needs_human halt that surfaces the unmet items and records a ## Needs Human STATE.md row, ending the observed multi-hour retry loops on operator-gated plans. (#3210)