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.9 KiB
Markdown
44 lines
2.9 KiB
Markdown
# F-015: The rewrite mapping list does what it promises — 251 of 251 rows verified
|
|
|
|
category: works-well
|
|
confidence: high
|
|
|
|
evidence: `analysis/scripts/inv_shas.py` -> `analysis/data/sha_refs.tsv`, every row of
|
|
`shared/commit-zuordnung-2026-08-07.md` re-checked against the actual repositories.
|
|
- Row count matches the claim exactly: 117 (gitops) + 78 (management) + 47 (ThreadNet-Web)
|
|
+ 9 (threadnet-call) = **251**, and `CLAUDE.md:136` says "251 Commits neue SHAs".
|
|
- Of the 251 pairs: **209 `ok`** (new SHA resolves, old one gone as expected) and
|
|
**42 `ok-both-present`** (new resolves, old still reachable — all 42 explained by the
|
|
stale branches in F-006, not by a mapping error).
|
|
- **0 inverted** (new missing while old resolves) and **0 unresolvable** (neither present).
|
|
There is no row in the table that does not describe a real commit pair.
|
|
- Consequently no accidental orphan reference exists in the docs: all six unresolvable SHA
|
|
citations have individual, benign explanations (F-012).
|
|
- The document is honest about its own boundaries in a way that measurably helped:
|
|
`shared/commit-zuordnung-2026-08-07.md:39-44` states what is *not* in the table
|
|
(pre-boundary commits, 147 in gitops, 3 in ThreadNet-Web) — which is what let this
|
|
session classify unresolved SHAs correctly instead of reporting them as breakage.
|
|
- It records the operational trap it hit rather than quietly fixing it
|
|
(`:24-37`): the tag force-push restarted three release pipelines, and the reason nothing
|
|
was overwritten is named as luck, not design — "**Das war Glück, keine Planung**" — with
|
|
the follow-up tracked as ThreadNet-Web#14.
|
|
|
|
impact: A destructive, irreversible operation was made auditable after the fact by one
|
|
hand-written document, and the audit passes three days later. The unusual quality is the
|
|
self-criticism: the near-miss is written down as a near-miss, which is exactly the material
|
|
a future session needs and exactly what usually gets smoothed over.
|
|
|
|
root-cause pattern: **A risky operation paired with a written reconstruction of what it
|
|
did.** Note the limit, recorded as F-004's sibling: the `backup-vor-rewrite` branches the
|
|
document names as its verification basis (`:14-17`) exist on **no** remote today, so the
|
|
mapping can no longer be re-derived — only, as here, spot-checked against surviving refs.
|
|
|
|
neckbeard mechanism: `docs/aar/` is the home for this document type — `AGENTS.md:83`,
|
|
"Standalone After Action Reviews (incidents, major deviations only)", with the required
|
|
frontmatter at `schema.yaml:67-74` (`type`, `status` from `[open, harvested]`, `date`) and
|
|
the content shape at `WORKFLOW.md:84-89` (planned / actual / why the difference /
|
|
learnings, then harvest into the wiki). `WORKFLOW.md:105` makes it mandatory rather than
|
|
optional: "Incidents and major misdiagnoses get a standalone AAR in `docs/aar/`". The
|
|
`status: harvested` transition is the piece this project lacks — it writes AARs but has no
|
|
mechanism that marks a learning as absorbed.
|