Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
5.6 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 | decision |
|
2026-08-30 | 2026-08-30 |
|
|
0.70 | 0.70 | sourced | Semantische Versionierung des Wiki-Stacks: VERSION beschreibt die Maschinerie, Kompatibilitaet ist die linkeste Nicht-Null-Komponente, und drei getrennte Dateien trennen Maschinerie, Herkunft und Content-Form |
KB Stack Versioning
Typ: Decision
Definition
KB Stack Versioning ist die Entscheidung, den Wiki-Stack semantisch zu versionieren und
diese Version strikt von der Form des Inhalts zu trennen. Die Stack-Version steht in der
Wurzeldatei VERSION und wird ausschließlich von wikitool version bump
geschrieben1 . Sie
beantwortet genau eine Frage: welche Maschinerie installiert ist.
Ein automatischer Bump aus Commit-Nachrichten wurde verworfen. wikitool publish --message "ingest: ..." schreibt Content-Commits in dasselbe Repository, sodass eine
Conventional-Commit-Auswertung jeden Ingest zu einem Release
machte1 . Der Bump ist
deshalb eine ausdrückliche Handlung.
Kernpunkte
- Drei Fakten, drei Dateien.
VERSIONträgt die Stack-Version und wird vonversion bumpgeschrieben;.wikitool-release.jsonist der Release-Stempel, dendist exportin jeden Export legt und der beantwortet, woher die Maschinerie stammt;.wikitool-kb.jsonträgt die KB-Version und wird vonmigrate donegeschrieben1 . Die Trennung ist keine Aufteilung aus Bequemlichkeit: Der Stempel ist erzeugt und darf nie von Hand geändert werden, der KB-Zustand dagegen ist veränderlicher Instanzzustand. - Kompatibilität ist die linkeste Nicht-Null-Komponente - dieselbe Regel, die Cargos
Caret-Ranges
verwenden1 . Sie gilt
einheitlich für
0.xund1.x, sodass unter0.xder Schritt0.1.x->0.2.0dasselbe Migrationssignal trägt wieMAJORab1.0.0. Der Code für dencompat_keyist deshalb einheitlich formuliert und musste beim Wechsel auf1.0.0nicht angefasst werden1 . x.y.zist die maximale Granularität. Keine Pre-Release-Suffixe. Eine zweite Ordnungsregel müsste vom Release-Feed, von der Migrationskette und von der Kompatibilitätsprüfung gleichermaßen befolgt werden1 .- Der Einstieg bei
1.0.0statt0.1.0beseitigte einen Selbstwiderspruch: Die Anleitung instack-dev/SKILL.mdwies--minorsowohl „neue Fähigkeit" als auch „erfordert Migration" zu, was unter0.xnicht beides zugleich stimmen kann1 . - Aktualisierungserkennung über einen Stempel, nicht über eine Prüfsumme.
wikitool version checkdarf als einziger Befehl einen Netzaufruf machen: eigener Befehl, kein Schlüssel, Timeout, injizierbarer Fetch, damit Tests nie ein Netz berühren1 . Der Aktualisierungspfad selbst (dist upgrade) wurde bewusst zurückgestellt: erst Erkennung, dann Ausführung. - CI wird nicht mitgeliefert.
runs-on: linux-dockerist ein standortspezifisches Runner-Label und gehört nicht in eine verteilte Instanz1 . - Die Grenze wird an zwei Stellen erzwungen: in
version bumpund indocs verify, ergänzt um einenkb-version-Check indoctor1 .
Beispiele
- Chemenu - erste Instanz;
1.0.0ist die Migrationsbasis,1.0.1das erste über die Pipeline veröffentlichte Release. - wikitool - trägt die Befehlsgruppen
versionundmigrate, die die drei Dateien schreiben und lesen.
Wann zu verwenden
Sobald eine Wissensbasis als installierbares Artefakt an mehr als eine Stelle geht und Aktualisierungen erkennbar sein müssen. Die Trennung von Stack- und Content-Version lohnt sich ab dem Moment, in dem eine Instanz existiert, deren Inhalt hinter der Maschinerie zurückbleiben kann.
Wann NICHT zu verwenden
- Nicht für den Inhalt. Eine Version, die Stack und Content zugleich beschreibt, macht den
Zustand „Maschinerie
1.4.0, Inhalt in1.2.0-Form" unabbildbar - und das ist der Zustand, den jedes Upgrade durchläuft1 . Dafür ist KB Migration zuständig. - Nicht als automatischer Bump aus Commit-Nachrichten, solange Content-Commits und Stack-Commits im selben Repository liegen.
Verwandte Concepts
Beziehungen
- umgesetzt von: wikitool
- verwandt mit: Issue Label Scheme
Siehe auch
- wikitool
- Issue Label Scheme
- Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31