From brain-os
Extracts atomic concepts from books into Obsidian notes, validates understanding against NotebookLM via adversarial Q&A, and extends knowledge beyond the source material.
How this skill is triggered — by the user, by Claude, or both
Slash command
/brain-os:self-learnThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
3-phase autonomous agent: extract book content → validate against NotebookLM → extend beyond the source. Inspired by [autoresearch](https://github.com/ehmo/autoresearch) — independent teams with information barriers.
3-phase autonomous agent: extract book content → validate against NotebookLM → extend beyond the source. Inspired by autoresearch — independent teams with information barriers.
All knowledge lives in Obsidian, never in this skill.
obsidian_vault: "{vault}/knowledge/raw" # Read {vault} from ${CLAUDE_PLUGIN_ROOT}/brain-os.config.md
notebooklm_bin: ~/.local/bin/notebooklm
scripts_dir: ${CLAUDE_PLUGIN_ROOT}/skills/self-learn/scripts
Goal: Read the book → identify atomic concepts → write Obsidian notes.
scripts/lib/epub_parser.py to get chapter textscripts/lib/note_writer.py
c. Categorize into topic folders, link to related concepts from previous chapters{obsidian_vault}/{book-slug}/
├── decision-making/
├── business-operations/
├── leadership/
└── [discovered categories]/
---
source: "{book_title}"
author: "{author}"
chapter: {chapter_number}
tags: [{tags}]
---
# {Concept Title}
{~100 words: concise, crystal clear, key point only}
## Key Insight
{One sentence takeaway}
## Related
- [[related-concept-1]]
- [[related-concept-2]]
Goal: Compare agent knowledge against NotebookLM. Patch gaps until mastery.
notebooklm ask~/.local/bin/notebooklm use {notebook_id} # Set active notebook FIRST
~/.local/bin/notebooklm ask "{question}" # Then ask questions
total = max(100, num_topics × 3)
scripts/lib/question_gen.pynotebooklm ask "{question}"
c. Judge scores using scripts/lib/judge.py prompt (0-100 scale)
d. If score < 95: identify what's missing → update/create Obsidian notesWrong concepts are catastrophic. Fix conceptual errors before missing details. A note that says the wrong thing is far worse than a note missing a detail.
Round 1: 85/100 passed (85%) — weak: [business-operations, leadership-hats]
Round 2: 94/100 passed (94%) — weak: [accountability-structures]
Round 3: 100/100 passed (100%) — MASTERY ACHIEVED
After validation passes, create the structured book note directly (previously a separate /ingest step):
{obsidian_vault}/{book-slug}/{vault}/knowledge/books/{book-slug}.md/ingest skill for template)ingested: true in _validation/audit-flag.jsonsource: "synthesis"applied/{domain}/, tagged source: "application"source: "research-{date}"Extension notes use same template but different source tags.
Pipeline continues autonomously: /verify → /absorb → commit + push → notify.
Phase 2 must reach 100% pass at ≥95 before Phase 3 runs. See /study for full pipeline.
/self-learn --book <epub_path> --notebook-id <nlm_id>
/self-learn --phase extract --book <epub_path>
/self-learn --phase validate --notebook-id <nlm_id>
/self-learn --phase extend
PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/brain-os-marketplace/brain-os/*/ 2>/dev/null | sort -V | tail -1)}"; PLUGIN_ROOT="${PLUGIN_ROOT%/}"
python3 ${PLUGIN_ROOT}/skills/self-learn/scripts/summary.py {vault}/knowledge/raw/the-road-less-stupid --status
python3 ${PLUGIN_ROOT}/skills/self-learn/scripts/summary.py {vault}/knowledge/raw/the-road-less-stupid --phase3
python3 ${PLUGIN_ROOT}/skills/self-learn/scripts/summary.py {vault}/knowledge/raw/the-road-less-stupid
| Book | Vault Path | NotebookLM ID |
|---|---|---|
| The Road Less Stupid | knowledge/raw/the-road-less-stupid | 9c6d742c-d512-42f6-a42c-ccdd993ef19f |
| Start with Why | knowledge/raw/start-with-why | e990cedd-7dca-4812-824e-7a9e757f0065 |
| Changing World Order | knowledge/raw/dalio-changing-world-order | bf8f46c4-0dfb-4f5e-9013-7a9e757f0065 |
Follow skill-spec.md § 11. Append to {vault}/daily/skill-outcomes/self-learn.log:
{date} | self-learn | {action} | ~/work/brain-os-plugin | knowledge/raw/{slug}/ | commit:{hash} | {result}
action: extract, validate, or extendresult: pass if phase completed (validate = 100% pass rate), partial if progress but not complete, fail if stuck or errorsargs="--book {epub} --notebook-id {id}", score={pass_rate}%npx claudepluginhub sonthanh/brain-os-pluginOrchestrates the full knowledge pipeline for a book: self-learn, ingest, verify, absorb, and sync. Run via /study or when managing a book from extraction to vault integration.
Analyzes EPUB/PDF books into structured chapter notes with key concepts extracted and synthesized via parallel agents.
Builds Wikipedia-style Obsidian vaults from academic PDFs, extracting concepts into linked notes with atomic sentences and citations. Expands existing networks with new papers.