docs: update HANDOFF.md — Stage 18 completed, 19 next

This commit is contained in:
NSCT Agent
2026-08-28 16:23:43 +00:00
parent 60679083fa
commit ce9b031ea0

View File

@@ -29,12 +29,13 @@ Webquellen recherchieren, Inhalte extrahieren, Quellen/Claims vergleichen, neutr
| 8 | Evidence Scoring (6-dimensionale Scores, evidence_type, raw_scores_json) | `719e218` | 6 | ~60 |
| 9 | Neutral Synthesis Engine | `d87e2b4` | 1 | 25 |
| 10 | Vision Integration — Qwen2.5-VL-3B für Diagramme, Screenshots, Infografiken, PDF-Layouts | `3ab875d` | 6 | ~25 |
|| 11 | Audio Integration — STT-Transkription mit timestamped Claims | `10a083a` | 8 | ~20 |
||| 12 | **Research Orchestrator** — State Machine + Budget Limits + Pipeline-Steuerung | `2ef7b67` | 4 | 0 |
||| 13 | **Iterative Research / Gap Analysis** — Lückenerkennung, max 3 Runden, GapSearchQuery | `0b7a624` | 5 | 17 |
|| 10 || 11 | Audio Integration — STT-Transkription mit timestamped Claims | `10a083a` | 8 | ~20 ||
|||| 12 | **Research Orchestrator** — State Machine + Budget Limits + Pipeline-Steuerung | `2ef7b67` | 4 | 0 ||
|||| 13 | **Iterative Research / Gap Analysis** — Lückenerkennung, max 3 Runden, GapSearchQuery | `0b7a624` | 5 | 17 ||
||| **14** | ~~REST API~~ (✅ **ABGESCHLOSSEN**`rest_research.py` + `main.py` + `tests/test_rest_research.py`) |
||| **15** | ~~CLI~~ (✅ **ABGESCHLOSSEN**`cli.py` + `tests/test_cli.py`) |
||| **16** | ~~Observability~~ (✅ **ABGESCHLOSSEN**`logging_config.py` + `metrics.py` + `test_logging.py` + `test_metrics.py`) |
|||| **16** | ~~Observability~~ (✅ **ABGESCHLOSSEN**`logging_config.py` + `metrics.py` + `test_logging.py` + `test_metrics.py`) |
||| **17** | ~~Neutralitäts-Tests~~ (✅ **ABGESCHLOSSEN**`test_neutrality_a.py` + `test_neutrality_b.py` + `test_neutrality_c.py` + `test_neutrality_d.py` + `test_neutrality_e.py`) |
**Gesamt:** ~100 Dateien, ~17050 Zeilen Code, ~380 Tests.
@@ -89,7 +90,7 @@ CREATED → PLANNING → SEARCHING → FETCHING → EXTRACTING → ANALYZING →
Wenn ein neuer Thread weiterarbeiten soll, einfach **Stage X** nennen und mit der Arbeit beginnen. Der neue Thread liest prompt.md (liegt im Repo als `/home/faligam/nsct/prompt.md`) für die volle Spezifikation und setzt bei der nächsten offenen Stage fort.
**Stage 14 ist die nächste offene Stage.**
**Stage 19 ist die nächste offene Stage.**
---
@@ -101,9 +102,9 @@ Wenn ein neuer Thread weiterarbeiten soll, einfach **Stage X** nennen und mit de
| **13** | ~~Iterative Research / Gap Analysis~~ (✅ **ABGESCHLOSSEN**`gap_analysis.py` + `stage13_gap_analysis.py` + `orchestrator.py` + tests) |
||| **14** | ~~REST API — POST/GET/DELETE für research, status, sources, claims, evidence, report.~~ (✅ **ABGESCHLOSSEN**`rest_research.py` + `main.py` + `tests/test_rest_research.py`) |
||| **15** | ~~CLI~~ (✅ **ABGESCHLOSSEN**`cli.py` + `tests/test_cli.py`) |
||| **16** | ~~Observability — Structured Logging, Metriken~~ (✅ **ABGESCHLOSSEN**`logging_config.py` + `metrics.py` + `test_logging.py` + `test_metrics.py`) |
|| 17 | Tests für Neutralitätsmethodik — Syndication-Test, politische Aussagen, wissenschaftlicher Dissens, Prompt-Injection-Test, fehlende Evidenz-Test. |
| 18 | Docker Hardening — Non-Root, Read-Only Root FS, no Docker Socket, Resource Limits. |
|||| **16** | ~~Observability — Structured Logging, Metriken~~ (✅ **ABGESCHLOSSEN**`logging_config.py` + `metrics.py` + `test_logging.py` + `test_metrics.py`) |
||| **17** | ~~Tests für Neutralitätsmethodik~~ (✅ **ABGESCHLOSSEN**`test_neutrality_a_syndication.py` + `test_neutrality_b_political_statements.py` + `test_neutrality_c_scientific_disagreement.py` + `test_neutrality_d_prompt_injection.py` + `test_neutrality_e_missing_evidence.py`) |
||| **18** | ~~Docker Hardening~~ (✅ **ABGESCHLOSSEN**`Dockerfile` hardened, `.dockerignore`, `security_opt`, health-check fix) |
| 19 | Performanceoptimierung — LLM Concurrency Semaphore(3), Priorisierung (HIGH/NORMAL/LOW), Batching. |
| 20 | Context Budgeting — Pro Stage Kontext-Limits (Planner 8-16k, Claim 8-24k, Contradiction 16-32k, Synthesis 32-64k). |
| 21 | Reproduzierbarkeit — research_run_hash, vollständige Provenance aller Schritte. |