本文へ移動
cccskills
無料GitHub で公開日本語紹介

VideoEssay

記事や動画への主張を組み立てた動画エッセイや短い解説動画、ブログ本文を音声で読み上げる動画を制作し、確認後に受け取れます。

原文原文の説明を見る

Turns content plus a stance into a video essay narrated by the DA, any post, idea or feature plus a length into a short DA-narrated explainer video, or the author's own audio reading of their blog post (a recording or their voice clone) into a finished video of that post, with scripted visuals rendered on HyperFrames, presence layer, rendered and read back. USE WHEN video essay, explainer video, short video about this post, N-minute video of my blog post, make a video about this, respond to this video, argue against this in a video, debate this, video response, DA video, narrated video, turn this essay into a video, react to this interview, make a video from my audio, I recorded myself reading the post, turn this post into a video, video from my voice clone, audio to video. NOT FOR the user's camera footage or clips (Video), audio-only podcast cuts (Video), one-off animation (HyperFrames).

danielmiessler/LifeOSスター 19,635(GitHub 19,635 + cccskills 0)
連携ツールYouTube

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • インタビューへの反論を動画にしたいとき
  • 記事や機能を短い動画で紹介したいとき
  • ブログ記事を録音音声付きで動画化したいとき
  • 声のクローンで記事を読み上げたいとき

日本語での紹介

できること

記事や動画などの内容に対する立場をもとに、ナレーション付きの動画エッセイを制作します。まず主張を文章にまとめ、確認を経て、映像の構成と台本を作り、動画としてレンダリングします。特定の立場を示さず、投稿やアイデア、機能を指定した長さで紹介する短い解説動画にも対応します。別の制作方法として、ブログ記事を本人の録音や本人の声のクローン、またはDAの読み上げで動画化できます。記事ページの表示や読み上げ中の箇所に合わせた映像を組み合わせ、完成後は内容と映像を確認してから受け取れる状態にします。

こんなときに便利

インタビューや動画に対する意見を映像で伝えたいとき、記事や機能を短く紹介したいときに向いています。自分で読んだブログ記事の音声を、記事の内容に沿った動画に仕上げたい場合にも使えます。

使い方の例

  • 「このインタビューに反論する動画エッセイを作って」
  • 「最新の記事を2分の解説動画にして」
  • 「録音した音声を使ってブログ記事を動画にして」

注意点

初回利用には設定が必要です。音声合成にはFish Audioを使い、本人の声のクローンを使う場合は関連する音声IDとAPIキーも必要です。このスキルから動画は公開されず、公開は別の手順で行います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

資料チェック

SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。

安全面送信・削除・コマンド実行などの扱いが明示されているか
A良好公開せずレビュー状態で停止し、公開は別手順と明記されています。
導入のしやすさ必要なツールや API キーが少ないか、書かれているか
B一部不足初回設定、Fish Audioと複数のID・キーが必要で、Setup.mdに詳細があります。

点数には入れていません。 2026年10月28日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。

評価が違うと思ったら、見直しを依頼する

どの項目が、なぜ違うと思うかを書いてください。ログインは不要です。内容を SKILL.md と照らし合わせて評価を作り直し、この欄に反映します。

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

含まれるファイル(43)

  • SKILL.md14.3 KB
  • Intents/Argue.md5.2 KB
  • Intents/Explainer.md7.3 KB
  • Intents/Full.md1.4 KB
  • Intents/Produce.md6.9 KB
  • Intents/Script.md3.8 KB
  • Intents/Voice.md10.1 KB
  • References/ScriptSchema.md4.3 KB
  • References/Style.md18.7 KB
  • References/Tools.md5.5 KB
  • Setup.md14.5 KB
  • Tools/.gitignore30 B
  • Tools/Align.ts6.6 KB
  • Tools/Build.ts20.8 KB
  • Tools/Capture.ts65.3 KB
  • Tools/Clean.ts21.7 KB
  • Tools/Compose.ts14.9 KB
  • Tools/CompositionTypes.ts5.5 KB
  • Tools/Describe.ts8.4 KB
  • Tools/DesignAudit.ts132.0 KB
  • Tools/DiagramLayout.ts29.0 KB
  • Tools/EssayLint.ts6.3 KB
  • Tools/Ingest.ts51.3 KB
  • Tools/Intake.ts3.4 KB
  • Tools/Lib.ts28.3 KB
  • Tools/Meaning.ts20.7 KB
  • Tools/Motion.ts12.1 KB
  • Tools/Narrate.ts24.4 KB
  • Tools/package.json418 B
  • Tools/Page.ts26.1 KB
  • Tools/PagePresence.ts31.8 KB
  • Tools/PageVisuals.ts88.9 KB
  • Tools/PlanBeats.ts4.0 KB
  • Tools/ReadCamera.ts11.2 KB
  • Tools/ReadSync.ts13.3 KB
  • Tools/Run.ts21.0 KB
  • Tools/Score.ts14.6 KB
  • Tools/ScriptLint.ts9.4 KB
  • Tools/Setup.ts11.1 KB
  • Tools/Theme.ts21.9 KB
  • Tools/Thumbnail.ts6.8 KB
  • Tools/tsconfig.json420 B
  • Tools/Verify.ts31.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

