Gate 4, slice 2: decisions/0001-0011 moved via git mv with schema frontmatter prepended (status and date taken from each body's own Status line - 0007 stays proposed, its decision is open in #20; bodies unchanged except relative links gaining one directory level). The old scheme's README and template retire - their rules already live in AGENTS.md section 6 and the neckbeard ADR template. Every reference to decisions/ across the tree retargeted (root files, not-yet-moved verfahren/hosts/shared files, design doc and session ADR frontmatter). Verified: validate 0 errors (11 ported + 2 session ADRs + duplicate-id guard), gen_status --check current with all 13 ADRs listed, drift check 0 findings, negative test shows a cloned id 0012 firing the duplicate check. 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 | 0012 | accepted | 2026-08-11 | null | null |
|
ADR-0012: 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.