Files
chemenu/kb/gtd/COLLECTION.md
T
torben ee24b6e5b8
CI / verify (push) Successful in 45s
Release / release (push) Successful in 36s
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
2026-09-19 21:13:24 +02:00

3.7 KiB

profile, outbound, required_by_stack
profile outbound required_by_stack
none
entities concepts sources gtd
see-also
see-also
see-also
see-also
true

kb/gtd/ - Collection Contract

One page per committed initiative (a project in the GTD sense): the goal, the participants, the durable status, the open loops. This is the half of Muster 4 that kb/ owns - the other half, the moment-to-moment task list, lives in the task tracker and is joined to a page here only by name (AGENTS.md invariant 8, § "Two truths about status are forbidden").

Quality goal: a page here should still make sense once the initiative is over. A reader should come away knowing what was attempted, who was in it, what was decided, and what was learned - not a snapshot of what was still open at some point in time.

Inherits kb/CONTRACT.md for the rules the stack enforces - linking mechanics, provenance, citation, the confidence machinery - and kb/CONVENTIONS.md for what this instance decided: language, naming forms, tone, relationship labels, the hedging rule. Neither is restated here.

This collection is required_by_stack. A type-spec declaring name: project whose schema requires state: must exist (types/type-spec.md § "What the stack still requires of the type layer"), and kb/gtd/ is whichever collection that type writes into - derived, not hardcoded, so renaming it stays consistent instead of tripping a stale name.

Types offered

project (tools/wikitool types describe project). The responsibility: field selects the area:

Area Holds
haus/ Household initiatives
finanzen/ Financial initiatives
technik/ Technical initiatives outside any tracked codebase's own scope

These are areas, not collections: they inherit this contract and carry no COLLECTION.md of their own. The initial three values are this instance's own starting vocabulary (types/project.md § Frontmatter) - not a stack requirement, and free to extend.

Two rules unique to this collection

  • ## Status is durable, never a momentary state (D7). The page never summarizes the task list. "Pilotbetrieb seit 2026-03, zwei Abteilungen angebunden" is a status; "warte auf Freigabe" is a tracker state and does not belong here. The join between a page and its tracker project happens at read time, over the normalized title, and is never stored.
  • ## Beteiligte carries mentions, not links (D28). One to two lines per person, in prose, with no [[wikilink]] and no page of their own. This is a deliberate, named exception to kb/CONTRACT.md § "Every page should" - a project page with unlinked people in its ## Beteiligte section is conforming, not incomplete. A person earns their own page, and the mention becomes an edge, only once they matter for the knowledge independent of this one initiative.

Authorised labels

Only see-also is authorised in every direction for now. The vocabulary a participation edge (person -> project) would use is a deliberate later addition, not an oversight - adding it is a collection-contract change made when that label exists, not a way around a refusal.

Outbound linking

A project page links to the entities and concepts its initiative actually touches - the codebase it ships, the system it changes, the concept it applies - and to other project pages it depends on or was split from.

What does not belong here

  • A summary of the tracker's current task list. The tracker owns tasks; this page owns the initiative's durable memory.
  • A person's own page reached from ## Beteiligte - see above.
  • An initiative's artifact - the codebase, system or tool it is about. That is entity (kb/entities/COLLECTION.md), a different page under a different type.