Treue-Audit gegen Karpathys LLM-Wiki-Gist:
welche Karpathy-Mechaniken sind in docs/ implementiert, welche fehlen,
welche werden nicht durchgesetzt. Plus: Mechanik, mit der die identifizierten Lücken
nicht nur dokumentiert, sondern per Git-Pre-Commit-Hook erzwungen werden.
Karpathy beschreibt ein dreischichtiges Wissens-System (Raw / Wiki / Schema)
mit drei Operationen (Ingest / Query / Lint) plus zwei Spezialfiles
(index.md, log.md). Im solcom-Repo ist die Grundstruktur
bereits da — siehe CLAUDE.md → Karpathy-Wiki-Adaption.
| Karpathy-Schicht | solcom-Realität | Status |
|---|---|---|
| Raw sources | docs/context/ + docs/design/ | implementiert |
| Schema / Conventions | CLAUDE.md + .claude/skills/ | implementiert |
| Ingest-Operation | Agent solcom-docs-ingestion | partiell |
| Query-Operation | Agent solcom-docs-explorer | partiell |
| Lint-Operation | Skill solcom-docs-lint (6 deterministische Regeln) | partiell |
index.md | docs/index.html | implementiert |
log.md | docs/LOG.html | implementiert |
| Wiki-Layer | docs/wiki/ (3 Entities) | dünn |
Drei Karpathy-Mechaniken sind nicht (oder nur teilweise) abgebildet: Multi-Page-Updates beim Ingest, Refile von Query-Antworten als Wiki-Pages, und der Suggestion-Style-Anteil des Lints (Karpathy-Regeln 1, 4, 5, 6). Zusätzlich: keinerlei Pflicht-Durchsetzung — alles ist opt-in pro Skill-Goodwill.
| # | Karpathy-Lücke | Heutiges Verhalten | Konsequenz |
|---|---|---|---|
| L1 | Ingest "touches 10–15 wiki pages" | Ingest schreibt nur Snapshot + context/INVENTORY + LOG-Zeile | Wiki-Entities veralten, related-context-Meta-Tags driften |
| L2 | Query-Antworten "filed back into the wiki" | Explorer ist read-only, Reports verschwinden in Chat-History | Synthese kompoundiert nicht — Karpathys Kern-Promise verloren |
| L3 | Lint: missing-entities | fehlt | Wiki-Wachstum wird nicht aktiv getriggert |
| L4 | Lint: missing-cross-refs | fehlt | Wiki-related-adrs-Meta vs. Body-Mentions driftet unentdeckt |
| L5 | Lint: contradictions | fehlt | ADRs widersprechen sich, niemand bemerkt es |
| L6 | Lint: data-gaps | fehlt | Wiki-Gaps wachsen schweigend |
| L7 | LOG-Parseability (grep "^## [") | HTML-Tabelle, anderes grep-Pattern | kosmetisch — Funktionalität existiert |
| L8 | Pflicht-Durchsetzung | Skills sind goodwill-basiert, kein Hook prüft | Drift sammelt sich zwischen manuellen solcom-docs-lint-Läufen |
| # | Frage | Entscheidung |
|---|---|---|
| E1 | Ingest-Multi-Pass-Mechanik | Ingest sucht passende Wiki-Entities, schlägt Updates pro Entity vor — User confirmt pro Vorschlag, nichts wird ohne OK geschrieben. Conservative. |
| E2 | Query-Refile-Mechanik | Beide: Explorer schlägt am Report-Ende eine Wiki-Promotion vor (Erkennen). html-doc-authoring bekommt einen Wiki-Promote-Sub-Workflow (Schreiben). Trennt Discovery von Authoring sauber. |
| E3 | Lint-Erweiterung deterministisch | Zwei neue Regeln in solcom-docs-lint: missing-entities + missing-cross-refs. |
| E4 | Lint-Erweiterung LLM-pflicht | Separater Skill solcom-docs-curator für contradictions + data-gaps. Andere Modalität, andere Kosten — eigener Trigger. |
| E5 | LOG-Parseability | Status quo + Bash-Snippets im LOG-Header dokumentieren (z. B. grep '<td class="date">' docs/LOG.html | head -5). Kein JSON-Mirror. |
| E6 | qmd / Search | Warten. Bei ≈64 docs/-Files reicht docs/index.html + grep. qmd ist cross-platform via npm/bun lauffähig, aber Node-Toolchain ist im Repo bislang nicht etabliert — ROI-Mismatch. |
| E7 | Wiki-Ausbau | Kandidaten-Liste in diesem Plan-Doc (Sektion 6). |
| E8 | Pflicht-Durchsetzung | Git-Pre-Commit-Hook (kein Claude PostToolUse). Bestehender .hooks/pre-commit (Bash, core.hooksPath=.hooks) wird um STAGED_DOCS-Block erweitert. Blockend für Strukturpflicht (orphan, log-gap, last-synced-Drift, status-drift). Warnen für Synthese-Hinweise (missing-cross-refs, wiki-drift). |
Fünf Phasen, eine PR pro Phase. Reihenfolge so, dass jede Phase ihre Vorgänger nutzt — der Hook (P2) braucht das CLI-Script aus P1, der Curator-Skill (P5) baut auf die Wiki-Stitch-Mechanik aus P3.
.hooks/docs-lint.sh (Lint-CLI)Fokussiertes Bash-Script, das staged docs/-Files gegen vier deterministische Regeln prüft. Kein voller CLI-Port von solcom-docs-lint — nur die Regeln, die Pre-Commit-relevant sind.
.hooks/docs-lint.sh anlegen (bash, kein Node)orphan: jedes neue docs/<strand>/0NNN-*.html braucht Eintrag in <strand>/INVENTORY.htmllog-gap: jeder neue/geänderte ADR mit solcom:status=accepted/superseded braucht passenden Eintrag in docs/LOG.htmllast-synced-drift: jede editierte docs/**/*.html muss solcom:last-synced auf heute aktualisierenstatus-drift: solcom:supersedes / solcom:superseded-by darf nicht ins Leere zeigenPRE-COMMIT BLOCK [D-DOCS] konsistent zu bestehenden Klassen ([A-PHPCS], [C-CONFIG], …).hooks/pre-commit erweiternBestehender Hook bekommt einen STAGED_DOCS-Block — analog zu STAGED_PHP, STAGED_TWIG, STAGED_COMPOSER. Keine neue Toolchain, kein Husky.
STAGED_DOCS=$(git diff --cached --name-only --diff-filter=ACMR | grep -E "^docs/.*\.html$" || true)bash .hooks/docs-lint.sh $STAGED_DOCS aufrufenPreToolUse-Hook auf Bash mit Pattern git commit als UX-Remindersolcom-docs-ingestion: Wiki-Stitch-SchrittAgent-Workflow um Schritt 7.5 erweitern: nach Snapshot-Draft passende Wiki-Entities matchen, pro Entity einen Edit-Vorschlag zeigen, User-Confirm pro Vorschlag.
docs/wiki/*.html, lies solcom:tagsrelated-context-Meta um neue NNN ergänzen, (b) Body-Sektion „Aggregierte Quellen" um neue Zeilesolcom-docs-lint-Lauf sichtbar (wiki-drift)wiki/mittwald-stack.html erkannt und vorgeschlagen.solcom-docs-explorer: Output-Format um Sektion „Wiki-Würdig?" erweitern. Trigger: ≥3 Strang-Verweise im Report. Vorschlag: Slug, Tags, aggregierte Refs.html-doc-authoring (Skill): Sub-Workflow „Wiki-Entity aus Konversation/Explorer-Report drafte" ergänzen — Pflicht-Meta-Tags (related-adrs, related-context), Body-Sektionen aus wiki/INVENTORY.html-Konvention.solcom-docs-curator Skill + Wiki-Kandidatensolcom-docs-curator für LLM-pflichte Lint-Klassen (contradictions, data-gaps). Trigger-Phrasen DE/EN.missing-entities (deterministisch)solcom:tags aus docs/adr/*.html + docs/stories/*.html + docs/context/*.html.solcom:tags existiert.[missing-entities] tag=<tag> — Vorkommen in N ADRs/Stories/Context, keine passende Wiki-Page.Threshold N=3 kongruent zu wiki/INVENTORY.html-Boundary („drei oder mehr Strang-Verweise rechtfertigen eine Wiki-Page").
missing-cross-refs (deterministisch)docs/wiki/:grep -oE 'ADR-[0-9]{4}|adr/0[0-9]{3}-' <file> → Set von erwähnten ADR-Nummern.solcom:related-adrs-Meta → Set von deklarierten ADR-Nummern.[missing-cross-refs] wiki/<page> → ADR-NNNN im Body erwähnt, aber nicht in related-adrs-Meta.
Aktuell: 3 Entities (mittwald-stack, card-family, canvas-integration).
Karpathys impliziter Ziel-Range: 10–20+ bei vergleichbarer Source-Anzahl.
Erste Kandidaten — pro Kandidat: aggregierte Refs + 1-Satz-Begründung.
Reihenfolge ist Vorschlag, nicht Pflicht.
| Slug-Kandidat | Tags | Aggregierte Refs | Begründung |
|---|---|---|---|
| freelancer-feeds | integration, feed, projektpartnerportal |
stories/F-280, F-340, F-360 | Drei externe Plattformen mit ähnlicher Mechanik (XML-Feed-Push/Pull) — Cross-Strand-Lookup wiederkehrend. |
| salesforce-bullhorn-integration | integration, crm, ats |
stories/F-290 + (vermutlich) context/tbd | Eigener Integrations-Strang mit REST-Pull, separater Auth/Mapping-Logik — verdient eigene Synthese. |
| analytics-stack | analytics, tracking, gtm |
stories/F-200, F-310, F-320 | GTM + Matelso + Analytics-Konfig hängen funktional zusammen; Devs werden wiederholt fragen, wo was lebt. |
| cookie-consent-privacy | privacy, consent, dsgvo |
stories/F-210, F-220 (a11y) | Compliance-relevant, häufig in Code/PRDs referenziert. |
| solcom-content-types | content-type, cms |
stories/F-140, F-150, F-170, F-240 | Blog, Personen/Team, Publishing-Workflow, Meta-Tags — ein Content-Type-Querschnitt. |
missing-entities aktiv ist (Phase 1), wird sie
automatisch weitere Kandidaten vorschlagen. Karpathy: „the wiki keeps getting
richer with every source you add."
docs/index.html + grep. Cross-platform via npm/bun lauffähig, aber Node-Toolchain im Repo nicht etabliert. Re-Evaluierung bei >200 docs/-Files.solcom-docs-lint — fokussiertes .hooks/docs-lint.sh reicht für Pre-Commit-Zweck. Skill bleibt für interaktive Full-Sweeps.html-doc-authoring einzeln..hooks/docs-lint.sh beim ersten Lauf gegen bestehenden Repo > 10 false positives pro Klasse zeigt? — Pre-Commit-Hook wird nicht aktiviert, Regeln werden geschärft. Iterativ.solcom-docs-lint-Läufe sichtbar gemacht, nicht durch Commit-Block.