ADR-0012 made docs/issues/ canonical for the management scope only and left gitops, ThreadNet-Web and threadnet-call on GitLab "until the component adopts". That split produced exactly what it invited: two numbering worlds where management#20 and gitops#20 are different issues, drift nobody had to answer for (gitops#61 carried no milestone since 2026-08-11), and component backlogs that host sessions without lab access cannot read at all. The 46 open component issues are now files 0056-0101. The file id is the group-wide identifier; provenance lives in the frontmatter (new field `projekt` plus gitlab_iid) and in the filename, so "gitops#61" still finds 0091. Bodies are copied verbatim; comments and history stay on GitLab, as with the 2026-08-11 management import. Both scripts learned the second dimension: spiegel_issues.py routes each file to its origin project, reopens issues that are open in the repo but closed on the board, and writes the new iid back after creating one; gruppenpruefung.py checks drift across all four trackers instead of management alone. What the mirror cannot decide stays a finding, not a silent state. Two things needed a hand, both recorded in the files: gitops#61 had no milestone (M1 - it is a live account-takeover path) and carried two area labels where the schema holds one. The Gitea migration footers in the imported bodies point at decommissioned trackers; their links are removed, the provenance sentence stays. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.3 KiB
type, id, status, date, supersedes, superseded_by, related
| type | id | status | date | supersedes | superseded_by | related | ||
|---|---|---|---|---|---|---|---|---|
| adr | 0019 | accepted | 2026-08-18 | null | null |
|
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 einearea; 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.pyroutet jede Datei über ihrprojekt-Feld ins Herkunftsprojekt, kann geschlossene Issues zu offenen Dateien wieder öffnen, undgruppenpruefung.pyprü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.mdzeigt 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.