- tracks.md: new row 29 for the de-obfuscation campaign (priority A, research, awaits user samples) - Pass 1 spec §11.1: superseded 2026-06-21; now points to the dedicated Pass 2 umbrella spec for the full handoff contract. The 'user must rediscover math encoding' action item is replaced by 'user provides 3-10 samples of past de-obfuscation notes; warmup derives the lexicon'
30 KiB
Track Specification: Video Analysis Campaign (2026-06-21)
Status: Active (spec approved 2026-06-21)
Initialized: 2026-06-21
Owner: Tier 1 Orchestrator (umbrella spec/synthesis); Tier 2 Tech Lead (per-child execution)
Priority: A (user-blocking; long-running research campaign)
Type: Multi-track research campaign (1 umbrella + 12 child tracks + 1 synthesis = 14 folders)
Domain: Meta-tooling (produces research artifacts; no src/ changes to manual_slop)
Purpose. This umbrella track organizes a 12-video research campaign to extract foundational knowledge from the user's preferred sources on AI inference, ML, biological learning, and neuro-compute. The artifacts (transcripts, keyframes, OCR, deep-dive reports) are intermediate inputs to future campaign passes (Pass 2: de-obfuscation; Pass 3: projection to applied domain). Pass 1 is information extraction + distillation; lossless preservation is the design priority.
Companion docs. This spec is the umbrella. The per-video spec is at
conductor/tracks/video_analysis_<slug>_20260621/spec.md(one per child, 12 total). The cross-cutting synthesis spec is atconductor/tracks/video_analysis_synthesis_20260621/spec.md.
0. Campaign Context (multi-pass framing — load-bearing)
This is Pass 1 of 3 in a long-running research campaign.
| Pass | Goal | Status | Dependencies |
|---|---|---|---|
| 1 (THIS) | Information extraction + distillation. Raw transcripts, keyframes, OCR, deep-dive reports per video. Foundational knowledge base. | Active (this track). | None. |
| 2 (FUTURE) | De-obfuscation via user's custom math encoding notation. Reduce DSL + niche math notation/verbiage into something the user (and associates) can understand. | Not started. User must rediscover/redefine their encoding system before starting ("compress/decompress math info" — they have a "handmade" notation from prior work but need to find it). Related: intent_dsl_survey_20260612, DSL patterns in conductor/ docs + track reports. |
Blocked by Pass 1. |
| 3 (FUTURE) | Projection to user's applied domain. Apply learnings to user's preferred code style. Influences: handmade / data-oriented / GPGPU community (Timothy Lottes, Onat Türkçüoğlu, Jebrim) + user's own caveats. Some preferences already in conductor/workflow.md (data-oriented design styleguide). |
Not started. | Blocked by Pass 2. |
Implication for Pass 1 artifacts (load-bearing — read carefully):
- Raw data MUST be preserved in lossless form. JSON for transcripts (timestamped), raw images for frames, plain text for OCR. Pass 2 needs every signal.
- Reports should be DETAILED, not summarized. Per the user directive (2026-06-21), the target is 1000-10000 LOC of markdown per video report. Over-summarization here is data loss for later.
- Synthesis report preserves detail too. Pass 2 will compress.
- Don't optimize for "pretty" at the cost of "complete."
1. Overview
This campaign extracts deep knowledge from 12 YouTube videos the user has curated, organized into 5 thematic clusters:
- Cluster E — Stanford course VODs (>1hr each): 2 videos
9vM4p9NN0Ts— Stanford CS229 — Machine Learning — Building Large Language Models (LLMs)lVynu4bo1rY— Stanford CS336 — Language Modeling from Scratch, Spring 2026, Lecture 3: Architectures
- Cluster A — Math & information-theoretic foundations: 3 videos
0yF9TvMeAzM— Probability Theory is an Extension of Logic_U8AwUq_aJQ— "From Entropy to Epiplexity" (Andrew Wilson and Marc Finzi)P75iVMmbqQk— "Learning Dynamics from Statistics: a score-based approach" (Ludovico Giorgini)
- Cluster B — Platonic / geometric AI representations: 2 videos
1mXUFweWOug— "Towards a Platonic Intelligence with Unified Factored Representations" (Akarsh Kumar)K8BmMU1Tm-I— "Free Lunches: Model Systems for Studying the Agential Gifts from the Platonic Space" (Michael Levin)
- Cluster C — Biological / cognitive / generic systems: 4 videos
cDxtFtoQVNc— The Most Counterintuitive Way to Build a BrainYnfaT5APPB0— "A Multiscale Logic of Collective Intelligence" (Donald Hoffman and Chetan Prakash)0BS-BzEFTXA— "Cognition Emerges from Neural Dynamics" (Earl Miller)QeMajYvhEbI— "Interesting Behavior by Generic Systems" (Chris Fields)
- Cluster D — Applied / practical: 1 video
yxkUvXs-hoQ— Creikey — Deep Learning and Computer Vision for Game Developers (BSC 2025)
Total: 12 videos across 5 clusters.
The campaign delivers:
- Per-video: transcript + keyframes + OCR + deep-dive report (1000-10000 LOC markdown each) + summary
- Cross-cutting: per-video roll-up + synthesis report with theme matrix, concept map, top takeaways, math prerequisite graph, open questions, and recommended next-watch list
2. Current State Audit (as of 2026-06-21)
2.1 Already Available (DO NOT re-build)
| Asset | Location | Status |
|---|---|---|
yt-dlp (Python module) |
NOT installed (system yt-dlp binary NOT on PATH either) |
BLOCKER. Must be installed before any track ships. |
ffmpeg 8.1.1 |
System PATH | Available. |
youtube-transcript-api |
Python module | Installed and importable. |
cv2 (opencv-python) with ffmpeg bindings |
C:\projects\kasa\venv\Lib\site-packages\cv2\ (foreign venv; DO NOT activate) |
Available — need to install in this repo's venv before any track ships. |
imagehash, PIL |
Foreign venvs only | Need to install in this repo's venv. |
winsdk (Windows OCR) |
Used by bootslop (C:\projects\forth\bootslop\process_visuals.py) |
Windows-only; not installed here yet. |
tesseract (cross-platform OCR fallback) |
Not installed | Optional fallback if winsdk proves problematic. |
| Reference scripts | C:\projects\forth\bootslop\download_videos.py, extract_frames.py, process_visuals.py, ocr_interaction.py, fetch_blog.py, fetch_notes.py |
Reference only. New scripts will live in scripts/video_analysis/ (this repo, per AGENTS.md namespace convention). |
| Manual Slop's track convention | conductor/workflow.md, conductor/tracks.md, nagent/fable/chronology precedents |
Established. |
| Manual Slop's data-oriented styleguide | conductor/code_styleguides/data_oriented_design.md |
Referenced by Pass 3 (out of scope here). |
| Manual Slop's error-handling convention | conductor/code_styleguides/error_handling.md (Result[T] pattern) |
Applies to any new Python in scripts/video_analysis/. |
2.2 Gaps to Fill (this track's scope)
| # | Gap | Resolution |
|---|---|---|
| G1 | No reusable scripts for video download / transcript extraction / keyframe extraction / OCR / report synthesis | Create scripts/video_analysis/ namespace with 5 scripts |
| G2 | No tests for the new scripts | TDD: tests/test_video_analysis_*.py (~40-60 tests) |
| G3 | No per-video deep-dive reports | 12 child tracks, each producing one report.md (1000-10000 LOC) + summary.md (200-400 words) |
| G4 | No cross-cutting synthesis | 1 synthesis track, blocked by all 12 children, producing per_video_summary.md + report.md |
| G5 | No campaign-level index | README.md at umbrella folder with one row per child + status |
| G6 | No transcripts/frames/OCR artifacts | Created per-child under artifacts/ (lossless JSON + raw images) |
| G7 | Future-pass hooks not documented | This spec §11 explicitly records the Pass 2/3 dependencies so the next agent can pick up the thread |
3. Goals
- Lossless extraction. Every signal from the 12 videos (spoken word, on-screen text, keyframes) is captured in a machine-readable form. Pass 2 has all the raw material.
- Per-video deep understanding. Each video gets a 1000-10000 LOC deep-dive report covering: TL;DR, key concepts, frame analysis, transcript highlights, math/theoretical content, cross-video connections, open questions, references.
- Cross-cutting synthesis. A campaign-level report maps themes across the 5 clusters, links concepts between videos, surfaces 5-10 high-level takeaways, and recommends a next-watch list.
- Reusable tooling. The 5 scripts in
scripts/video_analysis/are independently TDD-tested and usable for any future video analysis (Pass 2, Pass 3, ad-hoc). - No manual_slop
src/changes. This is a research campaign; the deliverable is the artifacts and reports. - Future-pass documentation. This spec records the Pass 2/3 dependencies so the next agent (or the user, after context compaction) has a clear handoff.
4. Functional Requirements
FR1. Umbrella folder + README
WHERE: New folder conductor/tracks/video_analysis_campaign_20260621/.
WHAT: The umbrella folder contains:
spec.md(this file)plan.md(campaign-level plan — pointers to children)metadata.json(campaign metadata)state.toml(campaign state)README.md(one row per child + status — like a mini-chronology for the campaign)
The README structure:
# Video Analysis Campaign
## Children (in execution order)
| # | Slug | Title | Cluster | Track Folder | Status |
|---|------|-------|---------|--------------|--------|
| 1 | cs229_building_llms | CS229 — Building LLMs | E | [tracks/video_analysis_cs229_building_llms_20260621/](./video_analysis_cs229_building_llms_20260621/) | [~] |
| ... |
## Cross-cutting
| | Track | Status |
|---|-------|--------|
| Synthesis | [tracks/video_analysis_synthesis_20260621/](./video_analysis_synthesis_20260621/) | [ ] (blocked by all 12) |
FR2. 12 child track folders (one per video)
WHERE: New folders conductor/tracks/video_analysis_<slug>_20260621/ (12 total).
WHAT: Each child folder contains at minimum:
spec.md(lightweight — references umbrella, lists the video, specifies what to produce, target LOC)artifacts/(created during execution):transcript.json(timestamped segments + plain text)download.log(yt-dlp log if mp4 downloaded)frames/<scene>_<ts>.jpg(deduplicated unique frames)ocr.md(full OCR text per frame)
report.md(created during execution — 1000-10000 LOC target)summary.md(created during execution — 200-400 words)
Optional (added during execution): plan.md, metadata.json, state.toml per the standard track convention.
Slug convention: <descriptive_lowercase_underscore> — see slug_to_url mapping in §7.
FR3. 1 synthesis track folder
WHERE: New folder conductor/tracks/video_analysis_synthesis_20260621/.
WHAT: Contains:
spec.md(lightweight — references umbrella, lists the 12 inputs, specifies the synthesis structure)per_video_summary.md(created during execution — one paragraph per video, the "summary of each video" the user requested)report.md(created during execution — the "summary report of key takeaways")
blocked_by: all 12 child tracks (per state.toml).
FR4. Reusable tooling (5 scripts in scripts/video_analysis/)
Per AGENTS.md: scripts are namespace-isolated by directory. New namespace scripts/video_analysis/.
| Script | Purpose | Inputs | Outputs |
|---|---|---|---|
scripts/video_analysis/download_video.py |
yt-dlp wrapper (subprocess — no new pyproject deps) | video URL, output path | mp4 file at output path + download.log |
scripts/video_analysis/extract_transcript.py |
youtube-transcript-api wrapper | video URL or ID | transcript.json (segments + plain) |
scripts/video_analysis/extract_keyframes.py |
ffmpeg select=gt(scene\,0.4) + cv2 + imagehash dedup |
mp4 path, output dir, threshold | frames/*.jpg + extraction_meta.json |
scripts/video_analysis/ocr_frames.py |
Windows WinSDK OCR (with tesseract fallback) | frames dir | ocr.md (one section per frame) |
scripts/video_analysis/synthesize_report.py |
Orchestrator — runs the full pipeline for one video | video URL, output dir | artifacts/ populated + report.md stub |
Conventions:
- All scripts follow
conductor/code_styleguides/error_handling.md(Result[T] pattern — applies to any new Python insrc/orscripts/). - All scripts follow
conductor/code_styleguides/python.md(1-space indent, type hints, no comments). - All scripts use
subprocessfor yt-dlp / ffmpeg / tesseract (no new pyproject deps). - All scripts support
--helpand a--jsonmachine-readable mode for tests.
FR5. Per-child pipeline (5 phases)
Each child track executes:
| Phase | Tasks | Output |
|---|---|---|
| 1. Acquire | Run extract_transcript.py (always succeeds, fast). Run download_video.py if frame extraction needs video. |
transcript.json, download.log |
| 2. Keyframes | Run extract_keyframes.py with sensible defaults (threshold 0.4). Manual review of frame set. |
frames/*.jpg, extraction_meta.json |
| 3. OCR | Run ocr_frames.py on frames. Spot-check OCR quality. |
ocr.md |
| 4. Synthesis | Tier 3 worker prompt: transcript + OCR + frame images → report.md (target 1000-10000 LOC). Human review + iteration. | report.md, summary.md |
| 5. Verification | Idempotency check (re-run scripts — should not break). Audit checklist. End-of-track report. | tests/artifacts/<slug>/ |
FR6. Per-video report structure (8 sections, target 1000-10000 LOC)
Each report.md follows this structure (mirrors nagent_review/fable_review style):
# <Video Title>
**Source:** <YouTube URL>
**Author:** <Author>
**Date Added to Campaign:** 2026-06-21
**Cluster:** <A | B | C | D | E>
**Slug:** <slug>
## 1. TL;DR (3-5 sentences)
## 2. Key Concepts (5-15 bullets, each with brief explanation)
## 3. Frame Analysis (one subsection per significant frame; embed image; describe visual content + OCR text + significance)
## 4. Transcript Highlights (with timestamps; verbatim quotes of key passages)
## 5. Mathematical / Theoretical Content (formal notation; derivations; references)
## 6. Connections to Other Videos in Campaign (forward + backward links)
## 7. Open Questions / Follow-up (what this video raises but doesn't answer)
## 8. References (people, papers, prior work cited in the video)
Plus a summary.md per video (200-400 words — quick reference for cross-cutting synthesis).
FR7. Cross-cutting synthesis structure
The synthesis track produces:
per_video_summary.md— one paragraph (150-250 words) per video, the "summary of each video" the user requested. Ordered by execution order (matches umbrella §6).report.md— the "summary report of key takeaways":- Theme matrix across clusters A/B/C/D/E (which videos cover which themes)
- Cross-video concept map (which video introduced which idea; which video references which)
- 5-10 high-level takeaways (the "what I learned that I didn't know before" section)
- Mathematical prerequisite graph (what math is needed to understand what)
- Open research questions (where the field is uncertain or contested)
- Recommended next-watch list (videos the user might want to find based on what they liked here)
FR8. Storage & naming
- mp4 files: NEVER committed to git. Gitignored via pattern matching (per AGENTS.md file size conventions).
- Frame images: committed if <500KB each; otherwise gitignored with
extraction_meta.json(frame paths + hashes) committed. - Transcripts, OCR, summaries, reports: committed (small text files).
- Test artifacts:
tests/artifacts/<slug>/per AGENTS.md artifact isolation convention.
FR9. Dependency graph
UMBRELLA (video_analysis_campaign_20260621)
├── child 1: video_analysis_cs229_building_llms_20260621
├── child 2: video_analysis_probability_logic_20260621
├── ...
├── child 12: video_analysis_creikey_dl_cv_20260621
└── SYNTHESIS: video_analysis_synthesis_20260621 (blocked_by all 12 children)
5. Non-Functional Requirements
- Lossless preservation: all artifacts stored in machine-readable form (JSON, plain text). Pass 2's de-obfuscation pass must be able to consume every artifact programmatically.
- TDD: every new script in
scripts/video_analysis/has tests intests/test_video_analysis_*.pywritten BEFORE implementation (red phase first). - Code style: 1-space indent, type hints, no comments per
conductor/code_styleguides/python.md. Result[T] error handling perconductor/code_styleguides/error_handling.md. - No new pyproject.toml deps: all tools (
yt-dlp,ffmpeg,cv2,imagehash,PIL,winsdk/tesseract) are either system binaries (subprocess) or already in the project's venv (verify before installing). - No
src/changes: research-only campaign. No modifications tosrc/*.py, no newsrc/<thing>.pyfiles (per AGENTS.md File Size and Naming Convention rule). - Per-task atomic commits: each child track follows
conductor/workflow.mdper-task commit discipline. - Git notes: each task gets a git note summarizing what was done and why.
- No day estimates: scope measured in files/sites per
conductor/workflow.mdTier 1 Track Initialization Rules.
6. The 12 Videos in Execution Order
The order is: Stanford CS229 first (canonical ML foundation) → math foundations (A) → Platonic AI (B) → biological/cognitive (C, meta-first then concrete) → CS336 deep dive on architectures → applied capstone (D).
| # | Slug | Title | Cluster | YouTube ID |
|---|---|---|---|---|
| 1 | cs229_building_llms |
CS229 — Building LLMs | E | 9vM4p9NN0Ts |
| 2 | probability_logic |
Probability Theory is an Extension of Logic | A | 0yF9TvMeAzM |
| 3 | entropy_epiplexity |
From Entropy to Epiplexity (Wilson & Finzi) | A | _U8AwUq_aJQ |
| 4 | score_dynamics_giorgini |
Learning Dynamics from Statistics (Giorgini) | A | P75iVMmbqQk |
| 5 | platonic_intelligence_kumar |
Towards a Platonic Intelligence (Kumar) | B | 1mXUFweWOug |
| 6 | free_lunches_levin |
Free Lunches (Levin) | B | K8BmMU1Tm-I |
| 7 | generic_systems_fields |
Interesting Behavior by Generic Systems (Fields) | C | QeMajYvhEbI |
| 8 | brain_counterintuitive |
Most Counterintuitive Way to Build a Brain | C | cDxtFtoQVNc |
| 9 | neural_dynamics_miller |
Cognition Emerges from Neural Dynamics (Miller) | C | 0BS-BzEFTXA |
| 10 | multiscale_hoffman |
Multiscale Logic of Collective Intelligence (Hoffman & Prakash) | C | YnfaT5APPB0 |
| 11 | cs336_architectures |
CS336 Lecture 3: Architectures | E | lVynu4bo1rY |
| 12 | creikey_dl_cv |
Creikey — DL/CV for Game Developers | D | yxkUvXs-hoQ |
7. Slug-to-URL Mapping
The full URL for each video (for reference; the child spec.md files reproduce these):
| Slug | URL |
|---|---|
cs229_building_llms |
https://youtu.be/9vM4p9NN0Ts |
probability_logic |
https://youtu.be/0yF9TvMeAzM |
entropy_epiplexity |
https://youtu.be/_U8AwUq_aJQ |
score_dynamics_giorgini |
https://youtu.be/P75iVMmbqQk |
platonic_intelligence_kumar |
https://youtu.be/1mXUFweWOug |
free_lunches_levin |
https://youtu.be/K8BmMU1Tm-I |
generic_systems_fields |
https://youtu.be/QeMajYvhEbI |
brain_counterintuitive |
https://youtu.be/cDxtFtoQVNc |
neural_dynamics_miller |
https://youtu.be/0BS-BzEFTXA |
multiscale_hoffman |
https://youtu.be/YnfaT5APPB0 |
cs336_architectures |
https://youtu.be/lVynu4bo1rY |
creikey_dl_cv |
https://youtu.be/yxkUvXs-hoQ |
8. Per-Video Report Structure (re-stated for emphasis)
The deep-dive report is the primary deliverable per child track. Target: 1000-10000 LOC markdown per video (per user directive 2026-06-21).
The 8-section structure from FR6 is MANDATORY. Each section gets roughly equal weight, but Frame Analysis + Math/Theoretical Content will likely dominate for technical videos. The Connections section is cross-referential — the synthesis track consumes it heavily.
9. Architecture Reference
This track does not modify the manual_slop application architecture. It produces research artifacts. The architecture refs that DO apply:
- Track convention:
conductor/workflow.md"Standard Task Workflow" + "Tier 1 Track Initialization Rules" + per-task commit discipline - Code style (for new scripts):
conductor/code_styleguides/python.md+conductor/code_styleguides/error_handling.md - Artifact isolation: AGENTS.md "test artifacts" →
tests/artifacts/<slug>/ - Naming: AGENTS.md "File Size and Naming Convention" → scripts in
scripts/<namespace>/, no newsrc/<thing>.pyfiles - Multi-pass documentation: this spec §11 explicitly records Pass 2/3 dependencies
10. Out of Scope (explicit)
- Video analysis GUI panel in manual_slop — no
src/gui_2.pychanges - Auto-fetching of new videos on a schedule — manual campaign execution only
- Building a video knowledge base — separate from this analysis (per
conductor/code_styleguides/knowledge_artifacts.md) - The user's math encoding notation design itself — Pass 2, USER-led, future track
- The projection-to-applied-domain methodology — Pass 3, USER-led, future track
- Re-encoding or post-processing video files — raw mp4s are downloaded once, not modified
- Auto-discovery of related videos on YouTube — manual curation only
- Modifying any
src/*.pyfiles in manual_slop — research-only campaign - Adding
yt_dlp,cv2,imagehash,winsdk, etc. to pyproject.toml — all invoked via subprocess or via existing venv deps
11. Coordination with Future Passes (load-bearing)
11.1 Pass 2 (de-obfuscation via user's constructive type-theoretic re-encoding) — handoff contract (superseded 2026-06-21)
This section is superseded by the dedicated Pass 2 track at conductor/tracks/video_analysis_deob_20260621/spec.md (umbrella) + the warmup precursor at conductor/tracks/video_analysis_deob_warmup_20260621/spec.md.
TL;DR. Pass 2 is now a 5-folder campaign (1 warmup + 1 umbrella + 3 phase children), not a single "USER must rediscover" task. The user's "compress/decompress math info" encoding is now an evidence-based lexicon derived from the user's past de-obfuscation samples (collected via the warmup track), not a "user must rediscover" action item. The 3-layer deliverable per video (translation / replacement / decoder) replaces the single deobfuscated/<slug>.md originally described here.
Pass 2 will consume (unchanged):
transcript.json(every child track'sartifacts/transcript.json)frames/*.jpg(every child track'sartifacts/frames/)ocr.md(every child track'sartifacts/ocr.md)report.md(every child track's deep-dive report — the primary input)summary.md(every child track's summary)
Pass 2's input (revised 2026-06-21):
- The user provides 3-10 samples of their past de-obfuscation notes in
samples/. The warmup track (video_analysis_deob_warmup_20260621/) produces the initial lexicon + LLM prompt template. - The user's constructive type theory framing is documented at
video_analysis_deob_20260621/spec.md§1.1.
Pass 2 output (revised): 3-layer deliverable per video + 3-layer deliverable for the cross-cutting synthesis. For each: <slug>_translation.md (side-by-side), <slug>_deobfuscated.md (replacement), <slug>_decoder.md (per-term decoder with form anchor + etymology + definition history).
5-folder structure:
video_analysis_deob_20260621/— umbrella (coordinates the 3 phase children)video_analysis_deob_warmup_20260621/— precursor (user samples → lexicon + prompt template)video_analysis_deob_lexicon_20260621/— Phase 1 (refine the warmup's draft into a codified operational spec)video_analysis_deob_pilot_20260621/— Phase 2 (apply to 2 videos:cs229_building_llms+entropy_epiplexity; capture refinements)video_analysis_deob_apply_20260621/— Phase 3 (apply to the remaining 10 + synthesis)
See the umbrella spec for the full design: §1 (philosophy), §2 (current state), §3 (goals), §4 (functional requirements), §6 (out of scope), §10 (user directives), §11 (see also).
11.2 Pass 3 (projection to applied domain) — handoff contract
Pass 3 will consume: all of Pass 2's output + the user's stylistic preferences.
Pass 3's input (user action item — pre-Pass-3):
- The user's stylistic preferences are documented in
conductor/workflow.md(data-oriented design styleguide) and in the user's references to:- Timothy Lottes — GPGPU rendering, x56-40 / source-less programming (
C:\projects\forth\bootslop\references\) - Onat Türkçüoğlu — Forth/ColorForth/VAMP/KYRA register-stack architecture (
C:\projects\forth\bootslop\) - Jebrim — GPGPU community (specific reference TBD by user)
- Timothy Lottes — GPGPU rendering, x56-40 / source-less programming (
- The user's "own caveats" are not yet documented — user must articulate these before Pass 3 starts.
Pass 3 output: applied-domain projections (e.g., "how would Lottes-style GPGPU kernels apply to inference?", "how would Onat's register-stack model apply to transformer attention?") + a synthesis.
11.3 Why this campaign is multi-pass
The user's framing (2026-06-21): "this large body of work encapsulated in the AI field which is largely impenetrable to me and associates." Pass 1 is information extraction + distillation (this track); Pass 2 is de-obfuscation (apply user's notation to make the math understandable); Pass 3 is projection (apply to user's domain). Each pass depends on the previous one's artifacts.
Critical: Pass 1 artifacts MUST be lossless. Over-summarization here is data loss that cascades.
12. Verification Criteria
The campaign is "done" when:
- All 12 child tracks shipped (each with
report.md,summary.md,transcript.json,ocr.md, frames extracted) - Synthesis track shipped (with
per_video_summary.md+report.md) - All 5 scripts in
scripts/video_analysis/shipped with passing tests - Umbrella
README.mdlists all children with final status - Campaign end-of-track report at
docs/reports/TRACK_COMPLETION_video_analysis_campaign_20260621.md
The campaign is "Pass 1 complete" when:
- 12 + 1 = 13 child/synthesis tracks shipped
- All artifacts preserved losslessly (verifiable by re-running scripts)
- README.md shows all green
13. Risk Register
| ID | Title | Likelihood | Scope impact | Mitigation |
|---|---|---|---|---|
| R1 | yt-dlp not installed locally |
High (verified at 2026-06-21: yt-dlp is NOT on PATH and NOT in this repo's venv) |
First child track blocked until installed | Install yt-dlp via pip install yt-dlp in the repo's venv (single one-time task at the start of the first child track's execution) |
| R2 | OCR quality insufficient for technical content | Medium | Some frames may have illegible text | Spot-check OCR per frame; manually transcribe critical frames in the report.md section |
| R3 | Report exceeds 10000 LOC target | Low | User may want to split | Pass 2 can split; Pass 1 should not artificially cap |
| R4 | Video mp4 files exceed disk space | Medium | Could hit quota | Delete mp4 after frame extraction (extract_frames.py already does this in bootslop) |
| R5 | Two videos failed oEmbed fetch (private/age-restricted) | Confirmed for 9vM4p9NN0Ts and lVynu4bo1rY |
Unknown until track execution | User confirmed: 9vM4p9NN0Ts = CS229, lVynu4bo1rY = CS336. The actual video data may still be accessible via yt-dlp (different from oEmbed) — verify in Phase 1 of each track |
| R6 | User's math encoding notation (Pass 2) lost | Medium | Blocks Pass 2 | User action item: rediscover/redefine encoding before Pass 2 starts |
| R7 | Pass 1 over-summarization loses signal for Pass 2 | Medium (if not enforced) | Cascades to Pass 2/3 | The "1000-10000 LOC target" + this spec's §0 explicit warning + per-section completeness check in verification |
| R8 | Tier 2 capacity for 12+ child tracks | Medium | Tracks ship in sequence | Each child is independently shippable; the campaign is async |
| R9 | Transcript API rate-limiting | Low | Some videos may fail on first fetch | Retry with backoff in extract_transcript.py |
| R10 | cv2 / imagehash not in this repo's venv |
High (verified — they exist only in foreign venvs) | Blocks keyframe extraction | Install via pip install opencv-python imagehash pillow in the repo's venv (single one-time task) |
14. User Directives (recorded for next agent / future-self)
- 2026-06-21: "Sure" — confirmed the 12-video order in §6.
- 2026-06-21: "This looks good, I'd say 2 [the report target]. should minimum 1000 and tops at 10k lines of markdown." — 1000-10000 LOC target per video report.
- 2026-06-21: "I want to add a note about this campaign, this is a first pass in a series of passes where we are doing essentially information extraction and distillation." — multi-pass framing; Pass 1 = this track.
- 2026-06-21: "Some of my preferences are within the workflow for conductor and are influenced by the 'handmade/data-oriented/GPGPU (Timothy Lottes, Onatt, Jebrim)' community along with my own caveats." — Pass 3 inputs.
- 2026-06-21: "These future passes after this first pass will be important to clarifying to my mind this large body of work encapsulated in the ai field which is largely impenetrable to me and associates." — campaign motivation.
15. See Also
conductor/workflow.md— track convention, per-task commits, git notes, verification protocolconductor/code_styleguides/python.md— 1-space indent, type hints, no commentsconductor/code_styleguides/error_handling.md— Result[T] pattern for new scriptsconductor/code_styleguides/data_oriented_design.md— referenced by Pass 3 (out of scope here)conductor/code_styleguides/agent_memory_dimensions.md— referenced by Pass 2/3 for memory-shape decisionsconductor/code_styleguides/knowledge_artifacts.md— referenced by Pass 3 for knowledge-base shapeconductor/tracks/intent_dsl_survey_20260612/— prior DSL work that Pass 2 may build onconductor/tracks/nagent_review_20260608/report.md— precedent for deep-dive report formatconductor/tracks/fable_review_20260617/report.md— precedent for synthesis report formatC:\projects\forth\bootslop\download_videos.py,extract_frames.py,process_visuals.py— reference scripts (NOT imported; new scripts in this repo's namespace)https://pypi.org/project/youtube-transcript-api/— transcript extractionC:\projects\kasa\venv\Lib\site-packages\cv2\— provescv2/ffmpegis installable in a Python venv on this machine