Skip to content
cccskills
FreePublished on GitHub

skill-captions

Render, preview, validate, and burn consistent production subtitles from QC-passed real-timestamp caption artifacts. Use for AI-video production, washed-video production, IndexTTS2 explainers, practical long-form videos, talking-head edits, Kimi-style dark rounded captions, warm-white translucent captions, subtitle styling, subtitle overlays, or fixing caption size, position, shadow, drift, and 4K scaling. Always pair with ra-audio-to-subtitles when final word timestamps do not already exist.

The English summary is being prepared. Showing the original description.

See how to install

Files included (77)

  • SKILL.md5.1 KB
  • agents/openai.yaml253 B
  • assets/style-reference/anchor-dark/anchor-dark-caption-crop.png81.8 KB
  • assets/style-reference/anchor-dark/anchor-dark-render-regression-1080p.png289.9 KB
  • assets/style-reference/anchor-dark/anchor-dark-render-regression-4k.png662.9 KB
  • assets/style-reference/anchor-dark/kimi-reference-32s.png251.7 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0001.png45.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0002.png48.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0003.png33.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0004.png40.7 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0005.png41.1 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0006.png48.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0007.png42.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0008.png34.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0009.png26.1 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0010.png49.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0011.png37.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0012.png52.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0013.png36.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0014.png31.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0015.png44.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0016.png41.1 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0017.png36.7 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0018.png41.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0019.png38.8 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0020.png35.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0021.png38.1 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0022.png38.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0023.png34.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0024.png51.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0025.png28.8 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0026.png42.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0027.png44.8 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0028.png36.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0029.png44.4 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0030.png33.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0031.png42.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0032.png44.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0033.png33.0 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0034.png45.4 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0035.png45.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0036.png51.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0037.png34.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0038.png43.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0039.png45.7 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0040.png45.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0041.png44.7 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0042.png49.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0043.png30.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0044.png35.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0045.png35.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0046.png50.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/cue-0047.png32.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/overlay.ffconcat17.5 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/preview-base.png288.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p-caption-work/transparent.png2.4 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-1080p.png306.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0001.png102.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0002.png107.8 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0003.png75.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0004.png91.1 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0005.png90.2 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0006.png106.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/cue-0007.png95.9 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/overlay.ffconcat2.6 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/preview-base.png634.3 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k-caption-work/transparent.png9.4 KB
  • assets/style-reference/anchor-light/anchor-light-render-regression-4k.png665.4 KB
  • assets/styles/anchor-dark.css533 B
  • assets/styles/anchor-light.css660 B
  • references/layout-qc.md1.1 KB
  • references/style-anchor-dark.md1.4 KB
  • references/style-anchor-light.md2.1 KB
  • references/style-registry.json2.0 KB
  • references/timing-contract.md664 B
  • scripts/render_captions.py20.1 KB
  • scripts/validate_caption_render.py4.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Skill-字幕

Separate subtitle timing from subtitle appearance:

  • Let ra-audio-to-subtitles own ASR, phrase grouping, timestamps, SRT/VTT, and caption-qc.json.
  • Let this skill own typography, panel geometry, fixed anchoring, preview, overlay rendering, burn-in, and render QC.
  • Never estimate production timing from character count, scene duration, or TTS segment duration.

Required workflow

  1. Lock the final narration audio or final merged video.
  2. Run ra-audio-to-subtitles unless the project already has the canonical caption artifacts described in references/timing-contract.md.
  3. Require caption-qc.json to report status: pass.
  4. Select a style from references/style-registry.json. Use anchor-dark when the contract does not specify another style.
  5. Generate a representative still preview before rendering a full video.
  6. Inspect the preview against references/layout-qc.md.
  7. Render the captioned derivative. Preserve the clean video and portable SRT/VTT.
  8. Run scripts/validate_caption_render.py and archive its JSON report.

Registered styles

anchor-dark reproduces the approved Kimi K3 subtitle treatment: STHeiti Medium, warm white text, a tight charcoal translucent rounded panel, no text stroke, no text shadow, no large panel shadow, and a fixed bottom-center anchor. Read references/style-anchor-dark.md before changing its values.

anchor-light keeps the exact same typography, size, padding, width, bottom anchor, line fitting, and resolution scaling as anchor-dark. Only its surface changes: dark ink on a warm-white translucent panel with a fine border and subtle soft shadow. Read references/style-anchor-light.md before changing its values. This is the second registered style; anchor-dark remains the default.

