State the Recurring Case in Three Rules That Only State the Common One - #627
Merged
Conversation
Ships the `ready` cluster carrying #578. Each of the three rules is correct about its common case and silent about the case that keeps recurring, which is why downstream agents keep re-deriving them. GOVERNANCE.md "Branching Model" now states that an issue closes when its work is verifiably complete, and that the keyword automates the case where completion and promotion coincide rather than adding a second condition to it. Two hand-close cases are named: a promotion merged without the keyword, and work complete on `develop` with no promotion imminent. GOVERNANCE.md "Communicating with the User" now says the message carrying the clickable link comes before the prompt rather than merely alongside it, since the prompt blocks on an answer and a later message arrives after that answer is given. GOVERNANCE.md "Operational Repositories" now states when to decline the direct-commit grant, as a shape rather than a line count. It stays guidance by construction, because a `pull_request` rule on the operational ruleset would gate the direct push and withdraw the allowance the model exists to give. Sweeping item 3 by term rather than by the instance the issue named found WORKFLOW.md section 3 restating the same allowance with the same silence. It now cross-references the section that owns the test instead of repeating it. The item 1 rule sits in "Branching Model" rather than the "Git and Commit Rules" the cluster named, which is where the re-vendor has to look for it. TODO.md retires the shipped cluster, drops #557 and #579 from "Verified Complete, Awaiting Close" now that both are closed, and adds #578 there with its closing evidence. The re-vendor sweep entry records that this half propagates a rule rather than refreshing a hash, so a repo left on the old copy is wrong on the rule and not merely on the bytes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the ProjectTemplate governance docs to explicitly cover three recurring edge cases that were previously left unstated, and aligns related documentation to point at the single authoritative rule text.
Changes:
- Widen
GOVERNANCE.mdguidance for (1) when issues are closed by hand, (2) where to place clickable links relative to interactive prompts, and (3) when to prefer a PR over a direct commit inoperationalrepos. - Update
WORKFLOW.mdto reference the authoritative “Operational Repositories” test instead of restating it. - Retire the related
TODO.mdwork-cluster entry and record #578 as verified complete with closing evidence.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| GOVERNANCE.md | Expands three carried rules to cover recurring non-common cases (hand-closing issues, link placement vs prompts, operational direct-commit vs PR decision). |
| WORKFLOW.md | Replaces repeated allowance text with a cross-reference to the governance section that owns the “when to take a PR” test. |
| TODO.md | Removes the shipped cluster, records #578 as complete (with evidence), and updates link definitions accordingly. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ptr727
added a commit
that referenced
this pull request
Aug 8, 2026
Closes #578. Promotion of `develop` at `6df14c0`, three squashes since the last one. Merge commit only, no squash and no rebase, and **no `--delete-branch`**, since this pull request's head is `develop` itself. ## What is being promoted | Squash | Change | | --- | --- | | [`fdd1e25`](fdd1e25) (#627) | Widens three carried `GOVERNANCE.md` rules to state the recurring case, which is [#578](#578), plus the `WORKFLOW.md` cross-reference the same change took. | | [`92b9fc5`](92b9fc5) (#628) | Corrects the Copilot runbook to read the reviewer bot's node id repo-wide rather than from the pull request under review, and records the disproof of the claim raised against it. | | [`6df14c0`](6df14c0) (#629) | Records the backlog cluster for documenting a cross-owner write grant. | Four files, `.github/copilot-instructions.md`, `GOVERNANCE.md`, `TODO.md` and `WORKFLOW.md`, at 49 insertions against 73 deletions. ## The closing keyword `Closes #578` is on this pull request rather than on #627, because GitHub fires a closing keyword only when it merges into the default branch, and #627 merged into `develop`. Merging this closes that issue. The work itself landed in `fdd1e25`. ## What this owes downstream Two of the three carry a rule rather than a hash refresh, so a repository left on the old copy is wrong on the rule and not only on the bytes. Both are recorded in `TODO.md` under "Re-vendor the changed `verbatim` content": - The [#578](#578) widening touches three `verbatim` `GOVERNANCE.md` sections, and "Operational Repositories" matters most on the two `operational` repositories that can act on it. - The runbook correction is `intent` fidelity, so **no audit reports it**. A repository on the old copy reads its own runbook as requiring a review on the pull request before the reviewer bot's node id can be read, and hands round 1 back to the maintainer whenever auto-review-on-open does not fire. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.
Ships the
readycluster carrying #578. No closing keyword, since a feature todeveloppull request never fires one.Each of the three rules is correct about its common case and silent about the case that keeps recurring. The issue's own diagnosis is that downstream agents keep re-deriving them and reporting the result as a discovery, which says the wording does not reach the case rather than that the rule is missing.
All three
Checkedanchors were re-read againstdevelopata706ddbbefore anything was written. All three gaps were still real.The three widenings
GOVERNANCE.md"Branching Model" now states that an issue closes when its work is verifiably complete, and that the keyword automates the case where completion and promotion coincide rather than adding a second condition to it. Two cases fall outside it and both close by hand: a promotion that merged without the keyword, and work complete ondevelopwith no promotion imminent, where waiting holds a finished issue open for however long the next promotion takes. The closing comment cites the squash SHA, re-read against the branch rather than trusted from the claim that asked for the close.The old wording licensed a hand-close only as a repair after a promotion had already merged without the keyword, which is why the second case had no route.
GOVERNANCE.md"Communicating with the User" now says the clickable link goes in the message that comes before the prompt rather than merely alongside it. The rule already got the hard part right, that a prompt renders neither a Markdown link nor a bare URL. What it missed is that a prompt blocks on an answer, so a message emitted after it is read once the answer is already given, which is the one moment the link is no longer any use. One word,accompaniestobefore, plus the reason.GOVERNANCE.md"Operational Repositories" now states when to decline the direct-commit grant. The grant exists for the one-line config edit whose review round costs more than it protects, and that reason stops applying well before a change gets large, so the test is stated as a shape rather than a line count: restructuring rather than adjusting a value, several files at once, a device, integration or automation that did not exist before, anything whose failure shows up on the live service rather than in a lint run, or a change the author cannot state in one sentence.This stays guidance by construction. Adding a
pull_requestrule torepo-config/operational/develop.jsonwould gate the direct push too and withdraw the very allowance the model exists to give, so nothing mechanical can apply it.What sweeping by term found
Item 3 swept by term rather than by the instance the issue named turned up
WORKFLOW.mdsection 3 restating the same allowance with the same silence, in the same words: "a change worth reviewing still takes one". It now points at the section that owns the test instead of repeating it, so the rule stays in one place and the second reader still finds it.Item 1's rule also sits in "Branching Model", not the "Git and Commit Rules" the cluster's
Touchesline named. That is where the re-vendor has to look for it, so it is recorded rather than silently corrected.Backlog bookkeeping
operationalrepos that can act on it.Verification
prose_lint.py --diff origin/develop .**/*.mdThree carried
verbatimGOVERNANCE.mdsections change, so the fleet is byte-mismatched until the re-vendor visit.WORKFLOW.mdisintent, so nothing reports its cross-reference at all, which is why it is written down.🤖 Generated with Claude Code