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.
Files changed (47) hide show
  1. package/README.md +10 -4
  2. package/claude-plugins/.claude-plugin/marketplace.json +2 -1
  3. package/claude-plugins/README.md +2 -0
  4. package/claude-plugins/kimal3-logo/.claude-plugin/plugin.json +1 -1
  5. package/claude-plugins/kimal3-logo/hooks/app-oeffnen.ts +37 -9
  6. package/claude-plugins/kimal3-logo/hooks/register.tsx +1 -1
  7. package/claude-plugins/kimal3-plan/.claude-plugin/plugin.json +7 -0
  8. package/claude-plugins/kimal3-plan/hooks/erinnerung.ts +83 -0
  9. package/claude-plugins/kimal3-plan/hooks/fehlerzeile.ts +41 -0
  10. package/claude-plugins/kimal3-plan/hooks/hooks.json +1 -0
  11. package/claude-plugins/kimal3-plan/hooks/lauf.ts +143 -0
  12. package/claude-plugins/kimal3-plan/hooks/lebenszeichen.ts +197 -0
  13. package/claude-plugins/kimal3-plan/hooks/ordner.ts +141 -0
  14. package/claude-plugins/kimal3-plan/hooks/register.tsx +22 -0
  15. package/claude-plugins/kimal3-plan/hooks/spec-text.ts +45 -0
  16. package/claude-plugins/kimal3-plan/types/index.d.ts +10 -0
  17. package/coach/de/kimal3-coach.md +41 -1
  18. package/coach/en/kimal3-coach.md +41 -1
  19. package/dist/argumente.js +12 -0
  20. package/dist/atomar.js +22 -0
  21. package/dist/befehle/einrichten.js +4 -4
  22. package/dist/befehle/login.js +2 -2
  23. package/dist/befehle/plan-hoch.js +8 -0
  24. package/dist/befehle/plan-melde.js +105 -0
  25. package/dist/befehle/plan-senden.js +149 -0
  26. package/dist/befehle/plan.js +45 -10
  27. package/dist/befehle/projekt-verbinden.js +141 -0
  28. package/dist/befehle/skill-install.js +2 -2
  29. package/dist/befehle-katalog-en.js +6 -6
  30. package/dist/befehle-katalog.js +8 -7
  31. package/dist/befehlswoerter.js +9 -0
  32. package/dist/einstellungen-schreiben.js +1 -1
  33. package/dist/kimal3.js +22 -0
  34. package/dist/meldungen-speicher.js +189 -0
  35. package/dist/{logo-ablegen.js → mods-ablegen.js} +29 -18
  36. package/dist/plugins-mischen.js +7 -2
  37. package/dist/projekt-ordner.js +189 -0
  38. package/dist/texte/einrichten.js +3 -1
  39. package/dist/texte/meldungen.js +127 -0
  40. package/dist/texte/plan.js +42 -22
  41. package/dist/texte/skill.js +12 -12
  42. package/package.json +1 -1
  43. package/skill/commands/k3feierabend.md +29 -0
  44. package/skill/commands/k3plan.md +167 -213
  45. package/skill/en/commands/k3plan.md +174 -222
  46. package/skill/en/commands/k3show.md +3 -1
  47. package/skill/en/commands/k3wrapup.md +28 -0
@@ -1,122 +1,107 @@
1
1
  ---
