2026-08-18 12:00:00 +00:00
|
|
|
|
---
|
|
|
|
|
|
type: adr
|
|
|
|
|
|
id: "0019"
|
|
|
|
|
|
status: accepted
|
|
|
|
|
|
date: 2026-08-18
|
2026-08-18 12:00:00 +00:00
|
|
|
|
supersedes: docs/adr/0002-issues-und-management-ins-lab.md
|
2026-08-18 12:00:00 +00:00
|
|
|
|
superseded_by: null
|
|
|
|
|
|
related:
|
|
|
|
|
|
- "docs/adr/0012-issues-im-repo-gitlab-als-spiegel.md"
|
|
|
|
|
|
- "docs/adr/0013-gruppenregeln-kanonisch-mit-pruefung.md"
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# ADR-0019: Komponenten-Issues in docs/issues/ adoptiert — eine Nummernwelt für die Gruppe
|
|
|
|
|
|
|
|
|
|
|
|
## Kontext
|
|
|
|
|
|
|
|
|
|
|
|
ADR-0012 machte `docs/issues/` kanonisch, **beschränkt auf den
|
|
|
|
|
|
Management-Scope**, und ließ die Komponenten-Tracker (gitops,
|
|
|
|
|
|
ThreadNet-Web, threadnet-call) ausdrücklich auf GitLab als Wahrheit —
|
|
|
|
|
|
„bis die jeweilige Komponente selbst adoptiert". Der Zustand seither:
|
|
|
|
|
|
zwei Issue-Welten mit getrennten Nummernkreisen (management#20 ≠
|
|
|
|
|
|
gitops#20), Drift zwischen Board und Repo an mehreren Stellen
|
|
|
|
|
|
(Beispiel: gitops#61 monatelang ohne Meilenstein, geschlossene
|
|
|
|
|
|
Board-Issues zu offenen Dateien), und Host-Sessions ohne Lab-Zugang
|
|
|
|
|
|
sehen die Komponenten-Backlogs gar nicht. sorb hat am 2026-08-18 die
|
|
|
|
|
|
Adoption angeordnet: ein Backlog, eindeutige Bezeichner, Drift beenden.
|
|
|
|
|
|
|
|
|
|
|
|
## Entscheidung
|
|
|
|
|
|
|
|
|
|
|
|
**Die offenen Issues der Komponenten-Tracker werden in `docs/issues/`
|
|
|
|
|
|
adoptiert; es gibt ab jetzt genau eine kanonische Nummernwelt.**
|
|
|
|
|
|
|
|
|
|
|
|
- Jedes adoptierte Issue bekommt die nächste freie Datei-Nummer
|
|
|
|
|
|
(0056 ff.); die Datei-ID ist der eindeutige Bezeichner der Gruppe.
|
|
|
|
|
|
Die Herkunft steht im Frontmatter (`projekt` + `gitlab_iid`) und im
|
|
|
|
|
|
Dateinamen (`0091-gitops-61-…`); ADR-0012s Gleichung „GitLab-iid =
|
|
|
|
|
|
Datei-id" gilt nur noch für den Management-Altbestand 0001–0032 —
|
|
|
|
|
|
über mehrere Projekte ist sie nicht kollisionsfrei zu halten.
|
|
|
|
|
|
- Übernommen werden Titel, Beschreibung (wortgleich), Status
|
|
|
|
|
|
(Board-Labels `status:*`), Meilenstein, Priorität, Fälligkeit und
|
|
|
|
|
|
eine `area`; Kommentare und Verlauf bleiben auf GitLab (wie beim
|
|
|
|
|
|
Management-Import). Geschlossene GitLab-Issues bleiben Historie und
|
|
|
|
|
|
werden nicht importiert.
|
|
|
|
|
|
- Die GitLab-Projekt-Tracker werden zur **bespiegelten Ansicht** wie
|
|
|
|
|
|
zuvor schon das management-Projekt: `spiegel_issues.py` routet
|
|
|
|
|
|
jede Datei über ihr `projekt`-Feld ins Herkunftsprojekt, kann
|
|
|
|
|
|
geschlossene Issues zu offenen Dateien wieder öffnen, und
|
|
|
|
|
|
`gruppenpruefung.py` prüft die Drift über alle adoptierten Projekte.
|
|
|
|
|
|
Board-, Meilenstein- und Label-Ansichten arbeiten unverändert weiter
|
|
|
|
|
|
— der Grund, aus dem ADR-0012 Option C gewählt hat, bleibt erhalten.
|
|
|
|
|
|
- Neue Issues entstehen ab jetzt **immer** als Datei; das `projekt`-Feld
|
|
|
|
|
|
bestimmt, in welchem Tracker der Spiegel sie anlegt (fehlt es:
|
|
|
|
|
|
management). Ein GitLab-seitig neu angelegtes Issue ohne Datei ist
|
|
|
|
|
|
ein Befund der Gruppenprüfung („zweites Backlog"), kein stiller
|
|
|
|
|
|
Zustand.
|
|
|
|
|
|
- Werkzeug: `verfahren/issue-adoption/adoptiere.py` (deterministisch,
|
|
|
|
|
|
idempotent, Dry-Run-Default) hat die 46 offenen Komponenten-Issues
|
|
|
|
|
|
als 0056–0101 übernommen.
|
|
|
|
|
|
|
|
|
|
|
|
## Konsequenzen
|
|
|
|
|
|
|
|
|
|
|
|
- Ein Backlog, ein Nummernkreis, eine Drift-Prüfung; `STATUS.md` zeigt
|
|
|
|
|
|
erstmals die ganze Gruppe. Host-Sessions lesen alle Backlogs über den
|
|
|
|
|
|
Gitea-Mirror dieses Repos.
|
|
|
|
|
|
- Die Schwelle „Komponente adoptiert selbst" aus ADR-0012 ist damit für
|
|
|
|
|
|
gitops, ThreadNet-Web und threadnet-call genommen; thread-net-git,
|
|
|
|
|
|
threadnet-operating und notfallhandbuch hatten keine offenen Issues
|
|
|
|
|
|
und adoptieren bei Bedarf durch Aufnahme in die `projekt`-Enum.
|
|
|
|
|
|
- Querbezüge in Prosa nennen künftig die Datei-ID; alte Bezeichner wie
|
|
|
|
|
|
„gitops#61" bleiben über Frontmatter und Dateinamen auffindbar.
|
2026-08-18 12:00:00 +00:00
|
|
|
|
|
|
|
|
|
|
## Verhältnis zu ADR-0002 (Ablösung, teilweise)
|
|
|
|
|
|
|
|
|
|
|
|
ADR-0002 entschied zweierlei: dass **alle Projekt-Issues auf git.lab leben**, und
|
|
|
|
|
|
dass das Backlogs-Repo als `axion1337.chat/management` ins Lab zieht, weil das Lab
|
|
|
|
|
|
die Quelle der Wahrheit ist. Nur der **erste** Satz fällt.
|
|
|
|
|
|
|
|
|
|
|
|
- **Abgelöst:** „Alle Projekt-Issues leben auf git.lab." Kanonisch ist seit
|
|
|
|
|
|
ADR-0012 `docs/issues/` im Repo, seit diesem ADR für alle Tracker der Gruppe;
|
|
|
|
|
|
GitLab ist der generierte Spiegel. ADR-0002 wird deshalb auf `superseded`
|
|
|
|
|
|
gesetzt — die Aussage stünde sonst als gültige Regel neben ihrem Gegenteil.
|
|
|
|
|
|
- **Gilt weiter:** git.lab bleibt kanonisch für **Code** (ADR-0001), und das
|
|
|
|
|
|
management-Repo bleibt dort, wohin ADR-0002 es gebracht hat. Der Umzug selbst
|
|
|
|
|
|
wird nicht rückgängig gemacht und nicht neu entschieden.
|
|
|
|
|
|
|
|
|
|
|
|
Die Statusmarkierung betrifft also die Issue-Frage, nicht die Repo-Topologie. Wer
|
|
|
|
|
|
ADR-0002 künftig liest, findet über den `superseded_by`-Zeiger hierher.
|