Files changed: - kb/concepts/Ambient Environment Dependency.md - kb/concepts/Anti-Cramming Heuristic.md - kb/concepts/Audit Trail.md - kb/concepts/BM25.md - kb/concepts/Bulk Operations.md - kb/concepts/CI Integration.md - kb/concepts/CPPC.md - kb/concepts/Checkpoint Audit.md - kb/concepts/Claude Code Auto Mode.md - kb/concepts/Command Round-Trip Integrity.md - kb/concepts/Confidence Scoring.md - kb/concepts/Consolidation Tiers.md - kb/concepts/Content Quality Control.md - kb/concepts/Context Isolation.md - kb/concepts/Contradiction Resolution.md - kb/concepts/Cross-platform Agent Skills.md - kb/concepts/Crystallization.md - kb/concepts/Delete Rather Than Anonymize.md - kb/concepts/Denylist over Allowlist.md - kb/concepts/Detect-Repair Asymmetry.md - kb/concepts/Diff-Reviewable Agent Edits.md - kb/concepts/Dual Licensing by File Plan.md - kb/concepts/Entity Extraction.md - kb/concepts/Episodic Memory.md - kb/concepts/Event-Driven Automation.md - kb/concepts/Filter on Ingest.md - kb/concepts/Forgetting.md - kb/concepts/Graph Traversal.md - kb/concepts/Green Suite Blind Spot.md - kb/concepts/Hooks.md - kb/concepts/Hybrid Search.md - kb/concepts/Implementation Spectrum.md - kb/concepts/Index Scaling.md - kb/concepts/Issue Label Scheme.md - kb/concepts/Iteration and Cost Limits.md - kb/concepts/KB Migration.md - kb/concepts/KB Stack Versioning.md - kb/concepts/Knowledge Compounding.md - kb/concepts/Knowledge Graph.md - kb/concepts/LLM Wiki Pattern.md - kb/concepts/Lint Workflow.md - kb/concepts/MCP-Leseserver.md - kb/concepts/Mass-Update Gate.md - kb/concepts/Memory Lifecycle.md - kb/concepts/Mesh Sync.md - kb/concepts/Modbus.md - kb/concepts/Multi-Agent Collaboration.md - kb/concepts/Naming Convention Conflict.md - kb/concepts/OKF Compatibility.md - kb/concepts/Optional Instance Context File.md - kb/concepts/Personalization Plane.md - kb/concepts/Privacy and Governance.md - kb/concepts/Procedural Memory.md - kb/concepts/Publish-Remote Gate.md - kb/concepts/Quality Scoring.md - kb/concepts/Quality and Self-Correction.md - kb/concepts/RAG.md - kb/concepts/Reciprocal Rank Fusion.md - kb/concepts/SSD TRIM.md - kb/concepts/Scale Ceiling.md - kb/concepts/Self-Healing.md - kb/concepts/Semantic Lint Automation.md - kb/concepts/Semantic Memory.md - kb/concepts/Session Orientation.md - kb/concepts/Shared vs Private.md - kb/concepts/Split Merge Reclassify.md - kb/concepts/Split Threshold.md - kb/concepts/Structural Enforcement over Documented Rule.md - kb/concepts/Stub Threshold.md - kb/concepts/Supersession.md - kb/concepts/Three-Layer Architecture.md - kb/concepts/Token Economics.md - kb/concepts/Typed Relationships.md - kb/concepts/User Management.md - kb/concepts/Vector Search.md - kb/concepts/Work Coordination.md - kb/concepts/Workflow Extraction.md - kb/concepts/Workflow Orchestration.md - kb/concepts/Working Memory.md - kb/concepts/Write-Once Frontmatter Fields.md - kb/log.md - work/link-taxonomy-migration/glossary.md
8.0 KiB
type, concept_type, tags, created, modified, related, sources, confidence, confidence_base, provenance, summary
| type | concept_type | tags | created | modified | related | sources | confidence | confidence_base | provenance | summary | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| types/concept.md | workflow |
|
2026-08-30 | 2026-08-31 |
|
|
0.70 | 0.70 | sourced | Migration des KB-Inhalts entlang einer geordneten Versionskette; abgegrenzt gegen offene Instanz-Aktionen, die in den doctor-Check gehoeren statt in die Kette |
KB Migration
Typ: Workflow
Definition
KB Migration ist der Ablauf, mit dem der Inhalt einer Wissensbasis auf die Form gebracht
wird, die eine neuere Stack-Version erwartet. Die Form des Inhalts hat eine eigene Version in
.wikitool-kb.json, unabhängig von der Stack-Version in VERSION
(KB Stack Versioning)1 .
Eine Instanz kann Maschinerie 1.4.0 tragen, während ihr Inhalt noch in 1.2.0-Form vorliegt;
genau diesen Zustand durchläuft jedes Upgrade, und er ist der Grund für die Trennung.
Migrationen selbst sind manual: true-Anweisungen unter instructions/migrations/. Damit
werden sie von dist export ohne zweiten Exportpfad
mitgeliefert1 .
Kernpunkte
- Die Kette ist ein Intervall, keine Fallunterscheidung.
migrate statusbildet(kb_version, VERSION]aus den vorhandenen Migrationsdokumenten und ordnet aufsteigend. Von1.3.1nach2.0.0laufen1.4.0, dann1.7.0, dann2.0.0. Dass keine Migration auf1.3.xzielt, ist kein Sonderfall, sondern schlicht nicht im Intervall1 . migrate doneverweigert jede Version, die nicht das nächste Glied ist. Ein Sprung wird dadurch unmöglich, und ein unterbrochenes mehrstufiges Upgrade ist an der Stelle fortsetzbar, an der es abbrach1 .1.0.0ist die Basis. Alles Ältere wird neu exportiert, nicht migriert1 . Eine bestehende Instanz ohne.wikitool-kb.jsonerhält ihren Startwert übermigrate baseline; der Entwicklungsbaum selbst war der erste Fall und bekam1.0.0, weil sein Inhalt seiner Maschinerie nie hinterherhing1 .- Zählen, nie Mengen vergleichen.
kb_scan.extract_wikilinks()liefert ein Set. Fürlintist das richtig - die Frage lautet, ob ein Verweis auflöst. Für eine Migrationsprüfung ist es falsch, denn dort lautet die Frage, ob einer verschwunden ist. Drei der vier Defekte, die die frühere Übersetzung des Korpus fand, hatten unveränderte Link-Mengen und nur veränderte Zählungen1 . lintkann eine Migration nicht absichern. Die Negativkontrolle: eines von zwei[[Docker]]-Vorkommen auskb/entities/tools/Act Runner.mdentfernt, die Link-Menge damit unverändert.migrate verify --from HEAD --fail-on-errormeldet'Docker' 2->1,lint --fail-on-errorendet mit Exit 0 und schweigt über alle 21 Checks1 .lintliest eine einzige Revision; ein verschwundener Verweis hinterlässt ein Korpus, das in sich vollkommen stimmig ist. Darauf ruht die gesamte Strategie.- „Seite" muss überall dasselbe heißen. Der erste Lauf von
migrate verifyüber 248 Seiten meldete 13 „entfernte Seiten", die keine sind: Die historische Seite listete jede.mdunterkb/, die Arbeitsbaum-Seite benutzteiter_kb_pages, dasCOLLECTION.md,INDEX.mdund die Meta-Dateien der kb-Wurzel überspringt. Behoben durch ein gemeinsameskb_scan.is_page_path, festgehalten durch einen Regressionstest1 . - Kanonischer Name plus Aliase ist das Migrationsmuster.
sections.pydokumentiert es im eigenen Docstring: Es ist das, was ein Korpus Seite für Seite statt auf einen Schlag migrieren lässt - und das Entfernen eines Alias ist eine Breaking Change, keine Aufräumarbeit1 . - Zwei Größen, zwei Regeln. Einheiten werden nach dem Iterationsbudget geschnitten, Batches getrennt davon nach dem Mass-Update Gate. Beides zu verwechseln kostete im ersten Schnitt des Plans elf unnötige Freigaben1 .
- Pro Einheit zuerst die Struktur: Frontmatter, H1, Wikilink-Ziele und Cite-IDs gegen
HEADvergleichen, bevor irgendetwas anderes geprüft wird.lintwird über jede Einheit vollständig gelesen, nicht nur über die vermeintlich betroffenen Abschnitte - der Frontmatter-Fehler der ersten Einheit tauchte als Schema-Fehler in einem Feld auf, das niemand bearbeitet hatte1 . - Zusammenfassungen schreibt die orchestrierende Sitzung, nie aus einem Subagenten übernommen: Sie schmücken aus, etwa „measuring application performance and responsiveness" zu „Latenz und Durchsatz unter Lastbedingungen"1 .
Beispiele
- wikitool - stellt
migrate list/status/verify/done/baselinebereit und trägt die Prüfungcorpus diff. - Chemenu - erster Fall für
migrate baseline;1.0.0wurde ohne Migrationsdokument gesetzt, mit ausdrücklicher Begründung.
Wann zu verwenden
Sobald eine semantische Änderung am Inhalt ansteht, die eine bestehende Instanz nicht durch ein
bloßes Stack-Update mitbekommt - eine geänderte Abschnittsbenennung, ein umbenanntes
Frontmatter-Feld, ein umgezogenes Verzeichnis. Der MAJOR-Bump ohne Migrationsdokument wird von
version bump
verweigert1 .
Wann NICHT zu verwenden
- Nicht für Änderungen, die nur die Maschinerie betreffen. Ein neuer Befehl ohne Wirkung auf die Form des Inhalts braucht kein Migrationsdokument.
- Nicht mit einem mechanischen Runner für Null-Migrationen. Eine DSL dafür wurde bewusst nicht gebaut, solange es nichts zu automatisieren gibt1 .
- Nicht mit
lintals Absicherung - siehe die Negativkontrolle oben. - Nicht für eine offene Instanz-Aktion. Die Maschinerie ist durchgehend auf Korpus-Form
verdrahtet:
kb_versionbeschreibt die Form des Inhalts,migrate donenimmt--pages,migrate verifyvergleichtkb/. Eine Anforderung, die eine Instanz erfüllen muss, ohne dass sich eine Seite ändert - etwa das Anlegen vonUSER.md/SOUL.mdaus der Personalization Plane - ist deshalb keine Migration, sondern ein Fall für einendoctor-Check. Ein Migrationsdokument dafür hätte zwei Kosten:migrate donewürdekb_versionheben und damit über den Inhalt etwas behaupten, das nicht über ihn gilt, und eine frische Instanz bekäme die Migration nie zu sehen, weildist exportihrkb_version = VERSIONmitgibt. Der Health-Check ist hier zudem das schärfere Werkzeug, weil er selbstprüfend ist: er meldetFAIL, bis die Sache erledigt ist, währendmigrate doneeine Behauptung ist, die man ohne die Arbeit aufstellen kann.
Fußnoten
Beziehungen
- mechanism: wikitool
- rests-on: KB Stack Versioning
- see-also: Mass-Update Gate
- see-also: Iteration and Cost Limits