2
- description: Die Specs gegen den Code prüfen und die Planung in die App hochladen
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 hochladen
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 lädst **nur das
13
- Ergebnis** in die App hoch — nie den Code. Dort sieht der Mensch auf der Projektseite (Reiter
14
- „Planung"), was offen ist, was auf seinen Test wartet und was fertig ist, und urteilt mit
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 das Dateiformat
18
- (Abschnitt 6) brauchst du schon ab Abschnitt 2 — lies sie zuerst. Was ein Rückgabewert von
19
- `kimal3` heißt, steht in **`~/.claude/skills/kimal3/SKILL.md`, Abschnitt „Rückgabewerte"**;
20
- diese Datei wiederholt es nicht.
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 lädt hoch — es baut nichts.** Was nachzubessern ist, steht
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. Rückmeldungen holen
25
+ ## 2. Den Stand holen
26
26
 
27
- Arbeite im **Projektordner** (dort, wo Specs und Code liegen). Die Datei heißt immer
28
- `plan/stand.json`, relativ zu diesem Ordner.
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 `Im Ordner liegt keine plan/stand.json.`**, ist es das erste Mal (oder du stehst im
35
- falschen Ordner — prüf das zuerst):
36
-
37
- 1. `kimal3 projekt liste` — such das Projekt, um das es hier geht. Gibt es **kein** passendes,
38
- frag den Menschen, welches gemeint ist, und schlag `/k3projekt <was du gebaut hast>` vor:
39
- Ohne Eintrag im Erfolgsprofil gibt es keine Projektseite. Hier aufhören, nichts erfinden.
40
- 2. Leg `plan/stand.json` an, mit dem Namen **genau so, wie die Liste ihn schreibt**:
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
- - `Kein Projekt heißt „…“. Deine Projekte: … Trag den Namen in plan/stand.json genau so ein.` —
78
- übernimm den passenden Namen **wörtlich** aus der Liste in `"projekt"`. Passen zwei, frag.
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` selbst, Statuszettel und Aufgabenlisten
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 ein Eintrag in `specs`, je User Story ein Eintrag in `stories`, je Akzeptanzkriterium
96
- ein Eintrag in `kriterien` (kurz gefasst, höchstens 500 Zeichen: Ausgangslage → Handlung →
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 `plan/stand.json`,
101
- **übernimm ihren Schlüssel unverändert** — ein umbenannter Schlüssel lässt das Urteil des
102
- Menschen verschwinden. Neu: Spec-Schlüssel = Dateiname ohne `.md`; Story-Schlüssel = die Nummer
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 (relativ, endet auf `.md`; sonst `null`). Den **Text** der Spec
107
- liest `kimal3 plan hoch` aus dieser Datei und schickt ihn mit — Pfade außerhalb des Projektordners
108
- liest es nicht.
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. `gebaut_am` ist dann `null`.
118
- - `gebaut` — gebaut. `gebaut_am`: das Datum, an dem **diese Runde** fertig wurde (`JJJJ-MM-TT`);
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
- die App stellt die Story und ihre Spec damit nach „In Arbeit".
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", und der Mensch kann sie
140
- noch nicht testen. Sag im Bericht, was fehlt, damit die Gegenprobe laufen kann.
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
- **Der `testen`-Satz** (bei jeder `gebaut`-Story, höchstens 1000 Zeichen) nennt die **Adresse oder
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 — steht
149
- er schon in der Datei, bleibt sein altes Datum.
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"`, neues `gebaut_am`, neuer `testen`-Satz. Der Mensch testet neu.
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 Befund ist keine neue Karte.** Hält eine Story nicht, was sie verspricht — Claudes Gegenprobe scheitert oder du sagst „Passt nicht" —, hängt der Befund an **dieser** Story, und ihre Spec geht zurück nach „In Arbeit“.
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 ordnet jedes Thema beim nächsten `/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. Was daraus wurde, steht unter „Zuletzt eingeordnet".
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:** Claudes Gegenproben bestanden, und du hast „Passt" gesagt — für genau diesen Stand.
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, häng den Satz des
177
- Menschen als Befund an sie (`{ "text": "<sein Satz>", "quelle": "mensch", "seit": "<heute>" }`),
178
- `stand: "in_arbeit"`, `gebaut_am: null`. Ist sie seitdem schon nachgebessert, stattdessen
179
- Runde + 1 und `befunde: []` (Abschnitt 4). Dazu in `uebernommen`:
180
- `{ "rueckmeldung": 12, "antwort": "Befund an US-2" }`. Gibt es die Story nicht mehr, sagt die
181
- `antwort`, warum. ⚠️ Ohne Befund von `mensch` und ohne höhere Runde lehnt der Server das
182
- Hochladen ab.
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, kommt nach `themen`:
185
- `{ "schluessel": "T-1", "text": "…", "quelle": "claude" | "mensch", "seit": "<heute>" }`.
186
- Nimm die nächste freie Nummer, auch über `eingeordnet` hinweg (dort bleibt ein Schlüssel
187
- 14 Tage belegt). Die fünf Plätze teilen sich `themen` und die offenen Notizen aus der App.
188
- - **Regel 3 — einordnen:** Jedes `Thema` aus `kimal3 plan` **und** jedes Thema, das schon von
189
- früher in `themen` steht, ordnest du **jetzt** ein — eins von dreien:
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 in `plan/stand.json` mit `stand: "offen"`. Passt keine Spec, frag, wohin.
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 `uebernommen` (die App zeigt
198
- sie unter „Zuletzt eingeordnet" als `<Notiz> → <Antwort>`); schreib sie darum **ohne** Pfeil
199
- am Anfang. Ein Thema aus der Datei nimmst du aus `themen` heraus und schreibst es mit seiner
200
- Antwort nach `eingeordnet`: `{ "schluessel": "T-4", "text": "<Text wie in themen>", "antwort":
201
- "<ein Satz>", "am": "<heute>" }` — die App zeigt es 14 Tage lang unter „Zuletzt eingeordnet".
202
- Einträge, deren `am` mehr als 14 Tage zurückliegt, nimmst du dabei heraus. Nenn die Einordnung
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). **Sag dem Menschen
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; in der Datei gibt es dafür kein
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 Datei
206
+ ## 6. Die Meldungen
218
207
 
219
- `plan/stand.json` steht unter Git. Beispiel, gekürzt:
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
- ```json
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
- **Die Felder** — jedes muss da sein, auch wenn es `null` oder leer ist (nur `eingeordnet` darf
263
- fehlen); ein unbekanntes Feld (ein Tippfehler wie `"befund"`) lehnt der Server ab:
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
- kimal3 plan hoch --probe
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
- `Probelauf: würde 9 Stories hochladen, 2 Rückmeldungen als übernommen melden. Gespeichert wurde
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
- Dann:
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
- kimal3 plan hoch
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
- Geklappt hat es bei `✓ Planung für „…“ hochgeladen: … Stories, … warten auf deinen Test.` und
311
- `Ansehen: …`; beim ersten Mal zusätzlich `projekt_id und basis stehen jetzt in plan/stand.json.`
312
- Die CLI hat `projekt_id` und `basis` eingetragen und `uebernommen` geleert — lass die Datei so.
313
- Sag dem Menschen, dass `plan/stand.json` geändert ist und in den nächsten Commit gehört.
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
- Danach steht eine Zeile `Spec-Texte hochgeladen: 1 von 3. Ohne Text: …` — der Text der Specs geht mit hoch.
316
- Eine Spec ohne Text ist ein **Hinweis, kein Fehlschlag** (Rückgabewert `0`): Nenn dem Menschen die
317
- Specs, die in der Klammer stehen, und was zu tun ist (Pfad in `datei` berichtigen; über 300 KB
318
- lässt sich nicht hochladen; bei „alle Spec-Texte zusammen größer als 4 MB" ist keine Datei allein
319
- zu groß — die größten bleiben draußen, bis der Rest passt).
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, Probelauf, noch einmal:**
276
+ **Absagen — die Meldung lesen, beheben, noch einmal:**
322
277
 
323
278
  | Meldung beginnt mit | Was du tust |
324
279
  |---|---|
325
- | `Der Plan ist nicht lesbar: <Ort> …` | Die Stelle (`specs[0].stories[2].stand`) in der Datei reparieren. |
326
- | `Kein Projekt heißt …` · `Mehrere deiner Projekte heißen …` · `Die Projektnummer in plan/stand.json gehört zu keinem deiner Projekte.` | Wie in Abschnitt 2. Bei der Projektnummer darfst du `projekt_id` auf `null` setzen — nur hier. |
327
- | `<Spec> / <Story> hat Runde 1, gespeichert ist schon Runde 2.` | Die Datei ist älter als der gespeicherte Stand. Runde auf den gespeicherten Wert setzen — nie kleiner. |
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 …` | Den Befund mit `quelle: "mensch"` an die Story hängen (Regel 1) — oder Runde + 1, wenn nachgebessert ist. |
330
- | `In der App liegt ein neuerer Plan (hochgeladen …).` | Eine andere Arbeitskopie hat hochgeladen. **Nicht überschreiben.** Sag es dem Menschen und frag, ob ihr deren Stand erst holt (Git) und neu prüft. `kimal3 plan hoch --ueberschreiben` **nur nach seinem ausdrücklichen Ja.** |
331
- | `Die gespeicherte Planung in der App ist beschädigt …` | Auch hier `--ueberschreiben` **nur nach seinem Ja.** |
332
- | `Die Planung ist gespeichert, aber die Rückmeldungen sind noch nicht als übernommen markiert.` | `kimal3 plan hoch` **unverändert** noch einmal — das ist harmlos, die CLI hat `basis` schon nachgetragen und `uebernommen` stehen lassen. |
333
- | ``Die Planung ist gespeichert, aber die Spec-Texte nicht. Führ `kimal3 plan hoch` noch einmal aus.`` | `kimal3 plan hoch` **unverändert** noch einmal — der Plan steht schon in der App, die CLI hat `basis` nachgetragen. |
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 ein anderer hochgeladen hat.** Nie aus eigenem Entschluss,
338
- auch nicht, wenn die Meldung es vorschlägt.
291
+ 🔴 **`--ueberschreiben` ersetzt, was andere gemeldet haben.** Nie aus eigenem Entschluss, auch
292
+ nicht, wenn die Meldung es vorschlägt.
339
293
 
340
- ## 8. Dem Menschen berichten
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`-Satz, damit er gleich loslegen kann,
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: …`.