CLAUDE.md: PRs, die ihr Issue nicht abschliessen, brauchen "Part of #n" statt "Fixes #n" #55

Closed
opened 2026-09-27 22:46:40 +02:00 by jlab-bot · 0 comments
Member

Ein PR, der sein Issue nicht abschließt, darf Fixes #n nicht verwenden. Diese Regel fehlt in CLAUDE.md, und ihr Fehlen hat schon einmal einen falschen Zustand erzeugt.

Was passiert ist

PR #48 hat den veralteten Satz in 20 Charts korrigiert, aber nicht in rss-bridge — das Chart musste heraus, weil sein Install-Test auf dem Runner scheitert (#51). Die Entscheidung dazu lautete ausdrücklich: #40 bleibt offen, bis der Restposten nachgezogen ist.

Der PR-Text trug trotzdem Fixes #40. Beim Merge hat die Forge #40 damit geschlossen, obwohl eine Stelle offen war. Der Umsetzungs-Agent hat es von Hand wieder geöffnet und den Reststand dokumentiert — aber nur, weil er daran gedacht hat. Ohne diesen Zufall wäre eine offene Aufgabe als erledigt verbucht worden, und der einzige Hinweis darauf wäre eine Zeile in einem PR-Text gewesen, den niemand mehr liest.

Warum das wiederkommt

Die Arbeitsweise hier erzeugt den Fall regelmäßig: ein Issue, mehrere PRs; ein Chart, das aus einem Sammel-PR herausgenommen wird; ein Befund, der unterwegs sein eigenes Issue bekommt. Das Schlüsselwort ist bequem und steht in jeder Vorlage — es wird wieder benutzt werden, wenn die Regel nicht dasteht.

Vorgeschlagener Text

In CLAUDE.md, im Abschnitt „Working on issues — mandatory workflow", unter „Additional rules for all commits, PRs, issues, and comments":

  • 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 PR that leaves work behind marks an open task as done — and reopening by hand is the only repair, which only happens if someone remembers to look. This is not hypothetical: PR #48 carried Fixes #40 while rss-bridge had been deliberately left out of the sweep, and the merge closed #40 with one occurrence still open.

Die gleiche Regel gehört in die Wiki-Seite Workflow, Abschnitt „Rules for every commit, PR, issue and comment" — dort in der Langform mit demselben Beispiel.

Umfang

Zwei Dateien, kein Chart: CLAUDE.md und die Wiki-Seite. Kein Versionsschritt, kein Install-Test, keine Veröffentlichung.

Bei Gelegenheit mitzunehmen, statt dafür einen eigenen PR zu öffnen: Der nächste PR, der CLAUDE.md ohnehin anfasst, nimmt es mit — genau so ist in #49 auch die falsche Schrittnummer mitgelaufen. Steht in den nächsten Tagen kein solcher PR an, wird es ein eigener.

Ein PR, der sein Issue **nicht** abschließt, darf `Fixes #n` nicht verwenden. Diese Regel fehlt in `CLAUDE.md`, und ihr Fehlen hat schon einmal einen falschen Zustand erzeugt. ## Was passiert ist PR #48 hat den veralteten Satz in 20 Charts korrigiert, aber **nicht** in `rss-bridge` — das Chart musste heraus, weil sein Install-Test auf dem Runner scheitert (#51). Die Entscheidung dazu lautete ausdrücklich: **#40 bleibt offen**, bis der Restposten nachgezogen ist. Der PR-Text trug trotzdem `Fixes #40`. Beim Merge hat die Forge #40 damit **geschlossen**, obwohl eine Stelle offen war. Der Umsetzungs-Agent hat es von Hand wieder geöffnet und den Reststand dokumentiert — aber nur, weil er daran gedacht hat. Ohne diesen Zufall wäre eine offene Aufgabe als erledigt verbucht worden, und der einzige Hinweis darauf wäre eine Zeile in einem PR-Text gewesen, den niemand mehr liest. ## Warum das wiederkommt Die Arbeitsweise hier erzeugt den Fall regelmäßig: ein Issue, mehrere PRs; ein Chart, das aus einem Sammel-PR herausgenommen wird; ein Befund, der unterwegs sein eigenes Issue bekommt. Das Schlüsselwort ist bequem und steht in jeder Vorlage — es wird wieder benutzt werden, wenn die Regel nicht dasteht. ## Vorgeschlagener Text In `CLAUDE.md`, im Abschnitt „Working on issues — mandatory workflow", unter „Additional rules for all commits, PRs, issues, and comments": > - **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 PR that leaves work behind marks an open task as done — and reopening by hand is the only repair, which only happens if someone remembers to look. This is not hypothetical: PR #48 carried `Fixes #40` while `rss-bridge` had been deliberately left out of the sweep, and the merge closed #40 with one occurrence still open. Die gleiche Regel gehört in die Wiki-Seite `Workflow`, Abschnitt „Rules for every commit, PR, issue and comment" — dort in der Langform mit demselben Beispiel. ## Umfang Zwei Dateien, kein Chart: `CLAUDE.md` und die Wiki-Seite. Kein Versionsschritt, kein Install-Test, keine Veröffentlichung. Bei Gelegenheit mitzunehmen, statt dafür einen eigenen PR zu öffnen: Der nächste PR, der `CLAUDE.md` ohnehin anfasst, nimmt es mit — genau so ist in #49 auch die falsche Schrittnummer mitgelaufen. Steht in den nächsten Tagen kein solcher PR an, wird es ein eigener.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jlab-cluster/helm-charts#55