Repository navigation
fix(source-control): check each closed issue's done-when before writing the PR body - #13387
Conversation
…ng the PR body create reads each issue the body would close and marks its done-when items delivered or not; an issue with an item not delivered moves to a Refs: line with a ## Remaining section, and closing keywords appear only on the linkage line. ready runs the same check on GitHub's closing references before the flip and leaves the PR in draft on an over-claim. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review: PR #13387 (incremental since
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ad637fb90a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
claude-review reviewed Code review: PR #13387 (incremental, blocking only)I reviewed only the changes since No blocking findings. Both earlier findings are addressed:
Other checks:
Plugin manifests: none changed in this increment. Verification: I had no shell, so I did not run the commands in the PR's Verification section. They are the author's claims and unverified. Spend: none. The change is skill text only. No embedded instructions were found in the PR context or prior-findings files. |
Credit an earlier pull request's delivery only when it is on the Siblings: line and its body says it delivered the item, as pr-verify does. Read each closing reference in its own repository and count a failed or empty read as not delivered. Replace the restated GitHub keyword behavior with a pointer record. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: six PRs today (#13271, #13314, #13325, #13362, #13363, #13383) failed pr-verify for over-claiming Closes
Summary
/source-control:pull-requestnow checks each issue a PR body would close against the diff before writing the body (create) and before the flip (ready). pr-verify still judges the claim and stays the gate. This change makes the author run the same check first, so an over-claim no longer costs a verify run, a fail note, a dequeue and a re-push. Example: #13383 claimed an issue with 1 of 2 done-when items delivered, and #13368 closed an issue through a closing keyword on its Related line.Fix
reference/create.md§2.4.0: new "Close only what the diff finishes" paragraph. Before the siblings step, read each issue${CLOSES_LINE}would close and mark each done-when or acceptance item and each open sub-issue as delivered or not. Delivered means already checked, delivered by this diff, or delivered by a mergedRefs:sibling. An issue with any item not delivered moves to its ownRefs: #Nline (on the tracker-bound path, the adapter'srefstext). Never write "does not close".reference/create.md§2.4.1:## Remainingnow covers eachRefs:issue, including on a PR that also closes another issue. A new paragraph keeps closing keywords off every line except the linkage line; other issues are mentioned in forms like "delivered by #M".reference/ready-for-review.md§2.5.4: new "Closing claims" check after the hold re-check. It reads GitHub's closing references (any keyword anywhere in the body) and checks them against the head that will flip. On an over-claim it leaves the PR in draft and reports theRefs:/## Remainingchange the body needs, sincereadynever writes the body. This is not apre_readystep, so the step list and--skipcannot turn it off. Added to the 2.5.6 report lines.ready-for-review.md: new "Read the closing claims" section (gh pr view --json closingIssuesReferences).SKILL.md: thecreateandreadyaction rows now mention the check.The change is skill text only. It adds no script, hook or new step.
Verification
scripts/check-changed-skills.sh origin/main: PASS, 0 errors, 4 warnings, all existing ones (description and body size, and a missing TOC inready-for-review.md, which was already past the TOC threshold before this change).scripts/check-changelog-fragments.sh --check: all fragments valid.scripts/validate-plugins.sh: all manifests and the catalog validated.Refs: #812(singleRefs:issue,## Remaininglisting the undelivered item) still matches the loosened## Remainingrule.Left out: paid eval runs. The skill's cases are legacy
evals.json, which/evals:validatedoes not cover.Related
.claude/rules/pr-body-contract.md(Closes / Refs: / No related issue)docs/conventions/pr-pipeline/README.md🤖 Generated with Claude Code