finish: no close inputs; refuse before the forge when the work cannot close #879
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.
Depends on
#880 docs: record the finish close rule as ADR 0061
sixfold-space/madtea
Reference
sixfold-space/madtea#879
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?
finishmeans the work is done. Today three inputs let a caller merge work and still leave its issue open, or close an issue with no dependency check:no_closemerges and writes onlyRefs #N.close_linkedskips the dependency check.closes=closes listed issues with no dependency check.With no input at all, a branch whose issue has an open dependency still merges with
Refs #N, and a branch with no issue merges with no close line. When a close fails at the forge, the forge still merges and drops the close, so the caller believes the issue is closed.Decision (hexajon, 2026-10-22):
finishtakes no close inputs, and refuses before the forge when the work cannot close.no_close,close_linked, andcloses=are removed on the CLI and MCP, with no alias.title,summary,files,no_commit, andbranchstay.issue-N-...).finishrefuses before any push, PR, or merge when the branch name has no issue number, when issue #N does not exist or is already closed, when #N has an open dependency, or when the forge cannot be read.Closes #Nand the forge closes #N at merge. The same rule holds in a repo outside the start folder.This replaces the designs in #827 (hold the issue with
madtea/heldand merge) and #821 (keepclose_linked, and keepcloses=in ssh-only mode). The record is docs/decisions/0061-finish-takes-no-close-inputs.md. docs/decisions/0007 and docs/decisions/0058 name the removed inputs and need an edit.This is a breaking change. The release notes must say so.
Acceptance criteria
no_close,close_linked, andclosesare absent from the tool schema and the CLI flags; passing one is an unknown-argument error.finishrefuses when the forge cannot be read.