# Handoff — KNIEPUNKT Assistant ## What was built A Python CLI assistant (`main.py`) for Dr. André Knie's weekly KNIEPUNKT editorial workflow. Six steps: **research → source assessment → storyline → draft → quality → publication** Multi-LLM support (Claude, ChatGPT, Gemini, Mistral) for storyline and draft steps. All other steps use Claude only (web search + analytical tasks). Read `SPEC.md` and `AGENTS.md` — they are the source of truth. ## Current git state - **Branch:** `agent/build-kniepunkt-assistant-20260424-75734895` - **Base:** `master` - **Commit:** `e08c484` — initial build, all files committed and pushed - **PR:** not yet opened — open at https://git.d-hive.de/ankn/Kniepunkt targeting `master` ## Remote access SSH is broken (`gitssh.d-hive.de:80` is an HTTP reverse proxy; port 22 times out). Use HTTPS only. Token is embedded in the remote URL — check with `git remote -v`. If token expires: generate a new one at https://git.d-hive.de → Settings → Applications. ## How to run ```bash export PATH="$HOME/.local/bin:$PATH" # fill in .env with API keys first uv run --env-file .env python main.py ``` ## API keys (.env) ``` ANTHROPIC_API_KEY= # required (also used for web search) OPENAI_API_KEY= # optional — enables ChatGPT in storyline/draft steps GOOGLE_API_KEY= # optional — enables Gemini MISTRAL_API_KEY= # optional — enables Mistral ``` Providers with missing or failing keys are silently skipped. ## Episode source material 34 existing KNIEPUNKT episodes in `KNIEPUNKTe/`. First run builds `episodes_cache.json` (cached redundancy index) — this is gitignored and stays local. ## Sessions Each weekly run saves state to `sessions/YYYY-MM-DD.json` (gitignored). The final publication package is saved to `sessions/YYYY-MM-DD_publikation.md`. Interrupted sessions can be resumed on next run.