learn-movie
TEACH Horus by analyzing actual movies.
Extracts lighting, composition, emotional cues, and director style from video files.
Features
- Scene Detection: Automatically detects scene cuts using ffmpeg.
- VLM Analysis: Uses Vision-Language Models (via
scillm) to analyze keyframes.
- Memory Integration: Stores learned patterns into the
horus-movies collection.
Usage
# Analyze a video file
/learn-movie analyze path/to/movie.mp4
# Analyze with specific director context
/learn-movie analyze path/to/movie.mp4 --director "Ridley Scott"
Setup
Requires ffmpeg installed.
Uses scillm skill for VLM inference (e.g., pixtral-12b).
Memory + Taxonomy Integration
Follows the canonical create-context/memory_integration.py pattern with graceful degradation.
Pre-hook: recall_prior_analyses(movie_name, k=5)
- Recalls prior cinematographic analyses for the same movie before analysis begins
- Surfaces previously learned techniques to avoid redundant storage
- Enables cumulative learning across sessions
Post-hook: learn_analysis(movie_name, techniques, scenes, insights)
- Stores analysis snapshot (movie, date, technique counts, bridge tags)
- Stores individual techniques (shot type, lighting, composition)
- Stores scene-level insights for cross-movie pattern matching
- Tags:
["learn_movie", movie_name] + bridges
Bridge Keywords (keyword fallback)
| Bridge |
Keywords |
| Precision |
technique, frame, composition, symmetry, geometric, calculated |
| Resilience |
adaptation, creative, enduring, triumphant, recovery |
| Fragility |
inconsistency, discontinuity, fragile, delicate, breaking |
| Corruption |
distortion, decay, grotesque, horror, darkness |
| Loyalty |
devotion, sacrifice, bond, duty, honor |
| Stealth |
shadow, silhouette, hidden, subtle, muted |
Graceful Degradation
- Uses
try/except ImportError at every hook callsite
- Falls back to keyword-based bridge extraction when taxonomy module unavailable
- All hooks are no-ops when
common.memory_client is not importable
File Structure
| File |
Purpose |
SKILL.md |
This file |
run.sh |
Execution entry point |
sanity.sh |
Health check |
orchestrator.py |
Main orchestrator (scene detect, VLM analyze, memorize) |
memory_integration.py |
Memory + Taxonomy hooks (pre/post) |
1---2name: learn-movie3description: Analyze movies to extract cinematographic techniques and store them in memory.4---5
6# learn-movie
7
8TEACH Horus by analyzing actual movies.
9Extracts lighting, composition, emotional cues, and director style from video files.
10
11## Features
12
13- **Scene Detection**: Automatically detects scene cuts using ffmpeg.
14- **VLM Analysis**: Uses Vision-Language Models (via `scillm`) to analyze keyframes.
15- **Memory Integration**: Stores learned patterns into the `horus-movies` collection.
16
17## Usage
18
19```bash
20# Analyze a video file
21/learn-movie analyze path/to/movie.mp4
22
23# Analyze with specific director context
24/learn-movie analyze path/to/movie.mp4 --director "Ridley Scott"
25```
26
27## Setup
28
29Requires `ffmpeg` installed.
30Uses `scillm` skill for VLM inference (e.g., `pixtral-12b`).
31
32## Memory + Taxonomy Integration
33
34Follows the canonical `create-context/memory_integration.py` pattern with graceful degradation.
35
36### Pre-hook: `recall_prior_analyses(movie_name, k=5)`
37- Recalls prior cinematographic analyses for the same movie before analysis begins
38- Surfaces previously learned techniques to avoid redundant storage
39- Enables cumulative learning across sessions
40
41### Post-hook: `learn_analysis(movie_name, techniques, scenes, insights)`
42- Stores analysis snapshot (movie, date, technique counts, bridge tags)
43- Stores individual techniques (shot type, lighting, composition)
44- Stores scene-level insights for cross-movie pattern matching
45- Tags: `["learn_movie", movie_name] + bridges`
46
47### Bridge Keywords (keyword fallback)
48| Bridge | Keywords |
49|--------|----------|
50| Precision | technique, frame, composition, symmetry, geometric, calculated |
51| Resilience | adaptation, creative, enduring, triumphant, recovery |
52| Fragility | inconsistency, discontinuity, fragile, delicate, breaking |
53| Corruption | distortion, decay, grotesque, horror, darkness |
54| Loyalty | devotion, sacrifice, bond, duty, honor |
55| Stealth | shadow, silhouette, hidden, subtle, muted |
56
57### Graceful Degradation
58- Uses `try/except ImportError` at every hook callsite
59- Falls back to keyword-based bridge extraction when taxonomy module unavailable
60- All hooks are no-ops when `common.memory_client` is not importable
61
62## File Structure
63
64| File | Purpose |
65|------|---------|
66| `SKILL.md` | This file |
67| `run.sh` | Execution entry point |
68| `sanity.sh` | Health check |
69| `orchestrator.py` | Main orchestrator (scene detect, VLM analyze, memorize) |
70| `memory_integration.py` | Memory + Taxonomy hooks (pre/post) |