Files
chemenu/types/source.schema.yaml
T
torben f4353ccfb3
CI / verify (push) Successful in 52s
Release / release (push) Successful in 35s
raw accept: Datums-Shard statt Typverzeichnis, fidelity/authority am Drop-Punkt (Teil 1/3, #67)
Files changed:
- .gitignore
- CHANGES.md
- VERSION
- instructions/bootstrap.md
- instructions/wiki-ingest/SKILL.md
- kb/CONTRACT.md
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/chemenu/commands/dist_cmd.py
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/new_page.py
- tools/chemenu/commands/raw_cmd.py
- tools/chemenu/commands/touch.py
- tools/chemenu/lint_core.py
- tools/chemenu/tests/test_dist_cmd.py
- tools/chemenu/tests/test_docs_verify.py
- tools/chemenu/tests/test_lint.py
- tools/chemenu/tests/test_new_page.py
- tools/chemenu/tests/test_provenance.py
- tools/chemenu/tests/test_raw_cmd.py
- tools/chemenu/tests/test_touch.py
- tools/chemenu/tests/test_type_resolver.py
- tools/chemenu/type_resolver.py
- types/source.md
- types/source.schema.yaml
2026-09-08 21:42:27 +02:00

86 lines
2.8 KiB
YAML

# YAML Schema for source type
type: object
properties:
type:
type: string
const: "types/source.md"
description: Must reference the source type-spec
source_type:
type: string
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
minLength: 1
raw_files:
type: array
items:
type: string
description: List of raw file paths this source covers
minItems: 1
fidelity:
type: string
enum: [verbatim, published, secondhand, nontextual, unknown]
description: >-
How faithful the capture is to what was actually said or shown. No
default - a capture field, fixed at `raw accept`/`new source` time and
never guessed (Gitea #67). `unknown` is backfill-only: `raw accept` and
`new source` refuse it, only `wikitool touch` (on a page predating this
rule) may write it. Deliberately absent from `required:` so an existing
instance's source pages keep validating without it.
authority:
type: string
enum: [normative, reporting, opinion, unknown]
description: >-
What the material is entitled to claim about its subject - independent
of `fidelity`, which asks how faithfully it was captured. Same capture,
no-default, backfill-only-`unknown` rules as `fidelity` (Gitea #67).
Deliberately absent from `required:` for the same reason.
source_url:
type: [string, "null"]
description: Upstream URL for external sources
format: uri
source_language:
type: string
pattern: "^[a-z]{2}$"
description: >-
ISO 639-1 code for the language of the raw material, e.g. de, en, fr.
The page itself is written in the KB language regardless; this records
what had to be translated. Optional - absent on pages predating the rule.
date:
type: string
format: date
pattern: "^\\d{4}-\\d{2}-\\d{2}$"
description: Publication or creation date in YYYY-MM-DD format
tags:
type: array
items:
type: string
description: Navigation tags for categorization
entities:
type: array
items:
type: string
description: Entity titles mentioned in this source
concepts:
type: array
items:
type: string
description: Concept titles mentioned in this source
summary:
type: string
description: 1-line summary for index.md
minLength: 1
required:
- type
- source_type
- author
- raw_files
- date
- summary
additionalProperties: false