Skip to content

Commit e8703f5

Browse files
Vorhaben-Doku-Konsistenz.md: Übergabe für Memory und Abschluss-Skill
Teil 1 und 2 (Prüfungen im Repo, pre-commit-Hook) sind erledigt. Diese Datei übergibt Teil 3 und 4 an eine neue Session: das Memory auf das beschränken, was steuert, wie Claude arbeitet (Fakten ins Repo, der Stand der Boards eingeschlossen), und ein Skill /abschluss für das Ende jeder Session. Mit Lage, Vorgehen, Vorsicht (Repo öffentlich, Memory nicht) und Abnahme; entschieden wird je Punkt mit dem Owner. Dazu der Nebenbefund: Zwei Vorhaben-Dateien nennen im Kopf nicht das aktuelle Ergebnis, obwohl CLAUDE.md das zusagt. Vorschlag: eine feste Ergebnis-Zeile, die repo_konsistenz_test dann prüfen kann. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 88a8044 commit e8703f5

2 files changed

Lines changed: 171 additions & 0 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,7 @@ Der vollständige Changelog mit Begründung und Nachweis je Version steht in
10771077
| [`Vorhaben-HeaterSet.md`](Vorhaben-HeaterSet.md) | Heizstab über MQTT (SET37–SET39) — Entwurf, Messungen und Entscheidungen; erledigt in 3.17.0 |
10781078
| [`Vorhaben-Nur-ESP32-Pfad.md`](Vorhaben-Nur-ESP32-Pfad.md) | ESP8266-Pfad aus Code, Build, CI und Doku entfernt — Planung und Entscheidungen; erledigt in 3.16.0 |
10791079
| [`Vorhaben-Notbetrieb-Weboberflaeche.md`](Vorhaben-Notbetrieb-Weboberflaeche.md) | Notbetrieb per Browser — Entwurf, Messungen und die Protokolle der Läufe an der Anlage; erledigt in 3.12.0 |
1080+
| [`Vorhaben-Doku-Konsistenz.md`](Vorhaben-Doku-Konsistenz.md) | Doku, Memory und Code beisammenhalten — Prüfungen und pre-commit-Hook erledigt (2026-09-18), offen: Memory verschlanken und Abschluss-Skill |
10801081
| [`Ablauf-Backup-Boards.md`](Ablauf-Backup-Boards.md) | Die zwei Ersatzplatinen: Einrichtung, Pflege bei jeder Änderung, Tausch im Ernstfall |
10811082
| [`Ablauf-Notbetrieb.md`](Ablauf-Notbetrieb.md) | Was beim Druck auf den Knopf und bei der Rückkehr der Steuerung Schritt für Schritt passiert, mit Zeiten |
10821083
| [`Vorhaben-Hydraulik-Notbetrieb.md`](Vorhaben-Hydraulik-Notbetrieb.md) | Warum der Notbetrieb die Hydraulik selbst auf 1-stufig stellt — Entwurf und Entscheidungen; erledigt in 3.15.0 |

