diff --git a/HANDOFF.md b/HANDOFF.md new file mode 100644 index 0000000..05ffd7a --- /dev/null +++ b/HANDOFF.md @@ -0,0 +1,47 @@ +# 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.