docs: rebase onto moved main, renumber session ADRs to 0012/0013
Reality moved after the Gate-3 approval (flagged by the human, verified read-only): main gained decisions/0011 plus a new AAR, gitops gained two commits, and the live backlog shows gitops#61 without a milestone - the first real break of the 100% milestone discipline. Session ADRs renumbered to avoid the id collision, counts updated (11 old ADRs, 6 AARs), gruppenpruefung gains the group-wide milestone/priority duty check backed by that real case. Addendum in the design doc records all of it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
0cce6f641c
commit
5e46372ea8
+2
-2
@@ -1,6 +1,6 @@
|
||||
---
|
||||
type: adr
|
||||
id: "0011"
|
||||
id: "0012"
|
||||
status: accepted
|
||||
date: 2026-08-11
|
||||
supersedes: null
|
||||
@@ -11,7 +11,7 @@ related:
|
||||
- "decisions/0005-pm-framework-kanban.md"
|
||||
---
|
||||
|
||||
# ADR-0011: Issues leben im Repo; GitLab wird deterministisch bespiegelt
|
||||
# ADR-0012: Issues leben im Repo; GitLab wird deterministisch bespiegelt
|
||||
|
||||
## Kontext
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
---
|
||||
type: adr
|
||||
id: "0012"
|
||||
id: "0013"
|
||||
status: accepted
|
||||
date: 2026-08-11
|
||||
supersedes: null
|
||||
@@ -10,7 +10,7 @@ related:
|
||||
- "decisions/0001-gitlab-kanonisch-push-mirror.md"
|
||||
---
|
||||
|
||||
# ADR-0012: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft
|
||||
# ADR-0013: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft
|
||||
|
||||
## Kontext
|
||||
|
||||
@@ -8,8 +8,8 @@ related:
|
||||
- "decisions/0005-pm-framework-kanban.md"
|
||||
- "decisions/0009-commit-konventionen-und-historien-anonymisierung.md"
|
||||
- "decisions/0010-haertung-eigener-meilenstein.md"
|
||||
- "docs/adr/0011-issues-im-repo-gitlab-als-spiegel.md"
|
||||
- "docs/adr/0012-gruppenregeln-kanonisch-mit-pruefung.md"
|
||||
- "docs/adr/0012-issues-im-repo-gitlab-als-spiegel.md"
|
||||
- "docs/adr/0013-gruppenregeln-kanonisch-mit-pruefung.md"
|
||||
---
|
||||
|
||||
# Design: Migration des Management-Systems auf neckbeard
|
||||
@@ -69,9 +69,10 @@ wurde.
|
||||
1. **Deterministische Gates grün:** `scripts/validate.py` meldet auf dem
|
||||
migrierten Repo 0 Fehler; `scripts/gen_status.py --check` meldet
|
||||
STATUS.md aktuell.
|
||||
2. **Entscheidungen portiert:** alle 10 Entscheidungen
|
||||
(`decisions/0001…0010`) liegen als ADRs mit schema-konformem
|
||||
Frontmatter unter `docs/adr/` — 10/10 validieren.
|
||||
2. **Entscheidungen portiert:** alle Entscheidungen aus `decisions/`
|
||||
liegen als ADRs mit schema-konformem Frontmatter unter `docs/adr/` —
|
||||
11/11 validieren *(bei Gate-1-Freigabe 10; `decisions/0011` kam am
|
||||
2026-08-11 hinzu, siehe Nachtrag in Gate 3)*.
|
||||
3. **Ein Backlog:** die fünf Arbeitspunkte aus F-004 (OVERMIND-01,
|
||||
CFGMON-11/12/13, MATRIX-05) existieren als Issues im kanonischen
|
||||
System — 5/5; 0 offene „Nächste Schritte" in `hosts/` ohne
|
||||
@@ -156,7 +157,7 @@ bleibt auch mit neckbeard ein Loch:
|
||||
| Muster | Wurzel im Alt-Ansatz | Neckbeard-Gegenstück | Verbleibendes Loch → Mechanismus dieser Migration |
|
||||
|---|---|---|---|
|
||||
| **A** — Doku nicht nachgezogen (F-001, F-005, F-007, F-010, F-017) | Zustand steht als behauptete Zahl/Prosa an mehreren Stellen; nichts vergleicht | Generiertes STATUS.md (`gen_status.py --check` in CI), ADRs nie editiert nur abgelöst | Prosa, die *Forge*-Zustand behauptet, prüft neckbeard nicht → Drift-Prüfung Repo↔GitLab; Meilenstein-Satz als Schema-Enum (eine Quelle); „Stand"-Etiketten entfallen ersatzlos (git log antwortet) |
|
||||
| **B** — Regel repo-weit, Anwendung Teilmenge (F-002, F-003, F-008, F-011) | Regel gilt „für alle Repos", kein Artefakt zählt die Repos auf, kein Skript läuft über alle | **Lücke** — ADR-0001 endet an der Repo-Grenze | Komponenten-Artefakt + Abgleich gegen die zur Laufzeit gelesene Gruppenliste ([ADR-0012](../adr/0012-gruppenregeln-kanonisch-mit-pruefung.md)); Git-Hygiene-Prüfung (12:00Z-Zeitstempel, kanonische Identität) über alle deklarierten Repos |
|
||||
| **B** — Regel repo-weit, Anwendung Teilmenge (F-002, F-003, F-008, F-011) | Regel gilt „für alle Repos", kein Artefakt zählt die Repos auf, kein Skript läuft über alle | **Lücke** — ADR-0001 endet an der Repo-Grenze | Komponenten-Artefakt + Abgleich gegen die zur Laufzeit gelesene Gruppenliste ([ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)); Git-Hygiene-Prüfung (12:00Z-Zeitstempel, kanonische Identität) über alle deklarierten Repos |
|
||||
| **C** — zwei Backlogs (F-004, F-009) | `hosts/`-Markdown hielt „Nächste Schritte" neben dem Board | In-Repo-Issues, ein Ort | Wiki-Seiten können wieder Aufgabenprosa ansammeln → Prüfregel: Aufgaben-Marker („Nächster Schritt", offene Checkboxen) in Wiki-Seiten ohne Issue-Verweis sind ein Befund |
|
||||
| **D** — Artefakte ohne Eigentümer überleben (F-006, F-012) | Branches/SHA-Zitate hat niemand je gelesen | `warn_if_orphan` nur für Wiki-Seiten | Branch-Hygiene (Alter/Divergenz verwaister Branches) und SHA-Auflösung inkl. Zuordnungstabelle in der Prüf-Familie; Refinement-Agenda erhält den Punkt |
|
||||
|
||||
@@ -164,9 +165,9 @@ Die sieben neckbeard-Lücken, Disposition (Akzeptanzkriterium 6, 7/7):
|
||||
|
||||
| # | Lücke | Disposition |
|
||||
|---|---|---|
|
||||
| 1 | Viele Repos, ein Regelwerk | **Eingefaltet:** [ADR-0012](../adr/0012-gruppenregeln-kanonisch-mit-pruefung.md) (Pointer + Prüfung) |
|
||||
| 2 | Kein Komponenten-Artefakt | **Eingefaltet:** Schema-Typ `component`, `docs/components/` (ADR-0012) |
|
||||
| 3 | Kein Meilenstein-Konzept | **Eingefaltet:** Pflichtfeld `milestone` im Issue-Schema ([ADR-0011](../adr/0011-issues-im-repo-gitlab-als-spiegel.md)) |
|
||||
| 1 | Viele Repos, ein Regelwerk | **Eingefaltet:** [ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md) (Pointer + Prüfung) |
|
||||
| 2 | Kein Komponenten-Artefakt | **Eingefaltet:** Schema-Typ `component`, `docs/components/` (ADR-0013) |
|
||||
| 3 | Kein Meilenstein-Konzept | **Eingefaltet:** Pflichtfeld `milestone` im Issue-Schema ([ADR-0012](../adr/0012-issues-im-repo-gitlab-als-spiegel.md)) |
|
||||
| 4 | SHA-Zitate unaufgelöst | **Eingefaltet (projektseitig):** Prüfskript nach Vorbild `inv_shas.py`; Upstream-Kandidat |
|
||||
| 5 | Git-Hygiene außerhalb des Blickfelds | **Eingefaltet (projektseitig):** Hygiene-Prüfung in der CI-Familie; Upstream-Kandidat |
|
||||
| 6 | Externe Link-Ziele ungeprüft | **Teilweise eingefaltet:** Sperrliste stillgelegter Ziele (toter Gitea-Tracker, F-005) als deterministische Prüfung; echte Erreichbarkeitsprüfung **verworfen** (netzabhängig, nichtdeterministisch — widerspricht validate-Philosophie) |
|
||||
@@ -178,11 +179,11 @@ Die sieben neckbeard-Lücken, Disposition (Akzeptanzkriterium 6, 7/7):
|
||||
|
||||
| Wert | Erhaltungsmechanismus |
|
||||
|---|---|
|
||||
| **F-014** Issue-Hygiene (Meilensteinpflicht, eine Priorität, ein Status, WIP-Limit, keine ID-Wiederverwendung) | Wird von Konvention zu Schema: `milestone`/`priority` Pflichtfelder, Status-Enum, WIP-Limit als Validator-Regel, Duplikat-ID-Prüfung existiert in `validate.py` bereits; Board bleibt via Spiegel erhalten (ADR-0011) |
|
||||
| **F-014** Issue-Hygiene (Meilensteinpflicht, eine Priorität, ein Status, WIP-Limit, keine ID-Wiederverwendung) | Wird von Konvention zu Schema: `milestone`/`priority` Pflichtfelder, Status-Enum, WIP-Limit als Validator-Regel, Duplikat-ID-Prüfung existiert in `validate.py` bereits; Board bleibt via Spiegel erhalten (ADR-0012) |
|
||||
| **F-013** Mirror-Topologie mit Begründung, Gegenargument, Rettungspfad | Alt-ADRs 0001/0004 werden unverändert portiert; die „Warum zwei Orte"-Prosa und der Rettungspfad ziehen als Wiki-Seiten um; Mirror-Sync bleibt Stillstandsprüfung |
|
||||
| **F-015** Rewrite-Zuordnung, 251/251 verifiziert | `shared/commit-zuordnung-2026-08-07.md` → `docs/sources/` (unveränderlich, agentenschreibgeschützt); SHA-Prüfung löst über die Tabelle auf; die Zuordnungs-Auflage für künftige Rewrites steht im portierten ADR-0009 |
|
||||
| **F-016** Redliche Selbstdokumentation | „Redlichkeit"-Regeln ziehen in den Projektabschnitt von AGENTS.md; AAR-/Retro-Kultur bleibt (AARs → `docs/aar/`, Retro-Protokolle → `docs/sources/`) |
|
||||
| Stillstandsprüfungs-Prinzipien | Bleiben wörtlich: Prüfungen nur aus realen Fällen; „kann nicht prüfen" ist Befund, nicht Skip; Abbruch statt stillem Überspringen; Projektliste zur Laufzeit. Die neuen Gruppen-Prüfungen (ADR-0012, Hygiene, Drift) treten dieser Familie bei |
|
||||
| Stillstandsprüfungs-Prinzipien | Bleiben wörtlich: Prüfungen nur aus realen Fällen; „kann nicht prüfen" ist Befund, nicht Skip; Abbruch statt stillem Überspringen; Projektliste zur Laufzeit. Die neuen Gruppen-Prüfungen (ADR-0013, Hygiene, Drift) treten dieser Familie bei |
|
||||
| Board-Pflege-Rechte (Zusage-Spalten nur sorb) | Prozessregel im AGENTS.md-Projektabschnitt; Refinement-Ablauf zieht als Wiki-Seite um und instanziiert die WORKFLOW-Agenda (Board rechts-nach-links, Nachziehen, Entscheidungsvorlagen mit Empfehlung, Datumspflicht) |
|
||||
| ADR-Pflicht bei dauerhaften Ausnahmen | Übernommen in den Projektabschnitt — neckbeard kennt diese Regel selbst nicht (Upstream-Kandidat) |
|
||||
|
||||
@@ -194,7 +195,7 @@ werkzeugwidersprechend — Nicht-Ziel „kein Umschreiben"):
|
||||
| Alt | Neu |
|
||||
|---|---|
|
||||
| `CLAUDE.md` | Ein-Zeilen-Pointer; Regeln → `AGENTS.md` (Upstream-Abschnitte wörtlich + Abschnitt „Gruppenregeln"); Karpathy-Block wortgleich → `docs/sources/regelwerk/karpathy-guidelines.md`, aus AGENTS.md zitiert *(freigegeben von sorb, 2026-08-11)* |
|
||||
| `decisions/0001…0010` | `docs/adr/0001…0010`, Frontmatter ergänzt, Text unverändert; `decisions/` entfällt, Verweise nachgezogen |
|
||||
| `decisions/0001…0011` | `docs/adr/0001…0011`, Frontmatter ergänzt, Text unverändert; `decisions/` entfällt, Verweise nachgezogen |
|
||||
| `roadmap.md` | Bleibt als Linien/Reihenfolge-Prosa; alle Zählungen und „Stand"-Blöcke raus (→ generiertes STATUS.md); M5 statt „offene Frage" (F-001) |
|
||||
| `verfahren/aar/*` (5) | `docs/aar/*`, Frontmatter (`open`/`harvested` nach Retro-Lage) |
|
||||
| `verfahren/retro/*` | `docs/sources/protokolle/*` (unveränderliche Protokolle) |
|
||||
@@ -242,10 +243,10 @@ flowchart LR
|
||||
Die zwei tragenden Richtungsentscheidungen stehen als ADRs (Status
|
||||
`proposed`, werden mit diesem Gate wirksam):
|
||||
|
||||
- **[ADR-0011](../adr/0011-issues-im-repo-gitlab-als-spiegel.md)** —
|
||||
- **[ADR-0012](../adr/0012-issues-im-repo-gitlab-als-spiegel.md)** —
|
||||
Issues im Repo kanonisch (Management-Scope), GitLab als
|
||||
deterministisch bespielter Spiegel; Optionen A/B/C abgewogen im ADR.
|
||||
- **[ADR-0012](../adr/0012-gruppenregeln-kanonisch-mit-pruefung.md)** —
|
||||
- **[ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)** —
|
||||
Gruppenregeln kanonisch hier, Komponenten tragen Pointer, ein
|
||||
Komponenten-Artefakt macht die Gruppe prüfbar; Kopie/Submodule
|
||||
verworfen im ADR.
|
||||
@@ -330,12 +331,13 @@ ausgewiesen), `STATUS.md` (generiert).
|
||||
**Wurzel — entfällt (git mv):** `decisions/`, `hosts/`, `verfahren/`,
|
||||
`vision/`, `shared/`.
|
||||
|
||||
**`docs/adr/`:** `0001…0010` portiert (Frontmatter ergänzt; Datum =
|
||||
**`docs/adr/`:** `0001…0011` portiert (Frontmatter ergänzt; Datum =
|
||||
Original-Datum; Body unverändert bis auf umgezogene Link-Ziele),
|
||||
`0011`/`0012` (accepted), `template.md` (v0.1.1).
|
||||
**`docs/aar/`:** die 5 AARs aus `verfahren/aar/` (Dateinamen bleiben,
|
||||
`0012`/`0013` (accepted), `template.md` (v0.1.1).
|
||||
**`docs/aar/`:** die 6 AARs aus `verfahren/aar/` (Dateinamen bleiben,
|
||||
Frontmatter: die vier vom 2026-08-01/02 `harvested` — von der Retro
|
||||
2026-08-09 geerntet; `2026-08-09-refinement-und-betrieb.md` `open`),
|
||||
2026-08-09 geerntet; `2026-08-09-refinement-und-betrieb.md` und
|
||||
`2026-08-11-apo-calls-profile-zeile.md` `open`),
|
||||
`template.md` (v0.1.1; ersetzt `aar-vorlage.md`).
|
||||
**`docs/issues/`:** Import aller offenen management-Issues als
|
||||
`NNNN-slug.md` (NNNN = GitLab-iid, vierstellig; Slug deterministisch
|
||||
@@ -414,7 +416,10 @@ gruppenpruefung.py # Lab-CI, Token aus Umgebung, A
|
||||
# Gruppenliste (Laufzeit) ↔ docs/components/;
|
||||
# Pointer-Präsenz je active/staged-Komponente;
|
||||
# Issue-Drift docs/issues ↔ GitLab (Titel/Status/
|
||||
# Meilenstein/Priorität); Git-Hygiene (Commits nach
|
||||
# Meilenstein/Priorität); Meilenstein- und
|
||||
# Prioritätspflicht über ALLE offenen Gruppen-Issues
|
||||
# (realer Fall: gitops#61, siehe Nachtrag);
|
||||
# Git-Hygiene (Commits nach
|
||||
# 2026-08-07 ≠ 12:00:00Z oder fremde Identität = Befund)
|
||||
spiegel_issues.py [--ausfuehren] # Default Dry-Run: druckt geplante API-Aufrufe;
|
||||
# --ausfuehren nur durch sorb; Repo → GitLab, nie zurück
|
||||
@@ -472,3 +477,31 @@ Abbruch statt Skip).
|
||||
6. **`gen_status.py`-Fork-Tiefe**: je mehr das Generat zeigt, desto
|
||||
weiter entfernt es sich vom Upstream; gewählt ist die kleinste
|
||||
Erweiterung, die die Roadmap-Zahlen ersetzt.
|
||||
|
||||
### Nachtrag 2026-08-11 — die Realität lief nach Gate-3-Freigabe weiter
|
||||
|
||||
Hinweis von sorb bei der Gate-3-Freigabe, per Fetch und Live-API
|
||||
(read-only) verifiziert:
|
||||
|
||||
- **management `main` +3 Commits:** AAR
|
||||
`2026-08-11-apo-calls-profile-zeile.md` (+ Nachtrag) und — kritisch —
|
||||
**`decisions/0011`** (Enrollment-Localpart-Kollision). Das alte Schema
|
||||
zählt parallel weiter; die Session-ADRs kollidierten mit der Nummer
|
||||
und wurden zu **0012/0013** umnummeriert (genau die Duplikat-ID-Klasse,
|
||||
die `validate.py` künftig mechanisch meldet). Branch auf
|
||||
`origin/main` rebasiert.
|
||||
- **gitops +2 Commits** (MAS-Fix, Runbook); beide und alle drei
|
||||
management-Commits halten die Hygiene-Regeln (12:00:00Z, kanonische
|
||||
Identität) — geprüft.
|
||||
- **Live-Backlog: 72 offen** (Import zählt beim Lauf, nicht aus diesem
|
||||
Text). **gitops#61 trägt keinen Meilenstein** und das neue Label
|
||||
`area:authentik` — die 100%-Meilenstein-Disziplin (F-014) ist binnen
|
||||
zwei Tagen real gerissen. Konsequenz: `gruppenpruefung.py` prüft die
|
||||
Meilenstein-/Prioritätspflicht über alle offenen Gruppen-Issues (der
|
||||
reale Fall, den die Stillstandsprüfungs-Regel für neue Prüfungen
|
||||
verlangt, existiert hiermit). Management-Scope: 26 offene Issues,
|
||||
iids 1–32.
|
||||
- Zahlen im Dokument nachgezogen: 11 Alt-ADRs, 6 AARs,
|
||||
Akzeptanzkriterium 2 = 11/11. Die Enums bleiben, wie in Annahme 2
|
||||
benannt, aus dem management-Scope abgeleitet; `area:authentik` liegt
|
||||
außerhalb (gitops) und wird erst bei dessen Adoption Schema-Thema.
|
||||
|
||||
Reference in New Issue
Block a user