Communitygithub.com

Malik-rgb43/editing-workflow

>- Turn a video the user sends or links (file, or YouTube/TikTok/Instagram URL) or a folder of clips into measurements (cuts, pacing, per-frame data), keyframe sheets, a Hebrew transcript and sound analysis (SFX, BPM, key, beats, song ID). Triggers: watch, analyse, break down, transcribe this video/reel/ad; תנתח, תעבור על, תמלל, מה קורה בסרטון, קאטים, BPM. NOT for cutting or rendering (type skills), applying a style (reference-style-transfer), or captions for a final render (hebrew-captions-asr).

editing-workflow란 무엇인가요?

editing-workflow is a Claude Code agent skill that >- Turn a video the user sends or links (file, or YouTube/TikTok/Instagram URL) or a folder of clips into measurements (cuts, pacing, per-frame data), keyframe sheets, a Hebrew transcript and sound analysis (SFX, BPM, key, beats, song ID). Triggers: watch, analyse, break down, transcribe this video/reel/ad; תנתח, תעבור על, תמלל, מה קורה בסרטון, קאטים, BPM. NOT for cutting or rendering (type skills), applying a style (reference-style-transfer), or captions for a final render (hebrew-captions-asr).

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Malik-rgb43/editing-workflow/tree/HEAD/.agents/skills/video-analysis

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

video-analysis

