Files
management/docs/adr/0019-komponenten-issues-adoptiert.md
T
Thore CimbalandClaude Opus 5 a1def8666e feat(issues): adopt the component trackers — one backlog, one numbering (ADR-0019)
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>
2026-08-18 12:00:00 +00:00

3.3 KiB
Raw Blame History

type, id, status, date, supersedes, superseded_by, related
type id status date supersedes superseded_by related
adr 0019 accepted 2026-08-18 null null
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 00010032 — ü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 00560101 ü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.