Files
management/analysis/findings/F-015-rewrite-mapping-is-sound.md
T

44 lines
2.9 KiB
Markdown
Raw Normal View History

# 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.