.claude/skills/video-digest/SKILL.md
Triage new videos, generate watch recommendations
npx skillsauth add DavidROliverBA/ArchitectKB video-digestInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Intelligently triage new videos from subscribed YouTube channels, process selectively based on relevance, and generate a daily digest with watch recommendations.
/video-digest # Full triage and processing
/video-digest --triage-only # Score videos without processing
/video-digest --report # Show current queue status
/video-digest --watched <video> # Mark video as watched (removes from queue)
/video-digest
/video-digest --triage-only
/video-digest --watched "YouTube - AI Security Patterns"
| Phase | Model | Rationale | | ----------------- | ------ | ------------------------ | | RSS fetch | Haiku | Simple data extraction | | Title/desc triage | Haiku | Fast relevance scoring | | Worth Processing | Sonnet | Full transcript analysis | | Quick Capture | Haiku | Brief summary only | | Digest generation | Sonnet | Quality recommendations |
Model: Haiku (parallel subagents)
Read subscriptions from .claude/subscriptions.yaml
For each channel (in parallel), fetch RSS feed:
https://www.youtube.com/feeds/videos.xml?channel_id={{channel_id}}
Use WebFetch with prompt: "Extract video entries: title, video_id, published_date, description (first 500 chars)"
Identify new videos:
last_video_idCollect candidates with basic metadata:
Model: Haiku
For each candidate video, compute triage score:
TRParentCorpE_SCORE = (
PROJECT_RELEVANCE * 0.35 + # 0-100
DOMAIN_RELEVANCE * 0.25 + # 0-100
FRESHNESS_BOOST * 0.20 + # 0-100
CHANNEL_TRUST * 0.20 # 0-100 (from trust_score * 5)
)
Project Relevance (read .claude/context/projects.md):
Match title + description against project keywords:
| Project | Keywords | | ------------ | -------------------------------------------------------------- | | Beta | ERPSystem, MRO, Swiss-AS, EWS, modernisation, aviation, maintenance | | Alpha | SAP, DataPlatform, data products, Kafka, Datasphere, integration | | AlertHub | AWS Bedrock, AI agents, safety, incident, LLM, Claude | | Delta | AircraftMfg, Gatelink, EFB, aircraft, AvionicsVendor, avionics | | Cyber Uplift | security, IAM, compliance, LLD, AWS security, threat | | DataPlatform | data platform, Snowflake, analytics, data engineering |
Domain Relevance (read .claude/rules/tag-taxonomy.md domain/ section):
Match against domain keywords:
domain/engineering: systems, architecture, design, modernisationdomain/data: analytics, data products, streaming, Kafka, databasesdomain/cloud: AWS, Azure, infrastructure, serverless, containersdomain/security: IAM, encryption, compliance, threats, vulnerabilitiesdomain/ai: LLM, agents, machine learning, Claude, GPT, automationFreshness Boost:
node .claude/scripts/graph-query.js --search="<keywords>" --since=$(date -v-14d +%Y-%m-%d) --jsonChannel Trust:
trust_score from subscriptions.yaml (0-20, default 10)Apply additional boosts from triage_settings.boost_keywords:
boost_keywords:
- keyword: "architecture"
boost: 10
- keyword: "Claude Code"
boost: 15
Skip videos containing triage_settings.never_process_keywords:
never_process_keywords:
- "reaction"
- "drama"
- "podcast"
- "unboxing"
Skip videos outside minimum_duration / maximum_duration thresholds.
| Category | Score Range | Action |
| ---------------- | ----------- | ---------------------------- |
| Must Watch | 80-100 | Flag for user with reasoning |
| Worth Processing | 50-79 | Full /youtube processing |
| Quick Capture | 25-49 | Weblink only, brief summary |
| Skip | 0-24 | Log reason, no files created |
Model: Sonnet (parallel for Worth Processing tier)
Do NOT process automatically. Instead:
Update video queue (.claude/video-queue.yaml):
must_watch:
- video_id: "abc123"
title: "Video Title"
url: "https://youtube.com/watch?v=abc123"
channel: "Channel Name"
score: 92
first_recommended: "2026-02-05T08:00:00Z"
always_watch_channel: false
reasoning:
- "Directly relevant to [[Project - AlertHub]] - discusses AI agent security"
- "Knowledge gap: No vault content on 'AI firewall' patterns"
- "Channel trust: 2.8 nodes/video historical yield"
potential_nodes: 4
Include in digest with full reasoning
Launch parallel /youtube processing:
For each video in this tier, invoke /youtube <url>:
/youtube skill workflowTrack results:
processing_stats in subscriptions.yamlModel: Haiku
Create minimal Weblink note:
Filename: Weblink - {{sanitised title}}.md
---
type: Reference
title: "{{title}}"
url: "{{youtube_url}}"
domain: youtube.com
createdAt: "{{ISO timestamp}}"
description: "{{brief summary from description}}"
created: { { DATE } }
modified: { { DATE } }
tags:
- video
- activity/research
relatedTo: []
---
# {{title}}
**Channel:** {{channel name}}
**Duration:** {{duration}}
**Source:** [Watch on YouTube]({{url}})
## Summary
{{2-3 sentence summary based on title and description}}
## Relevance
Quick captured due to moderate relevance (score: {{score}}/100).
_Full processing not warranted based on triage criteria._
Log to digest only. No files created.
Read .claude/video-queue.yaml
For each video in must_watch:
always_watch_channel: true → Keep in must_watchmust_watch_expiry_days (default 5) → Move to backlogUpdate queue file with moves
backlog:
- video_id: "ghi789"
title: "Older Video"
url: "https://youtube.com/watch?v=ghi789"
channel: "Some Channel"
expired_from_must_watch: "2026-02-05"
original_score: 85
reasoning:
- "Was relevant to [[Project - Beta]]"
Model: Sonnet
Add ## Video Digest section to today's daily note.
Daily/{{year}}/{{YYYY-MM-DD}}.md (actual format used)Daily/{{year}}/Daily - {{YYYY-MM-DD}}.md (documented format)/daily skill## End of Day Review if present, otherwise at end)## Video Digest
_Generated at {{timestamp}}_
### 📊 Summary
| Category | Count | Action |
| ---------------- | ----- | ---------------------------- |
| Must Watch | {{n}} | Review recommendations below |
| Worth Processing | {{n}} | Auto-processed |
| Quick Capture | {{n}} | Weblink created |
| Skipped | {{n}} | Not relevant |
### 🎯 Must Watch
{{For each must-watch video:}}
#### [[YouTube - {{title}}]] _(not yet created)_
**Channel:** {{channel}} | **Duration:** {{duration}} | **Score:** {{score}}/100
**Why watch:**
{{For each reasoning point:}}
- {{reasoning}}
**If skipped:** Will extract ~{{potential_nodes}} concepts including {{top concepts}}
---
### ✅ Auto-Processed
| Video | Channel | Score | Nodes Created |
| ----- | ------- | ----- | ------------- |
{{For each processed video:}}
| [[YouTube - {{title}}]] | {{channel}} | {{score}} | {{nodes_count}} |
### 📎 Quick Captures
{{For each quick capture:}}
- [[Weblink - {{title}}]] - {{brief reason}}
### ⏭️ Skipped
| Video | Channel | Reason |
| ----- | ------- | ------ |
{{For each skipped video:}}
| "{{title}}" | {{channel}} | {{skip_reason}} |
{{If backlog not empty:}}
### ⏳ When You Get Time (Backlog)
Videos that expired from Must Watch after {{expiry_days}} days:
| Video | Channel | Original Score | Days in Queue |
| ----- | ------- | -------------- | ------------- |
{{For each backlog video:}}
| [[YouTube - {{title}}]] | {{channel}} | {{score}} | {{days}} |
Update subscriptions.yaml:
last_checked to current timestamplast_video_id to most recent video per channelprocessing_stats countersUpdate video-queue.yaml:
--watched flag)When invoked as /video-digest --watched <video>:
must_watch and backlog in queueWhen invoked as /video-digest --report:
.claude/video-queue.yamlVideo Queue Status
==================
Must Watch: {{count}}
{{For each:}}
- "{{title}}" ({{channel}}) - Score: {{score}} - {{days_old}} days old
Backlog: {{count}}
{{For each:}}
- "{{title}}" ({{channel}}) - Expired {{days_ago}} days ago
Last Digest: {{timestamp}}
When invoked as /video-digest --triage-only:
For a run with 2 channels, 8 new videos:
Video Digest Results
====================
Checked 2 channels, found 8 new videos.
📊 Triage Results:
Must Watch: 1
- "AI Security for Autonomous Agents" (IndyDevDan) - Score: 92
Worth Processing: 2
- "AWS Bedrock Deep Dive" - Score: 68
- "Kafka Streaming Patterns" - Score: 55
Quick Capture: 2
Skipped: 3
✅ Processed 2 videos:
- [[YouTube - AWS Bedrock Deep Dive]] → 2 concepts, 1 pattern
- [[YouTube - Kafka Streaming Patterns]] → 1 concept
📎 Created 2 quick captures:
- [[Weblink - Tech News Weekly]]
- [[Weblink - Developer Productivity Tips]]
📝 Updated today's daily note with digest.
📋 1 video added to must-watch queue.
/daily skill/rss-check - Channel subscription management/youtube - Full video processing/daily - Daily note creation/schedule - Scheduled execution setuptools
--- context: fork --- # /youtube Save a YouTube video as both a Weblink (quick reference) and a detailed Page (full analysis). ## Usage ``` /youtube <url> /youtube <url> <optional title override> ``` ## Examples ``` /youtube https://www.youtube.com/watch?v=0TpON5T-Sw4 /youtube https://youtu.be/abc123 AWS re:Invent Keynote ``` ## Prerequisites This skill uses the MCP Docker YouTube tools: - `mcp__MCP_DOCKER__get_video_info` - Video metadata - `mcp__MCP_DOCKER__get_transcript` - Full trans
data-ai
Create and manage git worktrees for parallel agent sessions
testing
--- context: fork --- # /wipe Generate a context handoff summary, clear the session, and resume in a fresh conversation. Detects environment and provides automated (tmux) or manual workflow. ## Usage ``` /wipe /wipe quick # Minimal handoff, just essentials /wipe detailed # Comprehensive handoff with full context ``` ## Instructions When the user invokes `/wipe`: ### Phase 1: Detect Environment First, check the terminal environment: ```bash echo "Environment Detection:"
data-ai
--- context: fork --- # /weekly-summary Generate comprehensive weekly summary from daily notes, meetings, tasks, and project updates using parallel sub-agents. ## Usage ``` /weekly-summary /weekly-summary --last-week /weekly-summary --from 2026-01-01 --to 2026-01-07 /weekly-summary --output page # Create Page note instead of just outputting ``` ## Instructions This skill uses **5 parallel sub-agents** to gather data concurrently from different vault areas, then synthesizes a comprehensi