Files
manual_slop/conductor/tracks/video_analysis_campaign_20260621/metadata.json
T
ed b184250b78 conductor(video_analysis_campaign): Initialize umbrella track + 12 child + 1 synthesis scaffold
Pass 1 of 3 user research campaign (12 videos, 5 clusters).
- Umbrella: spec.md (full design), plan.md, metadata.json, state.toml, README.md
- Multi-pass framing (Pass 2 de-obfuscation, Pass 3 projection)
- Lossless preservation directive (1000-10000 LOC per video report target)
- Tooling prerequisites: yt-dlp, cv2, imagehash install in repo venv
- 5 reusable scripts to live in scripts/video_analysis/ (TDD)
- 12 children + 1 synthesis = 14 folders total
2026-06-21 15:02:44 -04:00

232 lines
14 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"track_id": "video_analysis_campaign_20260621",
"name": "Video Analysis Campaign (12 videos, 5 clusters, 3 passes)",
"created": "2026-06-21",
"status": "spec_approved",
"blocked_by": [],
"blocks": [
"video_analysis_synthesis_20260621"
],
"priority": "A",
"rationale": "User-blocking research campaign to extract foundational knowledge from 12 curated YouTube videos on AI inference, ML, biological learning, and neuro-compute. The artifacts feed future Pass 2 (de-obfuscation via user's math encoding) and Pass 3 (projection to applied domain). Lossless preservation is the design priority. Research-only — no src/ changes, no new pyproject deps (all tools via subprocess or existing venv).",
"type": "multi-track research campaign (1 umbrella + 12 child tracks + 1 synthesis = 14 folders total)",
"domain": "meta-tooling (research artifacts; no manual_slop src/ changes)",
"scope": {
"new_folders": [
"conductor/tracks/video_analysis_campaign_20260621/",
"conductor/tracks/video_analysis_cs229_building_llms_20260621/",
"conductor/tracks/video_analysis_probability_logic_20260621/",
"conductor/tracks/video_analysis_entropy_epiplexity_20260621/",
"conductor/tracks/video_analysis_score_dynamics_giorgini_20260621/",
"conductor/tracks/video_analysis_platonic_intelligence_kumar_20260621/",
"conductor/tracks/video_analysis_free_lunches_levin_20260621/",
"conductor/tracks/video_analysis_generic_systems_fields_20260621/",
"conductor/tracks/video_analysis_brain_counterintuitive_20260621/",
"conductor/tracks/video_analysis_neural_dynamics_miller_20260621/",
"conductor/tracks/video_analysis_multiscale_hoffman_20260621/",
"conductor/tracks/video_analysis_cs336_architectures_20260621/",
"conductor/tracks/video_analysis_creikey_dl_cv_20260621/",
"conductor/tracks/video_analysis_synthesis_20260621/"
],
"new_files_per_child": [
"spec.md (lightweight)",
"artifacts/transcript.json",
"artifacts/ocr.md",
"artifacts/frames/<scene>_<ts>.jpg (deduplicated)",
"artifacts/extraction_meta.json",
"report.md (1000-10000 LOC target)",
"summary.md (200-400 words)"
],
"new_files_scripts": [
"scripts/video_analysis/download_video.py",
"scripts/video_analysis/extract_transcript.py",
"scripts/video_analysis/extract_keyframes.py",
"scripts/video_analysis/ocr_frames.py",
"scripts/video_analysis/synthesize_report.py"
],
"new_files_tests": [
"tests/test_video_analysis_download_video.py",
"tests/test_video_analysis_extract_transcript.py",
"tests/test_video_analysis_extract_keyframes.py",
"tests/test_video_analysis_ocr_frames.py",
"tests/test_video_analysis_synthesize_report.py"
],
"new_files_synthesis": [
"conductor/tracks/video_analysis_synthesis_20260621/spec.md",
"conductor/tracks/video_analysis_synthesis_20260621/per_video_summary.md",
"conductor/tracks/video_analysis_synthesis_20260621/report.md"
],
"modified_files": [],
"deleted_files": [],
"gitignored_patterns": [
"*.mp4 (video files - too large for git)",
"artifacts/frames/*.jpg if >500KB each",
"tests/artifacts/<slug>/ (per AGENTS.md artifact isolation)"
]
},
"estimated_effort": {
"method": "scope (per conductor/workflow.md Tier 1 Track Initialization Rules). NO day estimates.",
"phase_0": "4 tasks: tooling prerequisites (yt-dlp, cv2, imagehash, OCR backend decision)",
"phase_1": "10 tasks: 5 reusable scripts with TDD (red + green per script)",
"phase_2": "12 child tracks × 5 phases each = 60 child track execution tasks (tracked in child plans, not this umbrella)",
"phase_3": "1 synthesis track (blocked by all 12 children)",
"phase_4": "4 tasks: campaign closeout (README update, end-of-track report, archive move, chronology update)",
"summary": "14 track folders (1 umbrella + 12 children + 1 synthesis), 5 reusable scripts, ~40-60 unit tests, 12 reports (1000-10000 LOC each), 12 summaries, 1 cross-cutting synthesis report. No day estimates per project convention."
},
"verification_criteria": [
"yt-dlp installed and importable in this repo's venv",
"cv2, imagehash, PIL installed in this repo's venv",
"OCR backend chosen (winsdk or tesseract) and working",
"All 5 scripts in scripts/video_analysis/ have passing TDD tests",
"All 12 child tracks shipped: each has transcript.json, frames/, ocr.md, report.md (1000-10000 LOC), summary.md",
"Synthesis track shipped: per_video_summary.md + report.md",
"Umbrella README.md shows all 12 children + synthesis as shipped",
"End-of-track report at docs/reports/TRACK_COMPLETION_video_analysis_campaign_20260621.md",
"All artifacts preserved losslessly (JSON for transcripts, raw images for frames, plain text for OCR)",
"No src/*.py files created or modified (per AGENTS.md File Size and Naming Convention)",
"No new pyproject.toml dependencies (all tools via subprocess or existing venv)",
"Future-pass hooks (§11 of spec.md) intact and documented for Pass 2/3"
],
"risk_register": [
{
"id": "R1",
"title": "yt-dlp not installed locally",
"likelihood": "high",
"scope_impact": "First child track blocked until installed",
"mitigation": "Install via pip install yt-dlp in this repo's venv (single one-time task in Phase 0)"
},
{
"id": "R2",
"title": "OCR quality insufficient for technical content",
"likelihood": "medium",
"scope_impact": "Some frames may have illegible text",
"mitigation": "Spot-check OCR per frame; manually transcribe critical frames in the report.md section"
},
{
"id": "R3",
"title": "Report exceeds 10000 LOC target",
"likelihood": "low",
"scope_impact": "User may want to split",
"mitigation": "Pass 2 can split; Pass 1 should not artificially cap"
},
{
"id": "R4",
"title": "Video mp4 files exceed disk space",
"likelihood": "medium",
"scope_impact": "Could hit quota",
"mitigation": "Delete mp4 after frame extraction (extract_keyframes.py should do this)"
},
{
"id": "R5",
"title": "Two videos failed oEmbed fetch",
"likelihood": "confirmed for 9vM4p9NN0Ts and lVynu4bo1rY",
"scope_impact": "Unknown until track execution",
"mitigation": "User confirmed identities. yt-dlp may still work (different from oEmbed). Verify in Phase 1 of each track."
},
{
"id": "R6",
"title": "User's math encoding notation (Pass 2) lost",
"likelihood": "medium",
"scope_impact": "Blocks Pass 2",
"mitigation": "User action item: rediscover/redefine encoding before Pass 2 starts. Recorded in spec.md §11.1."
},
{
"id": "R7",
"title": "Pass 1 over-summarization loses signal for Pass 2",
"likelihood": "medium (if not enforced)",
"scope_impact": "Cascades to Pass 2/3",
"mitigation": "The 1000-10000 LOC target + spec.md §0 explicit warning + per-section completeness check in verification"
},
{
"id": "R8",
"title": "Tier 2 capacity for 12+ child tracks",
"likelihood": "medium",
"scope_impact": "Tracks ship in sequence",
"mitigation": "Each child is independently shippable; the campaign is async"
},
{
"id": "R9",
"title": "Transcript API rate-limiting",
"likelihood": "low",
"scope_impact": "Some videos may fail on first fetch",
"mitigation": "Retry with backoff in extract_transcript.py"
},
{
"id": "R10",
"title": "cv2 / imagehash not in this repo's venv",
"likelihood": "high (verified - exist only in foreign venvs)",
"scope_impact": "Blocks keyframe extraction",
"mitigation": "Install via pip install opencv-python imagehash pillow in this repo's venv (single one-time task in Phase 0)"
}
],
"architecture_reference": {
"primary_documents": [
"conductor/workflow.md (track convention, per-task commits, git notes, verification protocol)",
"conductor/code_styleguides/python.md (1-space indent, type hints, no comments)",
"conductor/code_styleguides/error_handling.md (Result[T] pattern for new scripts)",
"AGENTS.md (artifact isolation, file naming, no new src/<thing>.py)",
"conductor/chronology.md (after campaign ships, 14 new rows added here)"
],
"related_tracks": [
"conductor/tracks/intent_dsl_survey_20260612/ (Pass 2 may build on this)",
"conductor/tracks/nagent_review_20260608/ (precedent for deep-dive report format)",
"conductor/tracks/fable_review_20260617/ (precedent for synthesis report format)",
"conductor/tracks/chronology_20260619/ (precedent for spec/plan/metadata/state schema)"
],
"external_references": [
"C:/projects/forth/bootslop/download_videos.py (yt-dlp usage reference)",
"C:/projects/forth/bootslop/extract_frames.py (imagehash + cv2 keyframe extraction reference)",
"C:/projects/forth/bootslop/process_visuals.py (winsdk OCR + visual analysis reference)",
"C:/projects/forth/bootslop/ocr_interaction.py (standalone OCR reference)",
"https://pypi.org/project/youtube-transcript-api/",
"C:/projects/kasa/venv/Lib/site-packages/cv2/opencv_videoio_ffmpeg481_64.dll (proves cv2/ffmpeg installs on this machine)"
],
"styleguides_applied": [
"data_oriented_design.md (referenced by Pass 3, not directly by Pass 1)",
"python.md (1-space indent for all new scripts)",
"error_handling.md (Result[T] for all new scripts)",
"feature_flags.md (scripts are file-presence, no config flags needed)",
"workspace_paths.md (test artifacts in tests/artifacts/)"
]
},
"deferred_to_followup_tracks": [
{
"title": "Pass 2: De-obfuscation via user's math encoding notation",
"description": "Apply the user's custom math encoding/compression notation to reduce DSL + niche math notation/verbiage into something the user can understand. Consumes all Pass 1 artifacts.",
"track_status": "not started - blocked by this track",
"blocker_action_item": "User must rediscover/redefine their 'compress/decompress math info' encoding notation before Pass 2 starts. See spec.md §11.1."
},
{
"title": "Pass 3: Projection to user's applied domain",
"description": "Apply Pass 2 outputs to user's preferred code style. Influences: handmade/data-oriented/GPGPU community (Lottes, Onat, Jebrim) + user's own caveats.",
"track_status": "not started - blocked by Pass 2",
"blocker_action_item": "User must articulate 'own caveats' before Pass 3 starts. See spec.md §11.2."
}
],
"regressions_and_pre_existing_failures": [],
"pre_existing_failures_remaining": [],
"user_directives": [
"Order confirmed (12-video sequence, 2026-06-21)",
"Report target: minimum 1000 LOC, maximum 10000 LOC markdown per video (2026-06-21)",
"Multi-pass framing: Pass 1 = information extraction (this track), Pass 2 = de-obfuscation, Pass 3 = projection (2026-06-21)",
"Pass 1 artifacts must be lossless - over-summarization is data loss for Pass 2 (2026-06-21)",
"Stanford CS229 = 9vM4p9NN0Ts, Stanford CS336 Lecture 3 = lVynu4bo1rY (user-confirmed mapping, 2026-06-21)",
"Future-pass hooks must be explicit in spec.md so the next agent / future-self can pick up the thread (2026-06-21)",
"No day estimates per conductor/workflow.md Tier 1 Track Initialization Rules (added 2026-06-16). Scope measured in files/sites only."
],
"videos": [
{"order": 1, "slug": "cs229_building_llms", "cluster": "E", "title": "Stanford CS229 - Building Large Language Models (LLMs)", "youtube_id": "9vM4p9NN0Ts", "author": "Stanford CS229"},
{"order": 2, "slug": "probability_logic", "cluster": "A", "title": "Probability Theory is an Extension of Logic", "youtube_id": "0yF9TvMeAzM", "author": null},
{"order": 3, "slug": "entropy_epiplexity", "cluster": "A", "title": "From Entropy to Epiplexity", "youtube_id": "_U8AwUq_aJQ", "author": "Andrew Wilson and Marc Finzi"},
{"order": 4, "slug": "score_dynamics_giorgini", "cluster": "A", "title": "Learning Dynamics from Statistics: a score-based approach", "youtube_id": "P75iVMmbqQk", "author": "Ludovico Giorgini"},
{"order": 5, "slug": "platonic_intelligence_kumar", "cluster": "B", "title": "Towards a Platonic Intelligence with Unified Factored Representations", "youtube_id": "1mXUFweWOug", "author": "Akarsh Kumar"},
{"order": 6, "slug": "free_lunches_levin", "cluster": "B", "title": "Free Lunches: Model Systems for Studying the Agential Gifts from the Platonic Space", "youtube_id": "K8BmMU1Tm-I", "author": "Michael Levin"},
{"order": 7, "slug": "generic_systems_fields", "cluster": "C", "title": "Interesting Behavior by Generic Systems", "youtube_id": "QeMajYvhEbI", "author": "Chris Fields"},
{"order": 8, "slug": "brain_counterintuitive", "cluster": "C", "title": "The Most Counterintuitive Way to Build a Brain", "youtube_id": "cDxtFtoQVNc", "author": null},
{"order": 9, "slug": "neural_dynamics_miller", "cluster": "C", "title": "Cognition Emerges from Neural Dynamics", "youtube_id": "0BS-BzEFTXA", "author": "Earl Miller"},
{"order": 10, "slug": "multiscale_hoffman", "cluster": "C", "title": "A Multiscale Logic of Collective Intelligence", "youtube_id": "YnfaT5APPB0", "author": "Donald Hoffman and Chetan Prakash"},
{"order": 11, "slug": "cs336_architectures", "cluster": "E", "title": "Stanford CS336 Lecture 3: Architectures", "youtube_id": "lVynu4bo1rY", "author": "Stanford CS336 Spring 2026"},
{"order": 12, "slug": "creikey_dl_cv", "cluster": "D", "title": "Creikey - Deep Learning and Computer Vision for Game Developers (BSC 2025)", "youtube_id": "yxkUvXs-hoQ", "author": "Creikey"}
]
}