35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
# .claude/ — Harness-Config fürs Multi-Agent-System
|
|
|
|
`settings.json` ist **committed** (team-weit): jede Leader- wie Worker-Session in
|
|
diesem Repo bekommt dieselben Permissions. Persönliche Abweichungen gehören in
|
|
`settings.local.json` (gitignored).
|
|
|
|
## Was die Permissions tun
|
|
- **`defaultMode: acceptEdits`** — Datei-Edits/Writes laufen ohne Prompt (Worker
|
|
schreiben Code in ihrem Paket frei). Ownership-Verstöße fängt das Ownership-Gate
|
|
beim Commit, nicht der Prompt.
|
|
- **allow** — die Gate-Skripte, git read+workflow (inkl. `git worktree`), `bash -n`,
|
|
`pytest`, `dvc`, `ollama`, `curl` (Gitea-API für PRs) und gängige Read-Utils.
|
|
- **deny** — `git push --force`/`-f`, `git clean -fd(x)`, `sudo rm`, katastrophale
|
|
`rm -rf /`/`~`. Hart blockiert, nicht nur Prompt. Alles übrige (z. B. ein
|
|
einzelnes `git reset --hard`) ist *nicht* allow-gelistet → es fragt nach.
|
|
|
|
## Parallel arbeiten mit tmux + git worktree (empfohlen)
|
|
Ein Worker pro Paket in **eigenem Worktree + eigener tmux-Pane** — so kollidiert
|
|
nichts, und das Ownership-Gate hält die Grenzen sauber:
|
|
|
|
```bash
|
|
# je Worker einen Worktree auf seinem Branch
|
|
git worktree add ../$(basename "$PWD")-W2 -b feat/w2-profiles main
|
|
git worktree add ../$(basename "$PWD")-W3 -b feat/w3-exporter main
|
|
# … dann in je einer tmux-Pane:
|
|
cd ../<repo>-W2 && claude # Inhalt von session-prompts/W2.md einfügen
|
|
```
|
|
|
|
Der **Leader** bleibt im Haupt-Checkout (Branch `main`/`integrate/*` → vom
|
|
Ownership-Gate ausgenommen), integriert die Worker-PRs und löst Konflikte.
|
|
Nach dem Mergen: `git worktree remove ../<repo>-W2`.
|
|
|
|
> Optional global (persönlich, nicht hier): `teammateMode: "tmux"` in
|
|
> `~/.claude/settings.json`, falls du Claudes native Teammate-Spawns nutzt.
|