diff --git a/HERMAN-WIKIFY-HANDOVER.md b/HERMAN-WIKIFY-HANDOVER.md new file mode 100644 index 0000000..c6633aa --- /dev/null +++ b/HERMAN-WIKIFY-HANDOVER.md @@ -0,0 +1,205 @@ +# Herman — Wikifizierungs-Handover (von Hector) + +> **Zweck:** Diese Anleitung überträgt Hectors autonome Kuratierungs- und Wikifizierungs-Rolle auf Herman. Sie beschreibt das Schema, den Workflow und die Entscheidungsregeln, damit Herman den Job nahtlos weiterführen kann. +> +> **Erstellt:** 2026-08-28 | **Übergeben von:** Hector | **Empfänger:** Herman + +--- + +## 1. Was ist das Wiki? + +Das **RamaDama Knowledge Base** ist ein Git-Repo, das nach Karpathys LLM-Wiki-Pattern aufgebaut ist: **raw → LLM kompiliert → wiki → Q&A**. + +- **Repo:** `https://vmd185580.tailf38284.ts.net/hector-bot/knowledge-base` +- **Lokal:** `~/workspace/knowledge-base/` +- **Schema (verbindlich):** `knowledge-base/AGENTS.md` — **VOR JEDER Änderung vollständig lesen!** +- **Konzept:** `knowledge-base/README.md` + +**Kardinalregel:** `raw/` ist **immutable** — der LLM ändert nie die Rohdaten. `raw/` = Fakten + neutrale Zusammenfassung. `wiki/` = Interpretation, Einordnung, Diskussion, Zusammenführung. Dort darf der Agent sich austoben; in `raw/` nicht. + +--- + +## 2. Verzeichnisstruktur + +``` +knowledge-base/ +├── AGENTS.md ← Schema (VOR JEDER Änderung lesen!) +├── README.md ← Konzept +├── raw/ ← Immutable Quellen +│ ├── youtube/ ← YouTube-Videos (Transcript + Summary) +│ ├── blog/ ← Blog-Artikel +│ ├── xpost/ ← X/Twitter-Posts +│ ├── subconscious/ ← Subconscious Outcomes (raw vom Cron) +│ ├── other/ ← Sonstiges +│ └── ... ← Neue Typen jederzeit möglich +├── wiki/ ← LLM-kompilierte Wissensbasis +│ ├── index.md ← Auto-generated Katalog (Fakten) +│ ├── ideas.md ← Ideen-Index (Subconscious, getrennt von Fakten) +│ ├── log.md ← Append-only Changelog +│ ├── teams/ ← Legacy (→ people/) +│ ├── tools/ ← Tools, Instanzen, Credentials +│ ├── architecture/ ← Architektur-Entscheidungen +│ ├── concepts/ ← Konzepte (sub-organisiert: llm/, agents/, policy/, directives/, agi/, hardware/) +│ ├── tutorials/ ← Lernpfade +│ ├── people/ ← Personen-Artikel +│ ├── institutions/ ← Institutionen, Firmen, Labs, Unis +│ ├── decisions/ ← Dated decisions +│ ├── ideas/ ← Kompilierte Ideen-Seiten +│ └── tasks/ ← Maintenance-ToDos (WMT-XXX) +├── scripts/ ← Hilfsskripte (Lint, Link-Checker, Subagent-Templates) +└── output/ ← Generated outputs +``` + +--- + +## 3. File-Naming + +**Raw:** `{type}/{yyyy-mm-dd}_{kurzer-slug}.md` +``` +raw/youtube/2026-06-05_karpathy-llm-wiki-explained.md +raw/blog/2026-06-04_understanding-agent-memory-systems.md +raw/xpost/2026-06-03_karpathy-knowledge-bases-tweet.md +``` + +**Wiki:** kebab-case, sprechender Name, **keine Daten im Dateinamen**. +``` +wiki/people/kai.md +wiki/institutions/openai.md +wiki/tools/forgejo-botreasury.md +wiki/concepts/llm/llm-knowledge-base.md +wiki/decisions/2026-06-05_kein-coding-guide-in-kb.md +``` + +--- + +## 4. Frontmatter + +**Raw-Dateien** (Beispiele — Details in AGENTS.md): +```yaml +--- +type: youtube +source_url: https://youtube.com/watch?v=xxx +retrieved: 2026-06-05 +channel: "Channel Name" +duration_sec: 1847 +has_transcript: true +--- +``` + +**Wiki-Seiten:** +```yaml +--- +created: 2026-06-05 +updated: 2026-06-05 +sources: [blog/2026-06-04_understanding-agent-memory-systems.md] +tags: [architecture, agents] +--- +``` + +**Ideen-Seiten** (Subconscious): zusätzlich `status: implemented | not-implemented | shelved` + +--- + +## 5. Workflow: Ingest (neue Quelle) + +1. **Lies die Datei** (komplett) +2. **Prüfe Frontmatter** — fehlende Felder nach bestem Wissen setzen +3. **Extrahiere Key Takeaways** (max 3-5 Sätze) +4. **Finde betroffene Wiki-Seiten** — welche bestehenden müssen aktualisiert werden? +5. **Aktualisiere Wiki-Seiten** — neue Erkenntnisse, neue Verlinkungen +6. **Erstelle neue Wiki-Seiten** wenn nötig +7. **Aktualisiere index.md** +8. **Hänge Eintrag an log.md** + +**Kardinalregeln:** +- `raw/` niemals verändern (immutable) +- `raw/` = Fakten, `wiki/` = Interpretation +- **Maximale Verlinkung:** Jede Quelle, jedes Paper, jeder Autor, jeder zitierte Begriff MUSS verlinkt sein (arXiv, DOI, GitHub, Wikipedia, `[[wiki-crossref]]`). Lieber ein Link zu viel als einer zu wenig. +- **Reply-Sichtbarkeit:** Jeder Wikify-Reply an einen sichtbaren Channel MUSS eine URL-Übersicht enthalten (🆕 neue Seiten + 🔧 veränderte Seiten, je mit Repo-Browse-Link + Commit-SHA + 1-Zeiler). + +--- + +## 6. Autonomes Kuratieren (Hectors Rolle → jetzt Herman) + +**Herman liest alle Gruppenchats aktiv mit und kuratiert relevante Inhalte selbständig ins Wiki.** + +1. **Alle Kanäle überwachen:** OME-Gruppe, RamaDama-Topic, alle anderen Gruppen, News & Infos +2. **Relevanz erkennen:** Architekturdiskussionen, Tool-Entscheidungen, Konzepte, nützliche Links +3. **Rohdaten ablegen:** Jeden relevanten Link/Post/Video als eigene raw-Datei mit Frontmatter +4. **Wiki pflegen:** Neue Erkenntnisse einarbeiten, neue Seiten anlegen +5. **index.md + log.md:** Nach jedem Ingest aktualisieren + +**Entscheidungsbaum (Curation vs. Reply) — die zwei Bäume sind unabhängig:** +- **Antworten?** → Group-Chat-Regeln (Know When to Speak) +- **Wikifyen?** → Ist der Inhalt wissensrelevant (Tool, Architektur, Entscheidung, Konzept, Person)? + +Wenn wikifyen → **Subagent spawnen** (isolated). Kein Reply nötig. Der Subagent kümmert sich um raw-Datei, Wiki-Seiten, index.md, log.md. + +**Wann eingreifen:** +- **Kuratiere alles, was Wissen akkumuliert** — Entscheidungen, Tools, Architektur, Konzepte, Personen +- **Transiente Konversation** (Smalltalk, Status ohne Tiefe) — ignorieren +- **Unsicher?** Frag im RamaDama-Topic nach. Lieber einmal kurz nachfragen als falsch einsortieren. + +--- + +## 7. Quellenkritik (wichtig — Hectors Lesson) + +**Nicht jede Quelle ist gleichwertig.** Beim Wikifizieren gilt: + +- **Der technische Kern** eines Beitrags kann real und wikifizierbar sein, **auch wenn die Quelle** notorisch unzuverlässig ist (z. B. NaturalNews/Brighteon). +- **Trenne Kern von Verpackung:** Der Kern (z. B. "lokale Open-Weight-KI ist schwerer zensierbar/überwachbar") ist ein technisches Faktum. Die Verpackung (z. B. "Regierungen PANIKEN", unbewiesene CIA-/Wikipedia-Geschichten) ist Meinung/Behauptung. +- **Wikifiziere den Kern mit sauberer Quelle** (z. B. Simon Willison, in-Group-Diskussionen über Ollama/Unsloth), **nicht** als Enthüllung der unzuverlässigen Quelle. +- **Kein reflexartiges Editorial-Caveat:** Politische/ökonomische Positionen von interviewten Denkern NICHT als "Meinung" labeln, wenn sie analytisch aus deren Argumentation folgen. Trennlinie: "Teil der Argumentation?" — nicht "Mainstream?". +- **Distributions-Format ≠ Inhalts-Caveat:** Wenn ein Distributions-Format (Werbe-Channel, Tech-Influencer) ein Faktum ist, als Fakt benennen — aber NICHT als implizites Argument gegen die transportierten Inhalte (genetischer Fehlschluss / Ad-Hominem-Risiko). + +--- + +## 8. Git Commit Conventions + +``` +{type}({scope}): {kurzbeschreibung} + +type: ingest | wiki-update | lint | schema | chore +scope: raw | wiki/concepts | wiki/tools | wiki/decisions | wiki/ideas | schema +``` + +Beispiele: +``` +ingest(subconscious): plur1bus-priority-fix +wiki-update(ideas): added new accepted outcome +schema(ideas): add idea frontmatter template +lint(wiki): found 3 orphan pages, missing cross-refs +``` + +--- + +## 9. Lint & Health Check + +- **Mechanischer Lint:** `scripts/wiki-lint.sh` (deterministisch, kein LLM im Detection-Pfad). Output: `scripts/wiki-lint-report.md`. Exit 1 bei Issues. +- **Wiki-Link-Checker:** `scripts/check-wiki-links.py` validiert alle `[[...]]` Wikilinks. Exit 1 bei broken links. Auto-Fix: `scripts/fix-wiki-links.py`. +- **Pre-Commit-Hook:** `.git/hooks/pre-commit` ruft `check-wiki-links.py` vor jedem Commit. Installation: `cp scripts/.check-wiki-links-wrapper.sh .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit`. + +--- + +## 10. Maintenance-ToDos + +- Läuft über `wiki/tasks/maintenance-todo.md` (versioniert) +- IDs: `WMT-XXX` | Status: `planning → in-progress → done` +- On-Demand-Trigger: Im RamaDama-Topic `wiki-do WMT-XXX` schreiben +- Subagent-Templates: `scripts/subagents/{name}.md` +- Failover-Modellkette: `ollama/glm-5.1 → ollama/minimax-m3 → ollama/deepseek-v4-flash:cloud → ollama/glm-5` + +--- + +## 11. Erste Schritte für Herman + +1. **Clone:** `git clone https://vmd185580.tailf38284.ts.net/hector-bot/knowledge-base.git` +2. **Schema lesen:** `knowledge-base/AGENTS.md` (verbindlich, VOR jeder Änderung) +3. **Kontext lesen:** `README.md`, `wiki/index.md`, `wiki/log.md` +4. **Pre-Commit-Hook installieren** (siehe §9) +5. **Rohdaten sammeln:** Links aus aktuellem Chat → als raw-Dateien ablegen +6. **Ingest-Run:** Agent verarbeitet raw/ → wiki/ + +--- + +*Übergeben von Hector an Herman — 2026-08-28. Schema-Version: 1.5 (2026-06-17).*