27 Commits
Author SHA1 Message Date
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
Thore CimbalandClaude Fable 5 92b448fe30 feat: slice 3 - wiki, sources and AARs in their neckbeard homes
Gate 4, slice 3: verfahren/, hosts/, vision/ and shared/ moved via git
mv - six AARs to docs/aar/ (four harvested by the 2026-08-09 retro,
two open), procedures and host knowledge to docs/wiki/ (admin,
deployment, architecture, new area vision), the retro protocol and the
commit mapping table to docs/sources/ (protokolle/, migration/). New:
the wiki index linking every page, and the mirror-topology page
carrying the why-two-places reasoning verbatim from the old CLAUDE.md
(F-013 preserved). All moved-path references retargeted; the link
checker drove the sweep to zero.

pruefe_prosa.py added (pattern C+D): SHA citations resolve via repo,
mapping table, optional component clones or a curated exemption list
(documented dead Gitea-force-push commits, a vendor-repo tag, an
Authentik uid that is hex but no git SHA, the external neckbeard
reference); wiki task prose without an issue reference errors, with a
visible pragma for deliberate checklists; the dead-tracker denylist
now covers every mirrored repo's retired Gitea tracker (F-005) - two
links re-verified against live GitLab titles and retargeted, five
defused into honest historical citations.

