Files
skillfactor-pipeline/knowledge/DECISIONS.md
skillfactor-pipeline 7850baf6bb feat(knowledge): SE practitioner-QA layer scaffold + live progress hook
Dump stackexchange_20260331 (newest mirror), 6 sites, downloads running;
streamed ingest/filter/tags pipeline; status writer + homepage strip show
the layer's build progress every 5 minutes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PDKeXvpT6tENSvyQGLV1Uq
2026-07-09 22:17:26 +02:00

3.0 KiB
Raw Blame History

DECISIONS — Stack-Exchange-Wissensschicht

Autonome Entscheidungen dieser Pipeline, chronologisch.

D1 — Dump-Version

stackexchange_20260331 (archive.org-Suche am 2026-07-09 ergab einen neueren Mirror als den im Briefing genannten stackexchange_20251231). Dateien liegen im Unterordner stackexchange_20260331/; alle 6 Ziel-Archive vorhanden, zusammen ~929 MB (Meta-Sites bewusst NICHT geladen).

D2 — Projektort & Repo

Als Unterprojekt knowledge/ im bestehenden Pipeline-Repo C:\dev\skillfactor (Branch quality/reference-standard), nicht als separates Repo: die Homepage-Quellen (gitea-custom/templates/home.tmpl), stats.json-Erzeugung und die Provenance-Maschinerie (p3d) leben hier — die SE-Integration greift direkt in diese Bausteine.

D3 — Referenz-Taxonomien

KEIN Neu-Download: ESCO v1.2.1 und O*NET 30.3 liegen bereits vollständig als Tabellen im lokalen MSSQL (skillfactor-DB: esco_occupation, esco_skill, esco_occ_skill, onet_occupation, onet_task, onet_software, …), geladen von den offiziellen Quellen in einer früheren Pipeline-Phase. Wiederverwendung ist idempotent und spart Zeit/Bandbreite; Versionen sind in den Paket-Manifests dokumentiert.

D4 — 7z-Entpackung

py7zr (pip) statt System-7-Zip: keine Binary-Abhängigkeit, selektive Extraktion nur von Posts.xml + Tags.xml je Site.

D5 — LLM-Arbeitsteilung (Kosten/Kontext)

  • Tag→Taxonomie-Mapping: Claude klassifiziert die frequenzstärksten Tags direkt in Batches (Sprachverständnis, Konfidenz + Rationale); der Long-Tail (niedrige Frequenz nahe der 20er-Schwelle) läuft über das lokale gemma3:27b mit Claude-designtem Prompt und wird stichprobengeprüft. Grund: mehrere tausend Tags × Rationale sprengen das Session-Kontextbudget.
  • Q&A-Zusammenfassungen (Schritt 4, ~10×150 Einträge): lokales gemma3 (etabliertes Muster der Evidence-Pipeline: Ollama extrahiert, Claude designt Prompt + validiert + macht Stichproben-QA). Läuft detached, GPU wird mit dem laufenden Evidence-Crawl geteilt.

D6 — Homepage-Integration

Der Homepage-Code LIEGT im Arbeitsverzeichnis (Live-Template Tools\gitea\custom\templates\home.tmpl, Spiegel in gitea-custom/templates/). Integration erfolgt daher direkt (kein homepage/-Snippet-Ordner nötig): Stack Exchange wird 6. Provenance-Kategorie (stackx) in p3d/p4/stats.json; der Donut-/Legenden-Anteil bemisst sich datenbasiert aus den Content-Items der kompilierten Q&A-Einträge (gleiche Zählmethode wie alle anderen Quellen: count_items über die generierten Dateien). Für die 10 Eval-Berufe wird das kompilierte Wissen zusätzlich als references/practitioner-qa.md in die zugehörigen Skill-Pakete gelegt — damit ist der Pie-Anteil echt gemessen, nicht angenommen.

D7 — Live-Fortschritt (Nutzerwunsch 2026-07-09)

Die Pipeline schreibt knowledge/data/progress-se.json nach jedem Schritt; der bestehende 5-Minuten-Status-Writer merged das in assets/status.json, die Homepage-Statusleiste zeigt den SE-Layer-Stand neben dem Crawl-Zähler.