VideoEssay

Contents: Ideal State · Intent Routing · Tools · Data & Config · Quality loop · Gotchas · Examples

The DA's own video format, in two modes, each a fully automated production that proves itself before the user sees it. Essay mode argues first, then renders. Voice mode (run.json mode: "voice") turns the author's post, read by their recording, their voice clone or the DA reading their exact words (run.json narrator recorded | clone | da), into a video of the real post page scrolling with the spoken sentence highlighted, inserts directed from what the post argues (LIFEOS/TOOLS/VideoMeaning: MeaningMap, Direction, a two-vendor plan review), and the reader's portrait in the corner badge (the author's, or the DA's on a DA-read run).

Ideal State

  • An essay run argues before it renders: a linted, steelmanned Essay.md with verbatim, correctly attributed quotes reaches the user at the checkpoint (unless the ask skips it), and only then becomes Script.json and a render.
  • A voice run narrates only the author's own words, its page reads like the live post, and every page highlight and insert is timed to the paragraph being spoken.
  • Every render reads itself back before anyone sees it: Out/verify.json all green, and the frames and the Out/review/ studio pass read.
  • The mp4 and thumbnail reach ~/Downloads/<slug>/ only through Deliver.ts, after a passing ArtDirection critique and Proof receipt on those exact bytes.
  • Every run stops in review state; nothing uploads from this skill. Publishing is the user's separate call through Video.

Intent Routing

IntentTriggerFile
Argue"write the argument", "essay first", "what's our take on this", the first step of every new runIntents/Argue.md
Script"script it", "turn the essay into beats", "plan the visuals"Intents/Script.md
Produce"produce it", "render the essay", "make the video from the script", re-renders after an editIntents/Produce.md
Full"respond to this video", "video essay on this", "argue X in a video", raw content plus a stance to argueIntents/Full.md
Voice"make a video from my audio", "I recorded the post", "use my clone to read the post", a post plus a recordingIntents/Voice.md
Explainer"make an explainer video", "a short video about this post / idea / feature", "a 2-minute video of my latest post", any source plus a length with no stance to argueIntents/Explainer.md

