Files changed: - CHANGES.md - VERSION - instructions/gtd-weekly-review/SKILL.md - instructions/link-taxonomy.md - kb/entities/COLLECTION.md - kb/gtd/COLLECTION.md - types/project.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
92 lines
4.6 KiB
Markdown
92 lines
4.6 KiB
Markdown
---
|
|
profile: none
|
|
outbound:
|
|
entities: [involves, owned-by, 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 only once
|
|
they matter for the knowledge independent of this one initiative. From then on the exception
|
|
no longer covers them: the mention stays, gains a `[[wikilink]]`, and the project page - this
|
|
one, not the person's - carries the edge (see Authorised labels).
|
|
|
|
## Authorised labels
|
|
|
|
Participation is written on the project page, pointing at the person or organization:
|
|
`[Projekt] involves [Person]`. The page is where "who is involved?" gets asked, and a page's own
|
|
links block shows only the edges it carries. Two labels are authorised for it, drawn from
|
|
[instructions/link-taxonomy.md](../../instructions/link-taxonomy.md) § Operational:
|
|
|
|
- `involves` - takes part, role not stated. The default for a household initiative.
|
|
- `owned-by` - the one who answers for the initiative's existence and decisions; the inverse of
|
|
`owns`, which a person page may still carry independently.
|
|
|
|
The catalogue also holds the RACI labels `staffed-by`, `consults` and `informs`. This instance
|
|
does not authorise them - its initiatives are too small for the distinction to earn its upkeep -
|
|
but an instance tracking client work adds them here, a deliberate contract change like any other.
|
|
|
|
Every other direction is `see-also` only for now. Adding a label is a collection-contract change,
|
|
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.
|