SSubida Skills

Esc to close · results from all notes, skills and people

Ingest new sources into the knowledge base

The knowledge base lives in the plugin root: ${CLAUDE_PLUGIN_ROOT}. Read ${CLAUDE_PLUGIN_ROOT}/CLAUDE.md first — it defines the note format and citation rules. Work in the git checkout (normally ~/web/skills.subida.ai), not in a plugin cache copy.

1. Fetch transcripts

uv run scripts/ingest.py --list "https://www.youtube.com/@channel/videos"   # catalogue, [x] = done
uv run scripts/ingest.py "<video url>"                                       # one video
uv run scripts/ingest.py "<channel url>" --ids id1,id2                      # picked videos
uv run scripts/ingest.py "<channel url>" --limit 10                          # 10 newest not yet ingested

Captions come from YouTube (free, timestamped). Without captions it downloads audio and runs ~/.claude/scripts/transcribe.py (OpenAI Whisper, ~$0.006/min, no timestamps). Prefer videos that teach something reusable (frameworks, tests with numbers, teardowns) over news and hype.

2. Digest

For each new source (uv run scripts/kb.py status lists undigested ones):

  1. Read the transcript; identify speakers (description + intro) → speakers: in its frontmatter, and create/update people/<slug>.md for any new expert.
  2. Extract reusable claims: rules, frameworks, numbers, experiments and their results, tools, named examples. Skip filler, sponsor reads and self-promotion.
  3. For each claim, find the existing note (INDEX.md, grep -ril) and update it; only create a new note when the question is genuinely new. Cite with yt:<id> @ mm:ss — Speaker.
  4. New claim contradicts an existing note → add to Disagreements / caveats, don’t overwrite.
  5. Add new notes to the domain’s SKILL.md note map, and change the playbook only if the new source changes the top-level advice.
  6. Set digested: true on the source.

Many sources at once: split by topic cluster (not by video) across subagents, giving each an exclusive set of notes/folders so they never edit the same file.

3. Check and commit

uv run scripts/kb.py validate && uv run scripts/kb.py index
git add -A && git commit -m "Ingest: <channel/topic> (<n> sources)" && git push

Publish the website: cd site && npm run deploy.

Then bump version in .claude-plugin/plugin.json (commit it too) and refresh the installed copy: claude plugin marketplace update subida && claude plugin update subida-kb@subida.