### ROOT eines Branches ermitteln
-Der ROOT jedes Branches ist in `BRANCHES.sh` (auf dem `scripting`-Branch) als `<variable>__ROOT`-Variable definiert. **Vor jedem Rebase** den ROOT nachschlagen:
+Der ROOT jedes Branches steht in der **ROOT-Tabelle in dieser `CLAUDE.md`** (Abschnitt „Branch-Hierarchie"). **Vor jedem Rebase dort nachschlagen** — nicht in `BRANCHES.sh` greifen, da die Tabelle hier bereits vollständig und geprüft ist.
-```bash
-git checkout scripting
-grep "^<variante>__ROOT" BRANCHES.sh
-# oder: alle ROOTs auflisten
-grep "__ROOT=" BRANCHES.sh
-```
-
-Alternativ lässt sich der ROOT auch aus dem `--claude-N`-Tag ableiten:
+Als Gegencheck lässt sich der ROOT auch aus dem `--claude-N`-Tag ableiten:
```bash
git log --oneline -3 <branch>--claude-N
# Die letzten Commits zeigen, welcher Eltern-Branch vorausgeht
Jede Rebase-Session taggt jeden abgeschlossenen Branch als `<branch>--claude-N`. Die Tag-Nummer erhöht sich pro Session. Tags dienen als Wiederherstellungspunkte — `./RESET.sh claude-N` setzt alle Branches auf die entsprechenden Tags zurück. Immer direkt nach Abschluss eines Branches taggen, bevor mit dem nächsten begonnen wird.
+**Am Ende jeder Session: alle Branches taggen** — auch solche, die sich in dieser Session nicht geändert haben. Branches ohne neue Änderungen erhalten ein `--claude-N`-Tag auf demselben Commit wie ihr `--claude-(N-1)`-Tag:
+```bash
+for tag_prev in $(git tag | grep -- '--claude-N$'); do
+ tag_new="${tag_prev%--claude-(N-1)}--claude-N"
+ if ! git tag | grep -qxF "$tag_new"; then
+ git tag "$tag_new" "$(git rev-list -1 "$tag_prev")"
+ fi
+done
+```
+*(N durch die aktuelle Session-Nummer ersetzen.)*
+
## Wesentliche Einschränkungen
- `PUSH.sh` force-pusht — das ist für diesen Schulungsworkflow absichtlich und erwartet.