From 46dfee0ea9d27f577c1de7fe17537b81bfa3b2a8 Mon Sep 17 00:00:00 2001 From: Torben Nehmer Date: Wed, 9 Sep 2026 06:51:17 +0200 Subject: [PATCH] docs: Belegzeile zum fidelity/authority-Backfill, Lauf geschlossen (schliesst #67) Files changed: - CHANGES.md - kb/log.md - work/backfill-capture-fields/README.md - work/backfill-capture-fields/plan.md --- CHANGES.md | 36 +++++++- kb/log.md | 6 ++ work/backfill-capture-fields/README.md | 46 ----------- work/backfill-capture-fields/plan.md | 109 ------------------------- 4 files changed, 38 insertions(+), 159 deletions(-) delete mode 100644 work/backfill-capture-fields/README.md delete mode 100644 work/backfill-capture-fields/plan.md diff --git a/CHANGES.md b/CHANGES.md index c45c6a3..62a58a0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -494,10 +494,38 @@ Fill-once), `tools/chemenu/type_resolver.py` (`get_capture_fields`), `instructions/bootstrap.md`, `instructions/wiki-ingest/SKILL.md` (Schritt 1 und 6), zugehörige Tests. -Absichtlich nicht in diesem Publish: der Backfill über die 31 bestehenden Source-Seiten (eigener -`work/`-Lauf nach `instructions/migrate-corpus.md`, eigenes Mass-Update-Gate) und die -Beleg-/Fundzeile im Changelog dazu — #67 bleibt bis dahin offen, dieser Bump deckt Schritt 1 der -im Issue festgehaltenen Drei-Publish-Abfolge. +Der Backfill über den Bestand lief als eigener `work/`-Lauf (`backfill-capture-fields`, +Commit `00220f8`) hinterher, nach `instructions/migrate-corpus.md` und durch das +Mass-Update-Gate: **29 Source-Seiten**, nicht 31 wie zwischenzeitlich im Issue notiert — die +höhere Zahl zählte `INDEX.md` und `COLLECTION.md` mit. + +Die Regel dieses Laufs war enger als die des laufenden Betriebs, weil ein nachgetragener +Capture-Wert *erschlossen* ist und nicht *erhoben*: ein echter Wert nur dort, wo die Art des +Artefakts ihn aus dem Material selbst festlegt, sonst `unknown`. Ergebnis: `verbatim`+`reporting` +18 (16 Gesprächstranskripte, 2 Tracker-Exporte — beide wörtliche Mitschnitte, beide Protokoll +statt Festlegung), `secondhand`+`opinion` 3 (LLM-Analysen), `published`+`reporting` 2, +`published`+`normative` 1 (Karpathys Idea-File, das definierende Dokument seines eigenen +Gegenstands), `verbatim`+`normative` 1 (das qmd-README, dessen Rohdatei ihre Treue selbst +deklariert), `unknown`+`normative` 1, `unknown`+`reporting` 3. + +**`fidelity: unknown` steht auf 4 der 29 Seiten, `authority: unknown` auf keiner.** Die +Asymmetrie ist der interessante Teil: wer für einen Gegenstand zuständig war, ließ sich überall +aus dem Material beantworten — wie treu ein selbstverfasstes Cheat Sheet oder ein Anweisungsdokument +„erfasst", nicht, weil der Enum für ein originär geschriebenes Artefakt keinen Wert hat. Das ist +kein Backfill-Fehler, sondern genau die Grenze, die `unknown` markieren soll. + +Und der `lint`-Befund hat einen Fall — 67 sogar: nach dem Backfill melden **67 von 152 Seiten** +mit `confidence_base` mehr Konfidenz, als die Quellenlage trägt (47 gegen die 0.8-Grenze für +`reporting`, 20 gegen die 0.6-Grenze für `opinion`). Das ist kein Fehlalarm und auch keine +Nacharbeit dieses Eintrags: der Korpus ist zu gut der Hälfte aus Gesprächstranskripten kompiliert, +und die Rubrik in `kb/CONVENTIONS.md` lässt Quellenzahl und Aktualität allein bis 0.95 laufen, +während der Autoritätsterm der kleinste Summand ist. Ob daraus folgt, dass 67 Seiten überbewertet +sind oder dass die 0.8-Grenze für einen selbstdokumentierenden Korpus zu eng ist, ist eine +Entscheidung und keine Korrektur — sie hängt als Messung am Stub #60, der genau diesen Verdacht +ohne Zahlen aufgeschrieben hatte. Die Transkripte wurden ausdrücklich **nicht** auf `normative` +hochgestuft, nur damit der Report leiser wird. + +Schließt #67. --- diff --git a/kb/log.md b/kb/log.md index aaaf4e6..77fa078 100644 --- a/kb/log.md +++ b/kb/log.md @@ -197,3 +197,9 @@ ueberall aus dem Material beantwortbar, die Erfassungstreue nicht. Kalibrierungsfrage dazu geht als eigenes Issue auf das Board, nicht in diesen Lauf. --- + +## [2026-09-09] update | Lauf backfill-capture-fields geschlossen (#67) + +Alle Checklistenpunkte erledigt: 29 Seiten getouched, `migrate verify` 0 findings, `lint` Exit 0, Publish 00220f8 gelandet. Die dauerhaften Schluesse stehen in den 29 Source-Seiten selbst (fidelity/authority) und in CHANGES.md; die Entscheidungsregel des Laufs ist dort zusammengefasst, das Workshop-Verzeichnis daher geloescht. Die Kalibrierungsfrage aus dem 67er-lint-Befund liegt als Notiz an Issue #60, das `status/incoming` bleibt. + +--- diff --git a/work/backfill-capture-fields/README.md b/work/backfill-capture-fields/README.md deleted file mode 100644 index 37385da..0000000 --- a/work/backfill-capture-fields/README.md +++ /dev/null @@ -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"`, 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. diff --git a/work/backfill-capture-fields/plan.md b/work/backfill-capture-fields/plan.md deleted file mode 100644 index af1d856..0000000 --- a/work/backfill-capture-fields/plan.md +++ /dev/null @@ -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`.