Korpus-Sweep: 177 see-also-Kanten auf das erweiterte Vokabular umstellen #48

Open
opened 2026-09-04 15:57:58 +00:00 by torben · 1 comment
Owner

Stand

Die Katalog-Hälfte ist erledigt (#49, ausgeliefert in 4.7.0/4.7.1). Was hier bleibt, ist der Sweep über den Bestand dieser Instanz.

instructions/link-taxonomy.md schreibt über sein schwächstes Label:

see-also is the last resort and should stay rare. A collection where it is the commonest label has a vocabulary problem, not a lot of loosely related pages.

Aktuell 177 von ~515 Kanten (34 %), das mit Abstand häufigste Label, knapp das Vierfache des nächsten (exemplifies, 49). Nach dem Test, den der Katalog selbst aufstellt, hat der Korpus damit ein Vokabularproblem.

Was sich seit der ersten Fassung geändert hat

Die Werkzeuge sind jetzt da, die dieser Sweep braucht:

  • lint meldet die größte Teilmenge selbst. Der Befund redundant_see_also nennt jede see-also-Kante, deren Gegenrichtung bereits ein typisiertes Label trägt — aktuell exakt 57. Diese Klasse braucht kein neues Label und keine Urteilsfrage; sie ist Redundanz.
  • alternative-to deckt die Peer-Cliquen, addresses die Problem/Entscheidungs-Kanten, authored die Urheberschaft (letztere in 4.7.0 bereits umgestellt).
  • Die xref remove-Falle steht in instructions/wiki-lint/SKILL.md Schritt 1 beschrieben.

Die Partition

Gemessen bei 180 Kanten (vor den vier Urheberschaftskanten aus #43), exakt 57 + 70 + 53:

Klasse Kanten Behandlung
Spiegel einer typisierten Gegenkante 57 Löschen. Kein Label nötig, lint listet sie namentlich auf.
Wechselseitige see-also-Paare 70 Ein Label pro Paar, einmal geschrieben — nicht beidseitig relabeln.
Einseitig, ohne Gegenkante 53 Einzelfallprüfung; ein Teil bleibt zu Recht see-also.

Die wechselseitigen Paare bilden sieben Cliquen (≥3 Seiten):

Seiten Paare Komponente Wahrscheinliche Auflösung
8 8 Anti-Cramming Heuristic, Index Scaling, Iteration and Cost Limits, MCP-Leseserver, Mass-Update Gate, Publish-Remote Gate, Split Threshold, Stub Threshold offene Frage 2 unten
5 6 Context Isolation, Cross-platform Agent Skills, Scale Ceiling, Token Economics, Workflow Extraction offene Frage 2 unten
5 4 Bottles, Lutris, Proton, Wine GE, Wine-Staging alternative-to + Spiegel löschen
4 6 Claude Code, OpenAI Codex, OpenCode, Pi alternative-to, 6 Kanten statt 12
3 3 Codex CLI, GitHub Copilot, Mistral Vibe alternative-to
3 2 Command Round-Trip Integrity, Denylist over Allowlist, Green Suite Blind Spot addresses
3 2 Detect-Repair Asymmetry, Issue Label Scheme, KB Stack Versioning addresses

Was noch zu entscheiden ist

  1. Zielzahl. Der Katalog formuliert nur qualitativ. Ein prüfbares Kriterium wäre „see-also ist nicht mehr das häufigste Label" — das hieße unter 49 Kanten, also eine Reduktion um zwei Drittel. Als Zielkorridor für diesen Sweep, oder als Floor in instructions/dev/corpus-policy.md?
  2. Elternseiten statt Kanten für die beiden Concept-Cliquen oben. Die Schwellen- und Limit-Concepts dieses Stacks sind keine Alternativen zueinander, sondern Teile derselben Ordnung. Fehlt eine Elternseite, auf die alle part-of schreiben — dann verschwinden die Kanten ganz, statt ein Label zu bekommen? Das ist die teurere und die interessantere der beiden Optionen, und die einzige echte Designfrage, die hier noch offen ist.

Nicht mehr offen: alternative-to (entschieden und ausgeliefert), die Reihenfolge (Teilbefund „Spiegel" ist unabhängig und kann zuerst).

Randbedingungen

  • Tier 2 nach instructions/dev/corpus-policy.md: korpusweit, geplant, nie reaktiv — eigener work/-Run nach work/CONTRACT.md, wie die Migration in #40. Nicht als Nebenwirkung einer anderen Sitzung.
  • xref remove räumt beidseitig ab (tools/CONTRACT.md). Für ein Spiegelpaar passend; überall sonst eine Falle. Invariante für jeden entfernenden Schritt: nach dem Schritt darf keine Kante fehlen, die nicht ausdrücklich zum Entfernen benannt war. Der u3-Lauf in kb/log.md hat genau hier Inhalt verloren (Personalization Plane, Fußnotenmarker) — gefangen von migrate verify, nicht vom Lint.
  • alternative-to einmal pro Paar. Ein selbst-duales Label beidseitig zu schreiben würde die Cliquen in gleicher Größe erhalten und nichts gewinnen; der Katalog sagt das jetzt ausdrücklich.
  • Abschluss messbar: lint --full mit 0 harten Befunden, redundant_see_also auf 0, plus ein Vorher/Nachher der Labelverteilung.

Akzeptanzkriterien

  • redundant_see_also meldet 0
  • Keine see-also-Kante mehr in den vier Peer-Cliquen; jede durch alternative-to ersetzt, eine Kante pro Paar
  • Die Problem/Entscheidungs-Kanten tragen addresses, wo der Satz stimmt
  • Entscheidung 2 im Body beantwortet und ausgeführt (Elternseiten oder begründet dagegen)
  • Keine Kante verloren, die nicht ausdrücklich zum Entfernen benannt war — Vorher/Nachher-Zählung
  • lint --full: 0 broken_links, 0 malformed_edges, 0 unauthorised_labels, 0 dangling_frontmatter_refs
  • work/-Run nach work/CONTRACT.md geschlossen, log append geschrieben

Vorgeschichte

Gemessen in der Sitzung zur inhaltlichen Prüfung von #43 (2026-09-04); die Katalog-Hälfte ist daraus als #49 abgezweigt und erledigt. Der Befund selbst ist älter: kb/log.md protokolliert zum Abschluss der Migration, dass die Wine-/Arch-/Agent-CLI-Cliquen „ueberwiegend see-also" nachgelabelt wurden — damals korrekt, weil die Alternative eine unbelegte Kante gewesen wäre, aber es ist der Punkt, an dem die Masse entstanden ist.

## Stand Die Katalog-Hälfte ist erledigt (**#49**, ausgeliefert in 4.7.0/4.7.1). Was hier bleibt, ist der Sweep über den Bestand dieser Instanz. `instructions/link-taxonomy.md` schreibt über sein schwächstes Label: > **`see-also` is the last resort and should stay rare.** A collection where it is the commonest label has a vocabulary problem, not a lot of loosely related pages. Aktuell **177 von ~515 Kanten** (34 %), das mit Abstand häufigste Label, knapp das Vierfache des nächsten (`exemplifies`, 49). Nach dem Test, den der Katalog selbst aufstellt, hat der Korpus damit ein Vokabularproblem. ## Was sich seit der ersten Fassung geändert hat Die Werkzeuge sind jetzt da, die dieser Sweep braucht: - **`lint` meldet die größte Teilmenge selbst.** Der Befund `redundant_see_also` nennt jede `see-also`-Kante, deren Gegenrichtung bereits ein typisiertes Label trägt — aktuell exakt **57**. Diese Klasse braucht kein neues Label und keine Urteilsfrage; sie ist Redundanz. - **`alternative-to`** deckt die Peer-Cliquen, **`addresses`** die Problem/Entscheidungs-Kanten, **`authored`** die Urheberschaft (letztere in 4.7.0 bereits umgestellt). - Die `xref remove`-Falle steht in `instructions/wiki-lint/SKILL.md` Schritt 1 beschrieben. ## Die Partition Gemessen bei 180 Kanten (vor den vier Urheberschaftskanten aus #43), exakt 57 + 70 + 53: | Klasse | Kanten | Behandlung | |---|---:|---| | Spiegel einer typisierten Gegenkante | 57 | Löschen. Kein Label nötig, `lint` listet sie namentlich auf. | | Wechselseitige `see-also`-Paare | 70 | Ein Label pro Paar, **einmal geschrieben** — nicht beidseitig relabeln. | | Einseitig, ohne Gegenkante | 53 | Einzelfallprüfung; ein Teil bleibt zu Recht `see-also`. | Die wechselseitigen Paare bilden sieben Cliquen (≥3 Seiten): | Seiten | Paare | Komponente | Wahrscheinliche Auflösung | |---:|---:|---|---| | 8 | 8 | Anti-Cramming Heuristic, Index Scaling, Iteration and Cost Limits, MCP-Leseserver, Mass-Update Gate, Publish-Remote Gate, Split Threshold, Stub Threshold | offene Frage 2 unten | | 5 | 6 | Context Isolation, Cross-platform Agent Skills, Scale Ceiling, Token Economics, Workflow Extraction | offene Frage 2 unten | | 5 | 4 | Bottles, Lutris, Proton, Wine GE, Wine-Staging | `alternative-to` + Spiegel löschen | | 4 | 6 | Claude Code, OpenAI Codex, OpenCode, Pi | `alternative-to`, 6 Kanten statt 12 | | 3 | 3 | Codex CLI, GitHub Copilot, Mistral Vibe | `alternative-to` | | 3 | 2 | Command Round-Trip Integrity, Denylist over Allowlist, Green Suite Blind Spot | `addresses` | | 3 | 2 | Detect-Repair Asymmetry, Issue Label Scheme, KB Stack Versioning | `addresses` | ## Was noch zu entscheiden ist 1. **Zielzahl.** Der Katalog formuliert nur qualitativ. Ein prüfbares Kriterium wäre „`see-also` ist nicht mehr das häufigste Label" — das hieße unter 49 Kanten, also eine Reduktion um zwei Drittel. Als Zielkorridor für diesen Sweep, oder als Floor in `instructions/dev/corpus-policy.md`? 2. **Elternseiten statt Kanten** für die beiden Concept-Cliquen oben. Die Schwellen- und Limit-Concepts dieses Stacks sind keine Alternativen zueinander, sondern Teile derselben Ordnung. Fehlt eine Elternseite, auf die alle `part-of` schreiben — dann verschwinden die Kanten ganz, statt ein Label zu bekommen? Das ist die teurere und die interessantere der beiden Optionen, und die einzige echte Designfrage, die hier noch offen ist. Nicht mehr offen: `alternative-to` (entschieden und ausgeliefert), die Reihenfolge (Teilbefund „Spiegel" ist unabhängig und kann zuerst). ## Randbedingungen - **Tier 2 nach `instructions/dev/corpus-policy.md`:** korpusweit, geplant, nie reaktiv — eigener `work/`-Run nach `work/CONTRACT.md`, wie die Migration in #40. Nicht als Nebenwirkung einer anderen Sitzung. - **`xref remove` räumt beidseitig ab** (`tools/CONTRACT.md`). Für ein Spiegelpaar passend; überall sonst eine Falle. **Invariante für jeden entfernenden Schritt:** *nach dem Schritt darf keine Kante fehlen, die nicht ausdrücklich zum Entfernen benannt war.* Der u3-Lauf in `kb/log.md` hat genau hier Inhalt verloren (Personalization Plane, Fußnotenmarker) — gefangen von `migrate verify`, nicht vom Lint. - **`alternative-to` einmal pro Paar.** Ein selbst-duales Label beidseitig zu schreiben würde die Cliquen in gleicher Größe erhalten und nichts gewinnen; der Katalog sagt das jetzt ausdrücklich. - **Abschluss messbar:** `lint --full` mit 0 harten Befunden, `redundant_see_also` auf 0, plus ein Vorher/Nachher der Labelverteilung. ## Akzeptanzkriterien - [ ] `redundant_see_also` meldet 0 - [ ] Keine `see-also`-Kante mehr in den vier Peer-Cliquen; jede durch `alternative-to` ersetzt, **eine Kante pro Paar** - [ ] Die Problem/Entscheidungs-Kanten tragen `addresses`, wo der Satz stimmt - [ ] Entscheidung 2 im Body beantwortet und ausgeführt (Elternseiten oder begründet dagegen) - [ ] Keine Kante verloren, die nicht ausdrücklich zum Entfernen benannt war — Vorher/Nachher-Zählung - [ ] `lint --full`: 0 `broken_links`, 0 `malformed_edges`, 0 `unauthorised_labels`, 0 `dangling_frontmatter_refs` - [ ] `work/`-Run nach `work/CONTRACT.md` geschlossen, `log append` geschrieben ## Vorgeschichte Gemessen in der Sitzung zur inhaltlichen Prüfung von #43 (2026-09-04); die Katalog-Hälfte ist daraus als #49 abgezweigt und erledigt. Der Befund selbst ist älter: `kb/log.md` protokolliert zum Abschluss der Migration, dass die Wine-/Arch-/Agent-CLI-Cliquen „ueberwiegend see-also" nachgelabelt wurden — damals korrekt, weil die Alternative eine unbelegte Kante gewesen wäre, aber es ist der Punkt, an dem die Masse entstanden ist.
torben added the prio/plannedsize/Larea/kbkind/decision labels 2026-09-04 15:57:58 +00:00
torben changed title from `see-also` trägt 35 % aller Kanten - der Katalog sagt selbst, dass das ein Vokabularproblem ist to Korpus-Sweep: 177 `see-also`-Kanten auf das erweiterte Vokabular umstellen 2026-09-04 16:50:17 +00:00
Author
Owner

Changelog: Body nachgezogen, nachdem #49 (Katalog-Erweiterung) in 4.7.0/4.7.1 ausgeliefert ist. Titel auf den verbliebenen Umfang geschärft — dies ist jetzt allein der Korpus-Sweep.

Nicht mehr offen: alternative-to ist entschieden und im Katalog, ebenso addresses und authored. Von den ursprünglich vier Entscheidungsfragen bleiben zwei: die Zielzahl und die Elternseiten-Option für die beiden Concept-Cliquen.

Neu: lint --json meldet die größte Teilmenge jetzt namentlich (redundant_see_also, aktuell 57) — der Sweep muss sie nicht mehr selbst suchen. Die xref remove-Falle steht als Invariante im Body und seit 4.7.1 auch in wiki-lint Schritt 1. Zahl von 180 auf 177 korrigiert (vier Urheberschaftskanten in 4.7.0 umgestellt). Akzeptanzkriterien ergänzt.

**Changelog:** Body nachgezogen, nachdem #49 (Katalog-Erweiterung) in 4.7.0/4.7.1 ausgeliefert ist. Titel auf den verbliebenen Umfang geschärft — dies ist jetzt allein der Korpus-Sweep. Nicht mehr offen: `alternative-to` ist entschieden und im Katalog, ebenso `addresses` und `authored`. Von den ursprünglich vier Entscheidungsfragen bleiben zwei: die Zielzahl und die Elternseiten-Option für die beiden Concept-Cliquen. Neu: `lint --json` meldet die größte Teilmenge jetzt namentlich (`redundant_see_also`, aktuell 57) — der Sweep muss sie nicht mehr selbst suchen. Die `xref remove`-Falle steht als Invariante im Body und seit 4.7.1 auch in `wiki-lint` Schritt 1. Zahl von 180 auf 177 korrigiert (vier Urheberschaftskanten in 4.7.0 umgestellt). Akzeptanzkriterien ergänzt.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#48