agentleFS
c-ibarrac-ibarra/ObsidianKnowledgeCurator/.agents/skills/okc-urlPlaylist/SKILL.md

okc-urlPlaylist

Skill0 starsChanged 45 days agoMITView on GitHub

Ingests an entire YouTube playlist with concurrent transcript extraction, per-video SQLite pre-flight checks, dynamic N-subagent parallel curation, and atomic batch commit.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When this skill is invoked via /urlPlaylist <url> or /okc-urlPlaylist <url>, execute the following dynamic $N$-subagent workflow:

    line 9
  2. Very specific:

    If $N == 0$: All videos in the playlist are already curated in the vault.

    line 22

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

YouTube Playlist Curator Skill (Dynamic $N$-Subagent Fan-Out)

When this skill is invoked via /urlPlaylist <url> or /okc-urlPlaylist <url>, execute the following dynamic $N$-subagent workflow:

  1. Turn 1 — Concurrent Playlist Extraction & Pre-Flight Discovery (FastMCP):
    • Execute the native FastMCP tool fetch_playlist_data(url="<url>", skip_existing=True) on the okc server (do not spawn CLI commands unless MCP is unavailable).
    • This scrapes the playlist structure via yt-dlp --flat-playlist, checks vault_index.db in <15ms for any video IDs already curated (already_exists), fetches all pending video transcripts concurrently via ThreadPoolExecutor(max_workers=6), maps graphify_context, and returns:
      • total_videos: Total videos in the playlist.
      • already_indexed_count: Videos already present in the vault.
      • pending_count ($N$): Number of new videos requiring curation.
      • recommended_subagents: Number of parallel subagents to launch (0, 1..8).
      • videos: List of video objects with index, id, title, url, duration, already_exists, existing_note, transcript (inline for $\le 5$ pending videos), and transcript_path_abs (temp/playlist_transcripts/XX_VIDEOID.txt).
  2. Turn 2 — Dynamic $N$-Subagent Parallel Drafting (1 Video = 1 Subagent):
    • Inspect pending_count ($N$) from the fetch_playlist_data payload:
      • If $N == 0$: All videos in the playlist are already curated in the vault. Report their existing [[wikilinks]] and stop.
      • If $N == 1$: Draft the single pending video note directly in the main agent and commit via commit_curated_note(..., fast_sync=True, async_sync=True).
      • If $2 \le N \le 8$: Spawn $N$ parallel subagents (invoke_subagent) in a single turn — 1 subagent per pending video.
        • Provide each subagent with its video metadata (index, id, title, channel, url, playlist_title), graphify_context (author_existing_notes, matched_wiki_notes), target filename (<Series> ## — <Title>.md), and either its inline transcript or transcript_path_abs path to read.
        • Each subagent must return ONLY the complete formatted raw/ Markdown note (no YAML, H1 title, canonical blockquote with Processed: DD-MM-YYYY and Tags: #no-read-yet, Key Takeaways, numbered sections, Mermaid diagram, Flashcards, Glossary, Related wikilinks) and 2–3 candidate wiki/ concept summaries.
      • If $N > 8$: Dispatch subagents in parallel waves of $6\text{–}8$ concurrent subagents (1 subagent per video per wave) until all $N$ pending videos are drafted.
  3. Turn 3 — Consolidate & Atomically Commit Batch (FastMCP):
    • Collect all $N$ drafted raw/ notes from the subagents.
    • Generate a dedicated Series Master Plan (Master Plan — <Series Name>.md) mapping the complete playlist (including both newly curated notes and any pre-existing already_exists notes), conceptual architecture, and table of notes.
    • Synthesize 3–7 core wiki/ concepts across the series.
    • Atomically commit all raw/ notes, the Series Master Plan, and wiki/ concepts, surgically upsert into SQLite, and trigger the detached background post-commit worker (async_post_commit.py) in a single call using FastMCP commit_curated_batch:
      commit_curated_batch(
          raw_notes={
              "dataScienceKnowledgeBase/AI Engineer/raw/<Series>/<Series> 01 — Title.md": "...",
              "dataScienceKnowledgeBase/AI Engineer/raw/<Series>/<Series> 02 — Title.md": "...",
          },
          master_plan_path="dataScienceKnowledgeBase/AI Engineer/raw/<Series>/Master Plan — <Series>.md",
          master_plan_content="...",
          wiki_notes={"ConceptName.md": "..."},
          target_kb="dataScienceKnowledgeBase/AI Engineer",
          fast_sync=True,
          async_sync=True
      )
    • Report progress and display clickable file:// and Obsidian URI links for all created notes.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.