Knihovnik
npx -y skills add jmech-pepa/pepa-claude-toolkit --skill knihovnikAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
15.0 KB, as published. Nobody here has run it
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