ingest: Breiten-Auslöser als zweite Größenachse, Extract-Pass statt Seite pro Namen (schliesst #61)
CI / verify (push) Successful in 51s
Release / release (push) Successful in 35s

Files changed:
- CHANGES.md
- VERSION
- instructions/capture-session.md
- instructions/ingest-large-tree.md
- instructions/wiki-ingest/SKILL.md
This commit is contained in:
2026-09-11 17:37:53 +02:00
parent a9703520a7
commit f93d14b9d7
5 changed files with 153 additions and 14 deletions
+64 -1
View File
@@ -35,7 +35,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
---
## 5.0.0-beta.17 - 2026-09-11 - raw/*/.gitkeep-Glob in dist-upgrade-Doku auf den flachen raw/.gitkeep-Anker korrigiert
## 5.0.0-beta.18 - 2026-09-11 - Breiten-Auslöser für Ingests: eine einzelne, thematisch breite Quelle bekommt einen Extract-Pass statt einer Seite pro Namen
**Author:** Torben Nehmer
@@ -70,6 +70,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
- incoming/.gitkeep als Datei- statt Verzeichnismuster trackbar (schliesst #88)
- dist export-Doku: Typverzeichnis-Behauptung nach #67 korrigiert (schliesst #93)
- raw/*/.gitkeep-Glob in dist-upgrade-Doku auf den flachen raw/.gitkeep-Anker korrigiert
- Breiten-Auslöser für Ingests: eine einzelne, thematisch breite Quelle bekommt einen Extract-Pass statt einer Seite pro Namen
<!-- /wikitool:bumps -->
@@ -1384,6 +1385,68 @@ Geändert: `tools/CONTRACT.md` (`dist upgrade`-Zeile), `docs/ownership-and-templ
`tools/chemenu/commands/dist_cmd.py` (`--help`-Docstring von `dist upgrade`). Verifiziert:
`tools/wikitool docs verify`, `tools/wikitool instructions verify`, volle `pytest`-Suite.
**Ingests haben jetzt zwei Größenachsen: Volumen und Breite (#61).** `ingest-large-tree` löste
bislang ausschließlich auf Volumen aus - mehr als ~20 Rohdateien, mehr als ~15 `raw_files:`-
Einträge -, und sein § Scope sagte das auch so: „This is about *volume*, not difficulty."
Dazwischen lag eine Lücke: die **einzelne, thematisch breite Quelle**. Sie löst keinen
Volumen-Trigger aus, `wiki-ingest` kannte keinen anderen, und was sie anrichtet, meldet kein
`lint`-Befund.
Der Korpus zeigt den Fall genau einmal, dafür deutlich. `Source - LLM Wiki v2`: eine Rohdatei,
4 Entities + 26 Concepts, gegen einen Median von 6 über alle 29 Source-Seiten. Der naheliegende
Verdacht - die Source-Seite werde vage - trägt nicht: alle 26 Concepts haben eine eigene Seite,
die Breite wurde vollständig nachgezogen. Der Schaden sitzt eine Ebene tiefer und ist bimodal:
14 der 30 Subjektseiten liegen unter 150 Wörtern (die dünnsten bei 71 bis 78), die übrigen bei
541 bis 1.294, gegen einen Korpus-Median von 485. Eine **Stub-Kohorte aus einem einzigen
Durchgang**. Keine andere Quelle im Korpus hat eine: bei 18 Gegenständen (`Source - LLM Wiki
Pattern`) sind es null, und darunter ebenfalls. Daher die Schwelle bei ~20 statt am
75.-Perzentil - ein Auslöser, der auf schadensfreien Seiten feuert, wird ignoriert.
**Breite wird nicht geschnitten**, und das ist der Teil, der eine eigene Sektion bekommt. Zwei
Regeln schließen den Weg: `raw/` hält eine Datei „exactly as received", und eine Rohdatei hat
genau einen Besitzer (`lint` meldet einen zweiten Anspruchsteller). Mehrere thematische
Source-Seiten über einer Datei wären also nicht bloß unüblich, sondern ließen bei einer neuen
Edition niemanden zuständig zurück. Der Schnitt *vor* `raw accept` bleibt davon unberührt - er
ist das, was `capture-session` § 1 tut, und er ist nur möglich, weil das Transkript dort noch
gar nicht existiert. Diese Abgrenzung steht jetzt in § 1 selbst, weil genau dort der
Fehlschluss ansetzt, ein empfangenes Dokument ließe sich genauso zerlegen.
Was die Breite stattdessen auslöst, ist der Extract-Pass vor dem Schreiben und die Regel, die
er beliefert: **ein Gegenstand bekommt eine Seite, wenn die Quelle Material für eine trägt.**
Eine beiläufige Erwähnung bekommt einen Wikilink von der Source-Seite und eine Zeile unter
`## Not Extracted`, keine eigene Seite. Eine Seite, die nur ihren eigenen Titel wiederholt, ist
schlechter als die Erwähnung, aus der sie entstand: `lint` misst Struktur und nie Substanz, also
meldet sie niemand, und die nächste Sitzung liest sie als abgedecktes Terrain und schaut nicht
mehr in die Quelle.
Der vendorierte `commonplace`-Korpus stützt den Verzicht auf einen Source-Split unabhängig vom
Befund aus dem Baum, was ihn zum belastbareren Teil der Begründung macht: Atomizität ist dort
ausschließlich mit Co-Loading für Entdeckung begründet und gilt damit der Library-Schicht
(`kb/entities/`, `kb/concepts/`), nicht der Evidenz-Schicht; ein Mehr-Aussagen-Dokument ist per
`title-as-claim` Referenz statt Prämisse, weshalb Breite seiner Rolle nicht schadet; und die
Forderung, Forward-Lineage müsse den Betreiber unterbrechen, erreicht „eine Rohdatei, ein
Besitzer" auf eigenem Weg.
Nicht gebaut: ein `lint`-Befund gegen die Stub-Kohorte. Er wäre die Beobachtungsseite derselben
Sache, braucht aber eine eigene Schwellenwertdiskussion - Wortzahl ist ein grober Proxy für
Substanz - und liegt als eigenes Issue auf dem Board. Die Schwelle ~20 ruht auf einem einzigen
Schadenspunkt und ist entsprechend vorläufig.
MINOR, kein neues Boundary-Crossing: additiv in beide Richtungen. Eine bestehende Instanz
bekommt einen zusätzlichen Auslöser und eine zusätzliche Regel in Dateien, die der Stack
besitzt; nichts an `kb/`, keinem Schema, keinem Kommando und keinem Flag ändert sich, und ein
Downgrade nimmt beides ersatzlos zurück. Der Kandidat steht ohnehin auf MAJOR, der Bump
erhöht also nur seinen Zähler.
Geändert: `instructions/ingest-large-tree.md` (§ When to run auf zwei Achsen, Tier-Tabelle,
neue § A broad source is not cut, § Scope, ein Decision Point, `description`),
`instructions/wiki-ingest/SKILL.md` (Schritt 2 verweist jetzt auf die Schwellenliste statt sie
zu wiederholen, Schritt 7 trägt die Seiten-Regel, Schritt 8 und ein Decision Point ziehen nach),
`instructions/capture-session.md` (§ 1 Abgrenzung). Verifiziert: `tools/wikitool docs verify`,
`tools/wikitool instructions verify`, volle `pytest`-Suite (1195 passed), `docs toc --apply` und
`instructions sync` für die generierten Regionen und die veröffentlichten Kopien.
Schließt #61.
---
## 4.7.4 - 2026-09-04 - bootstrap.md nennt den session-id-WARN nach frischem Bootstrap explizit als erwartet