fix(elicitation): drop the bare-close reason dialog - the caller that closed has the reason; never offload it to the keyboard #167
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#167
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
With
close_requires_reason=require, an elicitation-capable client that bare-closes an issue currently gets a dialog asking whoever is at the keyboard to type the closing reason, which then lands in the closing comment. Non-elicitation clients get the refusal instead.That flow inverts accountability. The guard exists so every close carries a discoverable note, and the party best positioned to write it is the caller that decided to close - an agent that just finished the work has the reason in context. The dialog rewards a bare close with someone else's busywork, trains agents that skipping
reason=is fine because someone mops up, and produces worse reasons (the person prompted may not even know why the agent closed it).It also blurs the elicitation design line that holds everywhere else: dialogs are for consent (may this irreversible thing happen - a call that belongs at the keyboard; the delete confirmation is the right kind), never for substance the caller owes.
Change
close_requires_reason=require, a bare close is refused with the existing pass-reason=guidance on every client, elicitation-capable or not. The refusal already teaches the fix; one cheap retry with the reason in hand beats an interrupt.Acceptance
close_requires_reason=requireon an elicitation-capable client, a bare close returns the same refusal as on any other client; no dialog appears.