verify_claims.py gives all 813 claim rows a mechanical disposition; the 28 flags were adjudicated by hand (REPORT.md appendix). Two survived as genuine drift (F-017): a closed issue still described as open in shared/lab-netzwerk.md, and a 'pending' decision block in hosts/cfgmon.md whose premise the same file records as executed. Also: narrow the vendored-path filter (it silently dropped 7 tracked icon files and produced false path-miss flags), record the confirmed canonical author identity in F-003, verify the Gitea#48->GitLab#46 numbering shift by title in F-005, and add the ADR-0010 draft under analysis/drafts/ for the human to git-mv into decisions/. Branch renamed to Neckbeard-v0.1.1-analyse-1 per the human.
3.2 KiB
F-005: A live document routes the reader to the Gitea tracker that three documents declare dead
category: claim-vs-reality confidence: high
evidence:
- The claim, stated three times and each time absolutely:
README.md:22-27— "Keine Ausnahmen mehr. … der Gitea-Tracker ist leer … Alle Issues leben auf git.lab."hosts/overmind.md:38-42— "Issues nicht mehr … der Tracker ist leer. Ohne Ausnahme: Issues leben auf git.lab."CLAUDE.md:49— "Issues leben auf git.lab. Die alten Gitea-Issues sind geschlossen und verweisen dorthin."
hosts/cfgmon.md:176(section CFGMON-12) resolves its status against that tracker: "Status: abgelöst durch gitops#48 (2026-08-01, sorb: HOHE Priorität …) — Plan-Skizze und die offene Erreichbarkeits-Entscheidung git.lab-only vs. extern stehen dort".- So the substance of an open decision is said to live in an issue on the tracker that is declared empty. The link is the only pointer to it in the repo.
- The number is additionally unsafe:
CLAUDE.md:50-52warns that gitops issue numbers shifted in the migration ("z. B. Gitea#48 → GitLab#46") and that "alte „gitops#N"-Verweise meinen die Gitea-Nummer". A reader who resolvesgitops#48on git.lab lands on a different issue than the one meant — andanalysis/data/links.tsvrecordsaxion1337.chat-gitops#48as an existing GitLab issue, so nothing looks broken. - The shift is now verified by title, not only by the warning: GitLab gitops#48 is
"Gäste-Invite-Workflow per Bot …" — a different topic — while GitLab gitops#46 is
"Issue-Migration nach GitLab + zentrale Projekt-Roadmap …", exactly the substance
CFGMON-12 describes. The Gitea#48 the doc links is today's GitLab#46, confirming
CLAUDE.md:51's example as fact (analysis/data/gitlab_issues.json). - CFGMON-12 has no issue of its own anywhere in the group (F-004).
impact: A high-priority decision ("HOHE Priorität", plus an open reachability question) is reachable only through a link into a system the documentation says is retired, under a number the documentation says is ambiguous. Both failure modes are silent: the link resolves, and so does the wrong git.lab issue.
root-cause pattern: Decision executed in the tool, documentation not carried along — the migration was completed and announced, but the documents that pointed into the old system were not swept. Compounded by two backlogs, one rule (F-004).
neckbeard mechanism: Removed by construction under ADR-0002
(docs/adr/0002-in-repo-issues.md): with issues as files in the repo, a reference to an
issue is a relative link, and scripts/validate.py's check_body_links reports
"inline link target missing" when it does not resolve — a renumbering or a retired tracker
becomes a failing check instead of a working link to the wrong thing. ADR-0002 explicitly
lists this as the con of forge issues: "issue ↔ artifact links leave the repo".
Gap in neckbeard: check_body_links only validates repo-relative targets; external
URLs are format-checked at most (schema.yaml:22-26 applies that only to frontmatter link
fields). A doc pointing at a dead external tracker stays green.