Skip to content

State the Recurring Case in Three Rules That Only State the Common One - #627

Merged
ptr727 merged 1 commit into
developfrom
widen-three-rules-recurring-case
Aug 8, 2026
Merged

State the Recurring Case in Three Rules That Only State the Common One#627
ptr727 merged 1 commit into
developfrom
widen-three-rules-recurring-case

Conversation

@ptr727

@ptr727 ptr727 commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Ships the ready cluster carrying #578. No closing keyword, since a feature to develop pull 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 Checked anchors were re-read against develop at a706ddb before 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 on develop with 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, accompanies to before, 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_request rule to repo-config/operational/develop.json would 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.md section 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 Touches line named. That is where the re-vendor has to look for it, so it is recorded rather than silently corrected.

Backlog bookkeeping

Verification

Gate Result
prose_lint.py --diff origin/develop . clean
markdownlint-cli2 over **/*.md 0 issues in 44 files
editorconfig-checker clean
CRLF preserved 0 lines without CR in all three files

Three carried verbatim GOVERNANCE.md sections change, so the fleet is byte-mismatched until the re-vendor visit. WORKFLOW.md is intent, so nothing reports its cross-reference at all, which is why it is written down.

🤖 Generated with Claude Code

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>
Copilot AI lite review requested due to automatic review settings August 8, 2026 18:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md guidance 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 in operational repos.
  • Update WORKFLOW.md to reference the authoritative “Operational Repositories” test instead of restating it.
  • Retire the related TODO.md work-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
ptr727 merged commit fdd1e25 into develop Aug 8, 2026
7 checks passed
@ptr727
ptr727 deleted the widen-three-rules-recurring-case branch August 8, 2026 18:49
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants