stack: TOC-Scope auf types/ und docs/, Sprachregeln nach AGENTS.md zentralisiert, alle Templates auf Control-Plane-Sprache, --breaking akkumuliert (schliesst #99)
CI / verify (push) Successful in 45s
Release / release (push) Successful in 36s

Files changed:
- AGENTS.md
- CHANGES.md
- ENVIRONMENT.md.template
- SOUL.md
- SOUL.md.template
- USER.md.template
- VERSION
- docs/ownership-and-templates.md
- docs/version-model.md
- instructions/CONTRACT.md
- instructions/dev/doc-pull-through.md
- instructions/dev/stack-close/SKILL.md
- instructions/dev/stack-dev/SKILL.md
- instructions/dev/version-parts.md
- instructions/setup-instance.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- kb/concepts/COLLECTION.md
- kb/sources/COLLECTION.md
- tools/CONTRACT.md
- tools/chemenu/commands/types_cmd.py
- tools/chemenu/commands/version_cmd.py
- tools/chemenu/tests/test_toc.py
- tools/chemenu/tests/test_version_cmd.py
- tools/chemenu/toc.py
- tools/chemenu/version.py
- types/comparison.md
- types/concept.md
- types/entity.md
- types/lint-report.md
- types/source.md
This commit is contained in:
2026-09-15 16:21:02 +02:00
parent c0dc2129bb
commit c64479fe02
31 changed files with 1093 additions and 603 deletions
+26 -28
View File
@@ -26,38 +26,36 @@ renamed or dropped - its authoring rules below are the instance's, its existence
## Types offered
`source` (`tools/wikitool types describe source`). Page titles carry the `Source - ` prefix,
applied automatically by `wikitool new source`. Das Feld `source_type:` wählt die Area - **ohne
Default**: `wikitool new source` verweigert ohne einen expliziten Wert.
applied automatically by `wikitool new source`. The `source_type:` field picks the area - **with
no default**: `wikitool new source` refuses without an explicit value.
| Area | Hält |
|------|------|
| `transcripts/` | Session-Transkripte: mitgeschriebener Dialog zwischen Mensch und Agent, oder zwischen Menschen |
| `analyses/` | Analyse-Output eines Modells über einen Gegenstand - kein Dialog, kein Protokoll, sondern eine eigenständige Einschätzung |
| `articles/` | Externe Artikel und Blogposts, mit `source_url:` |
| `documents/` | Eingelesene Dokumente, Handbücher, Spezifikationen |
| `notes/` | Echte eigene Notizen ohne Dialogform - Cheat Sheets, Merkzettel |
| `trackers/` | Exporte aus einem Issue-Tracker oder vergleichbaren System |
| `unclassified/` | Sichtbares Fach für eine Quelle, deren Kategorie noch nicht feststeht - beratender `lint`-Befund, kein Sammelbecken. Es wieder zu leeren, oder das Enum um einen neuen Wert zu erweitern: [instructions/evolve-subtypes.md](../../instructions/evolve-subtypes.md) |
| Area | Holds |
|------|-------|
| `transcripts/` | Session transcripts: recorded dialogue between a human and an agent, or between humans |
| `analyses/` | A model's analytical output about a subject - not dialogue, not a record, but an assessment in its own right |
| `articles/` | External articles and blog posts, with `source_url:` |
| `documents/` | Ingested documents, manuals, specifications |
| `notes/` | Genuinely own notes in no dialogue form - cheat sheets, reminders |
| `trackers/` | Exports from an issue tracker or comparable system |
| `unclassified/` | The visible slot for a source whose category is not settled yet - an advisory `lint` finding, not a dumping ground. Emptying it again, or extending the enum by a new value: [instructions/evolve-subtypes.md](../../instructions/evolve-subtypes.md) |
Das sind Areas, keine Collections: sie erben diesen Contract und tragen keine eigene
`COLLECTION.md`. Die Zuordnung trifft niemand von Hand - sie steht als `layout:` in
`types/source.md`, und `wikitool new` legt eine neue Seite direkt dort ab. Eine Seite, die
anderswo liegt, meldet `wikitool lint` als *misplaced*; `wikitool move --page "<Titel>"` bringt
sie an ihren berechneten Ort.
These are areas, not collections: they inherit this contract and carry no `COLLECTION.md` of
their own. Nobody assigns them by hand - the mapping is the `layout:` in `types/source.md`, and
`wikitool new` puts a new page straight there. A page sitting anywhere else is reported by
`wikitool lint` as *misplaced*; `wikitool move --page "<title>"` moves it to its computed
location.
**`analysis` gegen `document`:** die Unterscheidung läuft über die Autorschaft, nicht über den
Inhalt. Ein Modell, das über einen Gegenstand urteilt oder ihn zusammenfasst, ohne dass ein
Mensch oder eine Organisation dafür geradesteht, ist `analysis` - unabhängig davon, wie
artikelförmig der Text wirkt. Ein Handbuch, eine Spezifikation, eine Herstellerdoku ist
`document`, auch wenn ein Werkzeug sie generiert hat, solange eine Organisation die Aussage
verantwortet. Die Frage ist also "wer haftet für die Behauptung", nicht "wie liest sich der
Text".
**`analysis` versus `document`:** the distinction runs on authorship, not on content. A model
judging or summarizing a subject with no human or organization answering for it is `analysis` -
however article-shaped the text looks. A manual, a specification, a vendor document is
`document`, even where a tool generated it, as long as an organization is accountable for what
it says. The question is "who is liable for the claim", not "how does the text read".
Solange es diesen Default noch gab, fiel fast alles hierher in `notes/`, weil
`types/source.schema.yaml` `notes` als `default:` gesetzt hatte - der Compiler wählte das
Sammelbecken, sobald niemand widersprach.
22 der 29 damaligen Seiten waren tatsächlich Transkripte, Analysen oder Tracker-Exporte und
wurden per `wikitool touch --set source_type=…` umklassifiziert, bevor die Areas entstanden.
While that default still existed, nearly everything landed here in `notes/`, because
`types/source.schema.yaml` had `notes` as its `default:` - the compiler picked the dumping
ground whenever nobody objected. 22 of the 29 pages there at the time were in fact transcripts,
analyses or tracker exports, and were reclassified with `wikitool touch --set source_type=…`
before the areas existed.
## Provenance rules