Files
management/docs/sources/migration/neckbeard-uebergabe-feldtest.md
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

94 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` |