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

71 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: adr
id: "0019"
status: accepted
date: 2026-08-18
supersedes: null
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 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.