Scale every 1080p metric by target_height / 1080. Render 4K captions at 2× their 1080p measurements; never upscale a rasterized 1080p subtitle layer.

Commands

Preview a QC-passed project:

python3 .claude/skills/skill-captions/scripts/render_captions.py \
  final.mp4 media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --preview qc/caption-preview.png \
  --preview-only

Burn the default style:

python3 .claude/skills/skill-captions/scripts/render_captions.py \
  final-clean.mp4 media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --out renders/final-captioned.mp4 \
  --preview qc/caption-preview.png

Burn the light translucent style:

python3 .claude/skills/skill-captions/scripts/render_captions.py \
  final-clean.mp4 media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --style anchor-light \
  --out renders/final-captioned.mp4 \
  --preview qc/caption-preview.png

Skip an interval that already contains burned captions:

python3 .claude/skills/skill-captions/scripts/render_captions.py \
  final-clean.mp4 media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --exclude 0:23.936 \
  --out renders/final-captioned.mp4

Create a reusable transparent caption band:

python3 .claude/skills/skill-captions/scripts/render_captions.py \
  final-clean.mp4 media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --overlay-out renders/caption-band.mov

Validate the result:

python3 .claude/skills/skill-captions/scripts/validate_caption_render.py \
  --source final-clean.mp4 \
  --render renders/final-captioned.mp4 \
  --captions media/captions/captions.json \
  --qc media/captions/caption-qc.json \
  --out qc/caption-render-qc.json

Hard rules

  • Use the final audio/video as the only timing source.
  • Consume captions.json start/end values directly.
  • Refuse final burn-in when caption QC is missing or failed.
  • Keep a fixed bottom anchor. Let multiline panels grow upward.
  • Keep captions inside the frame and clear of titles, UI, faces, and PiP.
  • Keep English model/product tokens intact.
  • Preserve one canonical caption timeline across renderers.
  • Keep the clean master; a burned-caption MP4 is a derivative.
  • For a new or materially changed style, show a short preview before the full render.
  • Do not add karaoke, behind-person typography, VFX captions, or animated hero words unless the user explicitly requests the separate embedded-captions lane.

Integration contract

Video orchestrators should call this skill after ra-audio-to-subtitles. Handoff contracts may set caption_style to anchor-dark or anchor-light; otherwise use anchor-dark. Renderers may reproduce the registered CSS in Remotion or HyperFrames, but must preserve the style metrics and fixed-anchor behavior.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

口播视频转录和口误识别。生成审查稿和删除任务清单。触发词:剪口播、处理视频、识别口误

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

将法天象地、同源巨大法相或角色力量显现的视觉参考制作成连续关键帧,再使用用户选择或可用的图生视频工具分段生成、检查和合成动作视频,不绑定成片平台。适用于本体与法相同框、领域展开、凝实与同步出招;不负责整部小说改编或普通图片轮播。

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

口播基础素材包生成。转录口播、识别口误、生成审核页;用户确认后剪出新视频,Agent 再基于剪后视频重新转写、AI 校对字幕,输出后续口播成片可用的 source_cut.mp4 和 subtitles.srt。触发词:剪口播、处理口播素材、准备口播素材、识别口误、基础素材包

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

口播视频成片 Skill。把文章/口播稿/SRT、剪后视频和 HTML/图片素材串成分镜稿、时间线预览和最终 MP4;成片比例和动画风格从用户配置读取,动画默认使用小黑风格。触发词:口播成片、做分镜稿、时间线预览、合成口播视频、导出竖屏MP4

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

自进化 skills。记录用户反馈,更新方法论和规则。触发词:更新规则、记录反馈、改进skill

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

dbs

Free

dontbesilent 商业工具箱主入口。双模式:任务前路由(你的问题该用哪个 skill)+ 任务后导航(刚做完诊断,下一步该干什么)。 触发方式:/dbs、/商业、「帮我看看」、「下一步怎么走」 Main entry point for dontbesilent business toolkit. Dual mode: pre-task routing + post-task navigation. Trigger: /dbs, "help me with my business", "what's next"

The English summary is being prepared. Showing the original description.

Pluviobyte/rnskill1.6KUpdated Sep 21, 2026

See all skills by Pluviobyte

Report a problem with this skill