instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (schliesst #71, #72, #79)
Files changed: - CHANGES.md - VERSION - instructions/CONTRACT.md - instructions/wiki-ingest/SKILL.md
This commit is contained in:
+70
-1
@@ -35,7 +35,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
|
||||
---
|
||||
|
||||
## 4.8.0-beta.9 - 2026-09-09 - source_type ist Instanzsache: Profilkatalog, Setup-Frage, evolve-subtypes-Instruction (#68)
|
||||
## 4.8.0-beta.10 - 2026-09-09 - instructions/CONTRACT.md: Skill-H1, Referenztiefe und Begruendungsprosa praezisiert (#71, #72, #79)
|
||||
|
||||
**Author:** Torben Nehmer
|
||||
|
||||
@@ -50,6 +50,7 @@ dev-checkout concern - readable here, never shipped as something to parse.
|
||||
- source_type: Default streichen, unclassified als sichtbares Fach, layout: fuer source (schliesst #66)
|
||||
- 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)
|
||||
<!-- /wikitool:bumps -->
|
||||
|
||||
Das Label `status/incoming` gibt es seit heute in Gitea: der Mensch legt einen
|
||||
@@ -579,6 +580,74 @@ Geändert: `instructions/kb-profiles.md`, `instructions/setup-instance.md`,
|
||||
|
||||
Schließt #68.
|
||||
|
||||
### `instructions/CONTRACT.md` § Writing an instruction: drei offene Fragen entschieden
|
||||
|
||||
Drei Issues aus der #65-Analyse zeigten auf denselben Abschnitt. Alle drei
|
||||
enden dort, wo die Regel steht, nicht in einem Issue-Kommentar.
|
||||
|
||||
**Der Imperativ-Titel bindet eine Instruction, nicht ein `SKILL.md` (#71).**
|
||||
Die Regel griff dem Wortlaut nach auf alle fünf Skills durch, deren H1
|
||||
Nomenphrasen sind. Geprüft gegen die Primärquelle: Anthropic normiert `name`
|
||||
und `description` und sagt zur Body-Überschrift nichts; die eigenen
|
||||
Beispiel-Skills heißen `# PDF Processing`, `# BigQuery Data Analysis`. Dazu
|
||||
das Sachargument — der H1 liegt auf keinem Retrieval-Pfad, weil über die
|
||||
Aufnahme eines Skills die `description` entscheidet, die ab Sessionstart im
|
||||
Kontext steht, während der Body erst beim Zugriff gelesen wird. In der Sitzung
|
||||
kam ein Beleg dazu, den keines der Issues kannte: der vendorierte
|
||||
`commonplace`-Korpus trägt dieselbe Imperativ-Titel-Regel, unabhängig
|
||||
entstanden, und macht im selben Absatz dieselbe Ausnahme („for promoted skills,
|
||||
the skill name is the title"). Die fünf Titel bleiben unverändert.
|
||||
|
||||
**Referenztiefe: Anthropics „one level deep" gilt gebündeltem Material (#72).**
|
||||
Weg 2 der drei zur Wahl stehenden. Der Beleg für die Reichweite steht im
|
||||
vendorierten `codex-skill-creator/SKILL.md`: die Beispiele der Regel sind
|
||||
`DOCX-JS.md`, `REDLINING.md`, `OOXML.md` — alles Dateien *im Skill-Bündel*. Kein
|
||||
Skill dieses Repos hat heute eine solche Datei, die Regel bindet hier also
|
||||
wörtlich nichts. Für den Link von einem Skill auf einen repo-weiten Contract
|
||||
fallen die beiden Hälften der Frage auseinander: die Mechanik (Zweit-Hop wird
|
||||
womöglich nur angelesen) ist real und verzeichnisunabhängig, die Vorschrift ist
|
||||
für diesen Fall von Anthropic nicht belegt. Die geteilten Contracts bleiben
|
||||
geteilt — Invariante 8 hat sie dorthin gestellt, und § Frontload verlangt, dass
|
||||
ein *Schritt* ohne Vorkontext entscheidbar ist, nicht dass jede Regel an ihm
|
||||
wiederholt wird. Als Auflage bleibt das Billigere: ein Link sagt, was der
|
||||
Schritt aus der Datei braucht.
|
||||
|
||||
Ob die Mechanik hier überhaupt beißt, wurde vor der Entscheidung im Eval-Aufbau
|
||||
nachgesehen, und die Antwort ist: nicht messbar. Die L2-Trajectory-Regeln lesen
|
||||
ausschließlich `wikitool.call`, `gate.*`, `publish.commit` und
|
||||
`prompt.submitted` — keine Dateizugriffe eines Agenten; auf Claude Code ist
|
||||
überhaupt kein Tool-Hook verdrahtet, ein `head -100` hinterlässt also keine
|
||||
Spur. Die zweite Hälfte der Behauptung, was am Ende im Kontextfenster stand,
|
||||
erzeugt konstruktionsbedingt nirgends ein Event. Ein kausaler A/B-Vergleich
|
||||
bräuchte den L3-Runner, der entworfen und nicht gebaut ist. Das steht jetzt im
|
||||
Contract: eine Festlegung über Reichweite, keine Messung. Der Nebenfund — L2
|
||||
sieht auf dem primären Harness gar keine Tool-Calls — ist ein eigenes Issue
|
||||
wert und nicht Teil dieser Änderung.
|
||||
|
||||
**Wieviel Begründung ein Schritt tragen darf, ist jetzt messbar (#79).** Der
|
||||
alte Satz („Keep reasoning out of the body […] keep only enough reasoning to
|
||||
decide edge cases") zog in zwei Richtungen, und die größte Instruction des
|
||||
Repos lebte in der Lücke. Neu sind eine Keep/Cut-Tabelle und zwei Tests:
|
||||
*Substitution* — die Passage streichen und den Schritt noch einmal lesen; rät
|
||||
ein Agent ohne Vorkontext jetzt, war es eine Entscheidungshilfe und sie bleibt,
|
||||
egal wie lang. *Once* — eine Entscheidungshilfe steht an dem Schritt, an dem die
|
||||
Entscheidung fällt, und an genau einem solchen (Invariante 8). Danach gemessen
|
||||
stand die `source_type`/Capture-Asymmetrie in `wiki-ingest` zweimal; sie steht
|
||||
jetzt einmal, in Schritt 1, und Schritt 6 trägt die Anweisung plus Verweis.
|
||||
Die beiden anderen in #79 genannten Stellen — Namenskollision in Schritt 1,
|
||||
`## Not Extracted` in Schritt 6 — bestehen den Substitutionstest und bleiben.
|
||||
214 → 211 Zeilen; die Kürzung ist nicht der Zweck, die Eindeutigkeit ist es.
|
||||
|
||||
**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/CONTRACT.md` (§ Writing an instruction, drei neue
|
||||
Unterabschnitte), `instructions/wiki-ingest/SKILL.md` (Schritte 1 und 6).
|
||||
|
||||
Schließt #71, #72 und #79.
|
||||
|
||||
---
|
||||
|
||||
## 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