Project Michael Dings Impressum Login

Dings-Feature-Sm-Todo-List

I am a Feature.

Also

- I am a Todo.

- I am a Work-Item.

About

Goal

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

Work-Context

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.

Meaning

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.

Finale CLI Richtung

Alle Todos anzeigen

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)

Alle Todos mit State anzeigen

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)

Todos nach State filtern

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

Direkte Relationen der Todos anzeigen

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.

Generalisierte List Semantik

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.

Resolver Direction

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

Related Show-Sm Views

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]

Tests

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

Ergebnis

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.