I am a Feature.
- I am a Todo.
- I am a Work-Item.
Aktuelle Dings-Todos sollen über die bestehende show sm-Richtung angezeigt und sinnvoll gefiltert werden können.
Die ursprüngliche Idee war ein spezielles Kommando:
dings-gpt show sm todo
Während der Entwicklung wurde dieser Ansatz generalisiert. Todo wird jetzt nicht mehr als Spezialfall behandelt, sondern als normale Klasse/Rolle in der generischen SM2-Listenansicht.
Finale Richtung:
dings-gpt show sm list Todo
dings-gpt show sm list Todo where State=*
dings-gpt show sm list Todo where State=State_New
dings-gpt show sm list Todo where State=State_Started
dings-gpt show sm list Todo where State=State_Done
Dieses Work-Item wurde auf folgendem Branch umgesetzt:
Feature-Branch: 0122-Todo-List
Feature-Design: 300101002.md
Use-Cases: 300101002.use-cases.bash
General-Concepts: All-Dings/0
Dings-System: All-Dings/300000007
Das Use-Case-Skript dokumentiert und testet die wichtigsten menschenlesbaren Kommandos.
Ein Dings ist ein Todo, wenn es explizit oder abgeleitet die Klasse Todo hat.
Typische explizite Markierung:
## Also
- I am a [Todo](60203.md).
Der Bearbeitungsstand eines Todo-Dings wird über eine State-Relation beschrieben:
## About
- My [State](60069.md) is [State_New](60206.md).
- My [State](60069.md) is [State_Started](60207.md).
- My [State](60069.md) is [State_Done](60205.md).
Die aktuell verwendeten Todo-States sind:
60206.md State_New
60207.md State_Started
60205.md State_Done
Ein erledigtes Todo muss seine Todo-Klasse nicht verlieren. Stattdessen kann es weiterhin ein Todo bleiben und über State_Done als erledigt markiert werden.
dings-gpt show sm list Todo
Beispiel-Ausgabe:
[Todo](60203.md):
[Dings-Feature-Md-Embedding](300101001.md)
[Dings-Feature-Sm-Todo-List](300101002.md)
[Dings-Feature-Browse-Graph](300101003.md)
dings-gpt show sm list Todo where State=*
Beispielausgabe:
[Todo](60203.md) where [State](60069.md)=*:
[Dings-Feature-Md-Embedding](300101001.md) [State](60069.md)=[State_New](60206.md)
[Dings-Feature-Sm-Todo-List](300101002.md) [State](60069.md)=[State_Done](60205.md)
[Dings-Feature-Browse-Graph](300101003.md) [State](60069.md)=[State_Done](60205.md)
dings-gpt show sm list Todo where State=State_New
dings-gpt show sm list Todo where State=State_Started
dings-gpt show sm list Todo where State=State_Done
dings-gpt show sm list Todo where *=*
Diese Ausgabe zeigt die direkten persistierten Source-Relationen der passenden Dings. Sie soll in der normalen Ausgabe keine abgeleiteten oder expandierten Predicate-Base-Relationen anzeigen.
Die generische Listenform lautet:
dings-gpt show sm list TARGET
dings-gpt show sm list where PREDICATE=OBJECT
dings-gpt show sm list TARGET where PREDICATE=OBJECT
Bedeutung:
list TARGET
Zeige alle Member von TARGET.
list where PREDICATE=OBJECT
Zeige alle Dings, deren Relation PREDICATE=OBJECT matcht.
list TARGET where PREDICATE=OBJECT
Zeige alle Member von TARGET, bei denen zusätzlich PREDICATE=OBJECT matcht.
Wildcard-Formen werden ebenfalls unterstützt:
dings-gpt show sm list TARGET where PREDICATE=*
dings-gpt show sm list TARGET where *=OBJECT
dings-gpt show sm list TARGET where *=*
Bedeutung:
PREDICATE=*
Matcht beliebige Objects für PREDICATE und zeigt die passenden Werte an.
*=OBJECT
Matcht beliebige Predicates für OBJECT und zeigt die passenden Relationen an.
*=*
Zeigt alle direkten persistierten Source-Relationen der passenden Dings an.
Die CLI akzeptiert die üblichen Dings-Eingabeformen:
DINGS_NUMBER
DINGS_NUMBER.md
DINGS_NAME
DINGS_REF
DINGS_REF_MD
Beispiele:
70000225
70000225.md
Ridley_Scott
[Ridley_Scott](70000225)
[Ridley_Scott](70000225.md)
Die Listenansicht verwendet:
TARGET -> Virtual Dings Mode
PREDICATE -> Virtual Dings Mode
OBJECT -> Concrete Dings Mode
Dieses Work-Item hat auch zur Normalisierung der show sm-Oberfläche beigetragen:
dings-gpt show sm dings TARGET
dings-gpt show sm names-of TARGET [BASE]
dings-gpt show sm list [TARGET] [where PREDICATE=OBJECT]
dings-gpt show sm claims-from CLAIMER [PREDICATE]
Für später reserviert:
dings-gpt show sm claims-about TARGET [PREDICATE]
Das zentrale Use-Case-Testskript ist:
300101002.use-cases.bash
Es deckt unter anderem ab:
- dings-Sicht
- names-of-Sicht
- list Todo
- list Todo where State=...
- list Todo where State=*
- list Todo where *=*
- list where PREDICATE=OBJECT
- claims-from
- reserviertes about / claims-about Verhalten
- erwartete Fehlerfälle
Das Skript schreibt seine Ausgabe nach:
~/Short/300101002-TIME_STAMP-TOP_COMMIT_NUMBER.txt
Das ursprünglich geplante Spezialkommando show sm todo wurde bewusst nicht als hardcodierter Endpunkt umgesetzt.
Stattdessen ist eine allgemeinere und wiederverwendbare SM2-Listenmechanik entstanden.
Der Todo-Use-Case wird jetzt abgedeckt durch:
dings-gpt show sm list Todo
dings-gpt show sm list Todo where State=*
dings-gpt show sm list Todo where State=State_New
dings-gpt show sm list Todo where State=State_Started
dings-gpt show sm list Todo where State=State_Done
Damit ist dieses Work-Item fachlich abgeschlossen und bildet eine gute Grundlage für spätere HLD-/LLD-Dokumentation.