# Subagent: forgejo-token-rotator

**Auftrag:** Forgejo-Token für `hector-bot` auf `vmd185580.tailf38284.ts.net` rotieren und überall eintragen.

**Quelle:** Anleitung aus `krallen-skills/forgejo-instance-setup/SKILL.md` (Repo: https://vmd185580.tailf38284.ts.net/hector-bot/krallen-skills/src/branch/main/forgejo-instance-setup/SKILL.md).

**Trigger:** Token `b15b63a75e3164836a8b97dfde1b3b83bdcb873c` gibt seit 2026-06-16 ~20:42 UTC konsequent 401. Lokale Commits liegen bereit (insb. `fe24b99` Aschenbrenner-Ingest), Push blockiert.

---

## Workflow

### 1. SKILL-Anleitung lesen

```bash
SKILL_URL="https://vmd185580.tailf38284.ts.net/hector-bot/krallen-skills/raw/branch/main/forgejo-instance-setup/SKILL.md"
curl -sSL -H "Authorization: token b15b63a75e3164836a8b97dfde1b3b83bdcb873c" "$SKILL_URL" || echo "FALLBACK: Repo clonen und Datei lesen"
```

Falls `curl` mit altem Token 401 bringt: SKILL-Inhalt manuell aus Repo-UI/Clone holen.

### 2. Anleitung befolgen

Die SKILL beschreibt (vermutlich):
- Login via `tea login add` oder Browser-Session
- Neuen Token generieren (User-Settings → Applications → Generate Token)
- Scope: `repository` (read+write), ggf. `user` (für Account-Ops)
- Token kopieren (nur einmal sichtbar!)

### 3. Token eintragen

In **allen** dieser Stellen:

| Datei | Pfad | Format |
|---|---|---|
| `~/workspace/TOOLS.md` | Zeile `Token (tea):` ersetzen | `b15b63a7…` → `<neuer>` |
| `~/.config/tea/config.yml` | `token:`-Feld unter `hector-bot@botreasury` | gleich |
| OpenClaw-Env-Vars (falls gesetzt) | `FORGEJO_TOKEN` o.ä. in `/etc/openclaw/` oder `.env` | gleich |

WICHTIG: Vor dem Editieren **Backup** der Original-Dateien machen (in `/home/node/workspace/.backup/<timestamp>/`).

### 4. Verifizieren

```bash
# Token-Test
curl -sS -H "Authorization: token <NEUER_TOKEN>" \
  https://vmd185580.tailf38284.ts.net/api/v1/user | jq -r '.login'

# Erwartet: "hector-bot"

# Push-Test (lokal bereits vorhandener Aschenbrenner-Commit)
cd /home/node/workspace/knowledge-base
git log --oneline -5  # fe24b99 sollte oben sein
git push origin main

# Erwartet: success, kein 401
```

### 5. Commit + ToDo-Update

```bash
cd /home/node/workspace/knowledge-base
git add wiki/tasks/maintenance-todo.md
git commit -m "WMT-007: forgejo token rotated (<KURZ-HASH alt> → <KURZ-HASH neu>)"
git push origin main
```

ToDo-Eintrag in `wiki/tasks/maintenance-todo.md`:
- Status `planning` → `done`
- Datum + Commit-Hash eintragen
- `Subagent: forgejo-token-rotator.md (Run YYYY-MM-DD)`

### 6. Topic-Report

Im RamaDama-Topic posten (kurz, Telegram-klickbar):
- ✅ Forgejo-Token rotiert
- Neuer Token-Hash (erste 4 + letzte 4 Zeichen)
- Commit-SHA der ToDo-Aktualisierung
- Push-Test bestätigt

---

## Eskalation an Pit

NUR wenn:
- (a) Forgejo-UI-Login scheitert (Credentials unbekannt, MFA-Token fehlt)
- (b) Account gesperrt
- (c) SKILL beschreibt andere API-Endpunkte als die aktuelle Forgejo-Version
- (d) Token-Test 401 trotz erfolgreicher Rotation (möglich: Token-Scope falsch)

In diesen Fällen: Topic-Post mit Block + benötigter Pit-Action. KEIN 30-Minuten-Retry-Loop.

---

## Sicherheit

- Token **nie** in Logs oder Commit-Messages im Klartext
- Auch nicht im Topic-Post — nur Kurz-Hash (`ab12…xy9`)
- `TOOLS.md` und `tea/config.yml` sind Workspace-Dateien, **nicht** im Git-Repo des Wikis — kein Commit auf den Token-Inhalt