docs: add the neckbeard handoff document (field-test results)
Frozen handoff record for the upstream repo, English per neckbeard's own artifact convention: the completed first size-L run (the ADR-0006 v1.0.0 trigger), eleven feedback items each with field evidence and reference implementations, and a where-to-look table. Issue 0040 now points at it; go-live item 1 in issue 0042 is ticked off by this push. Size S under the granted exception - one deliverable, no design decisions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c481165ab4
commit
28e1843e8d
@@ -14,7 +14,9 @@ related:
|
|||||||
> Eigener Akt, bewusst nicht Teil der Migration (Nicht-Ziel im Design).
|
> Eigener Akt, bewusst nicht Teil der Migration (Nicht-Ziel im Design).
|
||||||
> `gitlab_iid` folgt mit dem ersten Spiegel-Lauf.
|
> `gitlab_iid` folgt mit dem ersten Spiegel-Lauf.
|
||||||
|
|
||||||
Als Issues im neckbeard-Repo (`oss-projekte/ai/neckbeard`) einreichen,
|
Das fertige Übergabedokument liegt unter
|
||||||
|
[docs/sources/migration/neckbeard-uebergabe-feldtest.md](../sources/migration/neckbeard-uebergabe-feldtest.md)
|
||||||
|
— von dort als Issues im neckbeard-Repo (`oss-projekte/ai/neckbeard`) einreichen,
|
||||||
mit Feldtest-Evidenz aus Gate 2 des Design-Dokuments:
|
mit Feldtest-Evidenz aus Gate 2 des Design-Dokuments:
|
||||||
|
|
||||||
1. Viele Repos, ein Regelwerk (Lücke 1; hiesige Lösung: ADR-0013)
|
1. Viele Repos, ein Regelwerk (Lücke 1; hiesige Lösung: ADR-0013)
|
||||||
|
|||||||
@@ -14,8 +14,9 @@ related:
|
|||||||
> Die Schritte, die nur sorb ausführt (Nicht-Ziele der Migration:
|
> Die Schritte, die nur sorb ausführt (Nicht-Ziele der Migration:
|
||||||
> kein Push, kein API-Write durch die Session).
|
> kein Push, kein API-Write durch die Session).
|
||||||
|
|
||||||
1. Branch `Neckbeard-v0.1.1-migration-1` sichten und nach `main`
|
1. ~~Branch `Neckbeard-v0.1.1-migration-1` sichten und nach `main`
|
||||||
bringen; Push über git.lab (Mirror zieht nach).
|
bringen; Push über git.lab (Mirror zieht nach).~~ ✅ Erledigt
|
||||||
|
2026-08-11 (Fast-Forward-Merge + Push, von sorb beauftragt).
|
||||||
2. Ersten Spiegel-Lauf ausführen: `python3 scripts/spiegel_issues.py
|
2. Ersten Spiegel-Lauf ausführen: `python3 scripts/spiegel_issues.py
|
||||||
--ausfuehren` (legt 0033–0042 auf GitLab an); danach die vergebenen
|
--ausfuehren` (legt 0033–0042 auf GitLab an); danach die vergebenen
|
||||||
iids als `gitlab_iid` nachtragen — ab dann meldet
|
iids als `gitlab_iid` nachtragen — ab dann meldet
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
# Handoff to the neckbeard repo — field test results, v0.1.1
|
||||||
|
|
||||||
|
Written 2026-08-11 at the close of the first real neckbeard adoption.
|
||||||
|
In English because it is destined for the neckbeard repo, whose
|
||||||
|
artifacts are English by its own convention. This file is the frozen
|
||||||
|
handoff record (management repo, `docs/sources/migration/`); carrying
|
||||||
|
its content into neckbeard issues is tracked as management issue 0040.
|
||||||
|
|
||||||
|
## What happened
|
||||||
|
|
||||||
|
- **Field test** against neckbeard `v0.1.1`
|
||||||
|
(`823a08cac6b03a47d7e2f661200a49ac6e09d38d`): two sessions on the
|
||||||
|
`axion1337.chat/management` repo. Session 1 (branch
|
||||||
|
`Neckbeard-v0.1.1-analyse-1`) produced 17 evidence-backed findings —
|
||||||
|
read `analysis/REPORT.md` there, especially the
|
||||||
|
pattern → mechanism → implication table. Session 2 migrated the repo
|
||||||
|
to neckbeard through **all gates of a size-L undertaking**: Gate 0
|
||||||
|
(PROJECT.md), design doc with Gates 1–5, five vertical slices, each
|
||||||
|
with verification evidence and a human STOP.
|
||||||
|
- Result: `docs/design/done/2026-08-11-neckbeard-migration.md` on
|
||||||
|
`main` of the management repo — including the Gate-5 AAR and the
|
||||||
|
two-way harvest (old approach's value folded into neckbeard before
|
||||||
|
adoption).
|
||||||
|
|
||||||
|
## Relevant for versioning (ADR-0006)
|
||||||
|
|
||||||
|
ADR-0006 names "the first completed size-L run in a real project" as
|
||||||
|
the sensible trigger for considering `v1.0.0`. **That run now exists
|
||||||
|
and is documented.** The schema and rule set survived it, with the
|
||||||
|
extensions below — worth weighing before any 1.0 decision.
|
||||||
|
|
||||||
|
## Feedback items, each with field evidence
|
||||||
|
|
||||||
|
Reference implementations live in the management repo (`scripts/`,
|
||||||
|
`schema.yaml`, `docs/components/`); findings F-NNN in the analysis
|
||||||
|
branch.
|
||||||
|
|
||||||
|
1. **Many repos, one ruleset.** ADR-0001 ends at the repo boundary; a
|
||||||
|
five-component group has no defined sharing mechanism. Solved
|
||||||
|
project-side as pointer + deterministic presence check
|
||||||
|
(management ADR-0013). Evidence: F-011 — 4 of 5 components carried
|
||||||
|
no instruction file and nothing noticed.
|
||||||
|
2. **Components artifact.** No artifact type declares "these are the
|
||||||
|
repos and their canonical names"; slug drift was unrepresentable
|
||||||
|
(F-008). Project-side: `component` type, filename = canonical slug.
|
||||||
|
3. **Milestone concept.** No field groups issues by what they pay
|
||||||
|
into; the project uses milestones on 100% of open issues (F-014).
|
||||||
|
Project-side: required `milestone` enum on issues.
|
||||||
|
4. **SHA citations in prose are never resolved.** F-012: six orphaned
|
||||||
|
citations, mechanically uncheckable. Reference: `pruefe_prosa.py`
|
||||||
|
(resolution via repo, rewrite-mapping table, optional clones, plus
|
||||||
|
a curated exemption list — hex words are not always git SHAs:
|
||||||
|
Authentik uids and Alertmanager silence IDs both matched).
|
||||||
|
5. **Git-level hygiene is outside the framework's view** while
|
||||||
|
carrying the project's most sensitive claims (F-002/F-003: 222
|
||||||
|
real-clock commits by own identities believed anonymised).
|
||||||
|
Reference: `gruppenpruefung.py` hygiene check.
|
||||||
|
6. **External link targets are never checked.** A live doc routed to a
|
||||||
|
retired tracker (F-005 — eight dead links found in practice).
|
||||||
|
Deterministic partial solution: a denylist of retired URL patterns;
|
||||||
|
full reachability checking deliberately rejected (network-bound).
|
||||||
|
7. **Priority field.** The creation AAR filed it as YAGNI with
|
||||||
|
"revisit via refinement". Field evidence for the revisit: 71/71
|
||||||
|
open issues carry exactly one priority, cleanly distinct from the
|
||||||
|
milestone ("how urgent" vs "what it pays into").
|
||||||
|
8. **`validate.py` rejects directory links** (`[x](dir/)`), which
|
||||||
|
GitLab renders fine. Opinion question; cost us three pre-existing
|
||||||
|
"broken" links.
|
||||||
|
9. **Adopted AGENTS.md has no defined place for project rules.**
|
||||||
|
Solved as: upstream sections byte-true, then a marked project
|
||||||
|
section; a byte-compare check against a vendored pristine baseline
|
||||||
|
(`docs/sources/upstream/`) turns silent framework-file rewrites
|
||||||
|
into red CI. The baseline answers a real adopter question ("will
|
||||||
|
agents rewrite AGENTS.md?") — consider making it part of the
|
||||||
|
adoption path.
|
||||||
|
10. **ADR duty for permanent exceptions** exists in this project's old
|
||||||
|
ruleset and proved itself (documented-but-undecided exceptions are
|
||||||
|
a named failure mode); upstream has no such rule.
|
||||||
|
11. **A runtime check family beside validate.py.** The project's
|
||||||
|
Stillstandsprüfung principles held up well and generalize: checks
|
||||||
|
only from real incidents, "cannot check" is a finding not a skip,
|
||||||
|
abort instead of silently skipping, project lists read at runtime
|
||||||
|
never maintained in code.
|
||||||
|
|
||||||
|
## Where to look
|
||||||
|
|
||||||
|
| What | Where |
|
||||||
|
|---|---|
|
||||||
|
| Field-test findings + data | management branch `Neckbeard-v0.1.1-analyse-1`, `analysis/` |
|
||||||
|
| Migration design + AAR | `docs/design/done/2026-08-11-neckbeard-migration.md` (main) |
|
||||||
|
| Schema extensions | `schema.yaml` (flagged header) vs `docs/sources/upstream/neckbeard-v0.1.1/schema.yaml` |
|
||||||
|
| New check scripts | `scripts/pruefe_upstream_drift.py`, `pruefe_prosa.py`, `gruppenpruefung.py`, `spiegel_issues.py` |
|
||||||
|
| Harvested pitfalls | `docs/wiki/stolpersteine/neckbeard-migration.md` |
|
||||||
Reference in New Issue
Block a user