docs: add migration design doc, Gate 1 (product)
Problem statement built on the four drift patterns from the Session-1 field test, six numeric acceptance criteria, non-goals (no history rewrite, no push, no component rollout, no forge-state destruction), announcement paragraph. Gates 2-5 deliberately not pre-filled, per WORKFLOW.md. Frontmatter validates against neckbeard v0.1.1 schema with 0 errors for this file. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
d47c2c4efb
commit
2daadb8ba6
@@ -0,0 +1,129 @@
|
||||
---
|
||||
type: design
|
||||
status: gate-1
|
||||
date: 2026-08-11
|
||||
size: L
|
||||
related:
|
||||
- "PROJECT.md"
|
||||
- "decisions/0005-pm-framework-kanban.md"
|
||||
- "decisions/0009-commit-konventionen-und-historien-anonymisierung.md"
|
||||
- "decisions/0010-haertung-eigener-meilenstein.md"
|
||||
---
|
||||
|
||||
# Design: Migration des Management-Systems auf neckbeard
|
||||
|
||||
Grundlage: der Feldtest-Report auf dem Branch `Neckbeard-v0.1.1-analyse-1`
|
||||
(Session 1, eingefroren; Befunde F-001…F-017), gemessen gegen neckbeard
|
||||
v0.1.1 @ `823a08cac6b03a47d7e2f661200a49ac6e09d38d`. Bindende Vorgabe aus
|
||||
der Übergabe: **erst die Fehlermuster beider Ansätze durcharbeiten und den
|
||||
Wert des alten Ansatzes in neckbeard einfalten — Übernahme erst danach.**
|
||||
|
||||
## Gate 1 — Produkt
|
||||
|
||||
### Problem
|
||||
|
||||
Das Management-Repo steuert fünf Komponenten-Repos und sich selbst mit
|
||||
einem eigenen Regelwerk. Der Feldtest zeigt: Das Regelwerk ist nicht
|
||||
verfallen, sondern **ungleich durchgesetzt**. Wo ein Werkzeug die Regel
|
||||
hält, hält sie vollständig — alle 71 offenen Issues haben genau einen
|
||||
Meilenstein, das WIP-Limit steht, 0 von 161 Dokument-Links sind tot
|
||||
(F-014). Wo nichts prüft — Prosa, Git-Metadaten, Übereinstimmung zweier
|
||||
Dateien — versagt dasselbe Regelwerk wiederholt, in vier Mustern:
|
||||
|
||||
- **A** — Entscheidung im Werkzeug vollzogen, Doku nicht nachgezogen:
|
||||
M5 existiert und trägt 14 Issues, aber `roadmap.md` stellt ihn als
|
||||
offene Frage dar und die kanonische Arbeitsgrundlage bindet Issues an
|
||||
„M1–M4" (F-001; ferner F-005, F-007, F-010, F-017).
|
||||
- **B** — Regel repo-weit erklärt, auf eine Teilmenge angewandt:
|
||||
Zeitstempel-Anonymisierung erreicht 1 von 6 Repos, 5 Autor-Identitäten
|
||||
einer Person überleben, 4 von 5 Komponenten haben kein versprochenes
|
||||
CLAUDE.md, fünf Komponenten tragen vier Namensschemata (F-002, F-003,
|
||||
F-008, F-011).
|
||||
- **C** — zwei Backlogs, eine Regel: fünf offene Arbeitspunkte leben nur
|
||||
in `hosts/`-Markdown, unsichtbar für Board, Meilenstein und Priorität
|
||||
(F-004, F-009).
|
||||
- **D** — Artefakte überleben ihren Zweck ohne Eigentümer: verwaiste
|
||||
Branches publizieren Vor-Rewrite-Historie, zitierte SHAs sind
|
||||
unauflösbar (F-006, F-012).
|
||||
|
||||
Betroffen sind sorb und jede Agenten-Session: Jede neue Session wird von
|
||||
der kanonischen Datei falsch geprimt und würde vollzogene Entscheidungen
|
||||
rückgängig machen. Neckbeard adressiert genau diese Klasse — hält aber
|
||||
selbst sieben im Feldtest belegte Lücken, allen voran: ADR-0001 löst
|
||||
„ein Repo, viele Harnesse", dieses Projekt ist „viele Repos, ein
|
||||
Regelwerk", und für die Frage, wo die 71 offenen GitLab-Issues nach der
|
||||
Migration leben, existiert nur eine aufgeschobene Option C. Beide
|
||||
Entscheidungen fallen in Gate 2, jeweils als ADR.
|
||||
|
||||
Das Produkt dieser Undertaking: das Management-System dieses Repos auf
|
||||
neckbeard umziehen, so dass die vorhandene Disziplin von Stellen, die
|
||||
nur ein Mensch prüfen kann, an Stellen wandert, die ein Skript prüft —
|
||||
nachdem der Wert des alten Ansatzes (F-013…F-016, Meilenstein-/
|
||||
Prioritäts-Evidenz, Mirror-Topologie-Prosa) in neckbeard eingefaltet
|
||||
wurde.
|
||||
|
||||
### Akzeptanzkriterien (verifizierbar)
|
||||
|
||||
1. **Deterministische Gates grün:** `scripts/validate.py` meldet auf dem
|
||||
migrierten Repo 0 Fehler; `scripts/gen_status.py --check` meldet
|
||||
STATUS.md aktuell.
|
||||
2. **Entscheidungen portiert:** alle 10 Entscheidungen
|
||||
(`decisions/0001…0010`) liegen als ADRs mit schema-konformem
|
||||
Frontmatter unter `docs/adr/` — 10/10 validieren.
|
||||
3. **Ein Backlog:** die fünf Arbeitspunkte aus F-004 (OVERMIND-01,
|
||||
CFGMON-11/12/13, MATRIX-05) existieren als Issues im kanonischen
|
||||
System — 5/5; 0 offene „Nächste Schritte" in `hosts/` ohne
|
||||
Issue-Referenz.
|
||||
4. **Generierte statt behaupteter Zustand:** 0 handgepflegte Zählungen
|
||||
und „Stand"-Etiketten in kanonischen Dateien, wo ein Generat sie
|
||||
ersetzt; kein kanonisches Dokument widerspricht dem Werkzeugstand
|
||||
bei den Meilensteinen (M1–M5).
|
||||
5. **Muster → Mechanismus:** für jedes Driftmuster A–D benennt das
|
||||
Design mindestens einen deterministischen Check, und pro Muster feuert
|
||||
mindestens ein Check nachweislich auf dem Vor-Migrations-Stand — 4/4
|
||||
demonstriert.
|
||||
6. **Ernte dokumentiert:** 7/7 neckbeard-Lücken mit Disposition
|
||||
(eingefaltet / als Framework-Issue notiert / verworfen mit Grund);
|
||||
4/4 Works-well-Befunde mit benanntem Erhaltungsmechanismus oder
|
||||
begründetem Verzicht.
|
||||
|
||||
### Nicht-Ziele
|
||||
|
||||
- **Keine Historien-Umschreibung.** Die F-002/F-003-Remediation ist ein
|
||||
eigener Vorgang mit eigener bindender Auflage (Zuordnung im Stil von
|
||||
`shared/commit-zuordnung-2026-08-07.md`); diese Undertaking darf ihr
|
||||
nur nicht im Weg stehen.
|
||||
- **Kein Push** nach git.lab oder Gitea; der Branch bleibt lokal bis zur
|
||||
Freigabe durch sorb.
|
||||
- **Keine Änderung am neckbeard-Upstream.** Lücken werden hier
|
||||
dispositioniert; sie dort einzureichen ist ein eigener Akt.
|
||||
- **Kein Rollout in die fünf Komponenten-Repos** über das hinaus, was
|
||||
die Shared-Ruleset-Entscheidung (Gate 2) zwingend erfordert; der
|
||||
Rollout wird als Folge-Issues angelegt, nicht hier gebaut.
|
||||
- **Kein Forge-Zustand wird zerstört:** keine Löschung von
|
||||
GitLab-Issues, Labels, Meilensteinen oder dem Board durch die
|
||||
Migration selbst.
|
||||
- **`analysis/` bleibt eingefroren** — der Branch von Session 1 wird
|
||||
weder verändert noch umgebaut.
|
||||
- **Kein inhaltliches Umschreiben** des Host-/Visions-/Verfahrenswissens:
|
||||
Umzug, Frontmatter und Korrektur werkzeugwidersprechender Aussagen ja,
|
||||
Neuformulierung nein.
|
||||
|
||||
### Ankündigung
|
||||
|
||||
Das Management-Repo der Gruppe axion1337.chat zieht auf das
|
||||
neckbeard-Framework um. Die vorhandene Disziplin — Meilensteinpflicht,
|
||||
Status-Disziplin, ADR-Pflicht, AARs — bleibt erhalten, wandert aber von
|
||||
Stellen, die nur ein Mensch prüfen kann, an Stellen, die ein Skript
|
||||
prüft: Frontmatter statt Prosa, generiertes STATUS.md statt
|
||||
handgepflegter Zählungen, `validate.py` statt Konventionstreue aus dem
|
||||
Gedächtnis. Die vier Driftmuster des Feldtests bekommen je einen
|
||||
deterministischen Check, und was der alte Ansatz besser kann als
|
||||
neckbeard, wird zuerst ins Framework eingefaltet statt verworfen.
|
||||
Zielgruppe sind sorb und alle Agenten-Sessions, die künftig von einer
|
||||
Quelle starten, die sich nicht selbst widerspricht.
|
||||
|
||||
### UI
|
||||
|
||||
Keine UI beteiligt — Artefakte sind Markdown-Dateien, die Oberfläche
|
||||
bleibt GitLab/Obsidian/Editor. Mockups entfallen.
|
||||
Reference in New Issue
Block a user