# TODO.md — Priorisierte Aufgabenliste Format: `[x]` erledigt, `[ ]` offen. Aufgaben sind nach Priorität sortiert. Nach Erledigung: `[x]` setzen + WORKLOG.md ergänzen + HANDOFF.md aktualisieren. --- ## P1 — Sofort - [x] **`logic-editor.ts` retest nach Prompt-Fixes** — bestätigt OK - [x] **`writer.ts` End-to-End-Test via Pipe** — bestätigt OK - [x] **Pi `/reload` und Extension-Test** — bestätigt OK (Probelauf zeigt alle 6 Extensions aktiv) - [x] **`verify_article` 0-Claims-Bug bei langem Text** - Fix: dynamisches `num_ctx` in `callOllamaClaimExtract()` — 8192/16384/32768 je nach Textlänge - Fix: 0-Claims wirft jetzt expliziten Fehler mit num_ctx + prompt_tokens in der Meldung - Fix: Duplikat-Unterdrückung im System-Prompt ergänzt - Getestet: Umerziehung.md (17964 Zeichen) → bekommt num_ctx=16384 ✓ - [x] **Pi-Prompt-Guidelines für `verify_claim` ergänzen** - `ollama-verifier.ts` promptGuidelines: "Never call verify_claim for multiple claims simultaneously" --- ## P2 — Mittelfristig (Stabilität + Konfiguration) - [x] **Job-Speicher: persistente Pipeline-Ergebnisse** - `lib/jobs.ts` — `createJob/findJobDir/getOrCreateJob/saveJobFile/loadJobFile/updateJobMeta/listJobs` - `ollama-verify-article.ts --job-id ` / `llama-verify-article.ts --job-id ` — speichert `input.txt`, `claims.json`, `perplexity/.json`, `report.json` - Resume: bei erneutem Aufruf mit gleichem `--job-id` werden gecachte Ergebnisse wiederverwendet - Claims-Cache: Extraktion übersprungen wenn `claims.json` vorhanden - Perplexity-Cache: jeder einzelne `perplexity/.json` gecacht — kein doppelter API-Aufruf - `ollama-writer.ts --from-job ` / `llama-writer.ts --from-job ` — liest `report.json`, speichert `article.md` + aktualisiert `meta.json` - `meta.json` enthält Status (`created/extracting/verifying/writing/completed/failed`) + Step-Metadaten - [ ] **OLLAMA_KEEP_ALIVE via systemd setzen** - Was: Modell wird nach 5min entladen, dann ~200s Ladezeit - Wer: Nutzer muss selbst ausführen: ```bash sudo systemctl edit ollama # Einfügen unter [Service]: # Environment="OLLAMA_KEEP_ALIVE=-1" sudo systemctl daemon-reload && sudo systemctl restart ollama ``` - Akzeptanzkriterium: Zweiter Ollama-Aufruf nach >5min braucht keine Ladezeit mehr - [x] **`logic-editor.ts` — `--only-fallacies` Flag** - Gibt nur Fehlschlüsse aus (Text- oder JSON-Modus), kombinierbar mit `--json` - [x] **`verify-article.ts` — Fortschrittsanzeige** - `onProgress`-Callback in `verifyArticle()` — schreibt auf stderr, stört `--json`-Output nicht - Zeigt: Claim-Extraktion, Anzahl prüfbarer Claims, [N/M] pro Perplexity-Ergebnis, Urteilssynthese - [x] **`lib/logger.ts` — Persistentes Logging + `--verbose` in allen CLI-Tools** - `createLogger(opts)` → schreibt in `~/.pi/agent/logs/.log` - `Logger.info/warn/error/debug(msg, data)` — strukturierte Einträge mit ISO-Timestamp - `verbose=true` → alle Einträge auch auf stderr; `warn`/`error` immer auf stderr - `nullLogger` für Pi-Extension-Kontext (keine Seiteneffekte) - `--verbose` / `-v` Flag in: `ollama-claim-extractor.ts`, `verify-article.ts`, `ollama-verifier.ts` - Chunking-Details, Token-Counts, Perplexity-Kosten, Laufzeiten werden geloggt - [x] **Long-Text Bug final bestätigen: Chunking-Test auf Umerziehung.md** - 5/7 Chunks erfolgreich (Chunk 6 failed weil Nutzer Ollama manuell neu startete — kein Bug) - Retry-Logik ergänzt: 3 Versuche mit 15s Pause bei `fetch failed` - Chunking funktioniert korrekt ✓ --- ## P3 — Langfristig (Testkorpus + Metriken) - [x] **Testkorpus anlegen: `tests/corpus/`** - 10 Fälle: Inflation, EZB-Zins, Mondlandung, Bevölkerung DE, Erneuerbare, Bitcoin, COVID-Impfstoff, Bundeshaushalt, Klimaabkommen, Weltbevölkerung - Negativtests (nur korrekte Fakten): case_003, case_007, case_009 - [x] **Test-Runner-Skript** - `tests/run_corpus.sh` — führt alle Fälle durch verify-article, vergleicht mit expected.json - Precision/Recall für `contradicted`, Kosten, Laufzeit; Reports in `tests/results//` - Verwendung: `bash tests/run_corpus.sh [--mode deep] [--no-cache] [case_001 ...]` - [x] **`ollama-writer.ts` — `--lang` Flag** — bereits implementiert (war nicht nötig) - [x] **`ollama-verify-article.ts` — Cache für wiederholte Claims** - `lib/cache.ts`: SHA256-basierter File-Cache, TTL 7 Tage, `~/.pi/agent/cache/perplexity/` - `--no-cache` Flag in `ollama-verify-article.ts` und `llama-verify-article.ts` --- ## Erledigte Aufgaben (Phase 1–3) - [x] `package.json`, `tsconfig.json`, `types/pi-coding-agent.d.ts` - [x] `schemas/claim.schema.json` - [x] `schemas/source-record.schema.json` - [x] `schemas/verification-result.schema.json` - [x] `schemas/argument-map.schema.json` - [x] `schemas/article-draft.schema.json` (inkl. Bugfix type-Array) - [x] `agenten/ollama-claim-extractor.ts` — getestet - [x] `lib/perplexity.ts` - [x] `agenten/ollama-verifier.ts` — getestet - [x] `agenten/ollama-verify-article.ts` — End-to-End getestet (umbenannt von verify-article.ts) - [x] `lib/router.ts` - [x] `agenten/logic-editor.ts` — getestet - [x] `agenten/ollama-writer.ts` — getestet (umbenannt von writer.ts) - [x] Deployment: Symlinks in `~/.pi/agent/extensions/` - [x] `AGENTS.md`, `HANDOFF.md`, `TODO.md`, `WORKLOG.md`, `docs/ARCHITECTURE.md` ## Erledigte Aufgaben (llama.cpp-Pipeline) - [x] `agenten/llama-claim-extractor.ts` — Pi-Tool: extract_claims_llama, getestet - [x] `agenten/llama-verifier.ts` — Pi-Tool: verify_claim_llama, getestet (★ BEVORZUGT) - [x] `agenten/llama-verify-article.ts` — Pi-Tool: verify_article_llama, End-to-End getestet - [x] `agenten/llama-writer.ts` — Pi-Tool: write_article_llama, getestet (★ BEVORZUGT) - [x] `agenten/llama-logic-editor.ts` — Pi-Tool: analyze_logic_llama, getestet (★ BEVORZUGT) - [x] `logic-editor.ts` → `ollama-logic-editor.ts` (Naming-Convention) - [x] Symlinks + package.json für alle llama.cpp-Agenten aktualisiert - [x] Dokumentation vollständig aktualisiert (BEDIENUNGSANLEITUNG.md, README.md, AGENTS.md, HANDOFF.md, WORKLOG.md, TODO.md)