Chemenu 2.1.0 - deterministischer Wissenskompiler
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# YAML Schema for type-spec documents
|
||||
type: object
|
||||
properties:
|
||||
type:
|
||||
type: string
|
||||
description: Path to parent type-spec or self-reference
|
||||
pattern: "^types/.*\\.md$"
|
||||
name:
|
||||
type: string
|
||||
description: Short human-facing type name
|
||||
minLength: 1
|
||||
pattern: "^[a-z][a-z0-9-]*$"
|
||||
description:
|
||||
type: string
|
||||
description: Retrieval description for this type contract
|
||||
minLength: 10
|
||||
schema:
|
||||
type: [string, "null"]
|
||||
description: Path to schema file or null
|
||||
pattern: "^types/.*\\.schema\\.yaml$|^null$"
|
||||
subtype_field:
|
||||
type: [string, "null"]
|
||||
description: Name of the frontmatter field on instances of this type that carries its subtype/category (e.g. entity_type), or null/omitted if this type has no subtype field
|
||||
pattern: "^[a-z][a-z0-9_]*$"
|
||||
layout:
|
||||
type: object
|
||||
description: >-
|
||||
Optional map of subtype value -> {dir, title}, declaring where instances
|
||||
of each subtype are written under wiki/ and what section title/order to
|
||||
use in wiki/index.md. Only types with subtype-driven directory
|
||||
placement (e.g. entity) need this; omit for types with a single flat
|
||||
directory.
|
||||
additionalProperties:
|
||||
type: object
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
minLength: 1
|
||||
title:
|
||||
type: string
|
||||
minLength: 1
|
||||
required:
|
||||
- dir
|
||||
- title
|
||||
additionalProperties: false
|
||||
base_dir:
|
||||
type: string
|
||||
description: >-
|
||||
Directory, relative to the wiki root (wiki/), where instances of this
|
||||
type are written - e.g. `entities`. Required on every instantiable
|
||||
type; omit only for types that are never instantiated as pages (e.g.
|
||||
type-spec itself). Combined with `layout:` for subtype-driven
|
||||
placement, giving wiki/<base_dir>/<layout[subtype].dir>/<Title>.md.
|
||||
pattern: "^[a-z][a-z0-9/_-]*$"
|
||||
title_prefix:
|
||||
type: string
|
||||
description: >-
|
||||
Optional prefix prepended to a page's title/filename at scaffold time
|
||||
(e.g. `Source - ` for source pages). Defaults to no prefix.
|
||||
minLength: 1
|
||||
page_ref_fields:
|
||||
type: array
|
||||
description: >-
|
||||
Frontmatter fields on instances of this type whose entries are wiki page
|
||||
titles (e.g. `related`, `sources`, `entities`). `wikitool lint` checks
|
||||
every entry resolves to an existing page, and `wikitool rename`/`rm`
|
||||
rewrite them. Declared here rather than hardcoded in Python so a new
|
||||
type needs no code change. Omit for types with no page-reference fields.
|
||||
items:
|
||||
type: string
|
||||
pattern: "^[a-z][a-z0-9_]*$"
|
||||
required:
|
||||
- type
|
||||
- name
|
||||
- description
|
||||
- schema
|
||||
additionalProperties: false
|
||||
Reference in New Issue
Block a user