‎Vorhaben-Doku-Konsistenz.md‎

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# Vorhaben: Doku, Memory und Code beisammenhalten
2+
3+
> **Übergabe für eine neue Session — Stand 2026-09-18.**
4+
> Teil 1 und 2 sind erledigt: Prüfungen für die Tabellen des Repos und ein
5+
> pre-commit-Hook. Offen sind **Teil 3** (Memory verschlanken) und **Teil 4**
6+
> (Abschluss-Skill). Beides ist mit dem Owner abgesprochen, die Einzelheiten
7+
> entscheidet er je Punkt in der neuen Session.
8+
> **Ergebnis: offen.**
9+
10+
## Worum es geht
11+
12+
Dieses Projekt wird vollständig von Claude bearbeitet. Zwischen zwei Sessions
13+
bleibt nur, was im Repo oder im Memory steht — was keine Prüfung erzwingt,
14+
hängt am Daran-Denken. Das ging in Kleinigkeiten immer wieder schief. Die
15+
Durchsicht vom 2026-09-18 hat drei Ursachen gefunden:
16+
17+
1. **Derselbe Sachverhalt steht an mehreren Stellen** — in `src/version.h`,
18+
README, einem Vorhaben, einer Zuordnungstabelle und im Memory. Jede Kopie
19+
ist eine Stelle, die man vergessen kann.
20+
2. **Geprüft wurde nur ein Teil**, und ein Teil davon nur auf Zuruf.
21+
3. **Doku-Commits liefen ohne jede Prüfung** direkt auf `main`; aufgefallen
22+
wäre ein Fehler frühestens in der CI nach dem Push.
23+
24+
## Erledigt am 2026-09-18 (Teil 1 und 2)
25+
26+
Merges `a48e6a6`, `1095408` und `88a8044` auf `main`.
27+
28+
* [`test/doku_zuordnung_test.py`](test/doku_zuordnung_test.py) —
29+
`Byte-Zuordnung.md` gegen den Code, dazu `set_top_zuordnung.py --pruefen`.
30+
* `set_top_zuordnung.py --pruefen` prüft jetzt auch die Topic-Listen in
31+
Abschnitt 3 von `SET-TOP-Zuordnung.md` und die Zahlen im Text. Anlass: Die
32+
sieben Installer-Topics aus 3.19.0 fehlten dort drei Wochen unbemerkt.
33+
* [`test/repo_konsistenz_test.py`](test/repo_konsistenz_test.py) — README
34+
„Aufbau“, die Werkzeugtabelle in `test/README.md`, `MQTT-Topics.md` gegen den
35+
Code, die Pfade in `CLAUDE.md` und jeder relative Link. Fand beim Einführen
36+
14 Lücken, alle berichtigt.
37+
* `test/hosttests.sh --schnell` fährt nur die Python-Prüfungen (< 1 s); die
38+
Vollständigkeitsprüfung erfasst jetzt auch `*_test.py`.
39+
* [`.githooks/pre-commit`](.githooks/pre-commit) ruft `--schnell` vor jedem
40+
Commit. **Einmal je Klon aktivieren:** `git config core.hooksPath .githooks`
41+
— im Arbeitsverzeichnis des Owners ist das seit 2026-09-18 gesetzt.
42+
43+
**Was diese Prüfungen nicht abdecken:** Bedeutungstexte (Befunde,
44+
Begründungen, Fußnoten), das Memory (liegt außerhalb des Repos) und ob der
45+
Kopf eines Vorhabens das aktuelle Ergebnis nennt. Darum geht es in Teil 3
46+
und 4.
47+
48+
## Teil 3 — Memory verschlanken
49+
50+
### Lage (2026-09-18)
51+
52+
* 43 Memory-Dateien, zusammen rund 25 000 Wörter. `MEMORY.md` hat 44 Zeilen und
53+
wird in jeder Session geladen.
54+
* **`projektstand-heishamon` allein hat rund 10 500 Wörter**, darin acht
55+
übereinandergestapelte Absätze „AKTUELLER STAND“ von 3.11.0 bis 3.22.0. Das ist
56+
ein zweiter Changelog neben `src/version.h` — genau die Doppelung aus Ursache 1.
57+
* Acht Memories nennen sich selbst „erledigt“ oder „abgeschlossen“ — Kandidaten
58+
für ein Archiv.
59+
* Der **zweistufige Index** (`INDEX_*.md` je Thema, `ARCHIV.md` für Erledigtes,
60+
in `MEMORY.md` nur Grundregeln und Verzeichnis) ist in der globalen
61+
Arbeitsanweisung des Owners beschrieben und wird von seinem `memory-lint` (V2)
62+
unterstützt — dieses Projekt nutzt ihn noch nicht.
63+
* Eine Memory verweist auf zwei Logdateien unter `test/`, die es nicht mehr gibt.
64+
65+
### Ziel
66+
67+
* **Im Memory steht nur noch, wie Claude arbeitet** — Messkniffe, Kalibrierung,
68+
Entscheidungsgewohnheiten des Owners. **Fakten stehen im Repo.** So zieht
69+
die globale Arbeitsanweisung des Owners die Grenze, sinngemäß: Was ein Mensch
70+
bei der Übergabe braucht, gehört ins Repo; ins Memory kommt nur, was steuert,
71+
wie Claude arbeitet — kein Fakt an beiden Stellen.
72+
* **Der Stand der Boards gehört ins Repo**: welche Version auf welchem der vier
73+
Boards läuft, welcher Rückfall bereitliegt. Das braucht auch die Familie bei
74+
einer Übergabe. Naheliegender Ort ist `Ablauf-Backup-Boards.md` (dort stehen
75+
die Adressen der Boards bereits); der Owner entscheidet.
76+
* `MEMORY.md` enthält nur noch Grundregeln, die jede Session braucht, und das
77+
Verzeichnis der Themen-Indizes.
78+
79+
### Vorgehen
80+
81+
1. **Bestandsaufnahme vorlegen:** eine Tabelle aller Memories — Name, Typ,
82+
Umfang, Vorschlag (behalten / kürzen / ins Repo / ins Archiv / löschen) mit
83+
Begründung. **Dem Owner vorlegen und je Memory entscheiden lassen**, nicht als
84+
Paket. Ein Vorschlag ist kein Entscheid und wird auch nicht so notiert.
85+
2. **`projektstand-heishamon` zuerst:** auf den aktuellen Stand und die offenen
86+
Punkte kürzen. Alles Geschichtliche steht in `src/version.h`, in den
87+
Vorhaben-Dateien oder im Changelog der Releases; vor dem Löschen eines Absatzes
88+
stichprobenartig nachsehen, dass er dort wirklich steht. Was nirgends steht und
89+
ein Mensch braucht, kommt ins Repo.
90+
3. **Themen-Indizes anlegen** und die Zeiger aus `MEMORY.md` dorthin umziehen;
91+
Erledigtes nach `ARCHIV.md`. Die Regeln setzt `memory-lint` durch — er blockiert
92+
bei Schemafehlern, also Zeile für Zeile umziehen, nicht alles auf einmal.
93+
4. **Tote Verweise bereinigen** (die zwei Logdateien).
94+
5. **Vorschlag an den Owner, nicht umsetzen:** `memory-lint` könnte zusätzlich
95+
melden, wenn eine Memory auf eine Datei im Repo zeigt, die es nicht gibt. Das
96+
Werkzeug gehört dem Owner und läuft in allen seinen Projekten.
97+
98+
### Vorsicht
99+
100+
* **Das Repo ist öffentlich, das Memory nicht.** Manche Memories tragen den
101+
ausdrücklichen Vermerk, ihren Inhalt nicht öffentlich zu dokumentieren. Vor
102+
jedem Umzug ins Repo je Punkt prüfen, ob er öffentlich sein darf; im Zweifel
103+
den Owner fragen.
104+
* `doku-intern/` gilt weiter: nachschlagen ja, zitieren nie — auch nicht beim
105+
Umformulieren einer Memory.
106+
* Passwörter und Ports gehören weiterhin nur in `platformio_user_env.ini`.
107+
108+
### Abnahme
109+
110+
* `projektstand-heishamon` enthält nur noch den aktuellen Stand und offene Punkte
111+
(Richtwert: unter 1 000 Wörtern).
112+
* Stichprobe: Zu fünf gelöschten Fakten findet sich die Stelle im Repo.
113+
* `memory-lint` grün, `MEMORY.md` nur Grundregeln und Verzeichnis.
114+
115+
## Teil 4 — Abschluss-Skill `/abschluss`
116+
117+
### Zweck
118+
119+
Ein fester Handgriff am Ende jeder Session statt „daran denken“. Er lohnt erst
120+
nach Teil 3 — vorher prüft er gegen ein Memory, das selbst nicht stimmt.
121+
122+
### Inhalt (Vorschlag, mit dem Owner abstimmen)
123+
124+
1. **Prüfen:** `./test/hosttests.sh --schnell`, bei Änderungen in `src/` der volle
125+
Lauf. `git status`, ungepushte Commits, offene Branches melden.
126+
2. **Memory abgleichen:** Welche Memories berühren die Änderungen dieser Session
127+
(Suchbegriffe aus dem Diff)? Stimmen deren Angaben noch? Neue Erkenntnis: ins
128+
Repo (braucht ein Mensch) oder ins Memory (steuert Claude)?
129+
3. **Vorhaben-Köpfe:** Nennt jede heute bearbeitete Datei `Vorhaben-*`,
130+
`Auftrag-*`, `Arbeitsplan-*` oben das aktuelle Ergebnis?
131+
4. **Abschlussmeldung** nach der globalen Regel des Owners: was geändert wurde,
132+
warum, und was offen ist — drei bis fünf Sätze.
133+
134+
### Form
135+
136+
`.claude/skills/abschluss/SKILL.md`, aufgebaut wie `/pruefen-vor-merge`: nur
137+
lesen, prüfen und melden; pushen nur auf Auftrag. Eintrag in `CLAUDE.md` unter
138+
„Wo was steht“.
139+
140+
### Abnahme
141+
142+
Einmal am Ende der Session laufen lassen, die Teil 3 abschließt; dabei gefundene
143+
Abweichungen berichtigen.
144+
145+
## Nebenbefund: das Ergebnis im Kopf der Vorhaben
146+
147+
`CLAUDE.md` sagt über die Vorhaben- und Auftragsdateien: „Ergebnis steht jeweils
148+
im Kopf“. Zwei weichen ab:
149+
150+
* [`Arbeitsplan-KNX-Vorderhaus.md`](Arbeitsplan-KNX-Vorderhaus.md) führt oben noch
151+
„Ergebnis: offen“; das tatsächliche Ergebnis („ausgerollt“) steht drei Absätze
152+
tiefer.
153+
* [`Vorhaben-Nur-ESP32-Pfad.md`](Vorhaben-Nur-ESP32-Pfad.md) nennt im Kopf nur den
154+
Planungsstand vom 2026-08-25, obwohl 3.16.0 umgesetzt und ausgerollt ist.
155+
156+
**Vorschlag für den Owner:** eine feste Zeile `**Ergebnis:** …` direkt unter der
157+
Überschrift jeder solchen Datei. Dann kann `repo_konsistenz_test.py` prüfen, dass
158+
sie vorhanden ist — ob sie stimmt, prüft der Abschluss-Skill (Teil 4, Schritt 3).
159+
160+
## Regeln für die Session
161+
162+
* Anrede in Du-Form, Deutsch. Optionen nummeriert und mit einer markierten
163+
Empfehlung vorlegen, Punkte **einzeln** entscheiden lassen.
164+
* Die harten Regeln aus [`CLAUDE.md`](CLAUDE.md) gelten. Doku-Änderungen gehen
165+
direkt auf `main` (der Hook prüft sie); Änderungen an Tests und Skripten auf
166+
einem Branch mit Rettungsanker, wie am 2026-09-18.
167+
* Kein Zugriff auf die Anlage nötig.
168+
* Pushen nur auf Auftrag, und ohne `--follow-tags` — die Rettungsanker bleiben
169+
lokal.
170+
* Zum Schluss den Kopf dieser Datei auf das Ergebnis setzen.

0 commit comments

Comments
 (0)