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,100 @@
|
||||
---
|
||||
type: types/type-spec.md
|
||||
name: project
|
||||
description: Structured type for a committed initiative (a GTD project) - goal, participants, durable status, open loops
|
||||
schema: types/project.schema.yaml
|
||||
subtype_field: responsibility
|
||||
base_dir: gtd
|
||||
page_ref_fields: [related, sources]
|
||||
layout:
|
||||
haus: {dir: haus, title: Haus}
|
||||
finanzen: {dir: finanzen, title: Finanzen}
|
||||
technik: {dir: technik, title: Technik}
|
||||
---
|
||||
|
||||
# Project
|
||||
|
||||
This instance's configuration for the `project` type: its frontmatter fields as this schema
|
||||
requires them, and the page skeleton `wikitool new project` scaffolds. `project` is instance-owned
|
||||
end to end - it declares no `guidance:`, so this file's own prose (below) carries its authoring
|
||||
contract, the same way a type an instance invents for itself always does.
|
||||
## When to use
|
||||
|
||||
- A committed initiative in the GTD sense: something with a goal, an end state, and open loops -
|
||||
a household project, a piece of paid work, a piece of volunteer work.
|
||||
|
||||
## When NOT to use
|
||||
|
||||
- **The artifact the initiative is about.** `project` names the *Vorhaben* - the undertaking - not
|
||||
the thing it produces or touches. A codebase, a deployed system, a tool: that is `entity` with
|
||||
`entity_type: codebase` (or `system`/`tool`/`technology`). "Ship Chemenu 7.0" is a `project`;
|
||||
Chemenu the codebase is an `entity`. The two are homonyms, not the same page under two types -
|
||||
see `kb/entities/COLLECTION.md` for the artifact side of that line.
|
||||
- A bare task or a day-to-day commitment with no project shape of its own - that lives in the
|
||||
task provider, not here (`kb/` never mirrors the tracker's momentary state, see below).
|
||||
|
||||
## Frontmatter
|
||||
|
||||
| Field | Required | Use |
|
||||
|---|---:|---|
|
||||
| `type` | Yes | `types/project.md` |
|
||||
| `state` | Yes | One of: active, dormant, completed, abandoned - a durable characterization, not the tracker's momentary state (see `## Status` below) |
|
||||
| `responsibility` | Yes | `subtype_field`, one of: haus, finanzen, technik - selects the area under `kb/gtd/` |
|
||||
| `created` / `modified` | Yes | As everywhere |
|
||||
| `related` | No | Titles of related pages (entities, concepts, sources, other projects) |
|
||||
| `sources` | No | Titles of the source pages backing this page's claims |
|
||||
| `provenance` | Yes | sourced, general or mixed - `general` is the common case: a project page is usually written by the operator from their own participation, not from an ingested source |
|
||||
| `summary` | Yes | One-liner for `kb/index.md` |
|
||||
|
||||
## Authoring guidance
|
||||
|
||||
- **`## Status` is a durable characterization, never a momentary state.** "Pilotbetrieb seit
|
||||
2026-03, zwei Abteilungen angebunden" - not "warte auf Freigabe". The page never summarizes the
|
||||
task list; the momentary state lives in the tracker, and the two are joined only by name, never
|
||||
synced (`AGENTS.md` invariant 8 - one truth about "status").
|
||||
- **`## Beteiligte` carries mentions, not links.** One to two lines per person, in prose, with
|
||||
**no `[[wikilink]]` and no page of their own.** A person earns a page only once they matter for
|
||||
the *knowledge*, independent of this project - at that point the mention becomes an edge with a
|
||||
participation label. This is a deliberate, named exception to `kb/CONTRACT.md` § "Every page
|
||||
should" (link to the entities it mentions): it is held by this rule, not by a checker, so read
|
||||
a page here with no person-links as conforming, not as incomplete.
|
||||
|
||||
## Template
|
||||
|
||||
The block below is page material, so it is written in this instance's KB language
|
||||
(`kb/CONVENTIONS.md` `language:`) rather than in the control plane's English - its headings
|
||||
become the headings of every page `wikitool new project` scaffolds.
|
||||
|
||||
```markdown
|
||||
# {name}
|
||||
|
||||
**Status:** {state|capitalize}
|
||||
**Bereich:** {responsibility|capitalize}
|
||||
|
||||
## Ziel
|
||||
|
||||
TODO: Was ist der angestrebte Endzustand? Woran erkennt man, dass dieses Vorhaben abgeschlossen ist?
|
||||
|
||||
## Kontext
|
||||
|
||||
TODO: Warum jetzt, warum überhaupt - der Hintergrund, der nicht aus dem Titel folgt.
|
||||
|
||||
## Beteiligte
|
||||
|
||||
TODO: Ein bis zwei Zeilen je Person - Erwähnung im Fließtext, kein Wikilink, keine eigene Seite.
|
||||
|
||||
## Status
|
||||
|
||||
TODO: Dauerhafte Charakterisierung des aktuellen Stands - keine Aufgabenliste, kein Momentzustand.
|
||||
|
||||
## Entscheidungen
|
||||
|
||||
TODO: Festlegungen, die dieses Vorhaben getroffen hat, und warum.
|
||||
|
||||
## Gelerntes
|
||||
|
||||
TODO: Was sich im Verlauf gezeigt hat.
|
||||
```
|
||||
|
||||
The value behind `**Status:**` and `**Bereich:**` stays the English enum value - that is what
|
||||
`search --field` filters on.
|
||||
Reference in new issue
Block a user