fix(gittree): match the refusal rationale to the cause that fired #224

Merged
coilysiren merged 1 commit from fix/refusal-names-the-actual-gate into main 2026-07-12 06:39:12 +00:00
Owner

The refusal boilerplate quoted the clean-tree rule for every cause, so a clean checkout with no upstream was told "Repo verbs require a clean tree". Rationale now names the property that failed (clean tree / branch checkout / pushed-and-synced). New table test pins the mapping. Refs ward#1129.

The refusal boilerplate quoted the clean-tree rule for every cause, so a clean checkout with no upstream was told "Repo verbs require a clean tree". Rationale now names the property that failed (clean tree / branch checkout / pushed-and-synced). New table test pins the mapping. Refs ward#1129.
fix(gittree): match the refusal rationale to the cause that fired (ward#1129)
All checks were successful
ci / lint (pull_request) Successful in 17s
ci / secrets (pull_request) Successful in 8s
ci / test (pull_request) Successful in 43s
1456b77d66
The refusal boilerplate quoted the clean-tree rule for every cause, so
an operator whose branch simply had no upstream was told "Repo verbs
require a clean tree" - a wrong diagnosis on a clean checkout. The
rationale now names the property that actually failed: clean tree for
dirty states, branch checkout for detached HEAD, pushed-and-synced for
the upstream and ahead/behind causes.

Refs coilyco-flight-deck/ward#1129

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Cym37PsLtA61parAQyeAw
Sign in to join this conversation.
No description provided.