Adds the missing rule: a PR that does not finish its issue writes Part of #n, never Fixes #n. The keyword closes the issue on merge, so a Fixes on a partial PR files an open task as done — and the only repair is reopening by hand, which happens only if somebody remembers to look.
The rule is bought with a real incident: Gitea PR #48 carried Fixes #40 while rss-bridge had deliberately been left out of the sweep (its install test fails on the runner, Gitea #51), the merge closed Gitea #40 with one occurrence still open, and it was reopened by hand only because the implementing agent thought of it.
What changed
CLAUDE.md, "Additional rules for all commits, PRs, issues, and comments" — the rule as one bullet, in the wording approved on the issue, with a pointer to step 8 so the two read as one rule rather than two: step 8 verifies the auto-close, and that check is only the right outcome when the keyword was the right one. Step 8 itself is unchanged.
Wiki page Workflow, "Rules for every commit, PR, issue and comment" — the same rule in long form with the same example. Already pushed, because the wiki has no PR flow; it lands before this PR is merged rather than with it.
Two deviations from the wording on the issue, both mechanical: the nested bold in **... **Part of #n** ...** does not render, so the two keywords are set in backticks like every other literal in that list; and the incident numbers are written as "Gitea #48" / "Gitea #40", because a bare #n in this repository's files means the old GitHub tracker by this file's own convention, and Gitea would resolve it against its own counter.
No chart is touched: no version bump, no publish. ci/run-quantity-render-test.sh passes (24 exercised, 0 failed).
This PR does finish its issue, so it carries the keyword — the first application of the rule it introduces.
Adds the missing rule: a PR that does not finish its issue writes `Part of #n`, never `Fixes #n`. The keyword closes the issue on merge, so a `Fixes` on a partial PR files an open task as done — and the only repair is reopening by hand, which happens only if somebody remembers to look.
The rule is bought with a real incident: Gitea PR #48 carried `Fixes #40` while `rss-bridge` had deliberately been left out of the sweep (its install test fails on the runner, Gitea #51), the merge closed Gitea #40 with one occurrence still open, and it was reopened by hand only because the implementing agent thought of it.
## What changed
- `CLAUDE.md`, "Additional rules for all commits, PRs, issues, and comments" — the rule as one bullet, in the wording approved on the issue, with a pointer to step 8 so the two read as one rule rather than two: step 8 verifies the auto-close, and that check is only the right outcome when the keyword was the right one. Step 8 itself is unchanged.
- Wiki page `Workflow`, "Rules for every commit, PR, issue and comment" — the same rule in long form with the same example. **Already pushed**, because the wiki has no PR flow; it lands before this PR is merged rather than with it.
Two deviations from the wording on the issue, both mechanical: the nested bold in `**... **Part of #n** ...**` does not render, so the two keywords are set in backticks like every other literal in that list; and the incident numbers are written as "Gitea #48" / "Gitea #40", because a bare `#n` in this repository's files means the old GitHub tracker by this file's own convention, and Gitea would resolve it against its own counter.
No chart is touched: no version bump, no publish. `ci/run-quantity-render-test.sh` passes (24 exercised, 0 failed).
This PR does finish its issue, so it carries the keyword — the first application of the rule it introduces.
Fixes #55
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds the missing rule: a PR that does not finish its issue writes
Part of #n, neverFixes #n. The keyword closes the issue on merge, so aFixeson a partial PR files an open task as done — and the only repair is reopening by hand, which happens only if somebody remembers to look.The rule is bought with a real incident: Gitea PR #48 carried
Fixes #40whilerss-bridgehad deliberately been left out of the sweep (its install test fails on the runner, Gitea #51), the merge closed Gitea #40 with one occurrence still open, and it was reopened by hand only because the implementing agent thought of it.What changed
CLAUDE.md, "Additional rules for all commits, PRs, issues, and comments" — the rule as one bullet, in the wording approved on the issue, with a pointer to step 8 so the two read as one rule rather than two: step 8 verifies the auto-close, and that check is only the right outcome when the keyword was the right one. Step 8 itself is unchanged.Workflow, "Rules for every commit, PR, issue and comment" — the same rule in long form with the same example. Already pushed, because the wiki has no PR flow; it lands before this PR is merged rather than with it.Two deviations from the wording on the issue, both mechanical: the nested bold in
**... **Part of #n** ...**does not render, so the two keywords are set in backticks like every other literal in that list; and the incident numbers are written as "Gitea #48" / "Gitea #40", because a bare#nin this repository's files means the old GitHub tracker by this file's own convention, and Gitea would resolve it against its own counter.No chart is touched: no version bump, no publish.
ci/run-quantity-render-test.shpasses (24 exercised, 0 failed).This PR does finish its issue, so it carries the keyword — the first application of the rule it introduces.
Fixes #55