Repository navigation
fix: derive merge-time issue closure from completion boundary - #20
Merged
Merged
Conversation
This was referenced Oct 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome and authority
Implement Issue #19 and its settled Planning implementation decision. The existing
Issue closure on mergedeclaration now derives from the substantive work-item completion boundary and issue-closure authority. Planning establishes the boundary; Publication enforces the declared result.012b27c7c384019241531a33ea990d9f4e1f7e77.2eeb8a60e4859af6a57ff9b2e9cfc4d0f2937c4a.fix/completion-boundary-closure. Initial checkout was clean; no unrelated work existed.Changed canonical surfaces
roles/planning.mdworkflows/reviewed-change.mdnoneis a universal default; per-issue intent applies regardless of host configuration.handoffs/review-to-publication.mdroles/publication.mdnone; conditions actually included in the issue boundary still keep it open.All changes are workflow-local. Governing sources, pins, source-derived guidance, validators, runtime, and repository settings are unchanged. GitHub remains conditional.
Preservation of #15 safety mechanics
Mechanical comparison against the exact base confirms that
roles/publication.mdfrom1. **Prepare the final gate.**through EOF is byte-identical. This preserves the entire four-step procedure and final host/authority disposition:owner/repository#numberresolution;closingIssuesReferences, controlling commit messages, and final landing-message inspection;none;All four files' governing-source and source-derived sections are byte-identical to the base. Existing handoff identity and verification instructions and workflow safety references remain intact.
Semantic review cases — implementor walkthroughs
noneapplies when the entire authorized set is empty. PASS.none. With closure authority, the issue may be included. PASS.A cleanup or verification task can be substantive when the actual project contract makes it so. These are manual semantic checks, not a new parser, test framework, independent review, or live merge experiment.
Consumer impact and proposed next-release summary
Evidence: Issue #19 and this exact candidate. This is a compatible refinement around an existing field, with no rename or schema change. Consumers using copied review-to-publication handoffs, integrations bound to
Issue closure on merge, or locally derived publication guidance should review the clarified completion-boundary semantics when deliberately updating. Existing instantiated handoffs do not silently change. Consumer authority and legitimate local adaptations remain controlling; no consumer integration was executed.Carried-forward next-release summary — #15
Retained from PR #18, supported by Issue #15, PR #16, and landed commit
d358c22438b80053a37cf173c1f652952fb35e2a. Release preparation must curate the full delta and retained summaries, including PR #18's own maintenance summary. No new version, Unreleased section, tag, or release is created; this work and #15 are not attributed to v0.2.0.Validation
.venv/bin/pre-commit run --all-files --show-diff-on-failure: PASS, including Markdown lint/authoring regressions, local links/link regressions, Ruff, actionlint, and artifact checks/tests. Only the expected no-files broken-symlink hook skipped. No hook mutation occurred.python3 scripts/validate_local.py: PASS.python3 -m unittest discover -s tests: PASS, five tests.git diff --checkandgit diff --cached --check: PASS.npm audit: PASS, zero vulnerabilities. Node v24.18.1; local Python 3.14.6.2eeb8a60e4859af6a57ff9b2e9cfc4d0f2937c4a: run 36804965496, job 110187140961. Run status is completed, conclusion success, and head SHA matches the candidate. The unchanged workflow checks out the exact PR head.The local validator checks artifact presence and obvious live identifiers, not workflow semantics. External links are skipped by the local link check; referenced issue/PR records were read directly. No validator changes require new injected-defect tests. No unexpected findings or scope deviations identified. Required independent review remains separate from these implementor checks.
Issue relationship and completion boundary
Issue #19 remains OPEN during implementation/review. This PR uses a non-closing reference while Planning exact-candidate review, independent review, and publication authorization are outstanding. No final Publication closure declaration is being supplied at this stage; absent closing relationships are not a semantic decision that post-merge verification requires
none.Under the current contract, no material #19 obligation after the authorized implementing merge has been identified. Once implementation, validation, required reviews, and publication authorization are satisfied, merge may satisfy #19's substantive boundary. Planning and the final Publication handoff must declare the actual authorized closure set; routine synchronization, branch cleanup, and ordinary resulting-state verification alone do not justify exclusion. Publication must establish final landing text and rerun the complete #15 gate immediately before merge, including after any PR description or relationship change.
PR #20 readback confirms the exact base/candidate above, OPEN state, and empty
closingIssuesReferences. The PR description and sole candidate commit contain no issue-closing command targeting an issue. Issue #19 remains OPEN; the worktree is clean. Final landing text is not yet established and remains a Publication input. This snapshot is candidate-return evidence, not the final publication gate. No merge, manual issue closure, tag, release, or host-setting change is performed here.Material consequence dispositions
MAINTAINING.md; release selection/publication remains separately authorized.Return to Planning / Primary Author
Act as Planning / Primary Author under the settled #19 contract. Review the exact candidate against the recorded base and the six semantic requirements, A/B/C cases, #15 preservation evidence, and consumer consequences. Arrange the required independent review without mutating the candidate. Retain a supported conclusion and material finding dispositions in this PR/Issue #19 record; route corrections to authorized Implementation for complete requalification. Then establish the actual completion boundary and closure declaration in the final Publication handoff if publication is authorized. This implementation handoff does not authorize merge or replace independent review.