Explorer
/opt/struktur/knowledge-curator/README.md
← Zurück ↓ Download
# Knowledge Curator – read-only dry-run 0.3.0

Der Curator liest ausschließlich vorhandene `ObsidianDocument`-,
`ObsidianChunk`-, `HAS_CHUNK`- und `NEXT`-Daten. Er schreibt weder nach
Neo4j noch in Dateien und verwendet weder Graphiti noch OpenRouter oder ein
LLM.

Versionen:

- Curator: `knowledge-curator-ro/0.3.0`
- Normalisierung: `kc-norm-v3`

Batch-2-Härtungen:

- Überschriften, Titelwiederholungen und unvollständige Fragmente werden nicht
  als reguläre Claims ausgegeben.
- `DocumentMetadata`, `DocumentScope`, `FactStatusModel` und die temporäre
  `CandidateGroup` werden getrennt modelliert.
- Zusammengesetzte Graphiti-, Fact-Status- und Regelgruppen werden im Dry-Run
  aufgeteilt; `CandidateGroup` ist kein fachlicher Endkandidat.
- Historische/session-rekonstruierte Inhalte bleiben `reported`/unverified.
- `review_v2.py --audit-consistency` prüft Evidence, Begründung, Entscheidung
  und Korrektur-JSON und erzeugt ausschließlich Warnungen.
- `review_v2.py --reextract-batch2 --source-json -` führt eine nicht persistierende
  Re-Extraction bereits lesend abgefragter Chunks aus; kein neuer Review-Batch
  wird angelegt.

Credentials werden ausschließlich aus `NEO4J_URI`, `NEO4J_USER` und
`NEO4J_PASSWORD` gelesen. Es gibt keinen Passwort-Fallback und kein
Passwort-Logging.

Live-Dry-Run:

```bash
NEO4J_URI=... NEO4J_USER=... NEO4J_PASSWORD=... python3 curator.py
```

Nur die Testmatrix ohne Neo4j-Verbindung:

```bash
python3 curator.py --offline-tests
```

Die Ausgabe enthält ausschließlich Kandidaten und Vorschläge. Automatische
`current`- oder `verified`-Zuweisungen sind absichtlich ausgeschlossen.

## Erster menschlicher Review-Pilot

Review-Batch 1 vorbereiten:

```bash
NEO4J_URI=... NEO4J_USER=... NEO4J_PASSWORD=... \
python3 review_pilot.py --prepare-batch
```

Die Vorbereitung aktualisiert ausschließlich die lokale
`review_pilot.db` und erzeugt `review_batch_1.md`. Neo4j wird dabei nur
gelesen.

Review starten:

```bash
python3 review_pilot.py --review
```

Standardmäßig werden nur die zehn Kandidaten mit `review_batch=1` angezeigt.
Mit `--all` werden alle nicht entschiedenen Kandidaten angezeigt.

Bedienung: `a` approved_for_pilot, `r` rejected, `c` needs_more_context,
`d` duplicate, `t/s/p/o/m/n/z/e` für Typ-, Subject-, Predicate-, Object-,
Modalitäts-, Polaritäts-, Zeit- oder Evidenzfehler, `v` für vollständige
Chunk-Evidence, `x` für den vollständigen Dokumentkontext, `k` zum
Überspringen und `q` zum Beenden.

Jede echte Entscheidung verlangt Begründung, Reviewer und wird mit Dauer in
`review_decisions` sowie `review_audit` protokolliert. Überspringen und
Beenden sind unterbrechbar; bereits gespeicherte Entscheidungen werden beim
nächsten Lauf nicht erneut angezeigt.

`approved_for_pilot` ist keine Wahrheit, kein `current`/`verified` und keine
Freigabe für Neo4j-Schreibzugriffe. Die lokale SQLite-Datei ist der einzige
persistente Review-Schreibpfad.

## Re-Extraction nach Reviewrunde 1

Die zehn abgeschlossenen menschlichen Entscheidungen werden als
Regressionserwartungen verwendet. Der alte Run bleibt unverändert. Ein neuer
read-only Lauf und Review-Batch 2 werden erzeugt mit:

```bash
NEO4J_URI=... NEO4J_USER=... NEO4J_PASSWORD=... \
python3 review_v2.py --reextract-reviewed
```

Die neuen lokalen Kandidaten erhalten einen neuen Run-Key. `KnowledgeRule`
und `KnowledgeRuleGroup` werden getrennt behandelt; Projektabgrenzungen sind
`DocumentScope`, Dokumentrevisionen `DocumentVersion` und Änderungen
`KnowledgeEvent`. Batch 2 wird in `review_batch_2.md` vorbereitet, aber nicht
automatisch reviewed.

## Automatische Pipeline-Review

Die produktive Pipeline läuft unter `/opt/struktur/obsidian-knowledge-pipeline/`
mit `knowledge-pipeline/1.1.0`. Der Backlog-Optimizer klassifiziert nur
nachweisbare Duplikate, technische Boilerplate und unvollständige Fragmente
append-only. Sensible, widersprüchliche oder unklare Kandidaten bleiben in der
menschlichen Review. Es werden weder `current`/`verified` automatisch gesetzt
noch Truth-Items aus dieser Optimierung erzeugt. Die Migration wird durch
`backlog_final_audit.py` und die JSON-/Markdown-Auswertungen dokumentiert.

## Minimal Human Review

`minimal_review_analysis.py` analysiert den aktuellen Reviewrest read-only.
`minimal_review_cli.py` bietet Clusteranzeige, append-only Gruppenentscheidungen,
Regelvorschläge und die begrenzte sichere Migration technischer Inhalte.
Aktuell verbleiben 7.775 Fälle; 18 Cluster decken 67 Kandidaten ab, 1.633
Fälle sind sensibel. Keine Zukunftsregel wird ohne explizite Freigabe aktiviert.

## Lokale AI-Abschlussauflösung

`ai_review_resolver.py` schließt gruppierte Reviewkandidaten mit versionierten,
konservativen Codex-Regeln ab. Der Resolver liest Originaldatei, Evidence und
Provenienz, protokolliert einen positiven und einen kritischen Prüfdurchgang
und setzt nur terminale Routingstatus wie `exploratory_source_only`,
`sensitive_quarantine`, `historical_report_only`, `technical_context_only`
oder `fast_index_only`.

Er verwendet keine externe Modell-API, schreibt weder Neo4j noch
`truth_items` und setzt niemals automatisch `current`, `verified` oder
`superseded`. Der Pipeline-Service führt Router und Resolver nach jedem Lauf
aus; Routineentscheidungen werden nicht an Carlo delegiert.