Analyze a book (EPUB/PDF) and generate detailed chapter-by-chapter notes with extracted key concepts. Use when given a book file path to process.
中文简介正在准备中。当前显示原文说明。
Extract transcript and key slides from a local video file, then create a vault-formatted lecture note. Use this skill whenever a user provides a local video file (.mp4, .mov, .mkv, .avi, .webm) and wants notes from it. Triggers on "lecture", "take notes", "I have a recording of", "class video", "transcribe this presentation", "process this video for notes", or /lecture. Works with any language — auto-detects transcript language.
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
<Use_When>
<Do_Not_Use_When>
<Execution_Policy>
Parse the video file path from $ARGUMENTS. If no path provided, ask the user. Verify the file exists and is a video format (mp4, mov, mkv, avi, webm).
Run the extraction script:
SKILL_DIR="${CLAUDE_SKILL_DIR}"
LECTURE_OUTPUT="temp/lecture-extract-output.json"
uv run "$SKILL_DIR/scripts/extract_lecture.py" "VIDEO_PATH" > "$LECTURE_OUTPUT" 2>&1 &
IMPORTANT: This script takes time (several minutes for a 30-60 min video). Inform the user: "Extracting audio and transcribing — this will take a few minutes for a [duration] video."
Run it and wait for completion. Then read the output JSON.
The JSON contains:
filename, duration, duration_seconds, width, heighttranscript.full_text, transcript.segments (with start/end times), transcript.languagetranscript.error (null if success)frames[] — array of {path, timestamp_seconds, timestamp} for each extracted slideoutput_dir — temp directory with extracted framesIf transcript.error is not null: inform the user and stop. Check if mlx-whisper is installed.
If transcript is very long (>80,000 chars): warn the user. Send first 60,000 chars to the agent with a note about total length.
Copy the extracted frames to the vault's assets directory with a descriptive naming scheme:
# Generate a slug from the video filename
SLUG=$(echo "VIDEO_FILENAME" | sed 's/\.[^.]*$//' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed 's/[^a-z0-9-]//g' | cut -c1-30)
ASSETS_DIR="assets"
for frame in FRAME_PATHS; do
FRAME_NUM=$(basename "$frame" | grep -o '[0-9]*')
cp "$frame" "$ASSETS_DIR/lecture-${SLUG}-${FRAME_NUM}.jpg"
done
Build a frame manifest for the noter agent — each frame gets:
![[embedding]])Example manifest:
FRAMES WITH TIMESTAMPS:
- lecture-risk-mgmt-01.jpg (timestamp: 0:10)
- lecture-risk-mgmt-02.jpg (timestamp: 2:00)
- lecture-risk-mgmt-03.jpg (timestamp: 4:00)
...
Read the agent definition:
Read("${CLAUDE_SKILL_DIR}/agents/lecture-noter.md")
Search the vault for existing notes related to the lecture'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)
Review each frame using the Read tool to see what's on each slide. Build a brief description of each frame's content (1 line each) to include in the agent prompt.
Launch the lecture-noter agent:
Agent(
subagent_type="general-purpose",
model="sonnet",
run_in_background=false,
prompt="You are Lecture Noter. Follow these instructions exactly:
[INSERT FULL CONTENT OF agents/lecture-noter.md HERE]
VIDEO METADATA:
- Filename: [filename]
- Duration: [duration]
- Transcript language: [language from extraction JSON]
FRAMES WITH TIMESTAMPS AND DESCRIPTIONS:
- lecture-slug-01.jpg (timestamp: 0:10) — Title slide showing course name
- lecture-slug-02.jpg (timestamp: 2:00) — Diagram of risk framework
[... one line per frame with what you see on it]
EXISTING VAULT NOTES ON RELATED TOPICS:
[List any matching notes found in grep search]
TRANSCRIPT:
[full_text]
Produce the note body following the Output Format. Do NOT include frontmatter —
only the body starting from the # title line.
Use the exact filenames from FRAMES list for ![[embedding]] — do not invent filenames."
)
date +%Y%m%d%H%M%S
Determine the best subfolder for the note:
notes/ml/notes/startup/notes/finance/notes/design/notes/psychology/notes/Create the note file with frontmatter + agent output:
---
id: YYYYMMDDHHMMSS
type: lecture
processing_status: inbox
created_date: YYYY-MM-DD
updated_date: YYYY-MM-DD
---
[AGENT OUTPUT HERE — starts with # title, includes embedded screenshots]
rm -rf "$OUTPUT_DIR"
rm -f "$LECTURE_OUTPUT"
<Tool_Usage>
<Escalation_And_Stop_Conditions>
brew install uv) and stop$ARGUMENTS
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Analyze a book (EPUB/PDF) and generate detailed chapter-by-chapter notes with extracted key concepts. Use when given a book file path to process.
中文简介正在准备中。当前显示原文说明。
Process an online course into detailed vault notes — one per lecture, with slides and transcripts synthesized. Use this skill whenever the user shares a course URL, syllabus page, or lecture playlist and wants structured notes from it. Also triggers on "process this course", "take notes on these lectures", "course notes", any university course page, or when someone pastes a link to a course with multiple lectures/sessions. Even if the user just says "check out this course" or drops a .edu link with a schedule — use this skill.
中文简介正在准备中。当前显示原文说明。
Deep, iterative, multi-source research that explores a topic from multiple perspectives, detects contradictions, and produces a comprehensive vault note with fact-level citations and a confidence map. Use this skill whenever the user says /deep-research, "deep research X", "research X thoroughly", "investigate X deeply", "I need to really understand X", or wants research that goes beyond a quick web search. Also use when the user wants to understand a complex, contested, or multi-faceted topic, compare competing approaches with evidence, or build a comprehensive mental model they can trust for decisions. This is heavier than /research — it searches web, academic papers, Reddit, and the vault, then loops through exploration and critique rounds until the evidence base is solid. When in doubt between /research and /deep-research, prefer this one if the topic is complex, contested, or the user wants depth over speed.
中文简介正在准备中。当前显示原文说明。
Initialize an Obsidian vault with the agent-ready Zettelkasten system — creates directory structure, templates, CLAUDE.md, MCP config, and hooks
中文简介正在准备中。当前显示原文说明。
Use when searching for academic papers related to a topic, finding papers similar to one already in the vault, or discovering research gaps. Triggers on "find papers", "related papers", "paper search", "literature", "what papers should I read about X".
中文简介正在准备中。当前显示原文说明。
CORE learning workflow — use this whenever the user has a source note open (paper, post, book, lecture, course, clipping) and wants to extract knowledge, understand what they just read, or build it into their vault. Triggers on "process this note", "process this paper", "extract concepts", "what can I learn from this", "atomize this", "add this to my vault", "what's important here", or when the user shares a note and asks for help understanding it. Do NOT wait for an explicit /process command — if the user is engaging with a source note and wants to go deeper, this skill applies.
中文简介正在准备中。当前显示原文说明。