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>
3.3 KiB
type, area, related
| type | area | related |
|---|---|---|
| wiki-page | admin |
Stillstandsprüfung
Sucht Dinge, die leise aufgehört haben zu funktionieren. Beschlossen in der Retro 2026-08-09.
Warum es sie gibt
In neun Augusttagen sind sechs Fehler aufgefallen, die alle dasselbe Merkmal hatten: Sie sahen erfolgreich aus, ohne es zu sein — eine grüne Pipeline, die nie ein Artefakt hochlud; ein veröffentlichtes npm-Paket ohne Inhalt; ein Blueprint, der bei jedem Lauf verworfen wurde, während Flux grün meldete.
Keiner davon wurde durch eine Überwachung gefunden. Vier durch Zufall beim Suchen nach etwas anderem. Genau diese Lücke schließt das Skript.
Was geprüft wird
Jede Prüfung bildet einen real passierten Fall ab. Nichts steht hier auf Vorrat.
| Prüfung | Der Fall dahinter |
|---|---|
| Repo ohne aktiven Push-Mirror | game-operating wurde angelegt und nie gespiegelt — auf Gitea existierte es nicht |
| Mirror-Drift | MIRROR-01 (management#28): fällt der Mirror aus, liefert Flux still den letzten Stand weiter |
| Pipeline mit null Jobs | ThreadNet-Web 203/204, threadnet-call 187 — rot, ohne dass etwas kaputt war |
| Erfolgreicher Job ohne Artefakt | build_embedded lief seit jeher grün und lud nichts hoch |
| npm-Paket zu klein | 0.19.2-threadnet.6: 12,5 KB statt 12,8 MB, ohne dist/ |
| Authentik-Blueprint ≠ successful | matrix-recovery-flow wurde tagelang bei jedem Lauf verworfen |
Die Projektliste wird zur Laufzeit aus der Gruppe gelesen, nicht im Code gepflegt — eine Liste im Quelltext wäre genau die Stelle, an der ein neues Repo jahrelang durchrutscht. (Beim ersten Lauf kamen so zwei Projekte zum Vorschein, die niemand auf dem Schirm hatte.)
Wie sie läuft
Geplanter CI-Job im management-Repo, zusätzlich von Hand über Run pipeline
auslösbar. Befunde färben die Pipeline rot — das ist bei uns die Alarmanlage,
nicht ein zusätzlicher Meldeweg (siehe gitops/CLAUDE.md zur TURN-Rotation).
Lokal:
export GITLAB_TOKEN=$(cat ~/.config/gitlab-lab/token)
export GITEA_TOKEN=$(cat ~/.config/gitea-rohana/push-token) # fuer private Spiegel
export LAB_CA=.../ci/lab-ca-chain.crt
python3 scripts/stillstandspruefung.py
Zwei Regeln für diese Prüfung
Ein „kann nicht geprüft werden" ist ein Befund, kein Übersprungen. Real
aufgefallen am 2026-08-09: game-operating wurde auf Gitea privat gestellt, und
die Prüfung übersprang den Mirror-Abgleich klaglos. Ein Repo, das gespiegelt wird,
dessen Gegenseite aber unlesbar ist, ist ungeprüft — und das darf nicht wie
„in Ordnung" aussehen.
Ein Befund wird zum Issue, nicht weggeklickt. Sonst wird die Prüfung zu dem, was sie sucht: etwas, das läuft, ohne dass jemand hinsieht.
⚠️ Fehlt ein Zugang, bricht sie ab — sie überspringt sich nicht still. Eine Prüfung, die sich bei fehlendem Token selbst deaktiviert, ist wertlos: Sie meldet dann jahrelang nichts, und niemand merkt den Unterschied zu „alles in Ordnung". Ausnahme sind die klar benannten optionalen Teile (Authentik), die ihr Fehlen im Ergebnis ausweisen.
Erweitern
Neue Prüfungen kommen dazu, wenn wieder etwas still ausgefallen ist — mit einem Docstring, der den konkreten Fall nennt. Prüfungen auf Verdacht erzeugen Rauschen und kosten die Glaubwürdigkeit, die diese hier braucht.