brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
youtubeAnalyze a YouTube video and create a vault note from its transcript. Use this skill whenever a YouTube URL is pasted — even with casual commentary like "check this out" or "interesting talk." Also triggers on "youtube", "take notes from this video", "summarize this video", or any YouTube link (youtube.com, youtu.be) regardless of surrounding context.
Independent GitHub snapshot · Automated classification · Original documentation governs
<Use_When>
<Do_Not_Use_When>
<Execution_Policy>
Parse the YouTube URL/ID from $ARGUMENTS. If no URL provided, ask the user.
Run the extraction script. Redirect stdout to a temp file (stderr has progress messages that break piping):
SKILL_DIR="${CLAUDE_SKILL_DIR}"
YT_OUTPUT="$SKILL_DIR/_output.json"
uv run "$SKILL_DIR/scripts/fetch_youtube.py" "VIDEO_URL" --lang en > "$YT_OUTPUT"
Then read $YT_OUTPUT with the Read tool to get the JSON. Clean up the file after use.
The JSON contains:
title, channel, duration, upload_date, description, chapterstranscript.full_text, transcript.segments, transcript.languagetranscript.error (null if success)If transcript.error is not null: inform the user and stop. No note without content.
If transcript is very long (>50,000 chars): warn the user this is a long video. Chunk the transcript for the agent if needed — send first 40,000 chars with a note about total length. For very long videos (>2hrs), consider suggesting the user watch key sections instead.
Read the agent definition:
Read("${CLAUDE_SKILL_DIR}/agents/video-noter.md")
Search the vault for existing notes related to the video's topics using the MCP tool:
search_notes(query="KEYWORD", limit=20)
Or fall back to Grep if MCP is unavailable:
Grep(pattern="KEYWORD", path="notes/", glob="*.md", head_limit=20)
Launch the video-noter agent:
Agent(
subagent_type="general-purpose",
model="sonnet",
run_in_background=false,
prompt="You are Video Noter. Follow these instructions exactly:
[INSERT FULL CONTENT OF agents/video-noter.md HERE]
VIDEO METADATA:
- Title: [title]
- Channel: [channel]
- Duration: [duration]
- Upload date: [upload_date]
- Chapters: [chapters if any]
- Description: [first 500 chars of description]
EXISTING VAULT NOTES ON RELATED TOPICS:
[List any matching notes found in grep]
TRANSCRIPT:
[full_text or chunked text]
Produce the note body following the Output Format. Do NOT include frontmatter —
only the body starting from the # title line."
)
date +%Y%m%d%H%M%S
Format the upload_date for frontmatter (YYYYMMDD → YYYY-MM-DD)
Check for duplicate notes:
grep -rl "VIDEO_TITLE" notes/ --include="*.md" | head -5
---
id: YYYYMMDDHHMMSS
type: post
processing_status: inbox
author: Channel Name
link: "https://www.youtube.com/watch?v=VIDEO_ID"
created_date: YYYY-MM-DD
updated_date: YYYY-MM-DD
---
[AGENT OUTPUT HERE — starts with # title and 🏷️Tags line]
Place the note in notes/ under the most appropriate topic subfolder:
notes/ml/notes/startup/notes/finance/notes/design/notes/psychology/notes/<Tool_Usage>
<Escalation_And_Stop_Conditions>
$ARGUMENTS