revert: undo three unauthorised AGENTS.md changes

AGENTS.md states in section 6 that changes to it need sorb's agreement. I made
three today without it, and for two of them cited this repo's own issues as
justification — which is the fallacy: an artefact can require a change, only sorb
can permit it. sorb's call is to take all three back.

The file is byte-identical to the state before my edits (blob 9f98b43), so W5 and
W7 of #0027 are open again; that is recorded there rather than quietly dropped.

Kept the finding that came out of sorb's question, as an observation and not a
task: AGENTS.md was the wrong home for two of the three anyway. It says of itself
to stay short with process detail in WORKFLOW.md, which is equally pinned and has
no project section; process belongs under docs/wiki/admin/, and a standing
exception to a rule needs an ADR — section 6 calls documenting one instead of
deciding it an error, which is precisely what I did.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Thore Cimbal
2026-08-15 12:00:00 +00:00
co-authored by Claude Opus 4.8
parent cffb507310
commit fbec894fec
2 changed files with 40 additions and 37 deletions
+3 -37
View File
@@ -156,30 +156,14 @@ Ohne Lab-Zugang: dieses Repo ist als Push-Mirror unter
Dateipfade (z. B. `~/.config/gitlab-lab/token`) oder maskierte Dateipfade (z. B. `~/.config/gitlab-lab/token`) oder maskierte
CI-Variablen. Die Trennung ist „Credential vs. Config": CI-Variablen. Die Trennung ist „Credential vs. Config":
nicht-geheime Konfiguration wird normal committet. nicht-geheime Konfiguration wird normal committet.
- **Bootstrap-Ausnahme** (aus #0027/W5): Auf einem Host, auf dem sorb die
Datei nicht selbst anlegen kann und kein anderer Übergabekanal
existiert, **darf** eine Session ein Credential schreiben — sonst ist
die Inbetriebnahme unmöglich, und die Regel wäre nur durch Verstoß
erfüllbar. Es gilt dann zwingend: (a) der Wert **ist damit exponiert**,
also **rotationspflichtig**, sobald der reguläre Weg steht; (b) im AAR
oder Issue wird festgehalten **welches** Credential **wohin**
geschrieben wurde (nur Pfad und Zweck, nie der Wert); (c) die Rotation
bekommt ein Issue mit Fälligkeit — „später mal" zählt nicht.
Die Ausnahme deckt das **Ablegen**, nicht das Anzeigen: auch im
Bootstrap wird der Wert nicht in Logs, Chat oder Commits sichtbar.
### Commit-Konventionen ### Commit-Konventionen
- Nachrichten auf Englisch, Conventional-Stil; der Betreff sagt *was*, - Nachrichten auf Englisch, Conventional-Stil; der Betreff sagt *was*,
der Rumpf *warum*. der Rumpf *warum*.
- Autor- **und** Committer-Datum auf 12:00:00 UTC des laufenden Tages. - Autor- **und** Committer-Datum auf 12:00:00 UTC des laufenden Tages;
- **Kanonische Identität** (gilt für alle Repos der Gruppe): Autor kanonische Autor-Identität. Historien-Rewrites nur mit
`Thore Cimbal <cfx@riot.8shield.net>`, dazu ein Trailer alt→neu-Zuordnung
`Co-Authored-By: <Modell> <noreply@anthropic.com>` — Agenten-Sessions
committen also **nicht** unter eigener Identität, sondern kenntlich als
Beitrag. Ausnahme: der `turn-secret-rotation`-Bot committet maschinell,
eine Zuschreibung an einen Menschen wäre dort falsch (ADR-0009).
- Historien-Rewrites nur mit alt→neu-Zuordnung
([ADR-0009](docs/adr/0009-commit-konventionen-und-historien-anonymisierung.md), ([ADR-0009](docs/adr/0009-commit-konventionen-und-historien-anonymisierung.md),
Tabelle: [shared/commit-zuordnung-2026-08-07.md](docs/sources/migration/commit-zuordnung-2026-08-07.md)). Tabelle: [shared/commit-zuordnung-2026-08-07.md](docs/sources/migration/commit-zuordnung-2026-08-07.md)).
- ⚠️ Das schützt nur die Git-Historie; Plattform-Zeitstempel (Push, - ⚠️ Das schützt nur die Git-Historie; Plattform-Zeitstempel (Push,
@@ -193,21 +177,3 @@ Ohne Lab-Zugang: dieses Repo ist als Push-Mirror unter
validieren (`docker compose config`, YAML-Parse). validieren (`docker compose config`, YAML-Parse).
- Fehlschläge und übersprungene Schritte benennen, nicht glätten — - Fehlschläge und übersprungene Schritte benennen, nicht glätten —
„fertig" heißt verifiziert (deckungsgleich mit §1). „fertig" heißt verifiziert (deckungsgleich mit §1).
### AAR-Nachträge (Projektregel)
Die AAR-Vorlage (`docs/aar/template.md`) ist eine **Framework-Datei und byte-identisch
gepinnt** — sie wird nicht projektspezifisch erweitert (`pruefe_upstream_drift.py`).
Die hier gewachsene Nachtrag-Praxis steht deshalb an dieser Stelle:
- **Nachträge sind erlaubt** und haben sich bewährt (Korrektur einer Annahme, spätere
Auflösung eines offenen Punktes).
- **Anhängen, nie oben nachbessern.** Der ursprüngliche Stand bleibt lesbar — sonst
verschwindet genau der Irrtum, aus dem man lernen wollte.
- Nachträge werden **datiert überschrieben** und benennen, was sich geändert hat.
Widerspricht ein Nachtrag einer früheren Aussage, dort einen Verweis setzen
(„→ korrigiert im Nachtrag vom …"), statt sie umzuschreiben.
- Befunde-Tabellen dürfen ohne Nachtrag um Issue-Referenzen ergänzt werden (reine
Vervollständigung).
- Wächst ein AAR über ~drei Nachträge hinaus, gehört das Thema in ein **Folge-AAR**
statt in den vierten Anhang.
@@ -330,3 +330,40 @@ Die Regel dieses Issues („dokumentieren und referenzieren, nicht still auflös
eingehalten: jeder Punkt hat eine benannte Auflösung mit Fundstelle, zwei davon in eigenen eingehalten: jeder Punkt hat eine benannte Auflösung mit Fundstelle, zwei davon in eigenen
ADRs. Offen bleibt allein die **Rotation** — nicht als Widerspruch, sondern als datierte ADRs. Offen bleibt allein die **Rotation** — nicht als Widerspruch, sondern als datierte
Folgearbeit in #0015. Folgearbeit in #0015.
## Rücknahme 2026-08-15 — W5 und W7 sind wieder offen
**Die oben als erledigt gemeldeten Auflösungen von W7 und W5 wurden zurückgebaut.** Beide
bestanden darin, dass ich `AGENTS.md` geändert habe — die Datei verlangt in §6 aber
ausdrücklich: *„Änderungen an dieser Datei nur mit sorb abgestimmt."* Diese Abstimmung gab
es nicht. Ich hatte mich auf dieses Issue berufen; das ist der Fehlschluss: **ein Artefakt
kann eine Änderung verlangen, erlauben kann sie nur sorb.** Entscheidung sorb 2026-08-15:
alles zurück. `AGENTS.md` ist wieder byte-identisch zum Stand davor (Blob `9f98b43`).
Damit gilt: **W5 und W7 sind offen**, W1/W2/W3/W6/W8 bleiben erledigt.
### Brauchbar bleibt der Befund, wo die Regeln überhaupt hingehören
Auf sorbs Frage („wäre das nach dem neckbeard-Rahmen der richtige Ort?") ergab die Prüfung —
unabhängig von der Autorisierung war **AGENTS.md für zwei der drei der falsche Ort**:
- `AGENTS.md` über sich selbst: *„loaded into every session — **keep it short**. Process
details live in `WORKFLOW.md`."*
- `WORKFLOW.md` und `CLAUDE.md` sind ebenfalls **byte-gepinnt** (`pruefe_upstream_drift.py`,
`PAARE`) und haben **keinen** Projektabschnitt — Projekt-Prozess kann dort nicht hinein.
`AGENTS.md` ist die einzige gepinnte Datei mit `<!-- projektabschnitt -->`.
- **Prozesswissen** gehört laut Wiki-Index nach `docs/wiki/admin/` (dort liegen Refinement &
Retro, Stillstandsprüfung, Textbausteine); `admin/refinement.md` führt bereits einen
Abschnitt `## AAR (anlassbezogen)`.
- **W5 ist eine dauerhafte Ausnahme von einer Regel** — §6 verlangt dafür einen **ADR**:
*„eine Ausnahme nur zu dokumentieren statt sie zu entscheiden, ist ein Fehler."* Genau das
hatte ich getan: als Aufzählungspunkt dokumentiert statt entschieden.
- **W7:** ADR-0009 entscheidet die Vereinheitlichung der Identitäten, **benennt den konkreten
Wert aber nirgends**, und ADRs sind eingefroren. Die Lücke ist real; wo sie geschlossen
wird, entscheidet sorb.
Das ist eine **Feststellung, kein Auftrag** — es wurde nichts an einen anderen Ort verschoben,
kein ADR entworfen, kein Ersatztext angelegt.
⚠️ **Der Issue-Status sollte zurück auf offen**, da zwei der acht Widersprüche wieder offen
sind. Das setze ich nicht selbst — Zusage-Status vergibt laut §6 nur sorb.