Full is Argue → review checkpoint → Script → Produce. The checkpoint after the essay is the default: text is cheap to change and a render is not. The user skips it by saying so in the ask ("straight through", "no review, just make it"). Voice has no essay and no DA-written narration; its narration rule, stages and inserts are in Intents/Voice.md. Explainer writes an Essay.md with kind: explainer (narration only, no opposing quotes) at the length asked for, then runs Script and Produce straight through; its optional YouTube leg (thumbnail on the post's header image, full description, private upload) runs through Video, never this skill.

FileRead when
References/ScriptSchema.mdwriting or linting Script.json
References/Style.mdcomposing frames, the thumbnail, or running DesignAudit (the house design system)
References/Tools.mdrunning or debugging one stage tool directly, choosing a flag, or finding a run's files
Setup.mdfirst run on a machine, any tool stops naming Setup.md, or a Config.json field's meaning or default

Tools

Tools/Run.ts drives every run; the other stage tools, the run layout and the composition files are in References/Tools.md.

ToolContract
Tools/Run.ts --run <slug> [--from stage] [--to stage] [--force] [--music ambient|pulse] [--accept-review-shortfall] [--polish]essay: lint, then narrate → score beside capture, then build, then verify beside thumbnail, then describe once verify passes (other stages wait only for what they read); after any failure no stage starts; voice: clean → align → plan → meaning → lint → capture → build → verify → describe

Data & Config

Everything personal lives in the user zone. First-time setup is Setup.md, and bun skills/VideoEssay/Tools/Setup.ts --check reports what is still missing. With no config file every tool stops and names Setup.md.

  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/VideoEssay/Config.json: fonts (a missing face is an error, never a fallback), fontFamilies, avatar, runsRoot, blogBaseUrl, possessive, presenter, narrators.da, colors, badge, skipParagraphs and styleFile; each field's meaning and default is in the Setup.md field table, the face roles and colour keys in Setup.md § Faces and colours. Relative paths resolve against the config dir. Never change narrators.da.label for one run; pass --label at ingest instead.
  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/VideoEssay/public/: created by Setup.ts and linked from Tools/public. It holds the avatar cut-out and staged runs, never the skill tree.
  • Voices: narration is synthesized on Fish Audio (LIFEOS/TOOLS/FishTTS.ts). The DA reads with its one voice, LIFEOS_CONFIG.toml [da.voices.main]: its fish_reference_id names the Fish voice and its fish_speed is the pace (no separate presenter voice since 2026-10-24). The author's clone uses [principal.voice] plus two env ids: FISH_PRINCIPAL_VOICE_ID, the Fish clone itself, and ELEVENLABS_PRINCIPAL_VOICE_ID, the id narration recognizes as a clone read. Key: FISH_API_KEY. Fish applies the pace itself, so no chunk is stretched afterward. Setup.md § LIFEOS_CONFIG.toml and § Accounts and secrets have the details.
  • Names: the badge label defaults to the first word of principal.name and the reader to the DA display name, both from LIFEOS_CONFIG.toml. A DA-read badge shows READ BY <READER> · <POSSESSIVE> AI (THEIR AI unless Config.json possessive says otherwise); a post the DA wrote itself (--label <DA NAME> at ingest) reads WRITTEN AND READ BY <READER>. Neither ever carries a voice-vendor logo or a clone credit.
  • Pronunciations (optional): LIFEOS/USER/PRINCIPAL/PRONUNCIATIONS.json when present, plus a per-run pronunciations.json, applied to spoken text only.
  • Capture (required for voice runs and capture inserts) drives the Interceptor test profile whose context id is INTERCEPTOR_TEST_CONTEXT_ID in LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Interceptor/preferences.env; Capture.ts stops naming that file when it is missing.
  • Run.ts refuses a run dir under the config root or the user-data repo.

Quality loop

Before the critique, every render passes the Assay video eval set (video-eval, skills/Assay/Tools/VideoEval.ts) in Run.ts's eval stage, as each intent's ## Evals section declares it; a blocking result fails the run.

Nothing this skill produces reaches the user as a first draft. The artifact goes through Skill("ArtDirection"): a direction council before new or large work, then the cross-vendor critique panel (skills/ArtDirection/Tools/Critique.ts) scores it against the rubric and names defects (for a run with a Meaning/Direction.rendered.json, pass --direction <run>/Meaning/Direction.rendered.json so each beat is also judged against its own rationale), then this skill iterates on those defects until the bar or reports the shortfall. Record the user's verdict with skills/ArtDirection/Tools/Calibrate.ts.

Hand-over is skills/ArtDirection/Tools/Deliver.ts. It refuses without a passing critique of those exact bytes and a passing Proof receipt (skills/Assay/Tools/Proof.ts run --artifact <file>), and it writes the delivery receipt the gate reads. Critique Out/essay.mp4 with --out <run> so Critique.json sits one level above it, then run Deliver.ts --artifact <run>/Out/essay.mp4 --critique <run>/Critique.json --to ~/Downloads/<slug>/. The thumbnail ships as the ≤ 2 MB q85 JPEG (Intents/Produce.md), critiqued and delivered the same way.

Gotchas

These change what a run does. Failures the tools already handle are documented at their fix sites in Tools/ (the Capture.ts header, Ingest.ts, Clean.ts, Narrate.ts, Build.ts, Page.ts, Verify.ts); read those when debugging that tool.

  • Tools/public must be the symlink into the USER store, never a real directory. A stray empty public/ dir (left behind by moving the store, for one) makes every Build and Setup fail on the publicDir invariant; delete it and let Setup.ts recreate the link.
  • Writing the skill's own files from a Bash heredoc trips the taint guard when the session has read outside content. Use the file tool for intent files in a session that has ingested a transcript.
  • HyperFrames check fails on text layered under a chapter card (content_overlap) unless both card text blocks carry data-layout-allow-overlap; the attribute is not inherited.
  • Narration's word timings come from Fish Audio's timestamped speech (FishTTS.ts) on the model TTS_MODEL names (CROSS_VENDOR.fishVoice). Do not switch TTS_MODEL without re-probing that the new model still returns word timings; captions and beat timing depend on them.
  • Interceptor's default screenshot is a DOM render that draws every web font in Times. Capture.ts embeds the page's loaded faces and replaces post.png only once a marker pass proves the web fonts drew. DOM renders still miss ::before/::after content and mask-image icons (a nav's arrow glyphs, say). --pixel shows all of it, but through Capture.sh it is JPEG quality 50, which breaks the exact-colour marker pass (Capture.test.ts covers the fallback-face judgment).
  • HyperFrames' own pre-render check measures text contrast (WCAG AA 4.5:1) and text overlap at sampled times, and refuses the render (white text on a mid-tone coloured header can fall under 4.5:1; a result wider than the space past its stop can overlap a lane label mid-build). Text colours come through readableOn() against the run's own ground, and DesignAudit measures at settle only, so run the seam check on the staged project when a render is refused; its raw JSON (hyperframes check <dir> --json) names the element, colours and time.
  • The rendered mp4 comes out quieter than the staged narration.wav, inside the HyperFrames render seam. Build.ts replaces the mp4's audio with exactly what the composition plays; voice renders fail Verify's −14 ± 1 LUFS if that replacement is skipped (Build.test.ts "delivered loudness").
  • Embedded frames (tweets, videos, widgets) never draw in the DOM-render capture, and never lay out in a hidden tab (they read "LOADING TWEET…" for the whole video). Capture.ts shoots each embed in a headless copy of the pinned browser and pastes the pixels in; loading markers must clear within 30 s or the capture fails, and it never writes a loading state. A link card taller than the reading band is never whole at reading zoom; show it with a screenshot insert of the post itself, selected by the card's own link.

Examples

Example 1: respond to an interview

User: "Make a video essay answering this interview — I disagree with most of it: <youtube url>"
→ Full: Intake pulls the transcript; Argue writes Essay.md (quotes lint-verified, steelman, disagreement, argument), adversarial read, plus the optional writing audits when installed
→ checkpoint: the essay is shown; on "go", Script.json is written and linted
→ Produce: verify.json green, frames read; mp4 and thumbnail delivered through Deliver.ts and the description copied, all in ~/Downloads/<slug>/

Example 2: the DA reads a new post

User: "DA-read video of my new post on composting"
→ Voice: Ingest --narrator da; the post's own words narrated, its page scrolling with the spoken sentence highlighted, embeds and link cards as on the live page
→ meaning-directed inserts on the paragraphs they illustrate; verify.json green; critiqued and delivered to ~/Downloads/<slug>/

Example 3: edit one paragraph after review

User: "Change the ending — softer on the delete-everything advice"
→ Edit Essay.md and the affected beats in Script.json
→ Run.ts --from narrate: only the changed beats re-synthesize; captures stay cached; re-render, re-verify

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

AnnualReports

無料概要あり

複数ベンダーの年次サイバーセキュリティ報告書を探して取得し、脅威やランサムウェア、侵害統計の傾向を出典付きで比較・分析します。

  • 脅威レポートをカテゴリ別に探したいとき
  • 特定ベンダーの報告書を取得したいとき
  • ランサムウェア動向を複数社で比較したいとき
danielmiessler/LifeOS2万2026年10月28日 更新

ApertureOscillation

無料概要あり

個別の機能や部品の設計と、システム全体の目的を同じ問いで比較し、両者の食い違い、適切な実装範囲、全体との整合性を3段階で整理するスキルです。

  • サービスやライブラリの分割判断
  • 機能要求と製品方針を比較したいとき
  • 新しい部品と既存システムの整合性確認
danielmiessler/LifeOS2万2026年10月28日 更新

Aphorisms

無料概要あり

文章のテーマに合う格言や引用を探し、著者・出典と選定理由を添えて提案します。引用の追加、思想家の調査、利用履歴の管理を通じて、同じ引用の繰り返しも防ぎます。

  • ニュースレター向けの引用探し
  • 出典付きの引用を重複なく保存
  • 思想家の言葉をテーマ別に調査
danielmiessler/LifeOS2万2026年10月28日 更新

Art

無料概要あり

ブログの挿絵や技術図解、比較図、マンガ、アイコンなどを用途別の手順で制作します。形式に合う構図や配色を組み立て、確認用の画像を出力します。

  • ブログの見出し画像を作りたいとき
  • システムの仕組みを図解したいとき
  • 比較や時系列を可視化したいとき
danielmiessler/LifeOS2万2026年10月28日 更新

ArtDirection

無料概要あり

画像や映像、スライド、サイト画面の品質を複数の判定役で評価し、修正点の整理から基準を満たした成果物の引き渡しまで進めます。

  • 画像の修正点を優先順に整理したいとき
  • 映像やスライドを基準に沿って評価したいとき
  • 公開前に見た目が基準を満たすか確認したいとき
danielmiessler/LifeOS2万2026年10月28日 更新

ArXiv

無料概要あり

arXivの論文をテーマ・分野・論文IDで探し、著者や要旨、リンクをまとめます。新着論文の確認や、用意されている場合はAlphaXivのAI生成概要の取得にも対応します。

  • AI・機械学習の新着論文の確認
  • 特定テーマの論文を探したいとき
  • 論文IDやarXivのURLで照会
danielmiessler/LifeOS2万2026年10月28日 更新

danielmiessler のスキルをすべて見る

このスキルの問題を報告する