Automatischer Push: 25 Datei(en) geändert
- .claude/agents/executer.md - .claude/agents/recherche.md - .claude/skills/anleitung-straffen/SKILL.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/00-uebersicht.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/task-01-zaehler.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/task-02-sitzungsstart.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/task-03-regeltexte.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/task-04-bestandsskript.md - .vault-tools/linkcheck/docs/plans/2026-09-29-waisen/task-05-bestandslauf.md - .vault-tools/workflow-pruefung/docs/plans/2026-09-29-quorum/00-uebersicht.md - .vault-tools/workflow-pruefung/docs/plans/2026-09-29-quorum/task-01-quorum-werkzeug.md - .vault-tools/workflow-pruefung/docs/plans/2026-09-29-quorum/task-02-quorum-workflow.md - … und 13 weitere Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
8e29a16e7b
commit
e8472409e9
25 files changed
+6403
-86
No files matched your search
@@ -0,0 +1,134 @@
|
||||
---
|
||||
type: plan-task
|
||||
title: "Task 05 — Bestandslauf: Probelauf, Halt, echter Lauf nach Freigabe"
|
||||
status: draft
|
||||
summary: "Fährt Zähler und Bestandsskript gegen den echten Vault: Phase A nur Probelauf mit Auszählung und Halt, Phase B erst nach ausdrücklicher Freigabe mit Sicherung außerhalb des Vaults; kein Commit."
|
||||
tags: [plan-task, vault-tools]
|
||||
created: 2026-09-29
|
||||
updated: 2026-09-29
|
||||
modell: sonnet
|
||||
modell_begruendung: "Keine Codeänderung, aber Befehle gegen den echten Vault mit einem harten Halt, einem Datumswert aus der Laufzeit und Ausgaben, die vor dem Weitermachen gelesen werden müssen."
|
||||
---
|
||||
Übersicht: [00-uebersicht.md](00-uebersicht.md)
|
||||
|
||||
# Task 05 — Bestandslauf
|
||||
|
||||
Globale Vorgaben: `00-uebersicht.md` im selben Ordner, Abschnitt „Globale Vorgaben“.
|
||||
|
||||
Voraussetzungen: Tasks 01, 02 und 04 sind umgesetzt und geprüft. Pascal hat die Prüfschritte P1 bis P3 aus der Übersicht in Obsidian beantwortet.
|
||||
|
||||
Der Task hat zwei Phasen. **Phase A** fährst du, wenn der Auftrag „Phase A“ sagt. **Phase B** fährst du nur, wenn im Auftrag wörtlich „Phase B freigegeben“ steht. Steht das nicht da, endet dein Lauf nach Phase A.
|
||||
|
||||
## Zieldateien
|
||||
|
||||
Im Vault und in den Projekt-Repos ändert nur `waisen_bestand.py` selbst Dateien, und nur in Phase B. Du legst von Hand nur an:
|
||||
|
||||
- `D:\Claude-waisen-protokoll\` (neu, außerhalb des Vaults, Ausgaben der Läufe)
|
||||
- `D:\Claude-Sicherung-<Datum>-waisen\` (neu, außerhalb des Vaults, legt das Skript in Phase B selbst an)
|
||||
|
||||
## Verbote
|
||||
|
||||
- Kein Commit, kein `git add`, kein `git stash`, kein `git checkout` in irgendeinem Repo.
|
||||
- Keine Datei im Vault von Hand anfassen, auch nicht, um einen Befund „schnell“ zu beheben.
|
||||
- Phase B nie ohne die wörtliche Freigabe im Auftrag. Bricht ein Lauf ab, nicht wiederholen und nichts zurückkopieren: melden.
|
||||
- Befehle im Bash-Werkzeug, nicht in der PowerShell. Dort schreibt `>` UTF-16.
|
||||
|
||||
## Phase A — Probelauf
|
||||
|
||||
### A1 — Treiber im echten Baum
|
||||
|
||||
```
|
||||
PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/faelle_waisen.py > /dev/null; echo "faelle_waisen exit=$?"; PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/faelle_waisen_bestand.py > /dev/null; echo "faelle_waisen_bestand exit=$?"
|
||||
```
|
||||
|
||||
Erwartet: zweimal `exit=0`. Sonst Halt und melden.
|
||||
|
||||
### A2 — Protokollordner
|
||||
|
||||
```
|
||||
test ! -e D:/Claude-waisen-protokoll && mkdir D:/Claude-waisen-protokoll && echo "angelegt"
|
||||
```
|
||||
|
||||
Erwartet: `angelegt`. Gibt es den Ordner schon, Halt und melden.
|
||||
|
||||
### A3 — Zählung vorher
|
||||
|
||||
```
|
||||
PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/waisen.py --vault D:/Claude --liste > D:/Claude-waisen-protokoll/waisen-vorher.txt; echo "exit=$?"; grep -E '^(Notizen im Graphen|Einträge in userIgnoreFilters|Ausgenommene Waisen|Muster ohne Treffer|Waisen außerhalb)' D:/Claude-waisen-protokoll/waisen-vorher.txt
|
||||
```
|
||||
|
||||
Erwartet: `exit=1` und die Zahlenzeilen. `exit=2` heißt abgebrochen: Halt und melden.
|
||||
|
||||
### A4 — Probelauf
|
||||
|
||||
```
|
||||
PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/waisen_bestand.py --vault D:/Claude > D:/Claude-waisen-protokoll/probelauf.txt; echo "exit=$?"
|
||||
```
|
||||
|
||||
Erwartet: `exit=0`.
|
||||
|
||||
### A5 — Auszählung (Messschritt M3)
|
||||
|
||||
```
|
||||
P=D:/Claude-waisen-protokoll/probelauf.txt; echo "ZIEL gesamt: $(grep -c '^ZIEL ' "$P")"; echo "davon Plan-Uebersichten: $(grep -c '^ZIEL .*/00-uebersicht\.md \[' "$P")"; echo "davon Code Projekte: $(grep -c '^ZIEL Code Projekte/' "$P")"; echo "davon IT Workspace: $(grep -c '^ZIEL IT Workspace/' "$P")"; echo "davon AI/secondbrain: $(grep -c '^ZIEL AI/secondbrain/' "$P")"; echo "UEBERSPRUNGEN: $(grep -c '^UEBERSPRUNGEN ' "$P")"; echo "REST: $(grep -c '^REST ' "$P")"; grep -E '^(Waisen außerhalb|Durch Anhänge)' "$P"
|
||||
```
|
||||
|
||||
### A6 — Stichproben gegen die Verbote
|
||||
|
||||
```
|
||||
P=D:/Claude-waisen-protokoll/probelauf.txt; echo "Taskdateien als Ziel:"; grep -E '^ZIEL .*/task-[^/]*\.md \[' "$P"; echo "Ausnahmen als Ziel:"; grep -E '^ZIEL (Bookstack/|Code Projekte/[^/]*/data/)' "$P"; echo "Ende der Stichprobe"
|
||||
```
|
||||
|
||||
Erwartet: zwischen den Überschriften und `Ende der Stichprobe` steht nichts. Steht dort eine Zeile, Halt und melden.
|
||||
|
||||
### A7 — Halt
|
||||
|
||||
Melde die vollständige Ausgabe von A1 bis A6 und den Pfad `D:/Claude-waisen-protokoll/probelauf.txt`. Dann endet dein Lauf. Den Probelauf liest der Koordinator, die Freigabe für Phase B gibt Pascal.
|
||||
|
||||
## Phase B — echter Lauf, nur mit „Phase B freigegeben“
|
||||
|
||||
### B1 — Vault seit Phase A unverändert?
|
||||
|
||||
```
|
||||
PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/waisen_bestand.py --vault D:/Claude > D:/Claude-waisen-protokoll/probelauf-2.txt; echo "exit=$?"; diff <(grep -E '^(ZIEL | \| |UEBERSPRUNGEN |REST )' D:/Claude-waisen-protokoll/probelauf.txt) <(grep -E '^(ZIEL | \| |UEBERSPRUNGEN |REST )' D:/Claude-waisen-protokoll/probelauf-2.txt) && echo "GLEICH"
|
||||
```
|
||||
|
||||
Erwartet: `exit=0` und `GLEICH`. Zeigt `diff` Unterschiede, hat sich der Vault seit Phase A geändert: Halt, die `diff`-Ausgabe melden, nichts anwenden.
|
||||
|
||||
### B2 — Anwenden
|
||||
|
||||
```
|
||||
S="D:/Claude-Sicherung-$(date +%F)-waisen"; echo "Sicherung: $S"; test ! -e "$S" && PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/waisen_bestand.py --vault D:/Claude --anwenden --sicherung "$S" > D:/Claude-waisen-protokoll/anwenden.txt; echo "exit=$?"
|
||||
```
|
||||
|
||||
Erwartet: die Zeile `Sicherung: D:/Claude-Sicherung-<Datum>-waisen` und `exit=0`. Prüfe, ob das Datum mit dem Sitzungsdatum aus deinem Kontext übereinstimmt, und melde es. Bei `exit=2` die ganze Datei `anwenden.txt` melden, besonders die Zeilen unter `Vor dem Abbruch schon angehängt`, und nichts weiter tun.
|
||||
|
||||
### B3 — Anwenden hat getan, was der Probelauf zeigte
|
||||
|
||||
```
|
||||
diff <(grep -E '^(ZIEL | \| |UEBERSPRUNGEN |REST )' D:/Claude-waisen-protokoll/probelauf-2.txt) <(grep -E '^(ZIEL | \| |UEBERSPRUNGEN |REST )' D:/Claude-waisen-protokoll/anwenden.txt) && echo "GLEICH"; grep -E '^(Angehängt an|Waisen außerhalb der Ausnahmen)' D:/Claude-waisen-protokoll/anwenden.txt
|
||||
```
|
||||
|
||||
Erwartet: `GLEICH`, dazu die Zeilen mit „vorher“ und „nachher“.
|
||||
|
||||
### B4 — Zählung nachher
|
||||
|
||||
```
|
||||
PYTHONIOENCODING=utf-8 python D:/Claude/.vault-tools/linkcheck/waisen.py --vault D:/Claude --liste > D:/Claude-waisen-protokoll/waisen-nachher.txt; echo "exit=$?"; grep '^Waisen außerhalb' D:/Claude-waisen-protokoll/waisen-nachher.txt
|
||||
```
|
||||
|
||||
Erwartet: dieselbe Zahl wie in der Zeile „nachher“ aus B3.
|
||||
|
||||
### B5 — Stand der Projekt-Repos
|
||||
|
||||
Setze `S` auf den Pfad aus B2, Zeile `Sicherung:`, und fahre:
|
||||
|
||||
```
|
||||
cut -d/ -f1-2 "$S/GEAENDERT.txt" | grep '^Code Projekte/' | sort -u | while IFS= read -r r; do echo "== $r"; git -C "D:/Claude/$r" status --short; done
|
||||
```
|
||||
|
||||
Erwartet: je Repo eine Überschrift `== Code Projekte/<projekt>` und darunter nur Zeilen mit ` M` für Dateien aus `GEAENDERT.txt`. Committen tut der Koordinator nach Pascals Ja, je Repo einzeln.
|
||||
|
||||
### B6 — Bericht
|
||||
|
||||
Melde die vollständige Ausgabe von B1 bis B5, den Sicherungspfad und die Pfade der vier Protokolldateien. Nichts committen, nichts zurückkopieren.
|
||||
Reference in new issue
Block a user