types/type-spec.md: Ownership und Sprache getrennt benannt (Nachzug zu #99)
Files changed: - CHANGES.md - VERSION - types/type-spec.md
This commit is contained in:
+19
-1
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6.0.0-beta.3 - 2026-09-15 - TOC-Scope auf types/ und docs/ erweitert, Sprachregeln zentralisiert, --breaking akkumuliert
|
## 6.0.0-beta.4 - 2026-09-15 - types/type-spec.md: Ownership und Sprache getrennt benannt (Nachzug zu #99)
|
||||||
|
|
||||||
**Author:** Torben Nehmer
|
**Author:** Torben Nehmer
|
||||||
|
|
||||||
@@ -80,6 +80,7 @@ concern - readable here, never shipped as something to parse.
|
|||||||
|
|
||||||
**Low impact**
|
**Low impact**
|
||||||
- gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform
|
- gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform
|
||||||
|
- types/type-spec.md: Ownership und Sprache getrennt benannt (Nachzug zu #99)
|
||||||
<!-- /wikitool:bumps -->
|
<!-- /wikitool:bumps -->
|
||||||
|
|
||||||
### gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform
|
### gates.md/session-setup.md: die Budget-Ausnahme von version regrade haengt an der Aufrufform
|
||||||
@@ -212,6 +213,23 @@ Nebenbefund, den die Scope-Erweiterung sofort aufgedeckt hat: `docs/version-mode
|
|||||||
jeder ausgelieferten Instanz ein toter Link. Jetzt ein Klartextpfad mit dem Satz, warum er keiner
|
jeder ausgelieferten Instanz ein toter Link. Jetzt ein Klartextpfad mit dem Satz, warum er keiner
|
||||||
ist.
|
ist.
|
||||||
|
|
||||||
|
### types/type-spec.md: Ownership und Sprache getrennt benannt (Nachzug zu #99)
|
||||||
|
|
||||||
|
`types/type-spec.md` sagte weiterhin, Prosa, `## Template`-Body **und Sprache** eines
|
||||||
|
Seiten-Type-Specs gehoerten der Instanz, die bei anderer KB-Sprache "einfach die Datei
|
||||||
|
uebersetzt" - genau das Gegenteil des Schnitts, den der Bump davor ausgeliefert hat. Aufgefallen
|
||||||
|
in der Schlussphase, beim Nachdenken darueber, welche Sprachregel fuer einen *instanz-eigenen*
|
||||||
|
neuen Seitentyp gilt.
|
||||||
|
|
||||||
|
Der Abschnitt trennt die zwei Fragen jetzt: Ownership sagt, wer eine Zeile aendern darf, die
|
||||||
|
Sprache folgt davon unabhaengig dem Publikum der Zeile - Anleitungsprosa an einen Agenten ist
|
||||||
|
Control Plane und englisch, `## Template`-Body und `layout:`-Titel sind Seitentext in der
|
||||||
|
KB-Sprache, Feldnamen und Enum-Werte sind Identifier und werden nie uebersetzt. Als Tabelle, weil
|
||||||
|
der Schnitt mitten durch eine Datei laeuft und eine Aufzaehlung im Fliesstext ihn genau deshalb
|
||||||
|
nicht haelt. Der Satz bindet ausdruecklich auch einen Type-Spec, den eine Instanz sich selbst
|
||||||
|
schreibt: der ist zwar durchgaengig instanzeigen, aber seine Anleitungshaelfte hat trotzdem einen
|
||||||
|
Agenten als Leser.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5.1.0 - 2026-09-12 - changelog: Kandidaten-Eintrag nach Impact gruppiert, version regrade zur Nachkorrektur, version release verlangt eine Zusammenfassung
|
## 5.1.0 - 2026-09-12 - changelog: Kandidaten-Eintrag nach Impact gruppiert, version regrade zur Nachkorrektur, version release verlangt eine Zusammenfassung
|
||||||
|
|||||||
+18
-3
@@ -67,12 +67,27 @@ frontmatter before anyone drew it:
|
|||||||
| `root: kb` (`entity`, `concept`, `source`, `comparison`) | A page **this instance** writes | The instance | `types/<name>.md.template` plus its `.schema.yaml.template`, adopted by a rename |
|
| `root: kb` (`entity`, `concept`, `source`, `comparison`) | A page **this instance** writes | The instance | `types/<name>.md.template` plus its `.schema.yaml.template`, adopted by a rename |
|
||||||
| `root: repo` (`instruction`), no `base_dir` (`lint-report`), and `type-spec` itself | A stack artifact | The stack | Verbatim |
|
| `root: repo` (`instruction`), no `base_dir` (`lint-report`), and `type-spec` itself | A stack artifact | The stack | Verbatim |
|
||||||
|
|
||||||
A page type-spec's prose, its `## Template` body and its language are therefore the instance's
|
A page type-spec's prose and its `## Template` body are therefore the instance's to rewrite, and
|
||||||
to rewrite — an instance writing its pages in another language simply translates the file, and
|
|
||||||
an upgrade does not take that back. Improvements to a shipped default reach it as an *offered*
|
an upgrade does not take that back. Improvements to a shipped default reach it as an *offered*
|
||||||
migration ([instructions/CONTRACT.md](../instructions/CONTRACT.md#instructionsmigrations)),
|
migration ([instructions/CONTRACT.md](../instructions/CONTRACT.md#instructionsmigrations)),
|
||||||
never by overwriting.
|
never by overwriting.
|
||||||
|
|
||||||
|
**Ownership and language are not the same question here**, and this is the one file in the tree
|
||||||
|
where they come apart. Owning the file means the instance may rewrite any of it; the language it
|
||||||
|
writes in still follows what the line is *for*, per
|
||||||
|
[AGENTS.md § File naming](../AGENTS.md#file-naming):
|
||||||
|
|
||||||
|
| Part of a page type-spec | Audience | Language |
|
||||||
|
|---|---|---|
|
||||||
|
| Authoring guidance, frontmatter table, when to use / not to use | An agent writing a page | The control plane's — English |
|
||||||
|
| The `## Template` body, and the `layout:` titles that head a catalog section | The page itself | The instance's KB language (`kb/CONVENTIONS.md` `language:`) |
|
||||||
|
| Field names, enum values, `dir:` values, `type:` paths | The machine | Neither — identifiers, never translated |
|
||||||
|
|
||||||
|
That is the same prose/identifier cut [kb/CONTRACT.md](../kb/CONTRACT.md#language-and-identifiers)
|
||||||
|
makes *inside* a page, applied one level up. It binds a type-spec an instance writes for itself
|
||||||
|
exactly as it binds the four shipped ones: a new page type is instance-owned end to end, which
|
||||||
|
settles who may change it, not which language each half is written in.
|
||||||
|
|
||||||
**What the stack still requires of the type layer is one line.** There must be a type-spec
|
**What the stack still requires of the type layer is one line.** There must be a type-spec
|
||||||
declaring `name: source` whose schema requires `raw_files:` — the whole `raw/` → `kb/`
|
declaring `name: source` whose schema requires `raw_files:` — the whole `raw/` → `kb/`
|
||||||
provenance path (`sources coverage`, `[^cite-id]` resolution, `kb/provenance.md`) asks
|
provenance path (`sources coverage`, `[^cite-id]` resolution, `kb/provenance.md`) asks
|
||||||
@@ -175,7 +190,7 @@ replace anyway. See `tools/chemenu/blocks.py`.
|
|||||||
| Frontmatter fields, enums, defaults, required-ness | Provenance and citation mechanics | Quality goal and tone |
|
| Frontmatter fields, enums, defaults, required-ness | Provenance and citation mechanics | Quality goal and tone |
|
||||||
| Directory placement and title prefix | Linking mechanics and the orphan check | Naming conventions |
|
| Directory placement and title prefix | Linking mechanics and the orphan check | Naming conventions |
|
||||||
| Body skeleton (template) | The prose/identifier rule | Relationship vocabulary |
|
| Body skeleton (template) | The prose/identifier rule | Relationship vocabulary |
|
||||||
| When to use / not use this type | — | The KB language and its section-heading names |
|
| When to use / not use this type | — | The KB language value, and its section-heading names |
|
||||||
|
|
||||||
If a rule would be identical for every type *and* every instance, it belongs in
|
If a rule would be identical for every type *and* every instance, it belongs in
|
||||||
`kb/CONTRACT.md`. If every instance would answer it differently, it belongs in
|
`kb/CONTRACT.md`. If every instance would answer it differently, it belongs in
|
||||||
|
|||||||
Reference in New Issue
Block a user