move: source_type: Default streichen, unclassified als sichtbares Fach, layout: fuer source (schliesst #66)
Files changed: - CHANGES.md - VERSION - instructions/dev/corpus-policy.md - instructions/wiki-ingest/SKILL.md - kb/index.md - kb/log.md - kb/sources/COLLECTION.md - kb/sources/INDEX.md - kb/sources/Source - AMD Powermanagement CPU.md - kb/sources/Source - Arch Linux Cheat Sheet.md - kb/sources/Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04.md - kb/sources/Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31.md - kb/sources/Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31.md - kb/sources/Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31.md - kb/sources/Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31.md - kb/sources/Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31.md - kb/sources/Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31.md - kb/sources/Source - Conversation - Nightly Drift-Check Workflow and doctor's Bootstrap Gap Session 2026-08-31.md - kb/sources/Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31.md - kb/sources/Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30.md - kb/sources/Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31.md - kb/sources/Source - Copilot Skill Restructure Instructions.md - kb/sources/Source - Docker Cheatsheet.md - kb/sources/Source - Gitea Issue 41 - Issue Management and Label Scheme 2026-09-02.md - kb/sources/Source - Gitea Issues 62-63 - status-incoming Label Introduction 2026-09-04.md - kb/sources/Source - LLM Improvements Codex Analysis.md - kb/sources/Source - LLM Improvements Production Agent Gaps 2026.md - kb/sources/Source - LLM Improvements Sonnet Analysis.md - kb/sources/Source - LLM Wiki Pattern.md - kb/sources/Source - LLM Wiki v2.md - kb/sources/Source - MCP Read Server Implementation Session 2026-09-02.md - kb/sources/Source - Private-Instance Merge Correction and Issue 30 Session 2026-09-01.md - kb/sources/Source - Public Release, Corpus Purge and History Squash Session 2026-09-01.md - kb/sources/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md - kb/sources/Source - Version Part Nomenclature and Breaking Change Gate Session 2026-09-02.md - kb/sources/Source - Wine.md - kb/sources/Source - qmd - GitHub Repository.md - kb/sources/analyses/Source - Copilot Skill Restructure Instructions.md - kb/sources/analyses/Source - LLM Improvements Codex Analysis.md - kb/sources/analyses/Source - LLM Improvements Production Agent Gaps 2026.md - kb/sources/analyses/Source - LLM Improvements Sonnet Analysis.md - kb/sources/articles/Source - AMD Powermanagement CPU.md - kb/sources/articles/Source - LLM Wiki Pattern.md - kb/sources/articles/Source - LLM Wiki v2.md - kb/sources/documents/Source - qmd - GitHub Repository.md - kb/sources/notes/Source - Arch Linux Cheat Sheet.md - kb/sources/notes/Source - Docker Cheatsheet.md - kb/sources/notes/Source - Wine.md - kb/sources/trackers/Source - Gitea Issue 41 - Issue Management and Label Scheme 2026-09-02.md - kb/sources/trackers/Source - Gitea Issues 62-63 - status-incoming Label Introduction 2026-09-04.md - kb/sources/transcripts/Source - Conversation - AGENTS.md Skill Restructuring Session 2026-08-04.md - kb/sources/transcripts/Source - Conversation - Auto Mode and Tool Choice Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Comma Bug Budget Refund and Lint Report Path Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - ENVIRONMENT.md as an Optional Third Session-Level File Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Gate Counting and Measured Calibration Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Hardening the Test Suite Against Silent Environment Dependencies Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Issue Triage Labels and TODO Retirement Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Nightly Drift-Check Workflow and doctor's Bootstrap Gap Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Two Round-Trip Defects Found by an Ingest Session 2026-08-31.md - kb/sources/transcripts/Source - Conversation - Versioning CI-CD and Content Migration Session 2026-08-30.md - kb/sources/transcripts/Source - Conversation - Write-Once Frontmatter Fields and touch --set Session 2026-08-31.md - kb/sources/transcripts/Source - MCP Read Server Implementation Session 2026-09-02.md - kb/sources/transcripts/Source - Private-Instance Merge Correction and Issue 30 Session 2026-09-01.md - kb/sources/transcripts/Source - Public Release, Corpus Purge and History Squash Session 2026-09-01.md - kb/sources/transcripts/Source - Publish-Remote Gate and Issue Triage Session 2026-09-01.md - kb/sources/transcripts/Source - Version Part Nomenclature and Breaking Change Gate Session 2026-09-02.md - tools/CONTRACT.md - tools/chemenu/lint_core.py - tools/chemenu/tests/conftest.py - tools/chemenu/tests/test_lint.py - tools/chemenu/tests/test_new_page.py - tools/chemenu/tests/test_provenance.py - tools/chemenu/tests/test_touch.py - tools/chemenu/tests/test_type_resolver.py - tools/chemenu/tests/test_xref.py - types/source.md - types/source.schema.yaml - types/type-spec.md - work/reclassify-source-types/README.md - work/reclassify-source-types/plan.md
This commit is contained in:
+10
-1
@@ -7,6 +7,14 @@ subtype_field: source_type
|
||||
base_dir: sources
|
||||
title_prefix: "Source - "
|
||||
page_ref_fields: [entities, concepts]
|
||||
layout:
|
||||
transcript: {dir: transcripts, title: Transkripte}
|
||||
analysis: {dir: analyses, title: Analysen}
|
||||
article: {dir: articles, title: Artikel}
|
||||
document: {dir: documents, title: Dokumente}
|
||||
notes: {dir: notes, title: Notizen}
|
||||
tracker: {dir: trackers, title: Tracker-Exporte}
|
||||
unclassified: {dir: unclassified, title: Unklassifiziert}
|
||||
---
|
||||
|
||||
# Source
|
||||
@@ -31,7 +39,7 @@ page_ref_fields: [entities, concepts]
|
||||
| Feld | Pflicht | Verwendung |
|
||||
|---|---:|---|
|
||||
| `type` | Ja | `types/source.md` |
|
||||
| `source_type` | Ja | Eines von: article, document, notes, spec, image |
|
||||
| `source_type` | Ja | Eines von: transcript, analysis, article, document, notes, tracker, unclassified - kein Default, siehe unten |
|
||||
| `author` | Ja | Urheber des Quellmaterials |
|
||||
| `raw_files` | Ja | Raw-Dateipfade, die diese Quelle **besitzt** - siehe "Eine Raw-Datei, ein Besitzer" unten |
|
||||
| `source_url` | Nein | Ursprungs-URL bei externen Quellen |
|
||||
@@ -45,6 +53,7 @@ page_ref_fields: [entities, concepts]
|
||||
## Autorenanweisungen
|
||||
|
||||
- Der Titel beginnt mit "Source - ", gefolgt vom Namen der Quelle
|
||||
- `source_type` hat **keinen Default** - `wikitool new source` verweigert ohne einen expliziten Wert. Ist die Kategorie unklar, `unclassified` setzen statt zu raten; das ist ein sichtbares Katalogfach mit beratendem `lint`-Befund, kein Sammelbecken. Was `analysis` von `document` trennt und welche Area welchen Wert hält: [kb/sources/COLLECTION.md](../kb/sources/COLLECTION.md)
|
||||
- `raw_files` listet jede Raw-Datei, die diese Quelle abdeckt (eine Source-Seite pro logischer Quelle, nicht pro Datei)
|
||||
- Bei externen Artikeln immer `source_url` auf die Ursprungs-URL setzen
|
||||
- `source_language` auf die Sprache des Rohmaterials setzen, nicht auf die der Seite
|
||||
|
||||
@@ -7,9 +7,12 @@ properties:
|
||||
description: Must reference the source type-spec
|
||||
source_type:
|
||||
type: string
|
||||
enum: [article, document, notes, spec, image]
|
||||
default: notes
|
||||
description: The category of source material
|
||||
enum: [transcript, analysis, article, document, notes, tracker, unclassified]
|
||||
description: >-
|
||||
The category of source material. No default - the machine must not pick
|
||||
the vaguest value on the author's behalf (Gitea #66). Use `unclassified`
|
||||
when the category is genuinely unclear; it is a visible, advisory-lint
|
||||
catalog slot, not a silent fallback.
|
||||
author:
|
||||
type: string
|
||||
description: Author of the source material
|
||||
|
||||
+20
-6
@@ -102,12 +102,26 @@ under `instructions/`, outside the `raw/` -> `kb/` provenance rules entirely.
|
||||
`layout` is what turns a subtype field into areas, and it is optional in both directions on
|
||||
purpose. Declaring one makes every instance land in a directory named by its subtype and gives
|
||||
that directory its index title; leaving it off keeps the collection flat, however many subtypes
|
||||
the schema allows. The choice is whether the split *helps* - the catalog shards per area, so
|
||||
areas are how a large collection stays readable, but a subtype whose values are lopsided
|
||||
produces one big area and a handful of splinters and is better left flat (`source` is the worked
|
||||
example, `concept` the opposite one). `wikitool lint` will say which case a collection is in
|
||||
once it grows past the shard threshold; a `dir:` must be a single path segment, because an area
|
||||
is as deep as a page goes.
|
||||
the schema allows (`comparison` is the worked example - it has no `subtype_field` at all, so
|
||||
there is nothing for a `layout` to key on). The choice for a type that *does* carry a subtype
|
||||
field is whether the split *helps*: the catalog shards per area, so areas are how a large
|
||||
collection stays readable, but a field whose values are lopsided - one dominant value plus a
|
||||
handful of rare ones - would produce one big area and a scatter of splinters, which is not an
|
||||
improvement. `wikitool lint`'s `unsharded_collections` finding says which case a collection is
|
||||
in once it grows past the shard threshold, and whether a `layout:` is already declared for the
|
||||
split it recommends.
|
||||
|
||||
A lopsided field is a reason to fix the field, not a reason to leave `layout` off forever -
|
||||
`source` was exactly this case (Gitea #66): 25 of 29 pages carried one value because the schema
|
||||
handed out that value as a *default* whenever nobody chose one, not because the material was
|
||||
genuinely that uniform. Once the default was removed and the pages reclassified by what they
|
||||
actually were, the field split into six areas with none of them small. Declare `layout` for
|
||||
*every* enum value once it does: a value missing from it still gets a directory (`subtype_dir`
|
||||
falls back to naively pluralizing the value's own name), but that directory carries no title in
|
||||
`wiki/index.md`, which is a silent gap rather than a deliberate flat collection. Leaving a whole
|
||||
type's `layout` off is for the case in the paragraph above - no subtype field to key on at all
|
||||
- not for a subtype field one has simply not gotten around to mapping. A `dir:` must be a single
|
||||
path segment, because an area is as deep as a page goes.
|
||||
|
||||
A type-spec **without `base_dir` is a contract only** and cannot be instantiated;
|
||||
`wikitool new <name>` refuses it. `lint-report` is the worked example: its artifacts are
|
||||
|
||||
Reference in New Issue
Block a user