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
@@ -0,0 +1,78 @@
|
||||
---
|
||||
profile: none
|
||||
outbound:
|
||||
entities: [see-also]
|
||||
concepts: [see-also]
|
||||
sources: [see-also]
|
||||
gtd: [see-also]
|
||||
required_by_stack: 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](../CONTRACT.md) for the rules the stack enforces - linking mechanics,
|
||||
provenance, citation, the confidence machinery - and
|
||||
[kb/CONVENTIONS.md](../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.
|
||||
Reference in new issue
Block a user