chore(claude): add project harness config (permissions for uv/ruff/mypy/podman)

codex-py hatte kein .claude/ — F-xx-Worker liefen mit nackten globalen Settings
und wurden bei jedem uv/ruff/mypy/pytest/git-Befehl geprompted. settings.json
spiegelt den knowledge-base-Stil (acceptEdits + harter deny-Block), zugeschnitten
auf den Python/uv-Stack + podman (DB) + ollama. settings.local.json gitignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-06-08 09:03:41 +02:00
parent d48db47a7d
commit 456dea102b
3 changed files with 104 additions and 0 deletions

21
.claude/README.md Normal file
View File

@@ -0,0 +1,21 @@
# .claude/ — Harness-Config für codex-py
`settings.json` ist **committed** (team-weit): jede Worker-Session in diesem Repo
bekommt dieselben Permissions. Persönliche Abweichungen gehören in
`settings.local.json` (gitignored).
## Was die Permissions tun
- **`defaultMode: acceptEdits`** — Edits/Writes ohne Prompt (Worker schreiben Code
in ihrem F-XX-Paket frei). Disjunkte Ownership je Paket (siehe knowledge-base
`STATE.md`); Konflikte löst der Leader bei der Integration.
- **allow** — die Dev-Toolchain (`uv`, `ruff`, `mypy`, `pytest`, `python`), git
read+workflow, `podman` (lokale pgvector-DB), `ollama` (lokales LLM), `curl`
(API-Tests, z. B. OpenAlex) und gängige Read-Utils.
- **deny** — `git push --force`/`-f`, `git clean -fd(x)`, `sudo rm`, katastrophale
`rm -rf /`/`~`. Hart blockiert. Alles übrige (z. B. `git reset --hard`) ist
*nicht* allow-gelistet → es fragt nach.
## Hinweis
Gespiegelt am Stil der knowledge-base-`.claude/`, aber auf den Python/uv-Stack
zugeschnitten. Tests laufen via `uv run pytest`; falls `uv run` die Umgebung
neu-synct, ist `.venv/bin/python` ebenfalls allow-gelistet.