Files
management/analysis/findings/F-004-open-work-lives-only-in-host-markdown.md
T
Thore Cimbal eaa00f0ed2 analysis: add 16 evidence-backed drift findings
Twelve drift findings and four works-well findings, each citing file
paths, line numbers, commit hashes or rows in analysis/data/. Every
'neckbeard mechanism' field names a concrete rule in neckbeard v0.1.1 or
states explicitly that none exists.
2026-08-10 12:00:00 +00:00

47 lines
3.0 KiB
Markdown

# F-004: Open work items live only in host markdown, against the repo's own "no backlog markdown" rule
category: process-drift
confidence: high
evidence:
- The rule, twice stated: `CLAUDE.md:72-75` — "**Alles Offene ist ein Issue** … Kein neues
Backlog-Markdown anlegen; `hosts/`/`shared/` sind nur Bestand + Historie" — and
`README.md:47` — "Alle offenen Punkte sind **Issues in diesem Projekt**".
- Open next steps that exist only as prose in `hosts/` and `shared/`:
- `hosts/overmind.md:90` — "**Nächster Schritt:** `element-desktop-build` von rohana in
die Lab-Registry umziehen … bewusst zurückgestellt" (section OVERMIND-01, marked
"Status: erledigt").
- `hosts/overmind.md:111-115` — "**Offen:** … Falls der Hang trotz EEE-off + neuer
Firmware wiederkehrt: gezielter ASPM-Fix statt globalem Kernel-Parameter".
- `hosts/cfgmon.md:148` — "**Nächster Schritt:** die drei manuellen Schritte oben, dann
→ erledigt" (section CFGMON-11).
- `shared/branding.md:210` — a whole `## Offen` section.
- Section IDs in `hosts/`/`shared/` with **no** corresponding issue anywhere in the group
(checked against all 111 issues in `analysis/data/gitlab_issues.json`):
`OVERMIND-01`, `CFGMON-11`, `CFGMON-12`, `CFGMON-13`, `MATRIX-05`.
For contrast, `OVERMIND-02` -> management#4 and `LABNET-01` -> management#11 do exist.
- `hosts/overmind.md:146` even routes readers to a markdown-only item as if it were
tracked: "CFGMON-11 (Gitea-CI-Rückbau)".
impact: An item like the `element-desktop-build` migration is invisible to the group board,
carries no milestone, no priority and no owner, and appears in no refinement. It is
deferred with a reason — a good reason — inside a file the process declares to be history.
`README.md:74` names the distinction between "gemacht" and "bewusst gelassen" as the most
frequent question; for these five IDs the answer exists in exactly one place and it is not
the one the process points at.
root-cause pattern: **Two backlogs, one rule.** The rule says one system; the host
documents are the natural place to write while working on a host, so items land there and
the migration to an issue is a separate act of discipline that sometimes does not happen.
neckbeard mechanism: Directly prevented by ADR-0002
(`docs/adr/0002-in-repo-issues.md`, Decision: "In-repo Markdown issues
(`docs/issues/NNNN-slug.md`, status in frontmatter, generated `STATUS.md` as index)").
Under it there is no gap between "writing in the doc" and "filing an issue" — both are
markdown files in the same tree, and `scripts/validate.py` enforces that an issue has a
`status` from `schema.yaml`'s enum `[open, in-progress, done, rejected]` (`check_fields`,
`schema.yaml:76-84`), so an open item cannot exist as a bold prose label. `scripts/gen_status.py`
then lists it in `STATUS.md` whether or not anyone remembered it.
Residual gap: nothing in neckbeard would stop a wiki page under `docs/wiki/` from carrying
an "Offen" section; the guard is `WORKFLOW.md:126` wiki lint, a human ritual.