SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (schliesst #70, #74, #75, #78)
Files changed: - CHANGES.md - VERSION - instructions/CONTRACT.md - instructions/wiki-ingest/SKILL.md - instructions/wiki-lint/SKILL.md - instructions/wiki-manage/SKILL.md - instructions/wiki-query/SKILL.md - instructions/wiki-status/SKILL.md
This commit is contained in:
+103
-1
@@ -35,7 +35,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
|
||||
---
|
||||
|
||||
## 4.8.0-beta.10 - 2026-09-09 - instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
||||
## 4.8.0-beta.11 - 2026-09-09 - SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (#70, #74, #75, #78)
|
||||
|
||||
**Author:** Torben Nehmer
|
||||
|
||||
@@ -51,6 +51,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
- raw accept: Datums-Shard statt Typverzeichnis, fidelity/authority am Drop-Punkt (schliesst #67)
|
||||
- source_type ist Instanzsache: Profilkatalog, Setup-Frage, evolve-subtypes-Instruction (#68)
|
||||
- instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
||||
- SKILL.md-Sanierung: Checklisten, Kommandolisten, wiki-status-Hard-Rule, wiki-query-Filingpruefung (#70, #74, #75, #78)
|
||||
<!-- /wikitool:bumps -->
|
||||
|
||||
Das Label `status/incoming` gibt es seit heute in Gitea: der Mensch legt einen
|
||||
@@ -648,6 +649,107 @@ Unterabschnitte), `instructions/wiki-ingest/SKILL.md` (Schritte 1 und 6).
|
||||
|
||||
Schließt #71, #72 und #79.
|
||||
|
||||
### Vier Befunde in der Skill-Prosa, ein Publish
|
||||
|
||||
Der Rest der #65-Analyse, soweit er die fünf `SKILL.md` selbst betrifft. Vier
|
||||
Issues, fünf Dateien, kein Codeanteil.
|
||||
|
||||
**Die Hard Rule von `wiki-status` war falsch (#70).** Sie sagte „read-only.
|
||||
Never writes, scaffolds, or modifies any file" — und Schritt 2 ruft `lint`,
|
||||
schreibt also einen Report, was Schritt 2 sogar selbst beschreibt. Ein Agent,
|
||||
der die Regel wörtlich nimmt, kann den Skill nicht ausführen; einer, der ihn
|
||||
ausführt, hat die stärkste Aussage des Dokuments gebrochen, bevor er Schritt 5
|
||||
erreicht. Das ist die teurere Sorte Widerspruch, weil die Hard Rule genau die
|
||||
Stelle ist, an der ein Konflikt entschieden wird. Sie lautet jetzt wie die von
|
||||
`wiki-query` — read-only gegenüber Wiki-*Inhalt* — und benennt den einen Write
|
||||
mitsamt Grund: `reports/` ist gitignored und trägt keine Wiki-Seite. Schritt 5
|
||||
behauptet nicht mehr, es sei keine Datei geschrieben worden, sondern sagt, was
|
||||
mit der geschriebenen *nicht* passiert (Semantic Review bleibt leer, nichts
|
||||
wird ausgetragen — das ist `wiki-lint` Schritt 9). Der Decision Point „Never
|
||||
publishes — nothing was written" trägt jetzt den wahren Grund: unter `kb/` hat
|
||||
sich nichts geändert, und der Report kann gar nicht in einen Commit geraten.
|
||||
|
||||
**`wiki-ingest` und `wiki-lint` bekommen einen Abhak-Block (#74).** Anthropics
|
||||
Skill-Doku empfiehlt für „particularly complex workflows" eine Checkliste, die
|
||||
der Agent in die Antwort kopiert und mitführt. Zwölf Schritte fallen
|
||||
unzweifelhaft darunter. Der Ausschlag gibt aber nicht die Länge, sondern was
|
||||
still ausfällt: `## Not Extracted` in Schritt 6, die Coverage-Prüfung in
|
||||
Schritt 10, die Lint-Kadenz in Schritt 12 — keiner davon erzeugt eine
|
||||
Fehlermeldung, wenn er ausbleibt.
|
||||
|
||||
Die offene Frage des Issues — ob `wiki-lint` denselben Block bekommt — ist mit
|
||||
ja beantwortet: neun Schritte, davon 3-6 reines Judgment, und ein Lauf, der
|
||||
leise nur seine mechanische Hälfte gemacht hat, sieht aus wie ein
|
||||
vollständiger. Damit haben zwei von fünf Skills einen Block und drei nicht, und
|
||||
genau das wäre ohne festgeschriebenes Kriterium die nächste strukturelle
|
||||
Ungleichheit im Sinne von #78. `instructions/CONTRACT.md` § Writing an
|
||||
instruction trägt sie deshalb jetzt: ein Block, wenn **ein** Ablauf acht
|
||||
Schritte oder mehr hat **und** darin still ausfallende Schritte stehen. Beide
|
||||
Hälften nötig — ein langer Ablauf aus reinen Tool-Calls meldet seine Lücken
|
||||
selbst, weil der nächste Call ohne den vorigen scheitert. Der Abschnitt nennt
|
||||
die drei anderen Skills mit ihren Schrittzahlen, damit niemand aus Symmetrie
|
||||
einen vierten Block nachrüstet.
|
||||
|
||||
**`wiki-query` prüfte nicht, bevor es filete (#75).** Die drei Kriterien
|
||||
(Synthese über mehrere Seiten, etwas noch nicht Dokumentiertes, wird wieder
|
||||
gefragt) standen im Filing-Schritt selbst, und der Skill darf mehrere Seiten
|
||||
je Sitzung anlegen — es gab also keine Stelle, an der *jede* geplante Seite
|
||||
einzeln gemessen wurde. Neuer Schritt 5 vor dem ersten `new`: Kandidaten
|
||||
benennen, jeden für sich gegen alle drei halten, ein Stapel wird nie als Stapel
|
||||
beurteilt. Wer durchfällt, wird nicht angelegt, sondern in der Antwort mit
|
||||
einem Satz genannt — der Nutzer kann ihn trotzdem verlangen. Der bisherige
|
||||
Filing-Schritt ist Schritt 6, `log append` Schritt 7, die Hard Rule zieht mit.
|
||||
Der Mass-Update-Gate-Hinweis bleibt, sagt aber jetzt dazu, dass er keine
|
||||
Ersatzprüfung ist: das Gate zählt Dateien und weiß nichts über Berechtigung,
|
||||
und ein Stapel unter der Schwelle ist von ihm nicht freigegeben, nur nicht
|
||||
angehalten worden. Dazu die `session-setup.md`-Zeile in derselben Form wie in
|
||||
den drei anderen — Schritt 7 läuft *immer* und der Filing-Pfad zieht `new`,
|
||||
`xref add` und die Rebuilds nach sich.
|
||||
|
||||
**Die Kommandolisten gingen mit den Schritten auseinander (#78).**
|
||||
`cite add` fehlte in `wiki-ingest` und `wiki-manage`, obwohl beide es
|
||||
ausdrücklich vorschreiben; `types describe` fehlte in `wiki-ingest`, wo
|
||||
Schritt 6 die `source_type`-Werte daraus zieht; `xref add` fehlte in
|
||||
`wiki-lint`, wo Schritt 1 das Umlabeln einer schwachen Kante darauf stützt;
|
||||
`publish` fehlte in `wiki-lint` und `wiki-query`, wo je ein Decision Point es
|
||||
beim Namen nennt. In die andere Richtung: `rm` stand in `wiki-lint`s Liste,
|
||||
ohne dass ein Schritt es begründet — die gefährlichere Richtung der Drift, weil
|
||||
`rm` Seiten löscht. Dazu `log status` (entscheidet den Trigger, gelaufen wird
|
||||
es von `wiki-ingest`) und die nie benutzten Flags `lint --markdown` und
|
||||
`lint --json`. Beide Streichungen stehen jetzt als **Deliberately absent** unter
|
||||
der Liste, mit Grund — sonst trägt sie jemand aus Vollständigkeit wieder ein.
|
||||
|
||||
Nicht als Drift gezählt und bewusst gelistet geblieben: `publish`,
|
||||
`log append`, `index rebuild` und `sources rebuild-index`, wo ein Skill sie
|
||||
über `publish-cycle.md` delegiert. Ebenso `xref remove` in `wiki-manage`, das
|
||||
zum Unlinking-Fall gehört, den der Skill als Ganzes an `page-lifecycle.md`
|
||||
abgibt; auch das steht jetzt als Satz dort, nicht als stille Annahme.
|
||||
|
||||
Der zweite Teil von #78 ist die Symmetrie: `wiki-manage` und `wiki-status`
|
||||
tragen jetzt einen Beispielblock wie die drei anderen. Fünf Skills mit
|
||||
demselben Aufbau sollten denselben Aufbau haben — ein fehlender Abschnitt liest
|
||||
sich sonst als Aussage („hier gibt es keine typischen Fälle"), die niemand
|
||||
gemeint hat.
|
||||
|
||||
Die offene Frage aus #78 — ob `instructions verify` diesen Abgleich künftig
|
||||
selbst macht — bleibt offen und ist ein eigenes Issue. Der Abgleich ist
|
||||
mechanisch, aber nicht trivial: die drei Ausnahmen oben (Delegation, benannte
|
||||
Delegation, „Deliberately absent") müsste ein Prüfer alle kennen, sonst meldet
|
||||
er dieselben vier Stellen bei jedem Lauf.
|
||||
|
||||
**PATCH**, geprüft gegen den Drop-in-Test: eine Instanz kopiert `instructions/`
|
||||
über sich, nichts wird umbenannt oder entfernt, kein Kommando, kein Flag, kein
|
||||
maschinengelesenes Format, und der Rückweg funktioniert genauso. Kein
|
||||
`--breaking`, kein Migrationsdokument.
|
||||
|
||||
Geändert: `instructions/wiki-status/SKILL.md`, `instructions/wiki-query/SKILL.md`,
|
||||
`instructions/wiki-ingest/SKILL.md`, `instructions/wiki-lint/SKILL.md`,
|
||||
`instructions/wiki-manage/SKILL.md`, `instructions/CONTRACT.md` (§ Writing an
|
||||
instruction, neuer Unterabschnitt „When a skill carries a copy-in checklist").
|
||||
`wiki-ingest` bleibt mit 233 Zeilen unter Anthropics 500er-Schwelle.
|
||||
|
||||
Schließt #70, #74, #75 und #78.
|
||||
|
||||
---
|
||||
|
||||
## 4.7.4 - 2026-09-04 - bootstrap.md nennt den session-id-WARN nach frischem Bootstrap explizit als erwartet
|
||||
|
||||
Reference in New Issue
Block a user