diff --git a/handoffs/review-to-publication.md b/handoffs/review-to-publication.md index 95431ce..a8daf20 100644 --- a/handoffs/review-to-publication.md +++ b/handoffs/review-to-publication.md @@ -72,6 +72,12 @@ return control without performing that action. | Required shared targets | `` | | Return destination | `` | +Populate **Issue closure on merge** from the already-established substantive +completion boundary, issue-closure authority, and intended merge consequence +under the [reviewed-change composition](../workflows/reviewed-change.md#workflow-local-operational-guidance). +Publication consumes and enforces this result; the field is not an independent +policy choice for Publication. + For applicable GitHub publication, declare every issue by full `owner/repository#number` identity, including issues in other repositories; `none` means no closing relationship in any repository. Follow the diff --git a/roles/planning.md b/roles/planning.md index 61fd657..98aad2b 100644 --- a/roles/planning.md +++ b/roles/planning.md @@ -50,6 +50,17 @@ authority, protected effects, and justified constraints from forecast files or techniques. Mark deliberate exact-change restrictions and the consequence they protect. Implementation owns ordinary mechanics inside those boundaries. +When issue completion is part of the project contract, Planning/project authority +establishes the substantive completion boundary and whether merge is intended to +satisfy it. Distinguish material completion conditions from routine housekeeping. +Local synchronization, branch deletion, workspace cleanup, and similar mechanics +do not extend that boundary merely because they follow merge; the project contract +determines whether any such task is substantive. Identify any required downstream +action, approval, substantive verification, or other material condition that +remains after merge, with an owner for explicit completion at the later boundary. +Required publication verification does not automatically extend the issue boundary; +the contract determines whether a particular result is a substantive condition. + Planning does not implement, even when implementation is the next logical step. Return the instantiated planning handoff at that boundary. diff --git a/roles/publication.md b/roles/publication.md index 400a5a7..d5cb15d 100644 --- a/roles/publication.md +++ b/roles/publication.md @@ -77,6 +77,15 @@ descriptions, commit messages, and merge/squash subjects and bodies. Where GitHub issue-closing semantics apply, use this manual procedure regardless of repository auto-close configuration; no setting change is required. +Enforce the declared closure set derived from the +[established completion boundary](../workflows/reviewed-change.md#workflow-local-operational-guidance); +Publication does not redefine it. Post-merge checks of landed identity, tree +correspondence, messages, issue state, or hosted validation remain required where +applicable, but their timing and routine cleanup do not independently force +`Issue closure on merge: none`. A material condition that the project contract +includes in the issue's boundary still requires that issue to remain open until +the condition is satisfied. + 1. **Prepare the final gate.** After candidate correspondence and required validation, establish the exact PR head SHA (``) and the permitted landing method. The handoff's **Issue closure on merge** remains diff --git a/workflows/reviewed-change.md b/workflows/reviewed-change.md index d26e45a..286b090 100644 --- a/workflows/reviewed-change.md +++ b/workflows/reviewed-change.md @@ -101,8 +101,15 @@ role. Preparing that handoff does not itself authorize the sender to execute it. Publication does not redesign the candidate. See the applicable PRI guidance under [Source-derived guidance](#source-derived-guidance) above. Return corrections through the authorized role handoff. - Where GitHub issue-closing semantics apply, host closing state must match the - handoff's declared project completion intent. Follow the + Where GitHub issue-closing semantics apply, derive the handoff's **Issue closure + on merge** from the substantive completion boundary established by + [Planning/project authority](../roles/planning.md#workflow-local-operational-guidance) + and issue-closure authority. Include an authorized issue when merge satisfies + all its substantive completion conditions. Merge need not complete every work + item: exclude an issue with material governed obligations remaining after merge + and retain ownership of its explicit later completion. Neither closure nor + `none` is a universal default. Actual closing relationships must express this + per-issue intent regardless of repository auto-close configuration. Follow the [issue-closure safety rule](../roles/publication.md#github-issue-closure) across PR, commit, and landing-message surfaces; Publication verifies applicable GitHub issue-closing state immediately before merge and resulting issue state