stack: Typ project und Collection kb/gtd/ (#123)
Files changed: - CHANGES.md - README.md - VERSION - kb/CONTRACT.md - kb/CONVENTIONS.md - kb/entities/COLLECTION.md - kb/gtd/COLLECTION.md - kb/gtd/INDEX.md - kb/index.md - tools/CONTRACT.md - tools/chemenu/kb_collections.py - tools/chemenu/tests/test_conventions.py - tools/chemenu/tests/test_docs_verify.py - tools/chemenu/tests/test_kb_collections.py - tools/chemenu/tests/test_new_page.py - tools/chemenu/tests/test_type_resolver.py - tools/chemenu/tests/test_types_cmd.py - types/project.md - types/project.schema.yaml - types/type-spec.md
This commit is contained in:
1 parent
3c9d669729
commit
ee24b6e5b8
20 files changed
+507
-38
No files matched your search
+14
-8
@@ -67,7 +67,7 @@ frontmatter before anyone drew it:
|
||||
|
||||
| Type-spec | Describes | Owned by | Ships as |
|
||||
|---|---|---|---|
|
||||
| `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`, `project`) | 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`/`type-guidance` themselves | A stack artifact | The stack | Verbatim |
|
||||
|
||||
A page type-spec's frontmatter configuration and its `## Template` body are therefore the
|
||||
@@ -104,13 +104,19 @@ exactly as it binds the four shipped ones: a new page type is instance-owned end
|
||||
settles who may change it, not which language each half is written in - and it may declare its
|
||||
own `guidance:` file if it wants the same shape, though nothing requires it to.
|
||||
|
||||
**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/`
|
||||
provenance path (`sources coverage`, `[^cite-id]` resolution, `kb/provenance.md`) asks
|
||||
`page.kind == "source"`, so without it nothing resolves. `docs verify` checks exactly that and
|
||||
nothing beyond it: not the directory, not the title prefix, not a word of the prose. Which
|
||||
collection is stack-required is *derived* from where that type writes rather than listed
|
||||
separately, so renaming it stays consistent instead of tripping a hardcoded name.
|
||||
**What the stack still requires of the type layer is one line per type, and there are two of
|
||||
them today.** There must be a type-spec declaring `name: source` whose schema requires
|
||||
`raw_files:` — the whole `raw/` → `kb/` provenance path (`sources coverage`, `[^cite-id]`
|
||||
resolution, `kb/provenance.md`) asks `page.kind == "source"`, so without it nothing resolves.
|
||||
There must equally be one declaring `name: project` whose schema requires `state:` — the weekly
|
||||
review asks `page.kind == "project"` and reads `state:` to tell an ongoing initiative with no
|
||||
next action from one that is deliberately paused or over, so without it nothing to review
|
||||
resolves either. `docs verify` checks exactly that, for each, and nothing beyond it: not the
|
||||
directory, not the title prefix, not a word of the prose. Which collection is stack-required is
|
||||
*derived* from where that type writes rather than listed separately, so renaming it stays
|
||||
consistent instead of tripping a hardcoded name. The anchor stays this small on purpose — the
|
||||
page type-specs belong to the instance, so anything more would be the stack reaching into a file
|
||||
it does not own (`tools/chemenu/kb_collections.py`'s `STACK_REQUIRED_TYPES`).
|
||||
|
||||
**Quality goal:** a type-spec is the single source of truth for its type. No structural fact
|
||||
about a page type may be restated anywhere else — not in `AGENTS.md`, not in a skill, not in
|
||||
|
||||
Reference in new issue
Block a user