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.
44 lines
2.8 KiB
Markdown
44 lines
2.8 KiB
Markdown
# F-006: Three abandoned branches keep publishing exactly what the rewrite removed from main
|
||
|
||
category: dead-artifact
|
||
confidence: high
|
||
|
||
evidence:
|
||
- `axion1337.chat-gitops` `origin/turn-secret-rotation-20260728-192656`: 41 commits not on
|
||
main, head `f30d2f5` dated 2026-07-28, **not merged** (`git merge-base --is-ancestor` ->
|
||
no). All 41 carry real clock times (00h–01h and 21h–23h heavy). They are the *pre-rewrite*
|
||
versions of commits the mapping table lists as replaced — 42 mapping rows resolve as
|
||
`ok-both-present` in `analysis/data/sha_refs.tsv`, meaning the old SHA is still reachable.
|
||
- The same branch exists on the public mirror:
|
||
`git ls-remote https://rohana.axion1337.de/sorb/axion1337.chat-gitops.git` ->
|
||
`f30d2f582ba14d85a7dec97c4db9bb2677ca824d refs/heads/turn-secret-rotation-20260728-192656`,
|
||
identical to git.lab.
|
||
- `threadnet-call` `origin/livekit`: 14 own commits with real clock times, head `c12a4116`
|
||
(2026-07-31 22:22), mirrored publicly with the same head.
|
||
- `axion1337.chat-gitops` `origin/wiki`: head `0ff598e`, 2026-05-14. `CLAUDE.md:63` already
|
||
describes it as "ein überholter Mai-Abzug von `docs/`", and management#19 ("DOC-02:
|
||
Veralteten `wiki`-Branch im gitops-Repo entfernen?") tracks it — open, `priority:low`,
|
||
no `status:` label, i.e. plain backlog.
|
||
- The rotation branch's own successor mechanism is live: the scheduled CI job
|
||
`canonize_rotation` exists at `.gitlab-ci.yml:51` in the gitops repo, as `CLAUDE.md:56-60`
|
||
describes. The branch predates it and was never cleaned up.
|
||
|
||
impact: The single most expensive operation in this repo's history — a 251-commit rewrite
|
||
that restarted three release pipelines and needed its own mapping document — is undone for
|
||
42 of those commits by a branch nobody looks at, on a host that is public. The `wiki` branch
|
||
additionally offers a three-month-old copy of the documentation next to the current one,
|
||
which is the "zwei Wahrheiten über dieselbe Sache" failure `CLAUDE.md:94-97` names as worse
|
||
than an incomplete one.
|
||
|
||
root-cause pattern: **Artifacts outlive their purpose without an owner.** All three branches
|
||
served a finished purpose; none had a defined end. The one that is noticed (`wiki`) sits in
|
||
the backlog without a status label, which is where low-priority hygiene goes to rest.
|
||
|
||
neckbeard mechanism: **Gap in neckbeard.** The framework governs files inside a checkout,
|
||
not refs: nothing in `AGENTS.md`, `WORKFLOW.md` or `scripts/validate.py` sees a branch.
|
||
The nearest existing mechanisms are `WORKFLOW.md:122` (refinement item 2, "Backlog triage
|
||
over `docs/issues/`") and `WORKFLOW.md:126` (wiki lint, which hunts "orphan pages") — both
|
||
would need a branch equivalent to catch this. `schema.yaml`'s `warn_if_orphan` rule shows
|
||
the framework already accepts "reachable from nowhere" as a reportable condition for
|
||
documents; the field test shows refs need the same treatment.
|