kimal3 0.6.5 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -4
- package/claude-plugins/.claude-plugin/marketplace.json +2 -1
- package/claude-plugins/README.md +2 -0
- package/claude-plugins/kimal3-logo/.claude-plugin/plugin.json +1 -1
- package/claude-plugins/kimal3-logo/hooks/app-oeffnen.ts +37 -9
- package/claude-plugins/kimal3-logo/hooks/register.tsx +1 -1
- package/claude-plugins/kimal3-plan/.claude-plugin/plugin.json +7 -0
- package/claude-plugins/kimal3-plan/hooks/erinnerung.ts +83 -0
- package/claude-plugins/kimal3-plan/hooks/fehlerzeile.ts +41 -0
- package/claude-plugins/kimal3-plan/hooks/hooks.json +1 -0
- package/claude-plugins/kimal3-plan/hooks/lauf.ts +143 -0
- package/claude-plugins/kimal3-plan/hooks/lebenszeichen.ts +197 -0
- package/claude-plugins/kimal3-plan/hooks/ordner.ts +141 -0
- package/claude-plugins/kimal3-plan/hooks/register.tsx +22 -0
- package/claude-plugins/kimal3-plan/hooks/spec-text.ts +45 -0
- package/claude-plugins/kimal3-plan/types/index.d.ts +10 -0
- package/coach/de/kimal3-coach.md +41 -1
- package/coach/en/kimal3-coach.md +41 -1
- package/dist/argumente.js +12 -0
- package/dist/atomar.js +22 -0
- package/dist/befehle/einrichten.js +4 -4
- package/dist/befehle/login.js +2 -2
- package/dist/befehle/plan-hoch.js +8 -0
- package/dist/befehle/plan-melde.js +105 -0
- package/dist/befehle/plan-senden.js +149 -0
- package/dist/befehle/plan.js +45 -10
- package/dist/befehle/projekt-verbinden.js +141 -0
- package/dist/befehle/skill-install.js +2 -2
- package/dist/befehle-katalog-en.js +6 -6
- package/dist/befehle-katalog.js +8 -7
- package/dist/befehlswoerter.js +9 -0
- package/dist/einstellungen-schreiben.js +1 -1
- package/dist/kimal3.js +22 -0
- package/dist/meldungen-speicher.js +189 -0
- package/dist/{logo-ablegen.js → mods-ablegen.js} +29 -18
- package/dist/plugins-mischen.js +7 -2
- package/dist/projekt-ordner.js +189 -0
- package/dist/texte/einrichten.js +3 -1
- package/dist/texte/meldungen.js +127 -0
- package/dist/texte/plan.js +42 -22
- package/dist/texte/skill.js +12 -12
- package/package.json +1 -1
- package/skill/commands/k3feierabend.md +29 -0
- package/skill/commands/k3plan.md +167 -213
- package/skill/en/commands/k3plan.md +174 -222
- package/skill/en/commands/k3show.md +3 -1
- package/skill/en/commands/k3wrapup.md +28 -0
package/skill/commands/k3plan.md
CHANGED
|
@@ -1,122 +1,107 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Die Specs gegen den Code prüfen und
|
|
2
|
+
description: Die Specs gegen den Code prüfen und jede Abweichung dem Board in der App melden
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
<!-- kimal3:erzeugt — diese Datei wird von `kimal3 skill install` gepflegt und bei
|
|
6
6
|
jedem Update ueberschrieben. Eigene Aenderungen gehen dabei verloren; wer sie
|
|
7
7
|
behalten will, kopiert die Datei unter einem anderen Namen. -->
|
|
8
|
-
# Planung prüfen und
|
|
8
|
+
# Planung prüfen und melden
|
|
9
9
|
|
|
10
10
|
## 1. Wozu
|
|
11
11
|
|
|
12
|
-
Du prüfst die User Stories in den Specs dieses Projekts gegen den Code und
|
|
13
|
-
|
|
14
|
-
„Planung"), was offen ist, was auf seinen
|
|
15
|
-
„Passt" oder „Passt nicht".
|
|
12
|
+
Du prüfst die User Stories in den Specs dieses Projekts gegen den Code und **meldest jede
|
|
13
|
+
Abweichung einzeln** an die App — nie den Code, und seit Fassung 0.7.0 keine ganze Datei mehr. Dort
|
|
14
|
+
sieht der Mensch auf der Projektseite (Reiter „Planung", das Board), was offen ist, was auf seinen
|
|
15
|
+
Test wartet und was fertig ist, und urteilt mit „Passt" oder „Passt nicht".
|
|
16
16
|
|
|
17
|
-
Arbeite die Abschnitte der Reihe nach ab. Die Regeln (Abschnitt 5) und
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
Arbeite die Abschnitte der Reihe nach ab. Die Regeln (Abschnitt 5) und die Meldungen (Abschnitt 6)
|
|
18
|
+
brauchst du schon ab Abschnitt 2 — lies sie zuerst. Was ein Rückgabewert von `kimal3` heißt, steht
|
|
19
|
+
in **`~/.claude/skills/kimal3/SKILL.md`, Abschnitt „Rückgabewerte"**; diese Datei wiederholt es
|
|
20
|
+
nicht.
|
|
21
21
|
|
|
22
|
-
🔑 **`/k3plan` prüft, ordnet ein und
|
|
22
|
+
🔑 **`/k3plan` prüft, ordnet ein und meldet — es baut nichts.** Was nachzubessern ist, steht
|
|
23
23
|
danach als Befund an der Story; gebaut wird, wenn der Mensch es sagt.
|
|
24
24
|
|
|
25
|
-
## 2.
|
|
25
|
+
## 2. Den Stand holen
|
|
26
26
|
|
|
27
|
-
Arbeite im **Projektordner** (
|
|
28
|
-
|
|
27
|
+
Arbeite im **Projektordner** (ein Ordner direkt in `werkbank-…/projekte/`). Der Stand liegt in der
|
|
28
|
+
App, nicht in einer Datei:
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
kimal3 plan
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
**Kommt `
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{
|
|
44
|
-
"format": 1,
|
|
45
|
-
"projekt": "LinkedIn Content-App",
|
|
46
|
-
"projekt_id": null,
|
|
47
|
-
"basis": null,
|
|
48
|
-
"geprueft_am": "2026-10-21T22:10:00+02:00",
|
|
49
|
-
"specs": [],
|
|
50
|
-
"themen": [],
|
|
51
|
-
"uebernommen": []
|
|
52
|
-
}
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
(Name und Zeitpunkt sind ein Beispiel.) `projekt_id` und `basis` trägt `kimal3 plan hoch`
|
|
56
|
-
nach dem ersten Hochladen selbst ein — **lass sie bei `null`**.
|
|
57
|
-
3. `kimal3 plan` noch einmal.
|
|
34
|
+
**Kommt `Dieser Ordner ist noch mit keinem Projekt in der App verbunden.`**, leg das Projekt an:
|
|
35
|
+
`kimal3 projekt verbinden` (der Coach, Abschnitt 3.6, sagt, was dabei zu tun ist), dann `kimal3 plan`
|
|
36
|
+
noch einmal. Kommt `Hier ist kein Projektordner …`, stehst du im falschen Ordner — prüf das zuerst
|
|
37
|
+
und melde nichts.
|
|
38
|
+
|
|
39
|
+
**Liegt im Ordner eine `plan/stand.json`**, sag dem Menschen **einmal**: „Die Datei
|
|
40
|
+
plan/stand.json wird nicht mehr gebraucht — der Stand liegt in der App. Du kannst sie löschen."
|
|
41
|
+
Du löschst sie nicht selbst.
|
|
58
42
|
|
|
59
43
|
**Was die Ausgabe heißt** (Beispiel, erfundene Werte):
|
|
60
44
|
|
|
61
45
|
```
|
|
46
|
+
Spec 2026-09-23-content-planer · Content-Planer als Seite (plan/2026-09-23-content-planer-seite-spec.md)
|
|
47
|
+
US-1 · gebaut · Runde 1 · Beiträge anlegen
|
|
48
|
+
US-2 · in Arbeit · Runde 1 · Beiträge im Kalender verschieben
|
|
49
|
+
Notiertes Thema T-3: Export als PDF
|
|
62
50
|
#12 · passt nicht · 2026-09-23-content-planer / US-2 (Runde 1): Beim Ziehen springt er auf Dienstag
|
|
63
51
|
#13 · Thema: Kalender soll Feiertage zeigen
|
|
64
52
|
Bestätigt: 2026-09-23-content-planer / US-1 (Runde 1)
|
|
65
53
|
Ansehen: https://app.kimal3.de/projekt/…
|
|
66
54
|
```
|
|
67
55
|
|
|
56
|
+
- `Spec <Schlüssel> · <Titel> (<Datei>)` und darunter je Story `<Schlüssel> · <Stand> · Runde n ·
|
|
57
|
+
<Titel>` — der Stand, den die App kennt. **Die Schlüssel von hier sind bindend** (Abschnitt 3).
|
|
58
|
+
- `Notiertes Thema <Schlüssel>: …` — ein Thema, das **Claude** früher notiert hat. → Regel 3.
|
|
68
59
|
- `#12 · passt nicht · <Spec> / <Story> (Runde n): <Satz>` — der Mensch hat die Story getestet,
|
|
69
60
|
sie hält nicht. → Regel 1 in Abschnitt 5. Die Nummer brauchst du später für `uebernommen`.
|
|
70
61
|
- `#13 · Thema: <Satz>` — etwas Neues, das er in der App notiert hat. → Regel 3.
|
|
71
62
|
- `Bestätigt: …` — für diese Stories hat er in **dieser** Runde „Passt" gesagt; sie sind fertig.
|
|
72
63
|
Ein „Passt" musst du nicht übernehmen.
|
|
73
64
|
- `Ansehen: …` — der Link zur Planung. Merk ihn dir für den Bericht.
|
|
65
|
+
- `Noch keine Planung in der App.` — es ist das erste Mal; weiter mit Abschnitt 3, alle Specs sind neu.
|
|
74
66
|
- `Keine offenen Rückmeldungen.` — nichts zu übernehmen; weiter mit Abschnitt 3.
|
|
75
67
|
|
|
76
|
-
**Absagen
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
- `Mehrere deiner Projekte heißen „…“ (Nummern: …).` — frag den Menschen, welches gemeint ist, und
|
|
80
|
-
trag dessen Nummer als `"projekt_id"` ein.
|
|
81
|
-
- `Die Projektnummer in plan/stand.json gehört zu keinem deiner Projekte.` — die Nummer stammt aus
|
|
82
|
-
einem kopierten Ordner oder einem gelöschten Projekt. Setz `"projekt_id"` auf `null` (die Zeile
|
|
83
|
-
bleibt stehen, das Feld ist Pflicht); dann sucht kimal3 nach dem Namen. Das ist der **einzige**
|
|
84
|
-
Fall, in dem du `projekt_id` selbst änderst.
|
|
85
|
-
- `Der Plan ist nicht lesbar: plan/stand.json enthält kein gültiges JSON-Objekt.` — Klammern oder
|
|
86
|
-
Kommas in der Datei reparieren.
|
|
68
|
+
**Absagen** stehen als ganzer Satz auf der Fehlerausgabe (Rückgabewert `1`): Lies sie, sag dem
|
|
69
|
+
Menschen, was dort steht, und wiederhole nicht blind. Meldet `kimal3 plan` `3` (App nicht
|
|
70
|
+
erreichbar), versuch es einmal später noch einmal.
|
|
87
71
|
|
|
88
72
|
## 3. Specs finden
|
|
89
73
|
|
|
90
74
|
Such im Projektordner in **`docs/superpowers/specs/`**, **`plan/`** und **`docs/specs/`** nach
|
|
91
75
|
Markdown-Dateien mit User Stories („Als … will ich … damit …", oft `US-1`, `US-2`, mit
|
|
92
|
-
Akzeptanzkriterien und Gegenprobe). `plan/stand.json`
|
|
93
|
-
sind keine Specs.
|
|
76
|
+
Akzeptanzkriterien und Gegenprobe). `plan/stand.json`, `plan/projekt.json`, Statuszettel und
|
|
77
|
+
Aufgabenlisten sind keine Specs.
|
|
94
78
|
|
|
95
|
-
Je Spec
|
|
96
|
-
|
|
97
|
-
Ergebnis).
|
|
79
|
+
Je Spec eine Meldung `spec` mit ihren Stories, je Akzeptanzkriterium ein Eintrag in `kriterien`
|
|
80
|
+
(kurz gefasst, höchstens 500 Zeichen: Ausgangslage → Handlung → Ergebnis).
|
|
98
81
|
|
|
99
82
|
🔴 **Die Schlüssel sind bindend.** Die App hängt jedes „Passt" und „Passt nicht" an
|
|
100
|
-
Spec-Schlüssel + Story-Schlüssel + Runde. Steht eine Spec oder Story schon in
|
|
101
|
-
**übernimm ihren Schlüssel unverändert** — ein umbenannter Schlüssel lässt das
|
|
102
|
-
Menschen verschwinden. Neu: Spec-Schlüssel = Dateiname ohne `.md`; Story-Schlüssel = die
|
|
103
|
-
aus der Spec (`US-3`); nummeriert die Spec nicht, zähl selbst `US-1`, `US-2` … in ihrer
|
|
83
|
+
Spec-Schlüssel + Story-Schlüssel + Runde. Steht eine Spec oder Story schon in der Ausgabe von
|
|
84
|
+
`kimal3 plan`, **übernimm ihren Schlüssel unverändert** — ein umbenannter Schlüssel lässt das
|
|
85
|
+
Urteil des Menschen verschwinden. Neu: Spec-Schlüssel = Dateiname ohne `.md`; Story-Schlüssel = die
|
|
86
|
+
Nummer aus der Spec (`US-3`); nummeriert die Spec nicht, zähl selbst `US-1`, `US-2` … in ihrer
|
|
104
87
|
Reihenfolge.
|
|
105
88
|
|
|
106
|
-
- `titel`: die Überschrift der Spec bzw. der Story. `datei`: der Pfad der Spec im Projektordner
|
|
107
|
-
|
|
108
|
-
|
|
89
|
+
- `titel`: die Überschrift der Spec bzw. der Story. `datei`: der Pfad der Spec im Projektordner
|
|
90
|
+
(relativ, endet auf `.md`; sonst `null`). Den **Text** der Spec lädt der Mod `kimal3-plan` beim
|
|
91
|
+
Schreiben der Datei hoch, `kimal3 plan melde` holt ihn nach, wenn die Datei vor der Meldung
|
|
92
|
+
geschrieben wurde — Pfade außerhalb des Projektordners liest es nicht.
|
|
109
93
|
- Der Story-Schlüssel ist **derselbe wie in der Überschrift der Spec**, wo die Spec ihre Stories
|
|
110
94
|
nummeriert (`### US-3 · …` → `US-3`): Die App findet die Story im Spec-Text über diesen Schlüssel.
|
|
111
95
|
- Eine Spec ohne Stories kommt mit `"stories": []` hinein; sag es im Bericht.
|
|
112
96
|
- Grenzen: höchstens 50 Specs, 60 Stories je Spec, 400 zusammen. Sind es mehr, frag den
|
|
113
97
|
Menschen, welche Specs hineingehören.
|
|
98
|
+
- Eine Story, die du nicht mehr in der Spec findest, **entfernst du nicht** — eine Meldung kann
|
|
99
|
+
keine Story löschen. Meld sie als `weggelassen` mit Grund, wenn die Spec das so entschieden hat.
|
|
114
100
|
|
|
115
|
-
**Der Stand je Story:**
|
|
101
|
+
**Der Stand je Story (`stand`):**
|
|
116
102
|
- `offen` — noch nichts gebaut.
|
|
117
|
-
- `in_arbeit` — teilweise gebaut, oder ein Befund ist offen.
|
|
118
|
-
- `gebaut` — gebaut.
|
|
119
|
-
dazu ein `testen`-Satz (Abschnitt 4).
|
|
103
|
+
- `in_arbeit` — teilweise gebaut, oder ein Befund ist offen.
|
|
104
|
+
- `gebaut` — gebaut. Das Datum setzt die App; dazu ein `testen`-Text (Abschnitt 4).
|
|
120
105
|
- `weggelassen` — bewusst nicht gebaut, `grund` ist Pflicht (Regel 8). Nur, wenn die Spec oder
|
|
121
106
|
der Mensch das so entschieden hat — nie von dir allein, um aufzuräumen. Im Zweifel: `offen`
|
|
122
107
|
lassen und im Bericht fragen.
|
|
@@ -130,29 +115,35 @@ lesen.
|
|
|
130
115
|
- `bestanden` — **nur**, wenn die Gegenprobe in dieser Sitzung gelaufen ist und das erwartete
|
|
131
116
|
Ergebnis gezeigt hat. Nie aus dem Gedächtnis, nie vom letzten Mal, nie weil der Code „richtig
|
|
132
117
|
aussieht".
|
|
133
|
-
- `gescheitert` — sie ist gelaufen und hat etwas anderes gezeigt. Das ist ein Befund (Regel 1)
|
|
134
|
-
|
|
118
|
+
- `gescheitert` — sie ist gelaufen und hat etwas anderes gezeigt. Das ist ein Befund (Regel 1):
|
|
119
|
+
Die Story trägt damit ⚠ und steht in „In Arbeit“, solange eine Sitzung daran arbeitet, sonst in
|
|
120
|
+
„Offen“ — ihre Spec kommt nicht nach „Dein Test“.
|
|
135
121
|
- `offen` — alles, was nicht gelaufen ist: braucht einen Browser, eine Anmeldung, echte Daten
|
|
136
122
|
oder einen Menschen. Lesen zählt nur, wenn das Kriterium etwas über die Datei selbst sagt (eine
|
|
137
123
|
Datei gibt es, ein Text steht so da) — ein Verhalten beweist Lesen nicht.
|
|
138
124
|
|
|
139
|
-
⚠️ Eine Story mit einem `offen`-Kriterium steht in „Claude-Test offen"
|
|
140
|
-
|
|
125
|
+
⚠️ Eine Story mit einem `offen`-Kriterium steht in „Claude-Test offen" — und mit ihr die ganze Spec.
|
|
126
|
+
Der Mensch testet eine Spec erst als Ganzes: Knöpfe bekommt er nur, wenn an keiner Story der Spec
|
|
127
|
+
mehr gebaut oder geprüft wird (die Spec steht dann in „Dein Test"). Bis dahin heißen die schon
|
|
128
|
+
bestandenen Stories in der App „Von Claude geprüft". Sag im Bericht, was fehlt, damit die
|
|
129
|
+
Gegenprobe laufen kann.
|
|
130
|
+
|
|
131
|
+
**Der `testen`-Text** (bei jeder `gebaut`-Story, höchstens 1000 Zeichen) ist eine Anleitung für jemanden ohne Technik. Steht die Story in einer Spec mit der Kiste „So testest du es“, nimmst du ihn von dort, wörtlich; fehlt die Kiste, schreibst du ihn selbst. **Eine Zeile je Schritt** — wo man es findet, was man tut, was dann zu sehen ist —, **ohne** Kistenüberschrift, und **zuletzt** die Zeile „Passt nicht, wenn: …“. Im JSON trennst du die Zeilen mit `\n`: Ein echter Zeilenumbruch im Text bricht das JSON, und `kimal3 plan melde` liest die Meldung nicht. Ist der Text länger als 1000 Zeichen, kürze die Schritte — nie mitten im Satz abschneiden, die Zeile „Passt nicht, wenn: …“ muss am Ende stehen bleiben. Ein Befehl nur, wenn es keinen anderen Weg gibt — dann sagst du, wo man ihn eingibt (in Claude Code im Projektordner, mit `!` davor), und setzt ihn in Backticks. Fehlt der Text, zeigt die App: „Claude hat nicht aufgeschrieben, wie man das testet".
|
|
132
|
+
|
|
133
|
+
**Prüfen ist Arbeit.** Bevor du eine Story mit offenen Gegenproben (Spalte „Claude-Test offen“) gegen den Code prüfst, meldest du sie als `in_arbeit` **mit** der Sitzung (also ohne `--ohne-sitzung`): Solange du prüfst, leuchtet der Punkt am Projekt. Nach der Prüfung meldest du das Ergebnis (`gebaut`, oder `in_arbeit` mit Befund). Stories in „Dein Test“ oder „Fertig“ meldest du beim Abgleich **nicht** neu, auch wenn du sie durchsiehst: `in_arbeit` und danach `gebaut` setzt ihr Baudatum auf heute, und jede Meldung zeigt das Etikett „geändert“ und bei zwei Sitzungen das ⚠ „gleichzeitig geändert“. Was am Ende von `/k3plan` unfertig bleibt, meldest du mit `--ohne-sitzung` (Abschnitt 6).
|
|
141
134
|
|
|
142
|
-
**
|
|
143
|
-
den Befehl** und **was dort zu sehen sein muss**, zum Beispiel: „Starte `npm run dev`, öffne
|
|
144
|
-
http://localhost:3000/kalender und zieh den Beitrag vom Montag auf den Mittwoch — er steht danach
|
|
145
|
-
am Mittwoch." Ohne ihn zeigt die App: „Claude hat nicht aufgeschrieben, wie man das testet".
|
|
135
|
+
**Wie eine Spec aufgebaut ist.** Findest du beim Prüfen eine Spec, die nicht so gebaut ist, sag es im Bericht — du schreibst sie nicht um. Eine Story steht darin in vier Kisten: **User Story** (der Titel nennt das Ziel des Menschen) · **Akzeptanzkriterium** (mit Gegenprobe) · **So testest du es** (nummerierte Schritte, darunter „Passt nicht, wenn: …“) · **Technische Notiz**.
|
|
146
136
|
|
|
147
137
|
**Befunde** (`befunde`): nur **offene**. `quelle: "claude"` für etwas, das die Story verspricht und
|
|
148
|
-
nicht tut, und das kein Kriterium abdeckt. `seit`: das Datum, an dem der Befund entstand
|
|
149
|
-
|
|
138
|
+
nicht tut, und das kein Kriterium abdeckt. `seit`: das Datum, an dem der Befund entstand. Ein
|
|
139
|
+
`befunde`-Feld in einer Meldung **ersetzt** die Liste der Story — schick also alle noch offenen
|
|
140
|
+
Befunde mit, nicht nur den neuen. Fehlt das Feld, bleibt die Liste, wie sie ist.
|
|
150
141
|
|
|
151
142
|
**Die Runde** bindet ein Urteil an einen Bau-Stand — wie ein Stempel auf einer Fassung:
|
|
152
|
-
- Sie beginnt bei `1` und wird **nie** kleiner.
|
|
143
|
+
- Sie beginnt bei `1` und wird **nie** kleiner; fehlt `runde` in der Meldung, bleibt sie.
|
|
153
144
|
- **Um genau 1 erhöhen**, wenn eine Story mit einem Befund des Menschen (`quelle: "mensch"`)
|
|
154
145
|
seitdem nachgebessert wurde (Git-Verlauf, und die Gegenproben bestehen jetzt): dann
|
|
155
|
-
`befunde: []`, `stand: "gebaut"`,
|
|
146
|
+
`befunde: []`, `stand: "gebaut"`, `runde` + 1, neuer `testen`-Text. Der Mensch testet neu.
|
|
156
147
|
Ist unklar, ob nachgebessert wurde: Befund stehen lassen und im Bericht fragen.
|
|
157
148
|
- **Auch erhöhen**, wenn du eine **bestätigte** Story so geändert hast, dass der Mensch es merken
|
|
158
149
|
würde — sein altes „Passt" gilt dann nicht mehr (Regel 7).
|
|
@@ -162,187 +153,150 @@ er schon in der Datei, bleibt sein altes Datum.
|
|
|
162
153
|
|
|
163
154
|
Die App zeigt sie dem Menschen in genau diesem Wortlaut („So bleibt die Planung kurz"):
|
|
164
155
|
|
|
165
|
-
1. **Ein
|
|
156
|
+
1. **Ein Problem wird keine neue Karte.** Hält eine Story nicht, was sie verspricht — Claudes Prüfung fällt durch oder du sagst „Passt nicht" —, hängt das Problem (Befund) an **dieser** Story. Sie steht in „Offen“, bis jemand daran arbeitet.
|
|
166
157
|
2. **Neu ist nur, was niemand versprochen hat. Das kommt in den Eingang, und der hat fünf Plätze.**
|
|
167
|
-
3. **Claude
|
|
158
|
+
3. **Claude sortiert jedes Thema beim nächsten Abgleich (`/k3plan`) ein:** als neue Story in eine Spec, als Befund an eine Story, oder gestrichen mit Begründung. „Für später" gibt es nicht.
|
|
168
159
|
4. **Nichts liegt länger als 14 Tage im Eingang.**
|
|
169
|
-
5. **Höchstens eine Spec gleichzeitig in Arbeit** („In Arbeit“ und „Claude-Test offen“ zusammen). Erst fertig machen, dann die nächste beginnen.
|
|
160
|
+
5. **Höchstens eine Spec gleichzeitig in Arbeit** („In Arbeit“ und „Claude-Test offen“ zusammen). „In Arbeit“ heißt: Eine Claude-Sitzung arbeitet gerade daran. Erst fertig machen, dann die nächste beginnen.
|
|
170
161
|
6. **Höchstens fünf Stories warten auf deinen Test.** Sind es mehr, fängt Claude nichts Neues an, bis du getestet hast.
|
|
171
|
-
7. **Fertig heißt zweimal geprüft:**
|
|
162
|
+
7. **Fertig heißt zweimal geprüft:** Claude hat alles selbst ausprobiert, und du hast „Passt" gesagt — für genau diesen Stand.
|
|
172
163
|
8. **Eine Spec ist erst abgeschlossen, wenn jede Story fertig oder bewusst weggelassen ist** — mit Grund. Einen stillen Rest gibt es nicht.
|
|
173
164
|
|
|
174
|
-
**Was du danach tust
|
|
165
|
+
**Was du danach tust** (jedes Mal eine Meldung, Abschnitt 6):
|
|
175
166
|
|
|
176
|
-
- **Regel 1 — jedes `passt nicht` aus `kimal3 plan`:** Gibt es die Story noch,
|
|
177
|
-
Menschen als Befund
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
`
|
|
181
|
-
`antwort`, warum. ⚠️ Ohne Befund von `mensch` und ohne höhere Runde lehnt
|
|
182
|
-
|
|
167
|
+
- **Regel 1 — jedes `passt nicht` aus `kimal3 plan`:** Gibt es die Story noch, melde sie mit dem Satz
|
|
168
|
+
des Menschen als Befund (`quelle: "mensch"`, `seit: "<heute>"`) und `stand: "in_arbeit"`, und
|
|
169
|
+
gleich dahinter in derselben Liste `uebernommen` mit der Nummer: `{ "art": "uebernommen",
|
|
170
|
+
"rueckmeldung": 12, "antwort": "Befund an US-2" }`. Ist sie seitdem schon nachgebessert,
|
|
171
|
+
stattdessen `runde` + 1, `befunde: []` und `stand: "gebaut"` (Abschnitt 4). Gibt es die Story
|
|
172
|
+
nicht mehr, sagt die `antwort`, warum. ⚠️ Ohne Befund von `mensch` und ohne höhere Runde lehnt
|
|
173
|
+
die App die Übernahme ab.
|
|
183
174
|
- **Regel 2 — Neues:** Was dir beim Prüfen auffällt oder der Mensch im Gespräch sagt und was
|
|
184
|
-
**keine** Spec verspricht,
|
|
185
|
-
`
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
- **Regel 3 — einordnen:** Jedes `Thema` aus `kimal3 plan` **und** jedes Thema
|
|
189
|
-
|
|
175
|
+
**keine** Spec verspricht, meldest du als `thema`. Nimm die nächste freie Nummer (`T-4` nach
|
|
176
|
+
`T-3`) — und denk daran, dass ein eingeordnetes Thema seinen Schlüssel 14 Tage lang behält:
|
|
177
|
+
Sagt die App, ein Schlüssel komme doppelt vor, nimm die nächste Nummer. Die fünf Plätze teilen
|
|
178
|
+
sich deine Themen und die offenen Notizen aus der App.
|
|
179
|
+
- **Regel 3 — einordnen:** Jedes `Thema` aus `kimal3 plan` **und** jedes `Notiertes Thema` ordnest
|
|
180
|
+
du **jetzt** ein — eins von dreien:
|
|
190
181
|
- **neue Story:** schreib sie in die Spec, zu der sie gehört (User Story, Akzeptanzkriterium mit
|
|
191
|
-
Gegenprobe), und
|
|
192
|
-
Antwort: `neue Story US-7 in „Content-Planer“`.
|
|
182
|
+
Gegenprobe), und melde die Spec mit der neuen Story (`stand` bleibt `offen`; es genügt die
|
|
183
|
+
neue, die alten bleiben). Passt keine Spec, frag, wohin. Antwort: `neue Story US-7 in „Content-Planer“`.
|
|
193
184
|
- **Befund an eine Story:** wie bei Regel 1. Antwort: `Befund an US-2 in „Content-Planer“`.
|
|
194
185
|
- **gestrichen:** Antwort `gestrichen: <Grund in einem Satz>`, zum Beispiel
|
|
195
186
|
`gestrichen: Feiertage stehen schon im Kalender-Werkzeug.`
|
|
196
187
|
|
|
197
|
-
Für eine Notiz aus der App gehört die Antwort als **ein Satz** in
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
auch im Bericht.
|
|
204
|
-
- **Regel 4:** Weil du bei jedem `/k3plan` alles einordnest, liegt nichts lange. Ein Thema mit
|
|
205
|
-
`seit` vor mehr als 14 Tagen ordnest du **auf jeden Fall** jetzt ein.
|
|
188
|
+
Für eine Notiz aus der App (`#13 · Thema`) gehört die Antwort als **ein Satz** in eine Meldung
|
|
189
|
+
`uebernommen`, **ohne** Pfeil am Anfang. Ein `Notiertes Thema` von dir ordnest du mit einer Meldung
|
|
190
|
+
`eingeordnet` ein (Schlüssel, Text wie oben, Antwort) — die App nimmt es aus den Themen heraus.
|
|
191
|
+
Die Seite zeigt die Antwort nicht; nenn die Einordnung deshalb im Bericht.
|
|
192
|
+
- **Regel 4:** Weil du bei jedem `/k3plan` alles einordnest, liegt nichts lange. Ein Thema, das
|
|
193
|
+
schon mehr als 14 Tage liegt, ordnest du **auf jeden Fall** jetzt ein.
|
|
206
194
|
- **Regel 5 und 6 — keine neue Spec beginnen**, solange eine andere Spec in Arbeit ist (eine ihrer
|
|
207
195
|
Stories ist `in_arbeit`, hat einen Befund oder eine gescheiterte Gegenprobe, oder ist `gebaut`
|
|
208
196
|
mit einem `offen`-Kriterium oder ganz ohne Kriterien), oder solange mehr als fünf Stories auf den Test des Menschen
|
|
209
|
-
warten (`gebaut`, alles bestanden, kein Befund, noch nicht bestätigt
|
|
197
|
+
warten (`gebaut`, alles bestanden, kein Befund, noch nicht bestätigt — **und** keine Story ihrer Spec hält die Spec
|
|
198
|
+
noch in Arbeit: Nur dann steht sie in „Dein Test", und nur dann zählt die App die Story). **Sag dem Menschen
|
|
210
199
|
stattdessen, was er testen soll** — mit den `testen`-Sätzen. Ordnest du ein Thema als neue Story
|
|
211
200
|
in eine Spec ein, beginnst du sie damit nicht: Sie steht `offen`, und die Spec gilt nicht als in
|
|
212
201
|
Arbeit.
|
|
213
|
-
- **Regel 7:** „Fertig" setzt nur der Mensch mit „Passt" in der App;
|
|
202
|
+
- **Regel 7:** „Fertig" setzt nur der Mensch mit „Passt" in der App; eine Meldung hat dafür kein
|
|
214
203
|
Feld. Du hältst nur die Runde stabil (Abschnitt 4).
|
|
215
204
|
- **Regel 8:** `weggelassen` nur mit `grund` (Abschnitt 3).
|
|
216
205
|
|
|
217
|
-
## 6. Die
|
|
206
|
+
## 6. Die Meldungen
|
|
218
207
|
|
|
219
|
-
|
|
208
|
+
Jede Meldung ist ein JSON-Objekt, mehrere eine Liste. Sie geht über die Eingabe an
|
|
209
|
+
`kimal3 plan melde`; das Programm setzt die Zeit selbst, das Projekt kommt vom Ordnerzettel
|
|
210
|
+
`plan/projekt.json`. Prüfen ist Arbeit — mit der Sitzung gemeldet leuchtet auf dem Board der Punkt, solange du prüfst.
|
|
220
211
|
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
"format": 1,
|
|
224
|
-
"projekt": "LinkedIn Content-App",
|
|
225
|
-
"projekt_id": null,
|
|
226
|
-
"basis": null,
|
|
227
|
-
"geprueft_am": "2026-10-21T22:10:00+02:00",
|
|
228
|
-
"specs": [
|
|
229
|
-
{
|
|
230
|
-
"schluessel": "2026-09-23-content-planer",
|
|
231
|
-
"titel": "Content-Planer als Seite",
|
|
232
|
-
"datei": "plan/2026-09-23-content-planer-seite-spec.md",
|
|
233
|
-
"stories": [
|
|
234
|
-
{
|
|
235
|
-
"schluessel": "US-2",
|
|
236
|
-
"titel": "Beiträge im Kalender verschieben",
|
|
237
|
-
"stand": "gebaut",
|
|
238
|
-
"runde": 1,
|
|
239
|
-
"gebaut_am": "2026-10-21",
|
|
240
|
-
"kriterien": [
|
|
241
|
-
{ "text": "Beitrag vom Montag auf Mittwoch ziehen → steht am Mittwoch", "gegenprobe": "bestanden" }
|
|
242
|
-
],
|
|
243
|
-
"befunde": [],
|
|
244
|
-
"testen": "Öffne /kalender, zieh den Beitrag vom Montag auf den Mittwoch.",
|
|
245
|
-
"grund": null
|
|
246
|
-
}
|
|
247
|
-
]
|
|
248
|
-
}
|
|
249
|
-
],
|
|
250
|
-
"themen": [
|
|
251
|
-
{ "schluessel": "T-1", "text": "Kalender soll Feiertage zeigen", "quelle": "mensch", "seit": "2026-10-21" }
|
|
252
|
-
],
|
|
253
|
-
"uebernommen": [
|
|
254
|
-
{ "rueckmeldung": 12, "antwort": "Befund an US-2" }
|
|
255
|
-
],
|
|
256
|
-
"eingeordnet": [
|
|
257
|
-
{ "schluessel": "T-2", "text": "Export als PDF", "antwort": "gestrichen: Der Drucken-Knopf kann das schon.", "am": "2026-10-21" }
|
|
258
|
-
]
|
|
259
|
-
}
|
|
212
|
+
```
|
|
213
|
+
echo '[ … ]' | kimal3 plan melde
|
|
260
214
|
```
|
|
261
215
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
- `format`: genau `1`.
|
|
266
|
-
- `projekt`: der Name wie in der App, 1–200 Zeichen.
|
|
267
|
-
- `projekt_id`, `basis`: am Anfang `null`; danach schreibt sie `kimal3 plan hoch` — **nie von Hand
|
|
268
|
-
ändern**. Einzige Ausnahme: die Absage „Die Projektnummer in plan/stand.json gehört zu keinem
|
|
269
|
-
deiner Projekte." — dann `projekt_id` auf `null` setzen (Abschnitt 2).
|
|
270
|
-
- `geprueft_am`: jetzt, mit Zeitzone (`date +%Y-%m-%dT%H:%M:%S%:z` in der Bash, `Get-Date -Format
|
|
271
|
-
"yyyy-MM-ddTHH:mm:sszzz"` in PowerShell).
|
|
272
|
-
- `specs[]`: `schluessel` (eindeutig, 1–80 Zeichen), `titel` (1–200), `datei` (Pfad oder `null`),
|
|
273
|
-
`stories[]`.
|
|
274
|
-
- `stories[]`: `schluessel` (eindeutig in ihrer Spec), `titel`, `stand` (`offen` · `in_arbeit` ·
|
|
275
|
-
`gebaut` · `weggelassen`), `runde` (1–999), `gebaut_am` (`JJJJ-MM-TT` bei `gebaut`, sonst
|
|
276
|
-
`null`), `kriterien[]`, `befunde[]`, `testen` (Satz oder `null`), `grund` (Pflicht bei
|
|
277
|
-
`weggelassen`, sonst `null`).
|
|
278
|
-
- `kriterien[]`: `{ "text", "gegenprobe": "bestanden" | "gescheitert" | "offen" }`, höchstens 30
|
|
279
|
-
je Story.
|
|
280
|
-
- `befunde[]`: `{ "text", "quelle": "claude" | "mensch", "seit": "JJJJ-MM-TT" }` — nur offene,
|
|
281
|
-
höchstens 20.
|
|
282
|
-
- `themen[]`: `{ "schluessel", "text", "quelle", "seit" }`, höchstens 50 (der Eingang hat fünf
|
|
283
|
-
Plätze, Regel 2).
|
|
284
|
-
- `uebernommen[]`: `{ "rueckmeldung": <Nummer aus kimal3 plan>, "antwort": "<ein Satz>" }`. Leert
|
|
285
|
-
`kimal3 plan hoch` nach dem Hochladen selbst.
|
|
286
|
-
- `eingeordnet[]`: `{ "schluessel", "text", "antwort": "<ein Satz>", "am": "JJJJ-MM-TT" }`, höchstens
|
|
287
|
-
50 — Themen aus `themen`, die du eingeordnet hast (Regel 3). Ein Schlüssel steht nie zugleich in
|
|
288
|
-
`themen` und `eingeordnet`.
|
|
289
|
-
- Die ganze Datei: höchstens 300 KB.
|
|
290
|
-
|
|
291
|
-
## 7. Hochladen
|
|
292
|
-
|
|
293
|
-
Erst der Probelauf — er prüft alles und speichert nichts:
|
|
216
|
+
(In PowerShell: `'[ … ]' | kimal3 plan melde`. Lange Texte lieber über eine Datei.) Die Beispiele
|
|
217
|
+
sind erfunden.
|
|
294
218
|
|
|
219
|
+
**Ganz am Ende** meldest du die Stories, die unfertig bleiben (in Arbeit, Befund offen), noch einmal —
|
|
220
|
+
in einem **eigenen** Aufruf mit `--ohne-sitzung`, getrennt von der Liste der fertigen: Eine gemischte
|
|
221
|
+
Liste ohne den Schalter bindet auch die unfertige Story an die Sitzung, und der Punkt leuchtet weiter.
|
|
222
|
+
Mit dem Schalter bleibt der Plan-Stand `in_arbeit`, aber der Punkt leuchtet nicht weiter, während das
|
|
223
|
+
Fenster offen bleibt — auf dem Board steht die Story dann in „Offen“ als angefangen.
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
echo '[ … ]' | kimal3 plan melde --ohne-sitzung
|
|
295
227
|
```
|
|
296
|
-
|
|
228
|
+
|
|
229
|
+
**Eine Spec** — beim Prüfen und wenn Stories dazukommen:
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
{ "art": "spec", "schluessel": "2026-10-24-testmonat", "titel": "Testmonat",
|
|
233
|
+
"datei": "docs/superpowers/specs/2026-10-24-testmonat-design.md",
|
|
234
|
+
"stories": [ { "schluessel": "US-1", "titel": "Der Testmonat startet" },
|
|
235
|
+
{ "schluessel": "US-2", "titel": "Der Testmonat endet" },
|
|
236
|
+
{ "schluessel": "US-3", "titel": "Export des Testmonats" } ] }
|
|
297
237
|
```
|
|
298
238
|
|
|
299
|
-
|
|
300
|
-
nichts.` (Zahlen als Beispiel.) **Vergleich die zweite Zahl** mit den offenen Rückmeldungen aus
|
|
301
|
-
`kimal3 plan`: Ist sie kleiner, hast du eine vergessen — sie bliebe in der App unter „Wartet auf
|
|
302
|
-
Claude".
|
|
239
|
+
**Eine Story** — eine Abweichung, ein Eintrag. Gebaut, mit Gegenprobe:
|
|
303
240
|
|
|
304
|
-
|
|
241
|
+
```json
|
|
242
|
+
{ "art": "story", "spec": "2026-10-24-testmonat", "story": "US-1", "stand": "gebaut",
|
|
243
|
+
"kriterien": [ { "text": "Startet Sabine am 1.11., endet der Testmonat am 30.11.", "gegenprobe": "bestanden" } ],
|
|
244
|
+
"testen": "1. Öffne in der App ‚Testmonat‘.\n2. Klick „Starten“.\n3. Darunter steht ‚Endet am 30.11.‘.\nPasst nicht, wenn: dort ein anderes Datum steht." }
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Mit einem offenen Befund (hier von dir; `quelle: "mensch"` nur für den Satz des Menschen):
|
|
305
248
|
|
|
249
|
+
```json
|
|
250
|
+
{ "art": "story", "spec": "2026-10-24-testmonat", "story": "US-2", "stand": "in_arbeit",
|
|
251
|
+
"befunde": [ { "text": "Am 30.11. fehlt die Erinnerungsmail, die die Spec verspricht.", "quelle": "claude", "seit": "2026-10-23" } ] }
|
|
306
252
|
```
|
|
307
|
-
|
|
253
|
+
|
|
254
|
+
Bewusst weggelassen (`grund` ist Pflicht):
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{ "art": "story", "spec": "2026-10-24-testmonat", "story": "US-3", "stand": "weggelassen", "grund": "Die Spec streicht den Export." }
|
|
308
258
|
```
|
|
309
259
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
260
|
+
**Ein Thema** (Regel 2), **ein Thema von dir einordnen** (Regel 3), **eine Rückmeldung des Menschen
|
|
261
|
+
übernehmen** (Regel 1 und 3):
|
|
262
|
+
|
|
263
|
+
```json
|
|
264
|
+
{ "art": "thema", "schluessel": "T-4", "text": "Der Kalender könnte Feiertage zeigen" }
|
|
265
|
+
{ "art": "eingeordnet", "schluessel": "T-3", "text": "Export als PDF", "antwort": "gestrichen: Der Drucken-Knopf kann das schon." }
|
|
266
|
+
{ "art": "uebernommen", "rueckmeldung": 12, "antwort": "Befund an US-2" }
|
|
267
|
+
```
|
|
314
268
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
269
|
+
**Was das Programm zurückgibt:** Bei Erfolg schweigt es (`0`) — und **du auch**: Sag dem Menschen
|
|
270
|
+
nicht, dass du gemeldet hast. `1` — die App hat abgesagt oder die Eingabe war unlesbar; der Satz
|
|
271
|
+
auf der Fehlerausgabe sagt warum. Meldungen, die er nicht nennt, sind angekommen. `3` — die App
|
|
272
|
+
ist nicht erreichbar; die Meldung ist **gemerkt** und geht beim nächsten Befehl mit
|
|
273
|
+
(`kimal3 plan senden` schickt sie sofort) — nicht noch einmal schicken. `2` — nicht mehr
|
|
274
|
+
angemeldet: Sag dem Menschen `kimal3 login`; die Meldung ist gemerkt.
|
|
320
275
|
|
|
321
|
-
**Absagen — die Meldung lesen, beheben,
|
|
276
|
+
**Absagen — die Meldung lesen, beheben, noch einmal:**
|
|
322
277
|
|
|
323
278
|
| Meldung beginnt mit | Was du tust |
|
|
324
279
|
|---|---|
|
|
325
|
-
| `
|
|
326
|
-
| `
|
|
327
|
-
|
|
|
280
|
+
| `Die Meldung zu <Story> von <Uhrzeit> kam zu spät an …` | Eine andere Sitzung oder der Mensch hat die Story danach geändert. **Nicht erneut senden.** `kimal3 plan` zeigt den heutigen Stand; melde nur, was dann noch fehlt. |
|
|
281
|
+
| `Die Spec … gibt es in diesem Projekt noch nicht.` · `… hat keine Story …` | Melde zuerst die Spec mit ihren Stories (Abschnitt 6, „Eine Spec"), dann die Story. |
|
|
282
|
+
| `Meldung Nr. 2 ist nicht lesbar (meldung).` | Die Meldung hat ein falsches Feld oder fehlt eines — gegen die Beispiele oben halten. Geschickt wurde nichts. |
|
|
283
|
+
| `<Spec> / <Story> hat Runde 1, gespeichert ist schon Runde 2.` | Deine Runde ist älter als die gespeicherte. Mit der gespeicherten oder höher noch einmal — nie kleiner. |
|
|
328
284
|
| `Rückmeldung 12 gibt es in diesem Projekt nicht oder steht zweimal …` | Nur Nummern aus `kimal3 plan`, jede einmal. |
|
|
329
|
-
| `Rückmeldung 12 („…“) ist als übernommen gemeldet, aber US-2 hat keinen Befund von dir …` |
|
|
330
|
-
| `
|
|
331
|
-
| `Die
|
|
332
|
-
| `Die
|
|
333
|
-
|
|
|
334
|
-
| `⚠ Die Planung ist gespeichert, aber plan/stand.json ließ sich nicht nachtragen. Trag selbst ein: …` | Genau diese Werte in die Datei schreiben. |
|
|
335
|
-
| `… ließ sich gerade nicht laden` / `… nicht speichern` | Einmal wiederholen; klappt es dann nicht, dem Menschen sagen. |
|
|
285
|
+
| `Rückmeldung 12 („…“) ist als übernommen gemeldet, aber US-2 hat keinen Befund von dir …` | Erst die Story mit dem Befund `quelle: "mensch"` melden (Regel 1) — oder `runde` + 1, wenn nachgebessert ist — dann `uebernommen`. |
|
|
286
|
+
| `Der Plan ist nicht lesbar: <Ort> …` | Die genannte Stelle der Meldung berichtigen (Länge, `grund` bei `weggelassen`, doppelter Schlüssel). |
|
|
287
|
+
| `Die Meldung ist angekommen, der Text von <Datei> aber nicht …` | Die Meldung noch einmal schicken — doppelt schadet nicht. Passt der Text nicht mehr (über 300 KB), sag es dem Menschen. |
|
|
288
|
+
| `Die Meldungen sind gespeichert, aber noch nicht ganz vermerkt.` | Noch einmal schicken — doppelt schadet nicht. |
|
|
289
|
+
| `Die gespeicherte Planung in der App ist beschädigt …` | Sag es dem Menschen. `kimal3 plan hoch --ueberschreiben` ersetzt die Planung durch eine ganze Datei `plan/stand.json` — **nur nach seinem ausdrücklichen Ja.** |
|
|
336
290
|
|
|
337
|
-
🔴 **`--ueberschreiben` ersetzt, was
|
|
338
|
-
|
|
291
|
+
🔴 **`--ueberschreiben` ersetzt, was andere gemeldet haben.** Nie aus eigenem Entschluss, auch
|
|
292
|
+
nicht, wenn die Meldung es vorschlägt.
|
|
339
293
|
|
|
340
|
-
##
|
|
294
|
+
## 7. Dem Menschen berichten
|
|
341
295
|
|
|
342
|
-
**Höchstens fünf Zeilen**, ohne Fachjargon:
|
|
296
|
+
**Höchstens fünf Zeilen**, ohne Fachjargon — und nichts über die Meldungen selbst:
|
|
343
297
|
|
|
344
298
|
- was **fertig** wurde (seit dem letzten Mal bestätigt),
|
|
345
|
-
- was **auf seinen Test wartet** — mit dem `testen`-
|
|
299
|
+
- was **auf seinen Test wartet** (nur Stories aus Specs in „Dein Test") — mit dem `testen`-Text, damit er gleich loslegen kann,
|
|
346
300
|
- was im **Eingang** entschieden wurde (jedes Thema mit seiner Antwort),
|
|
347
301
|
- eine **Warnung**, wenn Regel 5 oder 6 verletzt ist: „Teste zuerst …" statt einer neuen Story,
|
|
348
302
|
- der **Link** aus `Ansehen: …`.
|