Autor: Pablo Kuschniroff, assistiert von Claude Code. Version 1, 19. Oktober 2026. Dieses Dokument ergänzt das Hauptdokument: es sagt, wie die Methode angewendet wird, wenn es nicht einen einzigen Menschen mit einem einzigen Agenten gibt, sondern mehrere Entwickler, jeder mit seinem, die auf demselben Repository und auf demselben Branch arbeiten. Die seltsamen Wörter stehen im Glossar des Hauptdokuments. Öffentliches Repository: github.com/pkuschnirof/urazuke.
Die Methode ist im Singular geschrieben: der Eigentümer, der Agent, der offene Posten. Meine drei Systeme habe ich so gebaut, ein Mensch und ein Modell. Aber ein Team, das die Methode übernimmt, hat nicht einen Menschen: es hat drei oder fünf, jeder mit seiner offenen Agentensitzung auf demselben Code, und in den meisten kleinen Teams auf demselben Branch, denn der Wald aus langlebigen Branches ist der sicherste Weg dahin, dass sich zwei Wochen Arbeit an einem Freitag unter Geschrei integrieren. Auf einem geteilten Branch zu arbeiten lässt sich gut machen, und die Branche tut es seit Jahren mit bekannten Regeln (kleine Commits, mehrmals täglich integriert, die Continuous Integration als Schiedsrichter, halbfertige Funktionalitäten hinter einem Schalter versteckt). Was sich mit der Methode ändert, ist, dass diese Regeln nicht mehr von Personen eingehalten werden, die den Code der anderen lesen: sie werden von Agenten eingehalten, die einander nicht sehen, und also muss man sie dort aufschreiben, wo jeder Agent sie liest.
Was folgt, sind die Regeln und danach die Prompts. Ich füge keine Schritte hinzu: die vierundzwanzig sind dieselben. Ich füge hinzu, was jeder Schritt braucht, damit ihn mehrere gleichzeitig erklimmen.
Wenn du Anfänger bist. Ein Branch ist eine Kopie des Codes, in der gearbeitet wird; der geteilte Branch (meist main oder trunk genannt) ist der einzige, der zählt, der, der deployt wird. Integrieren heißt, deine Änderung in diesen Branch zu bringen; ein Konflikt ist, wenn zwei Personen dieselbe Zeile geändert haben und das Werkzeug nicht weiß, welche gilt. Ein Funktionsschalter ist ein Konfigurationsschlüssel, der eine Funktionalität ausgeschaltet lässt, obwohl der Code schon da ist, damit man halbfertig integrieren kann, ohne dass der Nutzer sie sieht. Und einen offenen Posten zu beanspruchen heißt, deinen Namen in ihn zu schreiben, damit ihn niemand sonst nimmt.
docs/PENDING.md, und ein offener Posten hat jeweils nur einen Eigentümer. Zwei Personen nehmen nicht gleichzeitig zwei offene Posten, die dasselbe Modul berühren; wenn es sich nicht vermeiden lässt, sagen sie es sich, und die zweite wartet, bis die erste integriert hat. Der Agent liest zu Beginn der Sitzung die von anderen beanspruchten offenen Posten und fasst sie nicht an.docs/DECISIONS.md, denn der Agent nebenan wird sie noch am selben Nachmittag brauchen und wird sie nicht erraten. Die Arbeitsvereinbarung (1) ist eine einzige für das Team; niemand hat eigene Regeln, die die anderen nicht lesen.Und eine Regel über die Agenten, die das ist, was sich gegenüber einem Team ohne Modelle wirklich ändert: jeder Agent arbeitet im Namen einer Person, mit seinem eigenen Sitzungskontext, und das Einzige, was sie teilen, ist das, was im Repository geschrieben steht. Es gibt kein gemeinsames Gedächtnis außerhalb der Dateien. Deshalb werden der lebende Zustand (docs/STATUS.md), die offenen Posten und die Entscheidungen im Moment geschrieben, nicht „am Ende des Tages“: der Agent des Kollegen wird sie in fünf Minuten lesen.
| Schritt | Wer ihn erklimmt | Was sich im Team ändert |
|---|---|---|
| 0 bis 4, Start | Eine einzige Person, die, die führt, mit dem Eigentümer. | Wird einmal gemacht, bevor die anderen dazukommen. Das Skelett (4) umfasst die Integrationskette, die der Schiedsrichter sein wird, und die Tore (docs/GATES.md) umfassen die des geteilten Branches. |
| 1, Vereinbarung | Der Leiter schreibt sie; alle unterschreiben. | Die sieben Regeln von oben kommen als Routinen hinzu. Eine einzige Datei für das Team. |
| 5, offene Posten | Der Leiter öffnet den Block mit dem Eigentümer; jeder beansprucht. | Der offene Posten trägt ein Feld „beansprucht von“ und „berührte Module“. Zwei Posten, die dasselbe Modul berühren, werden nicht gleichzeitig beansprucht. |
| 6, Entscheidungen | Wer sie braucht, mit dem Eigentümer. | Wird im Moment geschrieben, nicht am Ende des Tages. |
| 7 bis 12, die Schleife | Jeder, mit seinem Agenten, auf seinem offenen Posten. | Vor dem Integrieren: holen, alles laufen lassen, hochladen. Was halbfertig ist, hinter einen Schalter. Den Bericht (12) liest ein anderer. |
| 9, Qualität | Eine einzige Konfiguration für alle. | Niemand hat eigene Linter-Ausnahmen. |
| 10, manuelle Testfälle | Der Eigentümer des Postens schreibt sie; ein anderer führt sie aus. | Wer die Funktionalität nicht gebaut hat, prüft sie am besten. |
| 11, Symmetrie | Wer einen Vertrag anfasst, aktualisiert die Konsumenten, wem auch immer sie gehören. | Die Karte ist der Konfliktdetektor. |
| 13, Audit | Eine andere Sitzung als alle, die gebaut haben. | Im Team ist es einfacher: der Auditor ist der, der dieses Modul nicht angefasst hat. |
| 14 bis 20, Freigabe | Der Leiter koordiniert; jeder Schritt hat einen Verantwortlichen. | Eine Person befördert in die Produktion; die anderen nicht. |
| 21 bis 23, Betrieb | Ein Monitoring-Verantwortlicher pro Zyklus, rotierend. | Den zyklischen Bericht liest das ganze Team; die offenen Posten, die daraus entstehen, werden wie jeder andere beansprucht. |
Bevor du den Prompt schickst, muss das hier existieren, und du (oder der Teamleiter) machst es, nicht der Agent:
docs/WORKING_AGREEMENT.md (Schritt 1), abgeschlossen, eine einzige für das Team, mit der Liste der Mitglieder und ihrer Benutzernamen im Repository.docs/PENDING.md (Schritt 5) mit dem Feld „beansprucht von“ und „berührte Module“ in jedem offenen Posten, auch wenn sie leer sind.PROJECT.md.Routine des geteilten Branches (kommt in die Arbeitsvereinbarung):
We work as a team on one shared branch, each person with their own agent session, and the only shared memory is what is written in the repository. Rules: (1) At the start of every session, read
docs/STATUS.md,docs/DECISIONS.mdanddocs/PENDING.md; never touch a pending item claimed by someone else, and never take one that touches a module another claimed item touches. (2) Before every integration into the shared branch: pull the others' changes, run the full suite and the quality gate, and only then push; integrate several times a day, never at the end of the week. (3) Never push with the pipeline red; whoever turns it red fixes it before anything else or reverts. (4) Anything that cannot be finished and integrated today goes behind a feature switch, off by default, noted in the pending item. (5) Before touching a contract between parts (a service, a table, a list of values), look up its consumers indocs/PRODUCER_CONSUMER_MAP.mdand update them in the same change, whoever owns them. (6) Every business decision goes todocs/DECISIONS.mdthe moment it is taken, with the person's name and the date. (7) Updatedocs/STATUS.mdwith what you are doing when you start and when you stop, so that the others' agents see it. Reply in my language.
Wir arbeiten als Team auf einem einzigen geteilten Branch, jede Person mit ihrer eigenen Agentensitzung, und das einzige gemeinsame Gedächtnis ist das, was im Repository geschrieben steht. Regeln: (1) Lies zu Beginn jeder Sitzung docs/STATUS.md, docs/DECISIONS.md und docs/PENDING.md; fass nie einen von jemand anderem beanspruchten offenen Posten an, und nimm nie einen, der ein Modul berührt, das ein anderer beanspruchter Posten berührt. (2) Vor jeder Integration in den geteilten Branch: hol die Änderungen der anderen, lass die ganze Batterie und das Qualitätstor laufen, und lade erst danach hoch; integriere mehrmals täglich, nie am Ende der Woche. (3) Lade nie mit roter Kette hoch; wer sie rot macht, repariert sie vor allem anderen oder nimmt sie zurück. (4) Alles, was heute nicht fertig und integriert werden kann, kommt hinter einen Funktionsschalter, standardmäßig aus, im offenen Posten notiert. (5) Bevor du einen Vertrag zwischen Teilen anfasst (einen Dienst, eine Tabelle, eine Werteliste), schlag seine Konsumenten in docs/PRODUCER_CONSUMER_MAP.md nach und aktualisiere sie in derselben Änderung, wem auch immer sie gehören. (6) Jede Geschäftsentscheidung kommt in dem Moment, in dem sie getroffen wird, nach docs/DECISIONS.md, mit dem Namen der Person und dem Datum. (7) Aktualisiere docs/STATUS.md mit dem, was du tust, wenn du anfängst und wenn du aufhörst, damit die Agenten der anderen es sehen. Antworte in meiner Sprache.
Was ich hier verlange: die sieben Regeln als Routine des Agenten, denn der Agent sieht die anderen Agenten nicht und wird nur erfüllen, was er liest; die Pflichtlektüre zu Beginn der Sitzung, die das ersetzt, was sonst das Gespräch auf dem Flur wäre; die kleine und häufige Integration mit der Batterie als Bedingung; den Schalter für das, was halbfertig ist; die Karte als Konfliktdetektor; und den lebenden Zustand, im Moment geschrieben.
Beim Beanspruchen eines offenen Postens:
Bevor du den Prompt schickst, musst du das hier zur Hand haben:
I am taking pending item [PND-NNN]. Before anything: list the pending items claimed by others and tell me whether any of them touches the same modules as mine, by the "modules it touches" field and by the producer-consumer map; if there is an overlap, stop and tell me, do not start. If there is none, write my name in the "claimed by" field with today's date, write in
docs/STATUS.mdwhat I am starting, re-read the item's specification, and tell me which contracts of the map this item will touch and who consumes them. Reply in my language.
Ich nehme den offenen Posten [PND-NNN]. Zuallererst: liste die von anderen beanspruchten offenen Posten auf und sag mir, ob einer von ihnen dieselben Module berührt wie meiner, nach dem Feld „berührte Module“ und nach der Produzenten-Konsumenten-Karte; wenn es eine Überschneidung gibt, halt an und sag es mir, fang nicht an. Wenn es keine gibt, schreib meinen Namen in das Feld „beansprucht von“ mit dem heutigen Datum, schreib in docs/STATUS.md, was ich anfange, lies die Spezifikation des Postens noch einmal, und sag mir, welche Verträge der Karte dieser Posten berühren wird und wer sie konsumiert. Antworte in meiner Sprache.
Was ich hier verlange: die Prüfung auf Überschneidung vor dem Anfangen, die der billige Moment ist, einen Konflikt zu vermeiden; den geschriebenen Anspruch; und die Liste der Konsumenten, die ich anfassen werde, um von Anfang an zu wissen, wem ich etwas ändere.
Beim Integrieren:
Bevor du den Prompt schickst, musst du das hier zur Hand haben:
We are going to integrate into the shared branch. Pull the others' changes first and tell me what came in and whether anything touches my modules. Resolve conflicts, if any, by reading both sides and asking me when a business rule is involved; never by keeping mine. Run the full suite, the quality gate and, if this is an inherited system, the characterization suite, and show me the counts. If anything is red, stop: tell me what and whose change it comes from. If this item is not finished, confirm the feature switch is off by default and say so in the commit message. Then push, show me the pipeline green on the shared branch, and update
docs/STATUS.mdand the pending item. Reply in my language.
Wir werden in den geteilten Branch integrieren. Hol zuerst die Änderungen der anderen und sag mir, was hereingekommen ist und ob etwas meine Module berührt. Löse die Konflikte, falls es welche gibt, indem du beide Seiten liest und mich fragst, wenn eine Geschäftsregel im Spiel ist; nie, indem du meine behältst. Lass die ganze Batterie laufen, das Qualitätstor und, wenn es ein geerbtes System ist, die Charakterisierungsbatterie, und zeig mir die Zahlen. Wenn etwas rot ist, halt an: sag mir, was und aus wessen Änderung es kommt. Wenn dieser Posten nicht fertig ist, bestätige, dass der Funktionsschalter standardmäßig aus ist, und sag es in der Commit-Nachricht. Lade danach hoch, zeig mir die Kette grün auf dem geteilten Branch, und aktualisiere docs/STATUS.md und den offenen Posten. Antworte in meiner Sprache.
Was ich hier verlange: holen vor dem Hochladen; die Konflikte lösen, indem beide Seiten gelesen werden, und nicht „gewinnen“ (der Reflex des Modells vor einem Konflikt ist, seine Version zu behalten); die Batterie als Bedingung; die grüne Kette auf dem geteilten Branch als Beleg, nicht auf der Maschine des Agenten; und den lebenden Zustand auf dem neuesten Stand.
docs/STATUS.md, was jeder heute tut?Hypothese