ROADMAP mit 7 Items (F-01…F-07) und DAG. STATE aktiviert. CONVENTIONS projektspezifisch ergänzt. ADRs 0002-0004 (Stack, Whitelist, Spike-Gate). Kaltstartfähige Prompts für F-01 (Skeleton) und F-02 (API-Spike) erzeugt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# Session-Prompt F-01 — Projekt-Skeleton
|
|
|
|
```
|
|
Modell: Sonnet
|
|
|
|
Du arbeitest in /Users/tarikmoussa/Desktop/files/agent-swarm-repo auf einem neuen Branch
|
|
`feat/skeleton` (von `main`).
|
|
|
|
## Aufgabe
|
|
Lege das Python-Projekt-Skeleton für den Telegram-Bot an:
|
|
pyproject.toml, Paketstruktur unter `src/bot/`, leere Test-Dateien unter `tests/`,
|
|
.env.example und .gitignore. Kein Feature-Code — nur die Projektstruktur,
|
|
sodass `uv run pytest tests/ -v` mit 0 Tests grün durchläuft.
|
|
|
|
Scope: NUR Datei- und Konfigurationsstruktur. Kein Bot-Code, kein HTTP-Code.
|
|
|
|
## Details
|
|
Entscheidungen: `docs/adr/0002-python-telegram-bot-framework.md`
|
|
Konventionen: `CONVENTIONS.md` (Abschnitt "Projekt: tg-bot-jetson")
|
|
|
|
Gewünschte Verzeichnisstruktur:
|
|
```
|
|
src/
|
|
bot/
|
|
__init__.py
|
|
config.py # pydantic-settings: BOT_TOKEN, ALLOWED_USER_IDS, MODEL_BASE_URL
|
|
handlers.py # vorerst leer (Platzhalter)
|
|
whitelist.py # vorerst leer (Platzhalter)
|
|
connector.py # vorerst leer (Platzhalter)
|
|
main.py # Einstiegspunkt (vorerst nur "pass")
|
|
tests/
|
|
__init__.py
|
|
test_config.py # vorerst leer
|
|
pyproject.toml # [project] name="tg-bot-jetson", requires-python=">=3.11"
|
|
# deps: python-telegram-bot>=21, httpx, pydantic-settings
|
|
# [dev-deps]: pytest, ruff
|
|
.env.example # BOT_TOKEN=<dein-bot-token>, ALLOWED_USER_IDS=123456,789012
|
|
# MODEL_BASE_URL=http://192.168.x.x:11434
|
|
.gitignore # .env, __pycache__, .venv, uv.lock nicht (committen!)
|
|
uv.lock # nach `uv sync` erzeugt und committen
|
|
```
|
|
|
|
## Akzeptanzkriterien
|
|
- [ ] `uv sync` läuft ohne Fehler.
|
|
- [ ] `uv run pytest tests/ -v` läuft durch (0 Tests, kein Fehler).
|
|
- [ ] `uv run ruff check src/ tests/` → 0 Befunde.
|
|
- [ ] `src/bot/config.py` enthält eine Pydantic-Settings-Klasse mit BOT_TOKEN,
|
|
ALLOWED_USER_IDS (list[int]), MODEL_BASE_URL.
|
|
- [ ] `.env.example` vorhanden und aussagekräftig.
|
|
- [ ] `.env` ist in `.gitignore`.
|
|
|
|
## Nicht anfassen
|
|
Alles außer den oben genannten Pfaden. Kein Telegram-Handler-Code,
|
|
kein HTTP-Client-Code, keine Whitelist-Logik.
|
|
|
|
## Commit & Push
|
|
- Conventional Commit: `chore: scaffold tg-bot-jetson project skeleton`
|
|
- Trailer: `Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>`
|
|
- Push nach `origin feat/skeleton`, PR öffnen (Base: `main`).
|
|
|
|
## Abschluss
|
|
1. Manifest-Eintrag updaten: `manifests/requirements.md` → R-0001, Status `done`.
|
|
2. `STATE.md` aktualisieren: F-01 → In Progress → nach Merge: Next F-03 + F-04 frei.
|
|
3. Session-Log schreiben: `sessions/TEMPLATE.md` → `sessions/F-01-<datum>.md`.
|
|
4. Hygiene-Gate: `bash scripts/gate-session-hygiene.sh`.
|
|
5. PR-URL + Test-Zählstand reporten.
|
|
```
|