Verified: validate 0/0, gen_status --check current, drift 0. Demo on
the pre-migration state fires 6 findings (3 orphaned SHAs, 3 task
blocks); on the current tree exactly the 3 F-004 task blocks remain -
they turn green in slice 4 when the issues exist, which is why
pruefe_prosa joins CI only then.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 12:00:00 +00:00
Thore CimbalandClaude Fable 5 70e81e2ff1 feat: slice 2 - all eleven decisions ported to docs/adr
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>
2026-08-11 12:00:00 +00:00
Thore Cimbal be92ab180d docs(aar): note the on_conflict fix needed a MAS restart to go live
The SOPS secret updated via Flux but MAS kept the old config in memory until a
rollout restart. Records committed != deployed != active for the security fix.
2026-08-11 12:00:00 +00:00
Thore Cimbal ff0cf0d8bd docs: AAR for the @apo call failure - missing Synapse profiles row
Root cause proven end to end: a pre-Authentik account that lost its profiles
row (deactivate clears it, reactivate does not recreate it) crashes the
displayname write path, so it never gets a display name and the Element Call
widget never initialises. Fixed with a cross-checked INSERT; open_id_tokens
went 0 -> 6 and the call joined. Records the ruled-out suspects, what led to
the solution, and the lessons - chief among them: compare old accounts against
freshly provisioned ones, and reproduce in a cleartext room before blaming
crypto. Also notes the account-takeover finding (gitops#61) surfaced along the
way.
2026-08-11 12:00:00 +00:00
Thore Cimbal 2f012a6cd2 docs: AAR for 2026-08-09 - MFA rollout, blueprint fix, history rewrite, betrieb work
Eleven findings, two false leads recorded as such (a wrong first diagnosis on #60, a false-clean secret scan caused by a wrong raw path), and the methods that actually surfaced each finding - most came from reading live state (database, ak apply_blueprint, the served config.json) rather than trusting green status.
2026-08-09 12:00:00 +00:00
Thore Cimbal d4004ee6f4 fix: treat an unverifiable mirror as a finding, and repair auth headers
game-operating was made private on Gitea, and the check quietly skipped the mirror comparison. A repo that IS mirrored but whose far side cannot be read is unverified, and unverified must not look like fine. It is now a finding that names the missing GITEA_TOKEN.

While testing that, a second bug surfaced: the header helper built 'Authorization: token: <value>' from a name that already contained the schema, producing a silently invalid header. The Authentik check had the same defect and would have failed the moment a token was added - it never ran, so nobody would have connected the two.

Refs axion1337.chat/management#28, #31
2026-08-09 12:00:00 +00:00
Thore Cimbal f6d843672b feat: add the staleness check decided in the retro
Looks for things that quietly stopped working. Every check mirrors a case that actually happened this month, named in its docstring: a repo that was never mirrored, mirror drift, pipelines with zero jobs, a successful job without artifacts, an npm package too small to contain a build, and Authentik blueprints stuck on error. Nothing is checked on suspicion.

The project list is read from the group at runtime rather than maintained in code - a hardcoded list is exactly where a new repo slips through for years. The first run proved the point by surfacing two projects nobody had in mind.

It aborts when a credential is missing instead of skipping quietly. A check that disables itself reports nothing for years and is indistinguishable from all clear.

Refs axion1337.chat/management#28
2026-08-09 12:00:00 +00:00
Thore Cimbal 0fde69a6f2 docs: first retro, and the ADR the history rewrite should have had
Retro 2026-08-09, the first one under the framework. Main finding: six silent failures in nine days - a green pipeline that uploaded nothing, a broken npm package, a blueprint rejected on every run, a working copy tracking the forbidden remote, empty pipelines going red for nothing, and a release build that nearly overwrote a published image. None was found by monitoring; four surfaced by accident while looking for something else.

ADR-0009 documents the commit conventions and the retroactive anonymisation of 251 commits. It is filed after the fact, which is exactly the mistake the ADR duty exists to prevent - stated in the ADR rather than smoothed over.

Also recorded: assigning status:next and reassigning milestones are forbidden to a session acting alone; both happened here in the refinement with sorb, so the rule stands unweakened.
2026-08-09 12:00:00 +00:00
Thore Cimbal d7db11166f docs: repoint commit references after the history rewrite
The anonymisation rewrite of 2026-08-07 gave every touched commit a new SHA, leaving the references in these documents pointing at objects that no longer exist. The mapping was reconstructed from the backup branches and each pair verified by tree and commit message before substituting.

Prefix lookups were built for lengths 7 to 12 and any ambiguous prefix would have been skipped; none were ambiguous across all 251 pairs.
2026-08-09 12:00:00 +00:00
Thore CimbalandClaude Fable 5 ae62727a50 Workshop #17, Punkte 4 und 5: Kadenz, Board-Regeln, ADR-0008, DoD
Vier Entscheidungen aus dem Struktur-Workshop.

Kadenz: Refinement sonntagabends, woechentlich. Sonntag, weil die GitLab-Backups
dort ohnehin laufen und die Woche an der Stelle eine Kante hat. Die Retro light
bekommt bewusst KEINEN eigenen Termin, sondern haengt am ersten Refinement des
Monats - ein monatlicher Extra-Termin im Solo-Betrieb ist ein Termin, der
ausfaellt.

Board-Pflege bei Abwesenheit: Eine Session darf abbilden, aber nicht zusagen.
Erlaubt sind status:wartet, Schliessen, Fristen nachtragen, Issues anlegen;
nicht erlaubt sind status:doing und status:next. Die Trennlinie ist nicht
Vorsicht, sondern Bedeutung - doing und next sagen, was als Naechstes wirklich
passiert, und das entscheidet sorb. Jede Aenderung wird im Issue begruendet.

ADR-0008 zu #14: Agenten-Sessions auf CFGMON laufen root-aequivalent ueber die
docker-Gruppe, und das bleibt so - ausdruecklich. Damit gilt 'sudo mit Passwort'
auf diesem Host nicht als Kontrollmechanismus. Option B haette das Auditproblem
geloest, indem sie den Arbeitsweg entfernt (sudo braucht ein TTY, das eine
Session nicht hat); Option C bleibt Ziel, lohnt aber erst bei einem zweiten
Menschen - ihr Nutzen ist Zuordnung, und im Ein-Personen-Betrieb gibt es
niemanden, gegen den sie schuetzen wuerde. Als ADR und nicht als Absatz in
hosts/cfgmon.md, weil eine Ausnahme nur zu dokumentieren statt sie zu
entscheiden genau der Fehler ist, den die ADR-Pflicht adressiert.

Die im Issue geforderte Vorklaerung - welche Konten sonst in der docker-Gruppe
sind, gilt dasselbe auf MATRIX - ist ausdruecklich als offen vermerkt statt
stillschweigend uebergangen.

Definition of Done: Baustein 4 der Textbausteine IST die kurze DoD fuer
Aenderungen ohne Deploy, statt eines eigenen Dokuments. Ein drittes Dokument
waere die dritte Fassung derselben Regeln und damit die dritte, die driftet.

62 relative Links geprueft, keiner tot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-06 12:00:00 +00:00
Thore CimbalandClaude Fable 5 889cd47be7 verfahren: Textbausteine fuer Sessions (Workshop #17, Punkt 6)
Die Konventionen stehen kanonisch in CLAUDE.md, aber eine Session liest sie nur,
wenn sie dazu aufgefordert wird. Diese fuenf Bloecke sind die Aufforderung:
Session-Start, Host-Session, Deploy-Uebergabe, Abschluss, Entscheidungsvorlage.

Zwei Gestaltungsentscheidungen, beide aus Fehlern dieser Woche:

Die Bausteine VERWEISEN auf die Regeln, statt sie zu wiederholen. Waeren sie
ausgeschrieben, gaebe es eine zweite Fassung, die driftet - genau das ist am
2026-08-02 passiert, als gitops/CLAUDE.md 'keine Gitea-Ausnahme mehr' behauptete,
waehrend management/CLAUDE.md zwei nannte.

Und hoechstens acht Zeilen je Block, maschinell geprueft. Der Test ist banal: Wer
zum Kopieren scrollen muss, benutzt es nicht. Der Host-Block musste dafuer zweimal
umgeschrieben werden; die Deploy-/AAR-Zeile ist rausgeflogen und steht jetzt als
Prosa daneben - Prosa muss niemand kopieren.

Die Inhalte sind nicht ausgedacht, sondern die Fehler der Woche: erfundene
Theme-Paletten statt gelesener Quelle, ein Sweep nach dem Pfad statt nach dem
Namen, ein zur Haelfte gelesenes Issue samt uebersehenem Korrekturkommentar, die
.netrc-gegen-PRIVATE-TOKEN-Falle und der Ping, der immer fehlschlaegt.

Pflegeregel dabei: ergaenzt wird ein Baustein, wenn derselbe Fehler ZWEIMAL
passiert ist - nicht vorsorglich. Sonst wachsen sie, bis sie niemand mehr kopiert.

Verlinkt aus CLAUDE.md und verfahren/README.md. 59 relative Links geprueft,
keiner tot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-06 12:00:00 +00:00
Thore CimbalandClaude Fable 5 3fe05e7bd1 LABNET-03: Uebergabe-Issues nach git.lab, Gitea-Ausnahme zurueckgebaut
Die letzte Ausnahme von ADR-0002 ist erledigt. Sie bestand, weil CFGMON git.lab
nicht erreichte; mit dem Site-to-Site-Tunnel (ADR-0004) ist der Grund weg.

Umgezogen mit dem Werkzeug der ersten Migration (verfahren/issue-migration/
migrate.py), damit derselbe Fusstext und dieselbe Idempotenz gelten:
- sorb/management#1 (offen)      -> management#25
- sorb/management#2 (geschlossen) -> management#26, mit allen 11 Kommentaren

Original-Autor und -Zeitstempel sind erhalten (der Admin-Token darf created_at
setzen); die Gitea-Issues sind geschlossen und verweisen auf ihr Gegenstueck.
Der Gitea-Tracker ist damit leer.

Issue-Vorlage konvertiert statt kopiert: Gitea nutzt YAML-Issue-Forms, GitLab
Markdown-Templates. Die Feld-Begruendungen - der eigentliche Wert der Vorlage,
weil jedes Feld fuer eine real schiefgegangene Uebergabe steht - sind als
Kommentare erhalten. .gitea/ ist entfernt, damit dort keine neuen Uebergaben
mehr angelegt werden koennen.

Nachgezogen: README, roadmap, CLAUDE.md, ADR-0002 (Ausnahme durchgestrichen +
als zurueckgebaut markiert), ADR-0004 (Ernte eingeloest), hosts/overmind.md,
hosts/cfgmon.md, verfahren/README.md, verfahren/deploy-uebergabe.md.
55 relative Links geprueft, keiner tot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 92dac0be23 branding: von vision/ nach shared/ verschoben + AAR-Nachtrag
vision/ ist laut README 'eine Vision je Linie' - drei Linien, drei Dateien, alle
als Entwurf fuers Refinement markiert. branding.md ist keine Vision, sondern
Bestand und Historie eines uebergreifenden Themas, also genau das, was shared/
beschreibt (neben lab-netzwerk.md und zone-axion1337.md).

Der Beleg fuer den Fehlgriff steckte im letzten Commit selbst: ich musste die
README-Beschreibung von vision/ um einen Zusatz erweitern, damit die Datei
hineinpasst. Eine Kategorie aufzubohren, damit ein Artefakt hineinpasst, heisst,
dass es in die falsche Kategorie sollte. Die Zeile ist zurueckgebaut.

Ausserdem praezisiert, warum das Dokument in genau diesem Repo liegt: management
ist gespiegelt, homelab/wiki-bookstack nicht - die dortige theme/sorbs-palette.md
ist von ausserhalb des Labs nicht lesbar (CLAUDE.md, Mirror-Geltungsbereich).
Beide Rollen stehen jetzt explizit da.

AAR 2026-08-02: Nachtrag zur Theme-Korrektur. Die Ergebniszeile behauptete '11
neue Themes, Web live' - die Paletten waren aber erfunden. Statt die Historie
umzuschreiben ein datierter Nachtrag mit Verweis in der Zeile. Er schaerft das
Muster aus Abschnitt 4: erfundene Vorlagen erzeugen kein Symptom, an dem man sie
bemerkt - deshalb ist bei Vorlagen die Quelle zu pruefen, nicht nur das Ergebnis.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 71975d5d41 AAR: BookStack laeuft, Rebrand auf allen vier Plattformen
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 c079ec2d7d AAR-Nachtrag: BookStack-Inbetriebnahme und Rebrand-Runden
Fuenf Ursachen bei BookStack, die einander maskierten; wichtigste neue Lehre:
ein unhealthy Container ist fuer Traefik unsichtbar und sieht dabei exakt aus wie
ein fehlendes Netz. Dazu die electron-builder-Feinheit name vs. productName und
das Muster hinter meinen teuersten Fehlern: ungeprueft geaenderte Dinge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 8aebe3b03d AAR fuer die Wiki-/Client-Nacht + Wiki-Adresse korrigiert
Das Verfahren verlangt einen AAR nach Deploys; er fehlte und ist damit die
Luecke, die die zweite Konventionspruefung aufgedeckt hat. Neun Befunde, sieben
Lehren - darunter 'zuerst in die Traefik-Logs', 'thumbnail vergroessert nicht'
und 'Testumgebung ist nicht Zielumgebung'.

Nebenbei: Verweise auf wiki.lab auf die real genutzte Adresse axionwiki.lab
korrigiert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 cd7b2d0b75 verfahren: Refinement/Retro-Termine ausgearbeitet, Struktur-Workshop vorbereitet (#17)
- verfahren/refinement.md: Ablauf und Timeboxes fuer Refinement (woechentlich),
  Retro light (monatlich), AAR-Anlass; Zusammenspiel der parallelen Sessions
- roadmap.md + README: Kadenz-Abschnitt verweist darauf, Workshop-Einstieg verlinkt

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 830c740a58 LABNET-02 abgeschlossen: ADR-0004 akzeptiert (Architektur v2), AAR Lab-Seite
- ADR-0004: Status akzeptiert; real gebaute Architektur v2 dokumentiert
  (UniFi bietet kein WG-Site-to-Site -> UDM-Server + CFGMON als Client mit
  'Networks Behind Client'), inkl. Messwerten aus dem Negativtest
- AAR Lab-Seite: 5 Befunde, Eingrenzungsmethodik, 5 Lehren (u.a. 'Server'-Auswahl
  erfasst nur das Tunnel-Subnetz; Portbedingung gehoert in beide Portfelder)
- README: Uebergabe-Issue-Ausnahme als auslaufend markiert
- shared/lab-netzwerk.md: beide WG-Zugaenge tabellarisch

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore Cimbal 97fe9e0fa8 verfahren: AAR LABNET-02 -- Nachtrag 3: Reboot-Beweis erbracht
Host-Neustart 2026-08-01 ~21:57 CEST. Tunnel, Bootfix (After=docker.service),
Firewall-Regeln und Split-DNS kamen ohne manuellen Eingriff hoch; Handshake
2 s nach Messbeginn. Bootfix und Persistenz damit im Ernstfall verifiziert.
2026-08-01 12:00:00 +00:00
Thore Cimbal fa5c7a8681 verfahren: AAR LABNET-02 -- Aufloesung: Server-Key der Uebergabe war falsch
Der Handshake stand am 2026-08-01 ~21:15. Ursache des tagelangen Schweigens
war der in management#2 (Kommentar 399) als bestaetigt uebergebene UDM-Server-
PublicKey, der zu keinem Server auf der UDM gehoert. Nachtrag 2 dokumentiert
Eingrenzungsweg (tcpdump beidseitig, wg show am Geraet), Endzustand und Lehren.
Der Portversatz Fritzbox/UDM war ein realer zweiter Fehler, allein aber nicht
hinreichend.
2026-08-01 12:00:00 +00:00
Thore Cimbal ea026a0057 verfahren: AAR LABNET-02 -- Annahme "enabled => reboot-fest" korrigiert
Der AAR und der Kommentar an management#2 legten nahe, der Tunnel komme nach
dem Reboot von allein wieder, weil wg-quick@lab "enabled" war. Der Neustart am
2026-08-01 hat das widerlegt: der Dienst war ab 19:36 failed, weil wg-quick vor
dockerd startet und die PostUp-Regel an der noch fehlenden Kette DOCKER-USER
scheiterte -- wg-quick raeumte das Interface daraufhin ab.

Nachtrag als Abschnitt 6 ergaenzt, Fundstellen in Abschnitt 1 und Pruefpunkt 5
verweisen darauf. Behebung (systemd-Drop-in After=docker.service plus
idempotentes "iptables -N DOCKER-USER" in lab.conf) ist dort dokumentiert und
auf CFGMON umgesetzt.
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Opus 5 3e226fba40 verfahren: AAR LABNET-02 CFGMON-Seite (management#2)
Schritte 1-3 ausgefuehrt, Tunnel gestartet und enabled. Kein Handshake --
der Public Key von CFGMON ist noch nicht als UniFi-Client hinterlegt.

Drei Befunde ueber den Auftrag hinaus:
- enp7s0 seit 18:11 DOWN, ausgeloest durch die Hetzner-Range-Umstellung
  (NIC neu angehaengt, hc-net-ifup wegen unmet condition uebersprungen).
  Zeitstempel belegen: 29 Minuten VOR dem Tunnelstart, kein Zusammenhang.
- ufw ist auf CFGMON inaktiv; das Briefing setzte eine erzwingende
  Forward-Policy voraus. Regeln liegen jetzt als iptables-ACCEPT in
  PostUp/PreDown der lab.conf statt in ufw.
- sudo ist aus einer Agenten-Session nicht bedienbar (kein TTY); die
  Schritte liefen ueber die docker-Gruppe, die root-aequivalent ist.
  Die sudo-Passwortabfrage ist damit keine wirksame Grenze -- Entscheidung
  darueber liegt bei sorb.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 0f3f155bc5 Umzug ins Lab: git.lab kanonisch, Gitea wird Push-Mirror; Migrations-Stand komplett
- README: Repo-Topologie-Abschnitt (git.lab = Quelle der Wahrheit, nie direkt
  zu Gitea pushen); Ausnahme Deploy-Uebergabe-Issues bleiben auf dem Gitea-Tracker
  (CFGMON erreicht git.lab nicht)
- issue-migration: alle 4 Repos migriert (62 Issues), gitops-Nummernverschiebung
  dokumentiert, Cutover-Stand

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 aecbea0c89 verfahren: Kanonisierungs-Pflichtschritt nach CFGMON-Deploys ergaenzt (2x gelebt am 01.08.)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 e4991c050f verfahren: Issue-Migrations-Skript Gitea->GitLab (gitops#48) + Testlauf-Stand
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Opus 5 3e81f40178 verfahren: Deploy-Uebergabe als Standardverfahren, AAR zu gitops#47
Nach dem Deploy der CVE-Pipeline (gitops#47) als Verfahren festgehalten. Der
Stand war korrekt und gelintet; der Blocker entstand erst aus der Datenmenge,
gegen die er lief -- eine Alarm-Instanz pro CVE, real 126 CRITICAL und 1222
HIGH. So etwas faellt in keinem Diff auf, nur beim Messen vor dem Deploy.

Neu:
- .gitea/ISSUE_TEMPLATE/deploy-uebergabe.yaml -- Uebergabe-Issue mit
  Pflichtfeldern Mengengeruest, vollstaendiges Deploy-Kommando, Verifikation
  im laufenden Dienst, Aussenwirkung samt Not-Aus, Rollback
- verfahren/deploy-uebergabe.md -- Ablauf und Pruefliste
- verfahren/aar-vorlage.md -- AAR-Vorlage
- verfahren/aar/2026-08-01-cve-pipeline-gitops47.md -- der ausloesende AAR

Abgrenzung im README ergaenzt: hosts/ und shared/ halten offene Punkte,
verfahren/ haelt, wie wir arbeiten. Die Uebergabe-Issues laufen bewusst hier
statt im Projekt-Repo, weil das Verfahren repo-uebergreifend gilt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 12:00:00 +00:00