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
3.7 KiB
profile, outbound, required_by_stack
| profile | outbound | required_by_stack | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| none |
|
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
## Statusis 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.## Beteiligtecarries 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 tokb/CONTRACT.md§ "Every page should" - a project page with unlinked people in its## Beteiligtesection 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.