Two-way harvest as mandated by the Session-1 handoff: failure patterns of both approaches tabled with the mechanism that closes each, all seven neckbeard gaps dispositioned (plus two new ones found this session), and the old approach's proven value folded into the target architecture. Two directional decisions filed as proposed ADRs: issues live in-repo with GitLab as a deterministically mirrored view (0011), group rules canonical here with pointer components and a checkable components artifact (0012). Migration map, check architecture split offline/runtime, constraints, upstream feedback candidates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.1 KiB
type, id, status, date, supersedes, superseded_by, related
| type | id | status | date | supersedes | superseded_by | related | |||
|---|---|---|---|---|---|---|---|---|---|
| adr | 0011 | proposed | 2026-08-11 | null | null |
|
ADR-0011: Issues leben im Repo; GitLab wird deterministisch bespiegelt
Kontext
Die Gruppe führt 111 Issues auf git.lab, davon 71 offen; die Disziplin ist
belegt intakt (F-014: 71/71 mit genau einem Meilenstein, 71/71 mit
Priorität, WIP-Limit gehalten). Neckbeards ADR-0002 macht In-Repo-Issues
zum Default und vertagt die Spiegel-Option C. Der Feldtest zeigt beides:
Die Forge erzwingt sichtbar, was Prosa nicht hält (F-001, F-017 —
Dokumente widersprechen dem Board), und Host-Sessions ohne Lab-Zugang
können GitLab-Issues gar nicht lesen, wohl aber den Gitea-Mirror dieses
Repos. Der alte Grundsatz „Alles Offene ist ein Issue" (altes ADR-0005)
scheiterte nur dort, wo Arbeitspunkte in hosts/-Markdown lebten (F-004)
— am zweiten Backlog, nicht am Board.
Optionen
A: GitLab bleibt kanonisch, Repo hält nur einen Export. Tagesablauf unverändert, Board bleibt Arbeitsfläche. Aber: dauerhafte Ausnahme von neckbeards ADR-0002 (nach eigener Regel ADR-pflichtig), Issues bleiben für Host-Sessions unsichtbar und für Agenten nur per API erreichbar, und die Klasse „Prosa widerspricht Board" (F-001) bleibt strukturell offen — generierte Dokumente hingen an einem Netzzugriff.
B: Reine In-Repo-Issues, GitLab-Issues geschlossen. Sauberste neckbeard-Form. Aber: das Gruppenboard verliert den Management-Scope, Meilenstein-Ansichten werden unvollständig, das Refinement liest zwei Systeme — genau die belegte Disziplin (F-014) würde ihres Werkzeugs beraubt. Der Report warnt ausdrücklich: nicht per Board-Löschung migrieren.
C: Repo kanonisch, GitLab als generierter Spiegel. Die Issue-Wahrheit
liegt als docs/issues/NNNN-slug.md im Repo (grepbar, offline, über den
Gitea-Mirror überall lesbar); ein deterministisches Skript spiegelt
Titel, Status, Meilenstein, Priorität und Fälligkeit nach GitLab, damit
Board-, Meilenstein- und Label-Ansichten weiterarbeiten. Eine
Drift-Prüfung meldet Abweichungen zwischen Board und Repo rot.
Entscheidung
Option C, beschränkt auf den Management-Scope.
docs/issues/wird kanonisch für die Issues des management-Projekts. Die offenen management-Issues werden aus dem GitLab-Stand importiert und behalten ihre Nummern (GitLab-iid = Datei-id; keine dritte Nummernwelt). Alt-IDs wieCFGMON-01bleiben im Titel.- Das Schema trägt die belegten Pflichten:
milestone(Pflicht, M1–M5) undpriority(Pflicht, high/medium/low), dazudue(Datum statt „bald"), optionalhost/area. Der Status-Enum wird um die Board-Spalten erweitert (next,waitingmit benanntem Grund); das WIP-Limit (max. 2 in-progress) wird eine Validator-Regel. - Der Spiegel ist ein deterministisches Skript (Repo → GitLab),
Standard
--dry-run; echte Läufe stößt sorb an. Board-Handgriffe bleiben erlaubt, sind aber nicht kanonisch: Was nicht nachgezogen wird, meldet die Drift-Prüfung. Die Zusage-Spalten (next,in-progress) vergibt weiterhin nur sorb — Prozessregel, nicht Mechanik. - Komponenten-Tracker bleiben unangetastet (gitops 60 Issues usw.), bis die jeweilige Komponente selbst adoptiert; das wird als Folge-Issues angelegt. Bis dahin gilt für Komponenten-Issues GitLab als Wahrheit — ausgewiesen, nicht verschwiegen.
Konsequenzen
- Statusänderung = Commit;
git logersetzt die Issue-Chronik. STATUS.md und Roadmap-Zahlen werden generiert statt behauptet (F-001-Klasse geschlossen). - Host-Sessions lesen den vollständigen Management-Backlog erstmals von überall (Gitea-Mirror des Repos).
- GitLab-seitige Änderungen ohne Nachzug sind ab jetzt ein Befund, kein stiller Zustand — die Drift-Prüfung übernimmt die Alarmfunktion der roten Pipeline.
- Das geschlossene GitLab-Altbestand-Archiv (40 geschlossene Issues) wird nicht importiert; es bleibt als Historie auf git.lab, erreichbar über die bestehenden Verweise.