ingest
Skill1 starsChanged 3 months agoApache-2.0View on GitHub
Turns a screen recording into a timestamped timeline that replaces web research. Use when the user asks to "녹화 분석해줘", "화면 녹화로 스토리보드", "녹화한 영상 가져와", "말하면서 녹화한 거 정리", "ingest this recording", "녹화 시작해", "화면 녹화 해줘", or hands over a screen recording with voice narration. Can start and stop the screen-plus-mic recording itself, then pulls timestamped speech (Qwen3-ASR, whisper.cpp fallback) and silence and scene-change signals out of it, and merges them into a per-scene timeline under data/[channel]/episodes/[topic]/recording/ with keyframes and screen descriptions. That timeline becomes storyboard's primary source in place of web research. In the shooting flow (storyboard/script.md already exists) it also aligns the recording to the storyboard scenes so produce can cut the footage.
- Installs packages
88 other projects use a version of this.
Adopted by
Most recently taken up by
- zaynram/scholartheir own version, first seen Nov 8, 2026
- silouone/skillstheir own version, first seen Nov 8, 2026
- hydra-db/hydradb-claude-codetheir own version, first seen Nov 8, 2026
- fjwood69/moritheir own version, first seen Nov 8, 2026
- zedarvates/frugal-skillstheir own version, first seen Nov 8, 2026
- Mharbulous/probanda-devtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use daily-arxiv, exp-eval and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
LambenthanSkilldaily-arxiv
每日从 arXiv 拉取新论文,过滤相关性,auto-ingest 高优先级论文,检测 SOTA 更新
Also in 5 projects that use this
LambenthanSkillexp-eval
实验判决门:Review LLM 独立评判实验结果 → 4 种判决路径 → 自动更新 claims confidence、ideas status、graph edges
Also in 5 projects that use this
phanghonghaoSkillposter
HTML/CSS A4 海报生成。从沙龙/活动 Markdown 文件生成科技风 A4 海报 PDF/PNG。Use when user mentions: poster, 海报, 海报生成, make poster, generate poster, 活动海报, 沙龙海报.
Also in 5 projects that use this
skyllwtSkillexp-pilot-eval
Pilot result evaluation — read pilot results, apply success criteria, update idea page (pilot_result, failure_reason if failed), generate PILOT_VERDICT_REPORT. Called by /ideate Phase 5 after /exp-pilot-run.
Also in 4 projects that use this
skyllwtSkillexp-pilot-run
Pilot experiment execution — read Pilot Spec YAML, write pilot code, run experiment(Confirm with the user before operation and require the applicant to conduct manual inspection), return results. Called by /ideate Phase 5. Does NOT modify wiki pages or judge pass/fail.
Also in 4 projects that use this
- +6 more from Lambenthan
- +1 more from skyllwt
Other versions88 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 88
- garrytan/gbrain★ 32ksame name
- skyllwt/OmegaWiki★ 1.7ksame name
- DAIR-AutoResearch/AutoSci★ 1.7ksame name
- PKU-DAIR/AutoSci★ 1.7ksame name
- skyllwt/AutoSci★ 1.7ksame name
- suboss87/FDEOps★ 940same name
- coreyhaines31/makerskills★ 893same name
- jason-effi-lab/karpathy-llm-wiki-vault★ 718same name
- ZimoLiao/scholaraio★ 585same name
- egregore-labs/egregore★ 293same name
78 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- autoproduceSkill
- brandingSkill
- channelSkill
- compose-blenderSkill
- datagoSkill
- edit-speechSkill
- generate-cut-imagesSkill
- generate-cut-videosSkill
- grow-instagramSkill
- grow-threadsSkill
- grow-youtubeSkill
- inspect-contentSkill
- introSkill
- platform-guideSkill
- produceSkill
- project-initSkill
- publishSkill
- review-cameraSkill
- review-contextSkill
- review-cut-imagesSkill
- review-cut-videosSkill
- review-recentSkill
- setup-instagramSkill
- setup-threadsSkill
- setup-youtubeSkill
- storyboardSkill
- topic-scoutSkill
- upscale-videoSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 7 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 72 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
If there's no recording yet, this skill does the recording itself:
- Very specific: line 55
When the user signals the end, record.sh stop <same path> → take the resulting mov into step 1.
- Distinctive: line 63
If start fails (permissions): tell them to allow the terminal app under System Settings → Privacy & Security → Screen Recording and …
- Very specific: line 65
Only the main display is recorded (record.sh pins -D 1) — on a multi-monitor setup, demo on the main one.
- Distinctive: line 68
Don't do other work on the main screen while recording — everything on it gets captured (notification banners included — Do Not Disturb …
- Distinctive: line 81
Check that the recording file exists and plays (ffprobe).
- Very specific: line 86
Read data/<channel>/profile.md — if it's missing, stop and point to /social-flow:channel add.
- Very specific: line 110
If the silence and screen-change sensitivity is off, re-run with the environment variables in references/timeline-schema.md §Tuning knobs …
- Very specific: line 113
If there are far too many or too few scenes, adjust --min-scene/--max-scene.
- Distinctive: line 123
Read the frames in small batches and write each answer down before the next batch — a dozen images in one turn and the descriptions start …
- Distinctive: line 125
When the exact string matters (a transcript correction's evidence), quote what the frame shows character for character and say which …
- Very specific: line 128
Write the screen descriptions into timeline.md's "Screen" column in the scene table and into the detailed "Screen description", and update …
- Very specific: line 137
Write it in the body as original(→corrected) — never delete the original.
- Very specific: line 138
Add a ## Transcript correction log table at the end of timeline.md: | Scene | Time | Original | Corrected | Evidence | — a row without …
- Very specific: line 142
Leave raw/transcript.json and timeline.json as raw signal — corrections go into timeline.md only.
- Very specific: line 144
When misrecognition is widespread, don't paper over it with corrections.
- Distinctive: line 160
If the same scene was spoken several times (a re-shoot), adopt the last take and record it in note.
- Very specific: line 162
Look at each scene's keyframe, and when the demo focus is only part of the screen, set crop [x,y,w,h] — leave the full screen and the text …
“Common” is measured: kept by at least 6 in 10 of the 72 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Automatic execution policy: Read automation guidance first. Creative rules and review findings guide improvements; scores, review/hash/freeze records, CTA choices and intermediate approval steps do not block authorized work. Preserve actual external-action authorization and stop at the artifact the user requested. This policy supersedes older quality-gate wording below.
Recording ingest — data/[channel]/episodes/[topic]/recording/
Turn a screen recording (with voice narration) into text laid out on a
timeline. The resulting timeline.md becomes the primary source that takes the
place of the storyboard skill's research (research.md) — what got said and shown
in the recording is the material for the scene design.
data/<channel>/episodes/<topic slug>/recording/
├── raw/ # STT, silence, screen-change raw signals (transcribe.sh)
├── timeline.json # machine-readable scene timeline
├── timeline.md # human-readable — scene table + sentence timestamps + screen descriptions
├── keyframes/seg-N.jpg # scene keyframes
└── alignment.json # shooting mode only — storyboard scene ↔ recorded cut alignment (§5)Procedure
0. Recording mode (record instead of a file in the argument)
If there's no recording yet, this skill does the recording itself:
REF=${CLAUDE_PLUGIN_ROOT}/skills/ingest/references
bash $REF/record.sh start ~/Movies/social-flow-rec-$(date +%Y%m%d-%H%M%S).mov- Tell the user before starting: demo the screen while talking into the mic, and say "recording done" when finished. Add the demo tips too — pausing for a second or more and then switching the screen when changing subject makes the scene boundaries land accurately.
- If
storyboard/script.mdexists (shooting mode), give them that path before starting and tell them to put the script on a second monitor — summarize the script's shooting rules (a one-second pause plus a switch between scenes, enlarge app fonts, restart the scene from the top if you fluff it). - When the user signals the end,
record.sh stop <same path>→ take the resulting mov into step 1. - Check the
Input device / input volumeline that start prints before moving on —-gcaptures whatever the default input device is at that moment. Plugging in an external mic doesn't automatically change the macOS default input, so if it's the wrong mic or the volume is too low you find out only after the take is over. To pin it, start with theSF_MIC_DEVICE(device name) andSF_MIC_VOLUME(0~100) environment variables. - If start fails (permissions): tell them to allow the terminal app under System Settings → Privacy & Security → Screen Recording and Microphone.
- Only the main display is recorded (record.sh pins
-D 1) — on a multi-monitor setup, demo on the main one; the secondary is free for checking status, taking notes, whatever, and none of it lands in the recording. - Don't do other work on the main screen while recording — everything on it gets captured (notification banners included — Do Not Disturb recommended).
1. Check prerequisites
command -v mlx-qwen3-asr || command -v whisper-cliThe default Korean STT is mlx-qwen3-asr (Qwen3-ASR-1.7B). If missing:
uv tool install --python 3.12 "mlx-qwen3-asr[aligner]" — the first call downloads
~3.4GB of weights into ~/.cache/huggingface. Until then the fallback is
brew install whisper-cpp plus ~/.cache/whisper-cpp/ggml-large-v3-turbo.bin.
Check that the recording file exists and plays (ffprobe). Stop if neither engine
is available.
2. Load the profile + settle the topic
Read data/<channel>/profile.md — if it's missing, stop and point to
/social-flow:channel add. Take the topic slug from the argument, or after
transcription look at the content and propose one by the §7 slug rules for the
user to confirm (rather than a provisional recording-inbox/ directory before
transcription, it's fine to run the transcription in scratch first, then settle
the slug and move it to the real path).
3. Extract raw signals + merge the timeline
First build a glossary to prevent misrecognition — list the domain terms from
profile.md and the proper nouns you expect for the topic (app, product, and service
names, technical terms) comma-separated, and inject them as WHISPER_PROMPT.
Qwen3-ASR takes it as --context, the whisper fallback as --prompt — either way
the decoder biases toward that vocabulary, which cuts transliteration errors
("클라우드 코드" ← Claude Code) at the source.
REF=${CLAUDE_PLUGIN_ROOT}/skills/ingest/references
WHISPER_PROMPT="<profile.md terms and expected proper nouns, comma-separated>" \
bash $REF/transcribe.sh <absolute path to recording> data/<channel>/episodes/<topic>/recording
python3 $REF/build-timeline.py data/<channel>/episodes/<topic>/recording --src <absolute path to recording>- Never copy the source — timeline.json references it by absolute path.
- If the silence and screen-change sensitivity is off, re-run with the environment
variables in
references/timeline-schema.md§Tuning knobs (re-running is safe, it overwrites raw/). - If there are far too many or too few scenes, adjust
--min-scene/--max-scene.
4. Fill in screen descriptions + correct the transcript + review for private data
Open each keyframe with Read — keyframes/seg-N.jpg comes in as a picture, so
no vision API sits between you and the frame. Answer two things per frame:
① what's on screen (the app, the view, the actions), and ② whether any
personal or sensitive information shows (notification banners, email
addresses, account names, tokens and keys, amounts of money).
Read the frames in small batches and write each answer down before the next batch — a dozen images in one turn and the descriptions start blurring into each other. When the exact string matters (a transcript correction's evidence), quote what the frame shows character for character and say which keyframe it came from.
- Write the screen descriptions into timeline.md's "Screen" column in the scene
table and into the detailed "Screen description", and update the frontmatter to
status: annotated. - Transcript correction (evidence required) — check each scene's transcript
against the on-screen text you read off the keyframes and the
profile.md terms, and correct the misrecognitions:
- Fix something only when there's evidence from screen OCR or the profile glossary. Smoothing it "to read more naturally" isn't correction, it's contaminating the primary source (no correction hallucination).
- Write it in the body as
original(→corrected)— never delete the original. - Add a
## Transcript correction logtable at the end of timeline.md:| Scene | Time | Original | Corrected | Evidence |— a row without evidence can't exist (evidence examples:seg-2 OCR "Claude Code",profile.md term "ISA"). - Leave
raw/transcript.jsonandtimeline.jsonas raw signal — corrections go into timeline.md only. - When misrecognition is widespread, don't paper over it with corrections;
strengthen the terms in
WHISPER_PROMPTand re-run §3 instead (re-running is safe, it overwrites raw/).
- When sensitive data is found, report the list of affected scenes to the user — whether those frames must stay out of the video is the user's call.
5. Script alignment — only when storyboard/script.md exists
In shooting mode (storyboard first), align the finished timeline to the storyboard
scenes — write recording/alignment.json per the
references/timeline-schema.md §alignment.json contract:
- Compare the timeline.md scenes and sentences against the script.md scenes and set
a recorded-cut range [start, end] for every storyboard scene number (idx) — put the
cut in the silence between sentence timestamps (0.2
0.4s before the scene start, 0.30.6s after the end). - If the same scene was spoken several times (a re-shoot), adopt the last take and record it in note.
- Look at each scene's keyframe, and when the demo focus is only part of the screen,
set
crop[x,y,w,h] — leave the full screen and the text can't be read (the editing builder warns past 3x reduction). subscarries the corrected notation sentences from timeline.md on the original clock.- Report deviations: improvised speech that isn't in the script, missing scenes, reordering, and numbers or proper nouns spoken differently from the script all go to the user as a table; settle alignment.json after they choose [re-shoot that part / drop the scene / keep it as is].
6. Present the timeline + hand off to storyboard
Present the result with AskUserQuestion — the timeline.md path, scene count and
total length, and a one-line summary per scene. Options: [go to storyboard / fix the
timeline (re-run with adjusted boundaries) / stop here]. For storyboard, point to
/social-flow:storyboard <channel> <topic> — when recording/timeline.md exists,
the storyboard skill uses it as the primary source instead of web research.
In shooting mode (having gone through §5) the storyboard is already approved, so
the options differ: [go to editing production / fix the alignment / stop here] —
for the first, point to /social-flow:produce <channel> <topic> (produce finds
alignment.json and takes the editing pipeline).
Traps
- A spoken transcript is not narration — fillers ("어", "이제 여기서" — "uh", "now here"), repetitions, and slips are all in there. It's raw material for the storyboard to rebuild, not sentences to copy into scenes.js (the character limits and the plain- language principle get applied at the storyboard stage).
- A spoken number is not a source — time-sensitive values (prices, tax rates, deadlines) still have to pass the storyboard's cross-checking policy as written. A statement in the recording is a claim, not evidence.
- STT hallucination, scroll false positives, sensitivity tuning —
references/timeline-schema.md§Traps. - Long recordings — Qwen3-ASR-1.7B transcribes faster than real time on this
class of Mac; whisper large-v3-turbo runs at roughly 3
5x real time. A 10-minute recording is usually 13 minutes — run it in the background (run_in_background) and prepare other things meanwhile.
Additional Resources
Reference Files
references/record.sh— start/stop the screen+mic recording (macOS screencapture, PID file management)references/transcribe.sh— extract audio → Qwen3-ASR STT (whisper fallback) → silence detection → screen-change detection (4 raw signals)references/build-timeline.py— merge the signals → derive scene boundaries → timeline.json/md + keyframe extractionreferences/timeline-schema.md— the recording/ data contract · how boundaries are derived · tuning knobs · traps
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

