Files
management/docs/sources/migration/neckbeard-uebergabe-feldtest.md
T
Thore CimbalandClaude Fable 5 28e1843e8d 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>
2026-08-11 12:00:00 +00:00

5.0 KiB
Raw Blame History

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 15, 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