docs: Belegzeile zum fidelity/authority-Backfill, Lauf geschlossen (schliesst #67)
CI / verify (push) Successful in 51s

Files changed:
- CHANGES.md
- kb/log.md
- work/backfill-capture-fields/README.md
- work/backfill-capture-fields/plan.md
This commit is contained in:
2026-09-09 06:51:17 +02:00
parent 00220f8b07
commit 46dfee0ea9
4 changed files with 38 additions and 159 deletions
-46
View File
@@ -1,46 +0,0 @@
# Workshop: backfill-capture-fields
- **Run key:** `backfill-capture-fields` (this directory's name - there is no other identifier)
- **Input:** none - this run is not an ingest
- **Started:** 2026-09-08
- **Session id form:** `WIKITOOL_SESSION_ID="backfill-capture-fields/u<N>"`, one per unit
## Goal
Gitea #67, Publish 2/3: `fidelity` und `authority` auf allen 29 bestehenden Source-Seiten
nachtragen, nach der Entscheidungsregel in `plan.md` — echter Wert nur, wo die Art des
Artefakts ihn festlegt, sonst `unknown`.
Die Maschinerie dafür steht seit `4.8.0-beta.8` (`f4353cc`). Dieser Lauf ändert **nur**
Frontmatter, ausschließlich über `wikitool touch --set`, keine Bodies.
## Closes when
Alle 29 Seiten tragen beide Felder, `migrate verify --from HEAD --path kb/sources
--fail-on-error` ist grün (0 findings außerhalb der beabsichtigten Frontmatter-Änderungen),
`lint` läuft durch, und der Publish ist nach Mass-Update-Gate-Freigabe gelandet.
Danach bleibt für #67 nur noch Publish 3/3: die Belegzeile im Changelog (wie viele Seiten
`unknown` tragen, und ob der `confidence_exceeds_source_standing`-Befund einen echten Fall
findet). Die Zahlen dafür stehen in `plan.md` § Bilanz.
## Checklist
- [ ] u1 — 29 Seiten `touch --set fidelity=… --set authority=…` nach `plan.md`
- [ ] u1 — `migrate verify --from HEAD --path kb/sources --fail-on-error`
- [ ] u1 — `index rebuild`, `sources rebuild-index`, `lint` (ganzen Report lesen, nicht nur die
Abschnitte, die dieser Lauf plausibel berührt hat)
- [ ] u1 — `log append`, dann `publish` (exit 42 erwartet, Freigabe einholen)
- [ ] Workshop schließen (Verzeichnis löschen), sobald der Publish gelandet ist
## Open decisions
- Keine. Die vier Entscheidungen des Pakets (3a/3b/5a/Versionsteil) sind am 2026-09-08 im Issue
gefallen; die Backfill-Regel selbst steht in `plan.md` und braucht keine weitere Freigabe.
## Notizen
- `date:` der Source-Seiten wird **nicht** angefasst: das ist das Veröffentlichungsdatum des
Rohmaterials, nicht der Zeitpunkt dieser Bearbeitung (`touch` bewegt es ohne explizites
`--date` ohnehin nicht).
- Kein `migrate done` — Begründung in `plan.md` § Was diese Einheit nicht tut.
-109
View File
@@ -1,109 +0,0 @@
# plan.md — backfill-capture-fields
Backfill von `fidelity` und `authority` (Gitea #67, Publish 2/3) über die **29** bestehenden
Source-Seiten. Die Maschinerie steht seit `4.8.0-beta.8` (`f4353cc`); hier kommt nur der
Bestand nach.
## Korrektur zur Zahl
Der Issue-Body nannte 31 Seiten. Das war eine Fehlzählung (`find kb/sources -name '*.md'` zählt
`INDEX.md` und `COLLECTION.md` mit). Es sind **29** Source-Seiten — dieselbe 29, die #66s
Changelog-Eintrag nennt, und dieselbe Zahl wie die 29 Raw-Dateien.
## Einheiten
**Eine Einheit** (`backfill-capture-fields/u1`), 29 Seiten. Weit unter der Empfehlung von 48 aus
`instructions/migrate-corpus.md` Schritt 2; Kostenschätzung 29 × `touch` + `index rebuild` +
`lint` + `log append` + `publish` (zweimal, Mass-Update-Gate) ≈ 35 Aufrufe gegen die 60er-Decke.
Kein Grund zu schneiden, also kein Schnitt.
## Entscheidungsregel
Ein Backfill-Wert ist **erschlossen**, nicht erhoben — genau die Vermutung, vor der #67 warnt.
Deshalb gilt hier eine engere Regel als beim laufenden Betrieb:
> Ein echter Wert wird nur gesetzt, wo die **Art des Artefakts** ihn aus dem Material selbst
> zweifelsfrei festlegt. Wo zwei kompetente Leser abweichen könnten, steht `unknown`.
`unknown` ist an dieser Stelle keine Bequemlichkeit, sondern die einzige ehrliche Antwort: es ist
backfill-only genau deshalb, weil ein geratener Capture-Wert später nicht mehr von einem
erhobenen zu unterscheiden wäre.
Was die Art des Artefakts festlegt:
| Artefakt | `fidelity` | Begründung |
|---|---|---|
| Gesprächstranskript | `verbatim` | wörtlicher Mitschnitt eines Austauschs |
| Tracker-Export | `verbatim` | die Datei sagt selbst „Wörtliche Kopie des Issue-Threads" |
| Web-Artikel / Blogpost mit `source_url` | `published` | veröffentlichtes Artefakt, als Zitat übernommen |
| LLM-Analyse fremden Materials | `secondhand` | Wiedergabe von etwas anderem |
| Selbstverfasste Notiz / Cheat Sheet | `unknown` | weder Mitschnitt noch Veröffentlichung noch Wiedergabe — der Enum hat keinen Wert dafür |
`authority` folgt der Worked-case-Tabelle aus dem Issue selbst (Zeile „Privat-Projekte":
Systemdoku/Spec = `normative`, Session-Transkript = `reporting`, LLM-Analyse = `opinion`) und
sonst der Frage, ob der Urheber für den **Gegenstand** zuständig war.
## Die 29 Urteile
### verbatim + reporting (18)
16 Gesprächstranskripte (`raw/notes/Conversation Transcript - *.md`) plus die 2 Tracker-Exporte.
Beide Gruppen sind wörtliche Mitschnitte; beide berichten über ihren Gegenstand, statt ihn
festzulegen — ein Issue-Thread ist ein Protokoll, kein Contract. Das normative Artefakt zu
#41/#62 ist `instructions/dev/issue-tracking.md`, nicht der Thread, der dorthin geführt hat.
### verbatim + normative (1)
- `Source - qmd - GitHub Repository` — die Rohdatei erklärt ihre Treue selbst („die API-JSON-Felder
sind wörtlich zitiert; die README-/package.json-Auszüge … wörtlich aus den geholten Dateien").
Ein Projekt-README ist für die Frage, was das Projekt *ist*, zuständig.
### secondhand + opinion (3)
- `Source - LLM Improvements Codex Analysis`, `Source - LLM Improvements Sonnet Analysis`
Modellausgabe über gelesenes Material.
- `Source - LLM Improvements Production Agent Gaps 2026` — der Kopf der Rohdatei sagt es
ausdrücklich: „Aspekt aus einer externen Analyse … vom Nutzer per Chat eingebracht". Also die
Wiedergabe einer fremden Analyse, nicht die Analyse selbst.
### published + reporting (2)
- `Source - AMD Powermanagement CPU` — heise.de-Meldung, wörtlich als Blockzitat übernommen.
Fachjournalismus berichtet über den Kernel-Treiber, er legt ihn nicht fest.
- `Source - LLM Wiki v2` — veröffentlichter Blogpost, der sich selbst als „was wir beim Betrieb
gelernt haben" einführt: Erfahrungsbericht auf einem fremden Muster.
### published + normative (1)
- `Source - LLM Wiki Pattern` — Karpathys ursprüngliche Idea-File. Für die Frage „woraus besteht
das LLM-Wiki-Muster" ist das definierende Dokument zuständig; der Gegenstand der Seite *ist*
der Inhalt dieses Dokuments.
### unknown + normative (1)
- `Source - Copilot Skill Restructure Instructions``fidelity` **unknown**: ein selbst
verfasstes, fertiges Anweisungsdokument ist weder Mitschnitt noch Veröffentlichung noch
Wiedergabe; der Enum hat dafür keinen Wert, und einen zu wählen wäre geraten.
`authority` **normative**: der Text ist eine Direktive des Repo-Eigners an einen Agenten
(„You are restructuring …", „concrete requirements"), und die Umstrukturierung ist so gelaufen.
### unknown + reporting (3)
- `Source - Arch Linux Cheat Sheet`, `Source - Docker Cheatsheet`, `Source - Wine`
`fidelity` **unknown** aus demselben Grund wie oben (eigene Notizen sind keine Erfassung von
etwas anderem). `authority` **reporting**: der Operator ist für Arch, Docker und Wine nicht
zuständig; die Notizen halten fest, was bei ihm funktioniert hat.
## Bilanz für die Changelog-Belegzeile (Publish 3/3)
- `fidelity: unknown` auf **4** von 29 Seiten (1 Anweisungsdokument, 3 Cheat Sheets).
- `authority: unknown` auf **0** Seiten — die Zuständigkeitsfrage war überall aus dem Material
beantwortbar, die Erfassungstreue nicht.
## Was diese Einheit nicht tut
- **Kein `migrate done`.** Das führt die `kb_version` in `.wikitool-kb.json` weiter, und die Kette
dort kommt aus den Dokumenten unter `instructions/migrations/`. #67 hat keins und braucht keins
(MINOR, Felder optional im Schema) — es gibt also keinen nächsten Kettenglied-Eintrag, den
dieser Lauf setzen dürfte.
- **Keine Body-Änderung.** Nur Frontmatter, ausschließlich über `wikitool touch`.