Files
management/analysis/findings/F-005-dead-gitea-tracker-still-referenced.md
T
Thore Cimbal e68b295249 analysis: complete the systematic claim verification; add F-017 and ADR-0010 draft
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.
2026-08-10 12:00:00 +00:00

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-52 warns 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 resolves gitops#48 on git.lab lands on a different issue than the one meant — and analysis/data/links.tsv records axion1337.chat-gitops#48 as 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.