knihovnik
Osobní knowledge base s compound effect — ukládání článků, YT videí, knih, insights a poznámek. Inbox buffer, auto-linking mezi zdroji, evolving concept pages. Data na Google Drive, sync mezi počítači.
Knihovník — Personal Knowledge Base v2.0
Filozofie
Inspirováno Knowledge OS Blueprint. Klíčová idea: compound effect — každý nový zdroj nejen přidává, ale i obohacuje existující znalosti přes auto-linking a concept pages.
Kdy použít
- Uživatel chce uložit článek, video, zdroj, insight nebo poznámku
- Trigger fráze: "/knihovnik", "ulož článek", "ulož zdroj", "hodím to do inboxu", "hledej v knihovníku", "moje zdroje"
Datová struktura
KNIHOVNIK_DIR/
├── data/
│ ├── sources.json # hlavní DB všech zdrojů + connections
│ └── tags.json # vocabulary s aliasy
├── inbox/ # rychlé zachycení (nezpracované)
├── content/
│ ├── articles/ # externí články
│ ├── videos/ # YT videa s přepisem
│ ├── books/ # výpisky z knih
│ ├── insights/ # vlastní pozorování (1 myšlenka = 1 soubor)
│ ├── concepts/ # evolving wiki stránky (compound)
│ └── my-notes/ # delší vlastní texty, sbírky
└── zdroje/ # raw zdroje (HTML, PDF, ENEX)
KNIHOVNIK_DIR = /Users/josefmech/Library/CloudStorage/[email protected]/Můj disk/1_vibe/ja/knihovnik
Typy záznamů
| Typ | Složka | Účel | Příklad |
|---|---|---|---|
article | articles/ | Externí článek | Deník N komentář |
video | videos/ | YT video s přepisem | Lex Fridman podcast |
book | books/ | Výpisky z knihy | Alchymie |
insight | insights/ | Vlastní myšlenka, jedna ucelená realizace | "Zákazy ničí důvěru" |
concept | concepts/ | Evolving wiki stránka, syntéza více zdrojů | "Děti a sociální sítě" |
note | my-notes/ | Delší vlastní text, sbírka | Citáty |
fragment | inbox/ | Nezpracovaný zachycený obsah | Surová URL |
Příkazy
/knihovnik save <url-nebo-text> — Uložení s plným zpracováním
- Načti
sources.jsonatags.json - Zkontroluj duplicitu (URL/title)
- Detekuj typ (article/video/book) nebo se zeptej
- Extrahuj obsah:
- Articles:
WebFetch(pokud paywall, zkontrolujzdroje/jestli tam není stažený HTML) - YouTube: viz "YouTube videa — přepis"
- Books: očekává citaci od uživatele
- Articles:
- Auto-link — viz "Auto-linking workflow"
- Compound check — viz "Concept pages workflow"
- Vytvoř content soubor (frontmatter + obsah)
- Navrhni štítky (preferuj existující z
tags.json) - Zobraz uživateli návrh — titulek, autor, štítky, propojené zdroje, návrh concept page (pokud relevantní)
- Po schválení ulož vše
/knihovnik inbox <text-nebo-url> — Rychlé zachycení
Pro situace kdy nemáš čas to zpracovat. Jen to hodím tam.
- Vytvoř soubor v
inbox/YYYY-MM-DD-HHMMSS-slug.mds minimální strukturou:--- captured: "2026-04-07 14:30" raw: "https://..." --- <volný text/poznámka uživatele> - Žádné tagy, žádné zpracování, žádný entry v sources.json
- Potvrď: "Uloženo do inboxu (X položek čeká na zpracování)"
/knihovnik process — Zpracování inboxu
Projde všechny soubory v inbox/, jeden po druhém:
- Pro každý fragment zobraz jeho obsah uživateli
- Navrhni typ + štítky + auto-links
- Po schválení spusť workflow
/knihovnik save(s předvyplněnými hodnotami) - Smaž zpracovaný fragment z inboxu
- Po dokončení zobraz souhrn: "Zpracováno N položek, X zbývá v inboxu"
/knihovnik insight <text> — Vlastní pozorování
Pro jednu ucelenou myšlenku/realizaci.
- Vytvoř soubor v
content/insights/YYYY-MM-DD-slug.md:--- id: "2026-04-07-001" type: insight title: "Krátký výstižný titulek" date: "2026-04-07" tags: ["#tag1", "#tag2"] is_mine: true links: [] --- # Titulek ## Pozorování <hlavní myšlenka> ## Kontext <co k tomu vedlo> ## Co z toho plyne <důsledek, akce> - Auto-link na související zdroje (viz workflow)
- Compound check na concepts
/knihovnik note <text> — Vlastní delší poznámka / sbírka
Pro delší texty, sbírky, blogposty (jako sbírka citátů). Stejné jako insight, ale jde do content/my-notes/.
/knihovnik book <název> — Výpisky z knihy
- Vytvoř soubor v
content/books/YYYY-MM-DD-slug.md - Citace knihy (autor, vydavatel, rok)
is_mine: false- Uživatel doplní výpisky a poznámky
- Navrhni štítky + auto-link
/knihovnik concept <téma> — Vytvoření / aktualizace concept page
Manuální vytvoření concept page (jinak skill navrhne auto).
- Najdi všechny zdroje v
sources.jsonsouvisející s tématem (přes tagy + fulltext) - Pokud jsou < 3, varuj uživatele ("málo signálu pro concept page")
- Syntetizuj obsah z nalezených zdrojů
- Vytvoř
content/concepts/topic-slug.md:--- id: "concept-001" type: concept title: "Téma" tags: ["#tag1", "#tag2"] sources: - "content/articles/2026-04-02-xyz.md" - "content/insights/2026-04-03-abc.md" related: - "content/concepts/jine-tema.md" last_updated: "2026-04-07" --- # Téma ## Klíčové myšlenky <syntéza ze všech sources> ## Vlastní pohled <co si o tom myslím> ## Sources - [Titul 1](path) — co přináší - [Titul 2](path) — co přináší - Aktualizuj
sources.json(přidej concept jako entry s linky na sources)
/knihovnik search <dotaz> — Hledání
- Načti
sources.json - Hledej v:
- Titulcích a autorech
- Štítcích (pokud začíná
#) - Content souborech (
Grep) - Concept pages (priorita — koncepty obsahují syntézu)
- Zobraz tabulku: ID | Typ | Titulek | Štítky | Datum
- Pokud dotaz odpovídá nějaké concept page, ukaž ji jako první
/knihovnik list [#tag] [typ] — Výpis zdrojů
Filtruj dle štítku/typu, seřaď od nejnovějšího.
/knihovnik tags — Výpis štítků
Zobraz štítky s počtem zdrojů, varuj na aliasy.
/knihovnik open <id> — Detail zdroje
Zobraz frontmatter + obsah + propojené zdroje (links).
/knihovnik connections <id> — Graf vazeb
Zobraz:
- Přímé linky daného zdroje
- Concept pages, ke kterým patří
- Sourozence (zdroje s podobnými tagy)
/knihovnik edit <id> — Editace zdroje
Najdi, zobraz, uprav dle pokynů uživatele, aktualizuj content + sources.json.
/knihovnik bundle <téma> — Sbalí téma do jednoho .md
Pro export do NotebookLM, přípravu blogpostu, nebo jen pro souhrn co všechno k tématu mám.
- Najdi všechny zdroje v
sources.jsonsouvisející s tématem (přes tagy + fulltext + concept page) - Zobraz uživateli seznam nalezených zdrojů, nech ho přidat/odebrat
- Vygeneruj
content/bundles/YYYY-MM-DD-tema-slug.md:--- bundle_topic: "Téma" generated: "2026-04-07" sources_count: 8 tags: ["#tag1", "#tag2"] --- # Bundle: Téma > Vygenerováno z N zdrojů Knihovníka pro NotebookLM / blogpost / přípravu. ## Concept page (pokud existuje) <plný obsah concept page> --- ## Zdroj 1: <titulek> **Autor:** ... | **Datum:** ... | **Typ:** article **Tagy:** #tag1 #tag2 **Shrnutí:** ... <plný obsah content souboru> --- ## Zdroj 2: ... - Zobraz uživateli cestu + počet zdrojů + délku v slovech
- Tip pro NotebookLM: "Soubor můžeš nahrát na notebooklm.google.com → Generate podcast"
/knihovnik health — Kontrola zdraví KB
Zkontroluj:
- Sirotci — zdroje bez
links - Tagy mimo vocabulary — tagy v sources.json které nejsou v tags.json
- Stale concepts — concept pages starší 30 dní s novými zdroji k tématu
- Concept candidates — tagy s 3+ zdroji bez concept page
- Duplicitní URL
Vrať report s návrhy na opravu.
Auto-linking workflow
Při ukládání nového zdroje skill automaticky najde 2-3 nejvíc související existující zdroje:
- Tag overlap — najdi zdroje sdílející 2+ tagy s novým
- Title similarity — fulltext hledání klíčových slov z titulku v ostatních
- Author/source match — stejný autor nebo stejný zdroj (Deník N, atd.)
- Topic match — pokud má nový zdroj concept page, propoj na ni
Vyber top 2-3 a:
- Přidej je do
links: []v novém content souboru - Bidirectional update — přidej nový zdroj do
links: []těch existujících (v jejich content souborech i v sources.json) - Ukaž uživateli, co se propojilo
Concept pages workflow (compound effect)
Při každém save příkazu:
- Existuje concept page k tématu? (matchnu přes tagy)
- ANO → aktualizuj ji:
- Přidej novou data point/citát do obsahu
- Přidej cestu do
sources:array - Bumpni
last_updated: - Pokud update odhalí novou vazbu na jinou concept page, přidej do
related:
- NE → zkontroluj jestli existuje 3+ zdrojů ke stejnému tématu (po přidání tohoto)
- Pokud ANO → navrhni uživateli vytvořit concept page
- Pokud NE → nic, jen ulož
- ANO → aktualizuj ji:
Příklad compound update:
Nový článek "AI v marketingu" →
- Vytvoří entry v library/
- Updates concepts/ai-marketing.md (přidá data)
- Updates concepts/marketing-trends.md (cross-reference)
Práh 3 = dostatečný signál pro syntézu bez předčasné abstrakce.
YouTube videa — přepis
Při /knihovnik save <youtube-url> se automaticky stáhne audio a přepíše přes lokální Whisper.
Prerekvizity
yt-dlp(nainstalováno přes brew)whisper(lokální, model large-v3)ffprobe/ffmpeg
Workflow
-
Stáhni metadata z YouTube:
yt-dlp --print title --print channel --print upload_date --print description --skip-download "<url>" -
Stáhni audio do dočasné složky:
yt-dlp -x --audio-format mp3 --audio-quality 0 -o "/tmp/knihovnik-yt-%(id)s.%(ext)s" "<url>" -
Zjisti délku nahrávky:
ffprobe -v error -show_entries format=duration -of csv=p=0 "/tmp/knihovnik-yt-VIDEOID.mp3"- Pokud > 60 minut, upozorni uživatele
-
Přepiš přes Whisper:
whisper "/tmp/knihovnik-yt-VIDEOID.mp3" --model large-v3 --language cs --output_format txt --output_dir /tmp -
Vyčisti přepis (stejná pravidla jako
/whsprskill) — odstraň hezitační zvuky, opakování, rozděl do odstavců s mezititulky -
Ulož content soubor do
content/videos/YYYY-MM-DD-slug.md -
Smaž dočasné soubory z
/tmp -
Navrhni štítky + auto-link + compound check
Poznámky
- Dlouhá videa (60+ min) — Whisper přes
run_in_background - Pokud
yt-dlpselže, informuj uživatele
Pravidla pro štítky
- Lowercase, bez diakritiky:
#e-commerce,#leadership - Krátké, max 2 slova spojená pomlčkou
- Preferuj existující štítky z
tags.json - Formát v
tags.json:{ "name": "#leadership", "description": "Vedení lidí, management", "aliases": ["#management", "#vedeni"], "category": "byznys", "count": 5 }
Alias resolution (povinné při každém save)
Když Curator navrhne nebo dostane od uživatele štítek:
- Přesný match — je v
tags.jsonjakoname? → použij ho - Alias match — je v některém
aliasespoli? → přepiš na canonicalnamea informuj uživatele:"Štítek
#managementje alias na#leadership, používám#leadership" - Žádný match — nový štítek:
- Zkontroluj jestli to není zjevný překlad/synonymum existujícího (např.
#startup→ mohl by být alias na#podnikani) - Pokud ano, navrhni uživateli přidat jako alias místo nového tagu
- Pokud ne, přidej do
tags.jsonsdescription,category,count: 1
- Zkontroluj jestli to není zjevný překlad/synonymum existujícího (např.
Health alert na tagy
Při /knihovnik health zkontroluj:
- Tagy v
sources.jsonkteré nejsou vtags.json(neregistrované) - Tagy které jsou v
aliasesale stále se používají v sources (mělo by se přepsat) - Tagy s
count: 0(nevyužité, kandidát na smazání)
Pravidla pro citace
- Cizí obsah (
is_mine: false): vždyAutor — [Název](URL) (datum) - V content souboru cizí text jako blockquote (
>) - Vlastní poznámky normálním textem
- Nikdy nemíchat bez jasného oddělení
Formát sources.json záznamu
{
"id": "2026-04-07-001",
"type": "article",
"title": "Název",
"url": "https://...",
"author": "Jméno",
"date_saved": "2026-04-07",
"date_published": "2024-01-15",
"tags": ["#tag1", "#tag2"],
"is_mine": false,
"content_file": "content/articles/2026-04-07-nazev.md",
"summary": "Krátké shrnutí 2-3 věty.",
"links": ["2026-04-02-003", "concept-deti-online"]
}
Session Harvest
Trigger: Když uživatel řekne „hotovo / done / shrň session / co jsme vlastně udělali" — nebo na konci podstatné konverzace.
Skill vyhodnotí:
-
Vytvořila session novou znalost?
- Nová analýza, rámec, rozhodnutí, syntéza, srovnání?
- Odpověď na netriviální otázku, kterou stojí za to uchovat?
- Skipni triviální session (bug fixy, formátování, krátké Q&A)
-
Pokud ANO, navrhni uložení jako:
- Concept page (
concepts/) — pokud session prohloubila pochopení tématu, ke kterému už něco máme - Insight (
insights/) — pokud session odhalila novou realizaci - Decision — pokud padlo důležité rozhodnutí (uložíme jako insight s tagem
#decision)
- Concept page (
-
Návrh formuluj krátce:
„Tato session přinesla X. Uložit jako [concept/insight]?"
-
Po schválení: spusť
/knihovnik insightnebo/knihovnik conceptworkflow -
Max 1 návrh za session — nenuť uživatele.
Wikilinks v content tělech
V markdownu uvnitř content souborů používej Obsidian-friendly syntax:
Tahle myšlenka navazuje na [[2026-04-02-001|Alchymii]] a [[2026-04-02-002|Navala]].
Související koncept: [[concept-podnikatelsky-mindset]]
Pravidla:
[[id]]— link na zdroj/concept podle ID[[id|alias]]— link s vlastním textem- Concept pages používají slug:
[[concept-podnikatelsky-mindset]] - Při exportu / čtení tyhle linky fungují jak v Obsidianu, tak je skill umí resolvovat
Důležité
- Vždy přečti
sources.jsonatags.jsonPŘED zápisem - ID:
YYYY-MM-DD-NNN(datum + pořadí) - Slug: lowercase, bez diakritiky, max 5 slov
- Bidirectional links — když A linkuje B, B musí linkovat A
- Po každé operaci potvrď uživateli co se stalo + co se propojilo
- Při save vždy NAVRHNI a nech schválit
- Compound effect je core — každý save by měl ideálně updatnout aspoň 1 existující entry (link) nebo concept page