Der PR Shepherd rührt nur Konflikte an, die er versteht
Der PR Shepherd der Factory auf software-factory.dev rebased Pull Requests mit Konflikten, semantische Konflikte überlässt er aber einem Menschen. Schwer wird Automatisierung dort, wo ihr festlegen müsst, wo ihre Kompetenz endet.
Verfasst von
-
Benedikt Stemmildt Gründer & Co-CEO
Veröffentlicht: 31. Juli 2026 Aktualisiert: 2 Min. Lesezeit
Der PR Shepherd in der Factory auf software-factory.dev macht etwas, das die meisten Automationen auslassen: Er löst Merge-Konflikte. Allerdings nur solche, die er sich selbst zum Anfassen freigegeben hat.
Ein Handgriff für jede Art, wie ein Pull Request hängen bleibt
Alle zwei Stunden startet er nach Zeitplan, über die Cron-Zeile 0 */2 * * *. Dann holt er sich alle offenen Pull Requests, die keine Drafts sind, und sucht bei jedem, was schiefgegangen ist.
Wie Pull Requests hängen bleiben, ist vorhersehbar. Der Reviewer hat nie angefangen. Die CI ist fertig, ein Review kam aber nie. Ein Review wollte Änderungen, und keiner hat sich darum gekümmert. Ein Branch ist zu lange offen geblieben. Zwei Branches lösen dasselbe Issue. Ein Branch kollidiert mit main.
Auf jeden dieser Fälle hat der Shepherd eine Antwort. Duplikate schließt er. Ein hängendes Review stößt er mit einem leeren Commit neu an, festhängende CI startet er neu. Einen uralten Pull Request fasst er für einen Menschen zusammen.
Die Konfliktmarker lesen
Abschauen solltet ihr euch vor allem, wie er mit Konflikten umgeht. Kollidiert ein Branch mit main, checkt der Shepherd ihn aus und versucht einen Rebase. Gelingt der Rebase ohne Konflikte, laufen Lint, Typecheck und Tests, danach folgt ein Force-Push. Gibt es Konflikte, wirft er weder hin noch löst er sie blind auf. Er liest die Konfliktmarker.
Zwei Arten von Konflikten löst er:
- Additiv: Beide Seiten haben an derselben Stelle ausschließlich neue Zeilen ergänzt, nichts überschneidet sich.
- Nicht überlappend: Jede Seite hat einen anderen Teil desselben Hunks bearbeitet.
Für beide gibt es eine offensichtliche Antwort: beides behalten.
Eine Art lässt er in Ruhe, den semantischen Konflikt. Hier haben beide Seiten dieselben Zeilen mit unvereinbarer Absicht geändert. Er bricht den Rebase ab und setzt das Label needs-human. Geraten wird nicht.
Festschreiben, wo die Kompetenz endet
Genau in diesem Nein liegt das Design. Der Rebase-Befehl ist der leichte Teil. Schwer ist es, exakt festzuschreiben, wo die Kompetenz der Automation aufhört. Löst eine Automation jeden Konflikt, der ihr begegnet, mergt sie irgendwann zwei Absichten, die nie zusammengehören sollten. Herausfinden werdet ihr das in Produktion.
Laufen lassen könnt ihr eine Factory, wenn sie weiß, was sie zurückgeben muss.
Die komplette Automation steht in der Definition des PR Shepherds auf GitHub (öffnet in einem neuen Tab).
Wo zieht euer Tooling diese Grenze heute? Und ist sie aufgeschrieben, oder setzt ihr sie nur voraus?
Weiterlesen
Die Artikel der Wissensbasis sind auf Englisch.
Verfasst von
-
Benedikt Stemmildt · Gründer & Co-CEO
Factory Skills, Teil 11 von 18
- UI-Komponenten dort prüfen, wo sie ausgeliefert werden: in der Seite Der UI Verifier der Factory auf software-factory.dev hält jede geänderte Komponente in zwei Screenshots fest, einmal isoliert und einmal in der echten Seite. Denn was isoliert besteht, kann dort scheitern, wo es ausgeliefert wird.
- Die Stale-Uhr nach der Zykluszeit eurer Agenten stellen Beim Stale-Issue Reviewer auf software-factory.dev gilt Arbeit nach drei Stunden als liegengeblieben, nicht nach drei Tagen. Denn wer eine Linie überwacht, braucht eine Uhr, die in ihrem Takt läuft.
Skalierung braucht benannte Eigentümer
Coding-Agenten skalieren über Teams hinweg, wenn benannte Menschen die Plattform, die Teampraxis, die Guardrails und die Messung verantworten. In Rollout & Skalierung wird diese Verantwortung aufgebaut und an interne Eigentümer übergeben, in eurem Stack.
Schulung zum Thema: Agentic Software Factory: Advanced Team TrainingErst ein Team prüfen? Der Selbstcheck: zwölf Ja-Nein-Fragen, drei Minuten, Ergebnis sofort, ohne Konto. Zum Selbstcheck