docs: Gate 5 closeout - AAR, harvest, design doc done
The design doc closes with its AAR (planned/actual/why/learnings, the six acceptance criteria checked off 6/6, the session's shakiest calls named) and moves to docs/design/done/ with status done. Harvest: a stolpersteine wiki page distilled from the AAR (hex is not a git SHA, TZ on the git process, python floor, anonymous Gitea negatives, negative tests, directory links), and the neckbeard feedback list becomes issue 0040 - a deliberate separate act, per the design's non-goals. Operational follow-up is issues 0041 (refine imported wartegrund) and 0042 (go-live: push, first mirror run, CI schedule, milestone for gitops#61). Final chain green: validate 0/0 over 36 open issues, gen_status --check current, drift 0, prosa 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
865d761fb0
commit
c481165ab4
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
<!-- Generated by scripts/gen_status.py — do not edit. -->
|
<!-- Generated by scripts/gen_status.py — do not edit. -->
|
||||||
|
|
||||||
## Issues (33 open, 0 closed)
|
## Issues (36 open, 0 closed)
|
||||||
|
|
||||||
Verteilung: M1 9 · M2 22 · M4 2
|
Verteilung: M1 9 · M2 25 · M4 2
|
||||||
|
|
||||||
| Issue | Status | Meilenstein | Priorität | Title |
|
| Issue | Status | Meilenstein | Priorität | Title |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
@@ -41,12 +41,13 @@ Verteilung: M1 9 · M2 22 · M4 2
|
|||||||
| [0037](docs/issues/0037-rollout-agents-pointer-threadnet-call.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `threadnet-call` |
|
| [0037](docs/issues/0037-rollout-agents-pointer-threadnet-call.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `threadnet-call` |
|
||||||
| [0038](docs/issues/0038-rollout-agents-pointer-thread-net-git.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `thread-net-git` |
|
| [0038](docs/issues/0038-rollout-agents-pointer-thread-net-git.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `thread-net-git` |
|
||||||
| [0039](docs/issues/0039-rollout-agents-pointer-threadnet-operating.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `threadnet-operating` |
|
| [0039](docs/issues/0039-rollout-agents-pointer-threadnet-operating.md) | open | M2 | medium | Rollout Gruppenregeln-Pointer: `threadnet-operating` |
|
||||||
|
| [0040](docs/issues/0040-neckbeard-rueckmeldungen-einreichen.md) | open | M2 | low | neckbeard-Rückmeldungen aus dem Feldtest einreichen |
|
||||||
|
| [0041](docs/issues/0041-wartegrund-der-importierten-waiting-issues.md) | open | M2 | low | wartegrund der 7 importierten waiting-Issues präzisieren |
|
||||||
|
| [0042](docs/issues/0042-migration-in-betrieb-nehmen-push-spiegel-schedule.md) | open | M2 | high | Migration in Betrieb nehmen: Push, erster Spiegel-Lauf, CI-Schedule |
|
||||||
|
|
||||||
## Active design docs (1)
|
## Active design docs (0)
|
||||||
|
|
||||||
| Design | Gate | Title |
|
_none active_
|
||||||
|---|---|---|
|
|
||||||
| [2026-08-11-neckbeard-migration](docs/design/2026-08-11-neckbeard-migration.md) | gate-4 | Design: Migration des Management-Systems auf neckbeard |
|
|
||||||
|
|
||||||
## ADRs (13)
|
## ADRs (13)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ date: 2026-08-11
|
|||||||
supersedes: null
|
supersedes: null
|
||||||
superseded_by: null
|
superseded_by: null
|
||||||
related:
|
related:
|
||||||
- "docs/design/2026-08-11-neckbeard-migration.md"
|
- "docs/design/done/2026-08-11-neckbeard-migration.md"
|
||||||
- "docs/adr/0002-issues-und-management-ins-lab.md"
|
- "docs/adr/0002-issues-und-management-ins-lab.md"
|
||||||
- "docs/adr/0005-pm-framework-kanban.md"
|
- "docs/adr/0005-pm-framework-kanban.md"
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ date: 2026-08-11
|
|||||||
supersedes: null
|
supersedes: null
|
||||||
superseded_by: null
|
superseded_by: null
|
||||||
related:
|
related:
|
||||||
- "docs/design/2026-08-11-neckbeard-migration.md"
|
- "docs/design/done/2026-08-11-neckbeard-migration.md"
|
||||||
- "docs/adr/0001-gitlab-kanonisch-push-mirror.md"
|
- "docs/adr/0001-gitlab-kanonisch-push-mirror.md"
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+106
-8
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
type: design
|
type: design
|
||||||
status: gate-4
|
status: done
|
||||||
date: 2026-08-11
|
date: 2026-08-11
|
||||||
size: L
|
size: L
|
||||||
related:
|
related:
|
||||||
@@ -137,8 +137,8 @@ bleibt GitLab/Obsidian/Editor. Mockups entfallen.
|
|||||||
|
|
||||||
Alt-Ansatz: `CLAUDE.md`, `roadmap.md`, `decisions/README.md` und die
|
Alt-Ansatz: `CLAUDE.md`, `roadmap.md`, `decisions/README.md` und die
|
||||||
tragenden Entscheidungen 0001, 0002, 0005, 0009, 0010,
|
tragenden Entscheidungen 0001, 0002, 0005, 0009, 0010,
|
||||||
[verfahren/refinement.md](../wiki/admin/refinement.md),
|
[verfahren/refinement.md](../../wiki/admin/refinement.md),
|
||||||
[verfahren/stillstandspruefung.md](../wiki/admin/stillstandspruefung.md),
|
[verfahren/stillstandspruefung.md](../../wiki/admin/stillstandspruefung.md),
|
||||||
`.gitlab-ci.yml`, Auszüge aus `hosts/`. Neckbeard v0.1.1: AGENTS.md,
|
`.gitlab-ci.yml`, Auszüge aus `hosts/`. Neckbeard v0.1.1: AGENTS.md,
|
||||||
WORKFLOW.md, ADR-0001…0004/0006, `schema.yaml`, `validate.py`,
|
WORKFLOW.md, ADR-0001…0004/0006, `schema.yaml`, `validate.py`,
|
||||||
`gen_status.py`, Schöpfungs-AAR, `docs/wiki/index.md`. Session-1-Daten
|
`gen_status.py`, Schöpfungs-AAR, `docs/wiki/index.md`. Session-1-Daten
|
||||||
@@ -157,7 +157,7 @@ bleibt auch mit neckbeard ein Loch:
|
|||||||
| Muster | Wurzel im Alt-Ansatz | Neckbeard-Gegenstück | Verbleibendes Loch → Mechanismus dieser Migration |
|
| Muster | Wurzel im Alt-Ansatz | Neckbeard-Gegenstück | Verbleibendes Loch → Mechanismus dieser Migration |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| **A** — Doku nicht nachgezogen (F-001, F-005, F-007, F-010, F-017) | Zustand steht als behauptete Zahl/Prosa an mehreren Stellen; nichts vergleicht | Generiertes STATUS.md (`gen_status.py --check` in CI), ADRs nie editiert nur abgelöst | Prosa, die *Forge*-Zustand behauptet, prüft neckbeard nicht → Drift-Prüfung Repo↔GitLab; Meilenstein-Satz als Schema-Enum (eine Quelle); „Stand"-Etiketten entfallen ersatzlos (git log antwortet) |
|
| **A** — Doku nicht nachgezogen (F-001, F-005, F-007, F-010, F-017) | Zustand steht als behauptete Zahl/Prosa an mehreren Stellen; nichts vergleicht | Generiertes STATUS.md (`gen_status.py --check` in CI), ADRs nie editiert nur abgelöst | Prosa, die *Forge*-Zustand behauptet, prüft neckbeard nicht → Drift-Prüfung Repo↔GitLab; Meilenstein-Satz als Schema-Enum (eine Quelle); „Stand"-Etiketten entfallen ersatzlos (git log antwortet) |
|
||||||
| **B** — Regel repo-weit, Anwendung Teilmenge (F-002, F-003, F-008, F-011) | Regel gilt „für alle Repos", kein Artefakt zählt die Repos auf, kein Skript läuft über alle | **Lücke** — ADR-0001 endet an der Repo-Grenze | Komponenten-Artefakt + Abgleich gegen die zur Laufzeit gelesene Gruppenliste ([ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)); Git-Hygiene-Prüfung (12:00Z-Zeitstempel, kanonische Identität) über alle deklarierten Repos |
|
| **B** — Regel repo-weit, Anwendung Teilmenge (F-002, F-003, F-008, F-011) | Regel gilt „für alle Repos", kein Artefakt zählt die Repos auf, kein Skript läuft über alle | **Lücke** — ADR-0001 endet an der Repo-Grenze | Komponenten-Artefakt + Abgleich gegen die zur Laufzeit gelesene Gruppenliste ([ADR-0013](../../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)); Git-Hygiene-Prüfung (12:00Z-Zeitstempel, kanonische Identität) über alle deklarierten Repos |
|
||||||
| **C** — zwei Backlogs (F-004, F-009) | `hosts/`-Markdown hielt „Nächste Schritte" neben dem Board | In-Repo-Issues, ein Ort | Wiki-Seiten können wieder Aufgabenprosa ansammeln → Prüfregel: Aufgaben-Marker („Nächster Schritt", offene Checkboxen) in Wiki-Seiten ohne Issue-Verweis sind ein Befund |
|
| **C** — zwei Backlogs (F-004, F-009) | `hosts/`-Markdown hielt „Nächste Schritte" neben dem Board | In-Repo-Issues, ein Ort | Wiki-Seiten können wieder Aufgabenprosa ansammeln → Prüfregel: Aufgaben-Marker („Nächster Schritt", offene Checkboxen) in Wiki-Seiten ohne Issue-Verweis sind ein Befund |
|
||||||
| **D** — Artefakte ohne Eigentümer überleben (F-006, F-012) | Branches/SHA-Zitate hat niemand je gelesen | `warn_if_orphan` nur für Wiki-Seiten | Branch-Hygiene (Alter/Divergenz verwaister Branches) und SHA-Auflösung inkl. Zuordnungstabelle in der Prüf-Familie; Refinement-Agenda erhält den Punkt |
|
| **D** — Artefakte ohne Eigentümer überleben (F-006, F-012) | Branches/SHA-Zitate hat niemand je gelesen | `warn_if_orphan` nur für Wiki-Seiten | Branch-Hygiene (Alter/Divergenz verwaister Branches) und SHA-Auflösung inkl. Zuordnungstabelle in der Prüf-Familie; Refinement-Agenda erhält den Punkt |
|
||||||
|
|
||||||
@@ -165,9 +165,9 @@ Die sieben neckbeard-Lücken, Disposition (Akzeptanzkriterium 6, 7/7):
|
|||||||
|
|
||||||
| # | Lücke | Disposition |
|
| # | Lücke | Disposition |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 1 | Viele Repos, ein Regelwerk | **Eingefaltet:** [ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md) (Pointer + Prüfung) |
|
| 1 | Viele Repos, ein Regelwerk | **Eingefaltet:** [ADR-0013](../../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md) (Pointer + Prüfung) |
|
||||||
| 2 | Kein Komponenten-Artefakt | **Eingefaltet:** Schema-Typ `component`, `docs/components/` (ADR-0013) |
|
| 2 | Kein Komponenten-Artefakt | **Eingefaltet:** Schema-Typ `component`, `docs/components/` (ADR-0013) |
|
||||||
| 3 | Kein Meilenstein-Konzept | **Eingefaltet:** Pflichtfeld `milestone` im Issue-Schema ([ADR-0012](../adr/0012-issues-im-repo-gitlab-als-spiegel.md)) |
|
| 3 | Kein Meilenstein-Konzept | **Eingefaltet:** Pflichtfeld `milestone` im Issue-Schema ([ADR-0012](../../adr/0012-issues-im-repo-gitlab-als-spiegel.md)) |
|
||||||
| 4 | SHA-Zitate unaufgelöst | **Eingefaltet (projektseitig):** Prüfskript nach Vorbild `inv_shas.py`; Upstream-Kandidat |
|
| 4 | SHA-Zitate unaufgelöst | **Eingefaltet (projektseitig):** Prüfskript nach Vorbild `inv_shas.py`; Upstream-Kandidat |
|
||||||
| 5 | Git-Hygiene außerhalb des Blickfelds | **Eingefaltet (projektseitig):** Hygiene-Prüfung in der CI-Familie; Upstream-Kandidat |
|
| 5 | Git-Hygiene außerhalb des Blickfelds | **Eingefaltet (projektseitig):** Hygiene-Prüfung in der CI-Familie; Upstream-Kandidat |
|
||||||
| 6 | Externe Link-Ziele ungeprüft | **Teilweise eingefaltet:** Sperrliste stillgelegter Ziele (toter Gitea-Tracker, F-005) als deterministische Prüfung; echte Erreichbarkeitsprüfung **verworfen** (netzabhängig, nichtdeterministisch — widerspricht validate-Philosophie) |
|
| 6 | Externe Link-Ziele ungeprüft | **Teilweise eingefaltet:** Sperrliste stillgelegter Ziele (toter Gitea-Tracker, F-005) als deterministische Prüfung; echte Erreichbarkeitsprüfung **verworfen** (netzabhängig, nichtdeterministisch — widerspricht validate-Philosophie) |
|
||||||
@@ -243,10 +243,10 @@ flowchart LR
|
|||||||
Die zwei tragenden Richtungsentscheidungen stehen als ADRs (Status
|
Die zwei tragenden Richtungsentscheidungen stehen als ADRs (Status
|
||||||
`proposed`, werden mit diesem Gate wirksam):
|
`proposed`, werden mit diesem Gate wirksam):
|
||||||
|
|
||||||
- **[ADR-0012](../adr/0012-issues-im-repo-gitlab-als-spiegel.md)** —
|
- **[ADR-0012](../../adr/0012-issues-im-repo-gitlab-als-spiegel.md)** —
|
||||||
Issues im Repo kanonisch (Management-Scope), GitLab als
|
Issues im Repo kanonisch (Management-Scope), GitLab als
|
||||||
deterministisch bespielter Spiegel; Optionen A/B/C abgewogen im ADR.
|
deterministisch bespielter Spiegel; Optionen A/B/C abgewogen im ADR.
|
||||||
- **[ADR-0013](../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)** —
|
- **[ADR-0013](../../adr/0013-gruppenregeln-kanonisch-mit-pruefung.md)** —
|
||||||
Gruppenregeln kanonisch hier, Komponenten tragen Pointer, ein
|
Gruppenregeln kanonisch hier, Komponenten tragen Pointer, ein
|
||||||
Komponenten-Artefakt macht die Gruppe prüfbar; Kopie/Submodule
|
Komponenten-Artefakt macht die Gruppe prüfbar; Kopie/Submodule
|
||||||
verworfen im ADR.
|
verworfen im ADR.
|
||||||
@@ -542,3 +542,101 @@ Komponenten-Deklarationen, `gruppenpruefung.py` (+ CI-Job),
|
|||||||
Export ↔ Alt-CLAUDE) und B (Hygiene über lokale Klone), Live-Befund
|
Export ↔ Alt-CLAUDE) und B (Hygiene über lokale Klone), Live-Befund
|
||||||
gitops#61.
|
gitops#61.
|
||||||
*Verify:* Dry-Run-Ausgabe plausibel, Demos feuern, kein API-Write.
|
*Verify:* Dry-Run-Ausgabe plausibel, Demos feuern, kein API-Write.
|
||||||
|
|
||||||
|
Alle fünf Slices sind mit Nachweis und STOP abgenommen worden
|
||||||
|
(Freigaben sorb, 2026-08-11); die Commits `e36ed33`…`865d761` tragen
|
||||||
|
die Evidenz je Slice im Commit-Text.
|
||||||
|
|
||||||
|
## Gate 5 — Closeout (AAR)
|
||||||
|
|
||||||
|
### Geplant
|
||||||
|
|
||||||
|
Gate 0–5 nach WORKFLOW.md; Zwei-Wege-Ernte vor Übernahme (bindende
|
||||||
|
Vorgabe der Session-1-Übergabe); fünf Slices; sechs Akzeptanzkriterien.
|
||||||
|
|
||||||
|
### Tatsächlich
|
||||||
|
|
||||||
|
Alle Gates und Slices wie geplant, mit vier realitätsgetriebenen
|
||||||
|
Abweichungen:
|
||||||
|
|
||||||
|
1. **Die Realität lief während der Undertaking weiter** (Hinweis sorb
|
||||||
|
bei Gate-3-Freigabe): `main` +3 Commits mit `decisions/0011` →
|
||||||
|
Nummernkollision mit den Session-ADRs, Umnummerierung auf 0012/0013,
|
||||||
|
Rebase; gitops#61 entstand **ohne Meilenstein** und riss die
|
||||||
|
100%-Disziplin aus F-014 binnen zwei Tagen — es wurde der reale Fall
|
||||||
|
für die neue gruppenweite Pflicht-Prüfung.
|
||||||
|
2. **F-004 war feiner als der Befund:** MATRIX-05 seit 2026-08-01
|
||||||
|
erledigt (kein Issue nötig — „Alles *Offene* ist ein Issue"),
|
||||||
|
CFGMON-12/13 bereits per git.lab-Issues verfolgt (nur die toten
|
||||||
|
Gitea-Links verdeckten das). Statt 5/5 neuen Issues: 2 neue (0033,
|
||||||
|
0034), 2 verifizierte Verweise, 1 begründeter Verzicht — mit sorb
|
||||||
|
abgestimmt; Details im
|
||||||
|
[Import-Protokoll](../../sources/migration/issue-import-protokoll.md).
|
||||||
|
3. **F-005 war größer als der Befund:** nicht ein toter Tracker-Link,
|
||||||
|
sondern acht, quer durch Host-Seiten und einen importierten
|
||||||
|
Issue-Fußtext; zwei per Live-Titelabgleich verifiziert umgezogen,
|
||||||
|
sechs zu ehrlichen Historien-Zitaten entschärft.
|
||||||
|
4. **Hex ist nicht gleich Git-SHA:** die SHA-Prüfung fand eine
|
||||||
|
Authentik-uid und zwei Alertmanager-Silence-IDs — gelöst über die
|
||||||
|
kuratierte Ausnahmenliste mit Grund je Zeile statt über eine
|
||||||
|
schlauere Heuristik.
|
||||||
|
|
||||||
|
Akzeptanzkriterien: **6/6 erfüllt** — (1) alle deterministischen Gates
|
||||||
|
grün; (2) 11/11 ADRs portiert; (3) 0 issuelose Arbeitspunkte im Wiki,
|
||||||
|
F-004-Disposition dokumentiert; (4) 0 Handzählungen, kein Dokument
|
||||||
|
widerspricht dem Werkzeugstand M1–M5; (5) 4/4 Muster-Demos gefeuert
|
||||||
|
(A: „M1–M4"↔M5-Export; B: 222 Echtzeit-Commits, deckungsgleich mit den
|
||||||
|
Session-1-Zahlen; C: 6→0 Aufgabenblöcke; D: verwaiste SHAs aufgelöst
|
||||||
|
oder kuratiert); (6) 9/9 Lücken-Dispositionen und 4/4
|
||||||
|
Erhaltungsmechanismen in Gate 2, final abgehakt.
|
||||||
|
|
||||||
|
### Warum die Differenz
|
||||||
|
|
||||||
|
Die Undertaking hat einen lebenden Verbund migriert, keinen
|
||||||
|
eingefrorenen: Jede Abweichung entstand daraus, dass zwischen Analyse
|
||||||
|
(2026-08-09/10) und Bau (2026-08-11) weitergearbeitet wurde. Genau die
|
||||||
|
Driftklassen, die die Migration schließen soll, traten währenddessen
|
||||||
|
frisch auf — und wurden zu Testfällen statt zu Störungen.
|
||||||
|
|
||||||
|
### Lehren (geerntet nach [Stolpersteine](../../wiki/stolpersteine/neckbeard-migration.md))
|
||||||
|
|
||||||
|
- Ein hexförmiges Wort ist nicht automatisch ein Git-SHA; kuratierte
|
||||||
|
Ausnahmen mit Grund schlagen schlauere Raterei.
|
||||||
|
- Der Link-Checker ist das beste Umzugswerkzeug: erst bewegen, dann die
|
||||||
|
gemeldeten Ziele reihum fixen — kein Verweis blieb offen.
|
||||||
|
- Frische Importe sind Prüfmaterial: beide Prosa-Prüfungen fanden auf
|
||||||
|
den eben importierten Texten sofort echte Fälle.
|
||||||
|
- Bestätigt aus dem Upstream-Schöpfungs-AAR: ein grüner Validator zählt
|
||||||
|
erst mit Negativtests (vier gebaut, alle feuern).
|
||||||
|
- `gen_status.py` braucht lokal Python ≥ 3.10 (`write_text(newline=)`);
|
||||||
|
CI nutzt 3.12, lokal läuft ein venv.
|
||||||
|
- Session-1-Lehre erneut bestätigt: `TZ` gehört an den git-Prozess
|
||||||
|
(`--date=format-local` + `TZ=UTC` in `gruppenpruefung.py`).
|
||||||
|
|
||||||
|
### Wackligste Entscheidungen dieser Session (WORKFLOW.md, Session-Ende)
|
||||||
|
|
||||||
|
1. **AAR-Erntestatus der vier alten AARs** aus der Retro-Existenz
|
||||||
|
geschlossen, nicht aus einer Erntemarke — beim nächsten Refinement
|
||||||
|
gegenprüfen.
|
||||||
|
2. **Die §6-Verdichtung der Alt-CLAUDE.md**: von sorb quergelesen und
|
||||||
|
freigegeben, aber ob jede tragende Nuance den Sprung geschafft hat,
|
||||||
|
zeigt erst der Betrieb.
|
||||||
|
3. **Generische `wartegrund`-Platzhalter** bei 7 importierten
|
||||||
|
waiting-Issues — Issue 0041.
|
||||||
|
4. **Die fünf eigenen Identitäten stehen als Konstante im
|
||||||
|
Hygiene-Skript** — bei einer künftigen Identitäts-Remediation
|
||||||
|
(F-003) muss die Liste mitgepflegt werden.
|
||||||
|
5. **Spiegelumfang bewusst schmal** (keine Beschreibungen): richtig für
|
||||||
|
Kommentar-Erhalt, heißt aber, dass Beschreibungs-Änderungen im Repo
|
||||||
|
auf GitLab nicht sichtbar werden — Board-Nutzer sehen den Stand der
|
||||||
|
Migration, nicht jede Textpflege.
|
||||||
|
|
||||||
|
### Offene Folgearbeit (als Issues, nicht als Prosa)
|
||||||
|
|
||||||
|
[0035–0039](../../issues/0035-rollout-agents-pointer-axion1337-chat-gitops.md) Pointer-Rollout je Komponente (fünf Issues) ·
|
||||||
|
[0040](../../issues/0040-neckbeard-rueckmeldungen-einreichen.md)
|
||||||
|
neckbeard-Rückmeldungen einreichen ·
|
||||||
|
[0041](../../issues/0041-wartegrund-der-importierten-waiting-issues.md)
|
||||||
|
wartegrund präzisieren ·
|
||||||
|
[0042](../../issues/0042-migration-in-betrieb-nehmen-push-spiegel-schedule.md)
|
||||||
|
Inbetriebnahme (Push, erster Spiegel-Lauf, CI-Schedule).
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
type: issue
|
||||||
|
id: "0040"
|
||||||
|
status: open
|
||||||
|
created: 2026-08-11
|
||||||
|
milestone: M2
|
||||||
|
priority: low
|
||||||
|
related:
|
||||||
|
- "docs/design/done/2026-08-11-neckbeard-migration.md"
|
||||||
|
---
|
||||||
|
|
||||||
|
# neckbeard-Rückmeldungen aus dem Feldtest einreichen
|
||||||
|
|
||||||
|
> Eigener Akt, bewusst nicht Teil der Migration (Nicht-Ziel im Design).
|
||||||
|
> `gitlab_iid` folgt mit dem ersten Spiegel-Lauf.
|
||||||
|
|
||||||
|
Als Issues im neckbeard-Repo (`oss-projekte/ai/neckbeard`) einreichen,
|
||||||
|
mit Feldtest-Evidenz aus Gate 2 des Design-Dokuments:
|
||||||
|
|
||||||
|
1. Viele Repos, ein Regelwerk (Lücke 1; hiesige Lösung: ADR-0013)
|
||||||
|
2. Komponenten-Artefakt (Lücke 2)
|
||||||
|
3. Meilenstein-Konzept (Lücke 3)
|
||||||
|
4. SHA-Auflösung in validate (Lücke 4; Referenz: `pruefe_prosa.py`)
|
||||||
|
5. Git-Hygiene-Prüffamilie (Lücke 5; Referenz: `gruppenpruefung.py`)
|
||||||
|
6. Sperrlisten für stillgelegte externe Ziele (Lücke 6, Teil-Lösung)
|
||||||
|
7. Prioritätsfeld: Feldtest-Evidenz für das im Schöpfungs-AAR vertagte
|
||||||
|
Revisit (71/71 mit Priorität, getrennt vom Meilenstein)
|
||||||
|
8. `validate.py` lehnt Verzeichnis-Links ab (Meinungsfrage)
|
||||||
|
9. Definierter Ort für Projektregeln im übernommenen AGENTS.md
|
||||||
|
10. ADR-Pflicht bei dauerhaften Ausnahmen fehlt upstream
|
||||||
|
11. Stillstandsprüfungs-Prinzipien als Muster für eine
|
||||||
|
Laufzeit-Prüf-Familie neben validate.py
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
type: issue
|
||||||
|
id: "0041"
|
||||||
|
status: open
|
||||||
|
created: 2026-08-11
|
||||||
|
milestone: M2
|
||||||
|
priority: low
|
||||||
|
related: []
|
||||||
|
---
|
||||||
|
|
||||||
|
# wartegrund der 7 importierten waiting-Issues präzisieren
|
||||||
|
|
||||||
|
> Nacharbeit aus dem Issue-Import (Protokoll unter
|
||||||
|
> `docs/sources/migration/`). `gitlab_iid` folgt mit dem Spiegel-Lauf.
|
||||||
|
|
||||||
|
0002, 0004, 0008, 0014, 0021, 0025, 0027 tragen den generischen
|
||||||
|
Import-`wartegrund` „Grund im GitLab-Verlauf". Im nächsten Refinement
|
||||||
|
je Issue den echten Grund eintragen (alte Regel: `wartet` nur mit
|
||||||
|
benanntem Grund).
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
type: issue
|
||||||
|
id: "0042"
|
||||||
|
status: open
|
||||||
|
created: 2026-08-11
|
||||||
|
milestone: M2
|
||||||
|
priority: high
|
||||||
|
related:
|
||||||
|
- "docs/design/done/2026-08-11-neckbeard-migration.md"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Migration in Betrieb nehmen: Push, erster Spiegel-Lauf, CI-Schedule
|
||||||
|
|
||||||
|
> Die Schritte, die nur sorb ausführt (Nicht-Ziele der Migration:
|
||||||
|
> kein Push, kein API-Write durch die Session).
|
||||||
|
|
||||||
|
1. Branch `Neckbeard-v0.1.1-migration-1` sichten und nach `main`
|
||||||
|
bringen; Push über git.lab (Mirror zieht nach).
|
||||||
|
2. Ersten Spiegel-Lauf ausführen: `python3 scripts/spiegel_issues.py
|
||||||
|
--ausfuehren` (legt 0033–0042 auf GitLab an); danach die vergebenen
|
||||||
|
iids als `gitlab_iid` nachtragen — ab dann meldet
|
||||||
|
`gruppenpruefung.py` die Hinweise nicht mehr.
|
||||||
|
3. CI-Schedule für den Job `gruppenpruefung` anlegen (wie
|
||||||
|
Stillstandsprüfung; Gruppen-Token mit `read_api` liegt als maskierte
|
||||||
|
Variable bereits vor, siehe management#31).
|
||||||
|
4. gitops#61 einen Meilenstein geben (M1 oder M5 an der
|
||||||
|
ADR-0010-Trennlinie) — der rote Befund der Gruppenprüfung ist die
|
||||||
|
Erinnerung.
|
||||||
@@ -5,7 +5,7 @@ Unveränderte Originale aus **neckbeard v0.1.1**, Commit
|
|||||||
`https://git.lab/oss-projekte/ai/neckbeard.git` — der Stand, gegen den
|
`https://git.lab/oss-projekte/ai/neckbeard.git` — der Stand, gegen den
|
||||||
der Feldtest (Branch `Neckbeard-v0.1.1-analyse-1`) gemessen hat und aus
|
der Feldtest (Branch `Neckbeard-v0.1.1-analyse-1`) gemessen hat und aus
|
||||||
dem die Migration übernommen wurde (Design:
|
dem die Migration übernommen wurde (Design:
|
||||||
`docs/design/2026-08-11-neckbeard-migration.md`).
|
`docs/design/done/2026-08-11-neckbeard-migration.md`).
|
||||||
|
|
||||||
Zweck: Byte-Baseline für `scripts/pruefe_upstream_drift.py`. Ein
|
Zweck: Byte-Baseline für `scripts/pruefe_upstream_drift.py`. Ein
|
||||||
Framework-Upgrade ersetzt diese Dateien bewusst und in einem eigenen
|
Framework-Upgrade ersetzt diese Dateien bewusst und in einem eigenen
|
||||||
|
|||||||
+1
-1
@@ -21,7 +21,7 @@ mit Inhalt. Projektfassung des neckbeard-Index (Original:
|
|||||||
| `vision/` | Eine Datei je Linie: [axion1337.chat](vision/axion1337-chat.md) · [Homelab](vision/homelab.md) · [ThreadNet](vision/threadnet.md) | belegt |
|
| `vision/` | Eine Datei je Linie: [axion1337.chat](vision/axion1337-chat.md) · [Homelab](vision/homelab.md) · [ThreadNet](vision/threadnet.md) | belegt |
|
||||||
| `user-guide/` | Für Nicht-Owner | entfällt — Gate 0: Publikum ist Owner + Sessions |
|
| `user-guide/` | Für Nicht-Owner | entfällt — Gate 0: Publikum ist Owner + Sessions |
|
||||||
| `requirements/` | Eigenständige Anforderungssicht | nur bei echtem Bedarf |
|
| `requirements/` | Eigenständige Anforderungssicht | nur bei echtem Bedarf |
|
||||||
| `faq/`, `stolpersteine/` | Nur aus AARs und geschlossenen Issues geerntet — nie auf Vorrat | leer, entsteht im Refinement |
|
| `faq/`, `stolpersteine/` | Nur aus AARs und geschlossenen Issues geerntet — nie auf Vorrat: [neckbeard-migration](stolpersteine/neckbeard-migration.md) | wächst im Refinement |
|
||||||
|
|
||||||
## Seitenregeln
|
## Seitenregeln
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
type: wiki-page
|
||||||
|
area: stolpersteine
|
||||||
|
sources:
|
||||||
|
- "docs/design/done/2026-08-11-neckbeard-migration.md"
|
||||||
|
related: []
|
||||||
|
---
|
||||||
|
|
||||||
|
# Stolpersteine aus der neckbeard-Migration (2026-08-11)
|
||||||
|
|
||||||
|
Geerntet aus dem Gate-5-AAR der Migration; Belege dort.
|
||||||
|
|
||||||
|
- **Hex ≠ Git-SHA.** Authentik-uids und Alertmanager-Silence-IDs sehen
|
||||||
|
aus wie Commit-SHAs. Die SHA-Prüfung führt deshalb eine kuratierte
|
||||||
|
Ausnahmenliste (`scripts/sha_ausnahmen.tsv`) — jede Zeile mit Grund;
|
||||||
|
Einträge ohne Grund sind nicht zulässig.
|
||||||
|
- **`TZ` gehört an den git-Prozess.** `git log --date=format-local`
|
||||||
|
ohne `TZ=UTC` in der Prozessumgebung zeigt lokale Zeit und lässt
|
||||||
|
jeden 12:00Z-Commit „falsch" aussehen (Session-1-Lehre, zweimal
|
||||||
|
bestätigt).
|
||||||
|
- **`gen_status.py` braucht lokal Python ≥ 3.10**
|
||||||
|
(`Path.write_text(newline=)`); macOS-System-Python 3.9 reicht nicht —
|
||||||
|
venv nutzen, CI läuft auf 3.12.
|
||||||
|
- **Anonyme Gitea-Negative sind inkonklusiv.** Gitea verbirgt private
|
||||||
|
Repos hinter einer Auth-Abfrage; ein fehlgeschlagenes anonymes
|
||||||
|
`ls-remote` belegt keine Nichtexistenz (Feldtest F-007-Addendum,
|
||||||
|
dokumentiert in `docs/components/game-operating.md`).
|
||||||
|
- **Ein grüner Validator zählt erst mit Negativtests.** Alle vier
|
||||||
|
neuen Prüfregeln wurden mit absichtlich kaputten Artefakten
|
||||||
|
nachgewiesen — die Upstream-Lehre aus dem Schöpfungs-AAR hat sich
|
||||||
|
wiederholt bestätigt.
|
||||||
|
- **Verzeichnis-Links sind tote Links** für `validate.py` — immer auf
|
||||||
|
eine Datei zielen (README des Ordners oder konkrete Seite).
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
# PROJEKTERWEITERUNGEN gegenüber neckbeard v0.1.1 (Original:
|
# PROJEKTERWEITERUNGEN gegenüber neckbeard v0.1.1 (Original:
|
||||||
# docs/sources/upstream/neckbeard-v0.1.1/schema.yaml; Design:
|
# docs/sources/upstream/neckbeard-v0.1.1/schema.yaml; Design:
|
||||||
# docs/design/2026-08-11-neckbeard-migration.md, ADR-0012/0013):
|
# docs/design/done/2026-08-11-neckbeard-migration.md, ADR-0012/0013):
|
||||||
# * issue: Pflichtfelder milestone (M1–M5) + priority; Status-Enum um
|
# * issue: Pflichtfelder milestone (M1–M5) + priority; Status-Enum um
|
||||||
# next/waiting erweitert; due/host/area/wartegrund/gitlab_iid;
|
# next/waiting erweitert; due/host/area/wartegrund/gitlab_iid;
|
||||||
# Regel waiting_requires_reason; globale Regel wip_limit (max. 2
|
# Regel waiting_requires_reason; globale Regel wip_limit (max. 2
|
||||||
|
|||||||
Reference in New Issue
Block a user