← ClaudeAtlas

kb-ingestlisted

Generic knowledge base ingest skill for any Karpathy-method research wiki. Automatically processes new RAW files (raw/transcripts/*.md) into wiki summaries, updates index.md, hot.md, knowledge_graph.json, NotebookLM, and processed.json. Use when: "обнови wiki", "провери за нови файлове", "ingest", "нови raw файлове", or when user adds .md files to a raw/transcripts/ folder. Configure per-project via KB_CONFIG.md in the wiki base directory. Works for: Claude Trading, Claude Code Research, AI Video, or any new research wiki.
vatevstoil/claude-self-learning-os · ★ 2 · AI & Automation · score 75
Install: claude install-skill vatevstoil/claude-self-learning-os
# KB Ingest — Generic Research Wiki Auto-Ingest Processes new RAW files in any Karpathy-method knowledge base and integrates them into the wiki. Requires a `KB_CONFIG.md` in the base directory (or falls back to project detection from path). ## Paths (configurable) ``` Base: <from KB_CONFIG.md or argument> Raw: raw/transcripts/*.md Registry: raw/processed.json Summaries: wiki/summaries/<Name>.md Index: wiki/index.md Hot cache: wiki/hot.md Graph: graph/knowledge_graph.json ``` --- ## Step 0: Locate Project Config Read `KB_CONFIG.md` in the base directory to get: ``` base_path: {{RESEARCH_PATH}}\<Project>\ notebooklm_id: <UUID> categories: <routing table — what content maps to which category> ``` If no `KB_CONFIG.md` exists → look for `CLAUDE.md` with a similar structure. If the user provides a path argument → use that as base. **Known projects (auto-detect from path):** | Path pattern | Project | NLM Notebook | |---|---|---| | `Claude Trading` | Trading wiki | `15d280af-2689-4ff8-ab6a-096f34415a83` | | `Claude Code Resurch` | Claude Code wiki | *(read from KB_CONFIG.md)* | | `AI Video` | AI Video wiki | *(read from KB_CONFIG.md)* | --- ## Step 1: Detect Delta ```python import json, os registry = json.load(open(base + "raw/processed.json")) processed = {e["raw_file"] for e in registry["processed"]} all_raw = {f for f in os.listdir(base + "raw/transcripts/") if f.endswith(".md")} delta = sorted(all_raw