Converts video into what a model can read: a numeric measurement of every frame, timestamped contact sheets, a transcript, a sound timeline and spectrogram images, then a breakdown written from them. It is a procedure over the analysis tool, not the tool (the owner's private script is not shipped; the student port follows TOOLS_SPEC). It never edits, renders or applies a style.

Rules that outrank the rest of this file

  1. Inputs are read-only. Hash before and after (input.sha256 = sha256_after); outputs go only under analysis/<video>/. Download only the URL the user gave, naming the source and file; it is a reference copy, never redistributed; a platform watermark, end card and jingle are excluded from statistics and listed.
  2. Coverage is stated first. Every report opens with a coverage block: full vs sampled, frames decoded of expected, what was excluded, what was NOT run. A sample is never presented as full coverage. A sampled run may not quote cut counts or pacing as measured fact.
  3. Run the tool; never hand-sample with ffmpeg. If the tool is missing, state blocked: tool_missing and ask; a manual fallback is allowed only as an explicitly labelled sampled look with no counts.
  4. Read before you write: view EVERY sheet and EVERY audio image; zoom 3-6 times; decide every check edit point from frames; correct wrong counts and say so.
  5. Local, free, private. No paid video-understanding API, no upload of the video or its frames or audio, no remote song-ID on private material, without a dated estimate and prior approval (paid-generation-gate). Hebrew speech is forced to he; never trust one ASR pass for names, brands and numbers.
  6. A song match is not a licence. Report "identified as X, sync permission not established" or "unidentified"; never invent a title. AudioSet-style labels are guesses ("likely a whoosh"); tempo and key are estimates with half/double-time audited.
  7. One heavy job at a time under render_lock; anything over about 2 minutes runs in the background with a log and an ETA; no promise of runtime (owner's batch: 9-23 min per video under load, machine-dependent). Skills are procedure, not permission: user and project restrictions override this file.

Tool interface this skill expects (TOOLS_SPEC video-analysis; verify with --help)

python tools/analyze.py <video|URL|folder> --out analysis/<video> [--detail quick|standard|full]
       [--asr auto|always|never] [--no-song-id] [--no-audio-ai] [--check]
python tools/frames.py <video> --at <t> --pad 0.25 --out analysis/<video>     # every frame of a short window

Output contract (references/output-contract.md): analysis/<video>/{measurements.json, frames.csv, sheets/ (index.json + images), transcript.json, audio.json} + breakdown.md.

Procedure

#DoArtifact
0Ask only what changes the run: whole breakdown or one question (cuts / transcript / song)? Confidential material (private)? Which language for the breakdown? A folder: list it first; never overwrite an earlier analysisscope line
1Preflight (analyze --check / doctor): record OS, ffmpeg, ASR route detected (CPU / Vulkan / CUDA / MLX; none if not detected), the Vulkan env flag; no route = blocked for transcript onlyenvironment block
2Run in the background under the lock. --detail: quick for corpus/long talk, standard default, full for motion graphics, very fast edits or a reference to transfer (references/thresholds.md). Several videos: one batch, then one agent per video (its folder only, breakdown.md as output, deadline, reply <= 10 lines)analysis folders
3python scripts/validate_analysis.py analysis/<video> --stage producedPASS or the failing components
4Read: all sheets, all audio images; zoom only distinct devices; resolve check points; correct the count (pacing.override + review.corrections); audit tempo half/doublereview block
5python scripts/validate_analysis.py analysis/<video> --video <source>; exit 0 required to present numbers as factsvalidation report
6Write breakdown.md in the user's language per references/reading-and-breakdown.md (coverage first, 7 sections, uncertainties last)breakdown.md
7Report: the file path, 5-10 lines, the corrections, what could not be established; offer the next skill (reference-style-transfer, a type skill) instead of doing itmessage

Gates

States are pass | fail | blocked | n/a with a reason. A timeout, empty sample or missing input is blocked, never pass. A successful tool call is execution evidence; viewed sheets are appearance evidence.

GatePredicateEvidenceIf falseOwnerRecheck when
G1 machine profileASR route detected and recorded; Vulkan route records GGML_VK_DISABLE_COOPMAT (owner's AMD driver needs =1; other drivers untested)measurements.environment from doctor/--checkfall back to the CPU route and say so; never assume a GPUthis skill + doctornew machine, driver or model
G2 contract validall five components pass or are n/a with a reasonvalidate_analysis.py exit 0 (--video given)fix or re-run the component; report INSUFFICIENT with the missing piecevalidate_analysis.pyany re-run or hand edit
G3 coverage statementreport opens with mode, decoded/expected frames, exclusions, not-run list, claims_not_allowedfirst block of breakdown.mdadd it; downgrade claims to "sampled"this skilleach report
G4 cut-detector regressionany change to a detector threshold keeps F1 >= the baseline of the labelled set (owner's historical 0.89 = P 0.87 / R 0.91 on 20 hand-verified ads, 339 edit points, private, not reproduced; known blind spot: kinetic type and continuous-camera pieces)cut_regression.py --pair ... --min-f1 0.89 exit 0 with >= 100 truth pointsrevert the threshold changecut_regression.pyevery detector change; never by eye
G5 inputs untouchedsource hash equals before and aftervalidate_analysis.py --videorestore the file from the original, re-runvalidate_analysis.pyevery run
G6 read before writeevery keyframe/overview sheet and audio image viewed; every check point resolved; counts verified on framesreview block complete (stage reviewed)go back and view themthis skilleach analysis
G7 privacy and rightsprivate input: no remote song-ID, no cloud ASR, no frame upload; match = no licencesong_id.status, asr.routedelete the excerpt log, re-run locallythis skilleach run

Numbers and limits to quote with their scope

  • Cut detector: owner's tuning only (G4); the automatic cut count was wrong in about 60 % of ad-promo videos until verified on frames; one kinetic-type example read 108 cuts/min automatically vs 42 from the sheets.
  • ASR (owner's machine, E08, one pass, read speech): Vulkan 5.82 audio-s per wall-s, CPU CT2 int8 0.84, WER 17.7-19.4 %: references/volatile-facts.md (dated; expires 2026-12-31).
  • Sound analysis only runs for real: beats/BPM/key need >= 3 s of music; sung vocals need the no-VAD lyrics pass (confident segments only, tagged "SUNG LYRICS").

References (load when)

  • references/output-contract.md - writing, porting or debugging any output file; reading a validation report.
  • references/thresholds.md - tuning or porting the detector, choosing --detail, explaining a wrong count.
  • references/reading-and-breakdown.md - before reading sheets and before writing the breakdown.
  • references/volatile-facts.md - before quoting any speed, WER, price, licence or tool fact (dated module).
  • agent-content/references/asr-routes.md (canonical ASR routes, owned elsewhere) and hebrew-captions-asr (caption-grade transcripts); reference-style-transfer consumes this skill's folders.
  • Scripts: scripts/validate_analysis.py (contract check, --self-check), scripts/cut_regression.py (F1 gate, --self-check); both fail closed (exit 0 / 1 / 2).

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

Malik-rgb43/editing-workflow

>- Script, edit or review a paid-social ad, sponsored post or brand promo for a business, product, app or store (Meta, Instagram, TikTok, 15-60 s): exact offer and CTA, ranked hooks, hook variants, end card, blocking compliance table, licence checks. Triggers: ad, promo, sponsored, campaign; מודעה, פרסומת, קמפיין, ממומן, פרומו, מבצע, הנחה, הוק. NOT for testimonials (edit-testimonial), organic expert reels (edit-talking-head), AI-only films (edit-ai-generated), ratio exports (multi-video-variants).

Malik-rgb43/editing-workflow

>- Design, build and review a motion-graphics piece in HyperFrames/GSAP: product or app launch, feature announcement, kinetic typography, logo reveal, UI explainer, animated screenshots. Triggers: מושן גרפיקס, אנימציה, השקה, טיפוגרפיה קינטית, לוגו אנימציה, "like a Higgsfield / Linear launch". Not for a speaker-to-camera reel (edit-talking-head), AI-generated shots (edit-ai-generated), caption-only work (hebrew-captions-asr) or ad compliance (edit-ad-promo).

Malik-rgb43/editing-workflow

>- Transcribe Hebrew speech and build burned-in Hebrew captions: ASR route per hardware, word timestamps, proofreading, RTL and mixed English/number lines, caption font, entrance and exit animation, safe zone, caption QA. Triggers: תמלול, תמלל, כתוביות, כתוביות בעברית, מילים בולטות, קריוקי, המילה יצאה לא נכון, Hebrew captions, transcribe Hebrew, word timestamps, ו/ז look-alike. NOT for translation-only, non-Hebrew ASR, analysis reports (video-analysis), or caption-free motion launches.

Malik-rgb43/editing-workflow

>- Deliver one approved video as several outputs (other aspect ratios, hook variants, platform versions, no-music/no-captions versions) or run several videos in parallel, with one shared mix, strict naming and a manifest that blocks stale derivatives. Triggers: export as 9:16 and 1:1, hook variants, variants batch; גרסאות, וריאציות הוק, כמה סרטונים יחד, 9:16 ו-16:9. NOT for a single deliverable (render-qa-deliver) or designing the master (the type skill).

Malik-rgb43/editing-workflow

Turn a new video idea, brief or list of specifics into a checkable Concept Ledger and ask questions until every parameter is precise, before any concept, prompt or build. Use at the start of any new video, with or without footage, or when the user pastes a concept with specifics. Hebrew - סרטון חדש, בריף, יש לי רעיון, קונספט, תכין לי סרטון, בוא נתחיל פרויקט. NOT for notes on an existing draft (revision-round), analysing a reference (video-analysis) or paid generation (paid-generation-gate).

관련 스킬