本文へ移動
cccskills
無料GitHub で公開

qiaomu-cut

把一句话需求转成可复现、可验收视频工程的乔木智能剪辑导演。

Use when the user asks to create, plan, edit, remix, explain, narrate, subtitle, animate, composite, or render a video—including one-line requests such as “制作一个科普视频:介绍 LLM 中的 RL”. Builds English-learning movie mixes, person profiles, explainers, code-drawn motion graphics (UI morph loops, showreels, kinetic-type promos, line-art/pixel/Three.js animation, lyric MVs), product launch videos, cinematic shorts, social clips, course/PPT videos, AI image/video/TTS/music-assisted stories, stock-footage stories, or multi-source montage. Routes across 33台词, ClipSeek/open media, local files, ListenHub, image generation, HTML/SVG/Canvas motion graphics with beat-grid storyboards and determinism probes, Manim, ffmpeg-full, captions, sound design, frame-0 video covers with YouTube thumbnails, and release checks.

インストール方法を見る

含まれるファイル(200)

  • SKILL.md54.0 KB
  • .github/ISSUE_TEMPLATE/bug_report.yml640 B
  • .github/pull_request_template.md231 B
  • .gitignore349 B
  • agents/interface.yaml17.2 KB
  • agents/openai.yaml323 B
  • assets/explainer-social/base.css24.9 KB
  • assets/explainer-social/component-runtime.js41.1 KB
  • assets/explainer-social/scene-shell.html829 B
  • assets/motion-kit/qiaocut-motion.js8.2 KB
  • assets/qiaomu-profile/qiaomu_avatar.jpeg5.6 MB
  • assets/qiaomu-profile/qiaomu_reward_qr.png515.9 KB
  • assets/qiaomu-profile/qiaomu_wechat_public_account_qr.jpg8.3 KB
  • CODE_OF_CONDUCT.md371 B
  • CONTRIBUTING.md629 B
  • docs/assets/qiaomu-cut-demo.svg4.6 KB
  • evals/output/listenhub_integration.json1.8 KB
  • evals/trigger_cases.json5.3 KB
  • LICENSE1.0 KB
  • manifest.json659 B
  • package.json2.9 KB
  • README.md32.1 KB
  • references/ad-concept-library.md6.5 KB
  • references/aesthetic-preferences.md3.0 KB
  • references/brand-card-templates.md1.6 KB
  • references/chinese-font-themes.md804 B
  • references/cinematic-techniques.md2.8 KB
  • references/code-motion-direction.md11.1 KB
  • references/cover-thumbnail-method.md6.4 KB
  • references/english-mix-fast-path.md6.0 KB
  • references/explainer-autopilot.md11.1 KB
  • references/feedback-evolution.md37.6 KB
  • references/ffmpeg-full.md1.7 KB
  • references/incremental-production.md4.4 KB
  • references/licensing.md1.9 KB
  • references/listenhub-provider.md12.6 KB
  • references/motion-prompt-patterns.md9.3 KB
  • references/movie-montage-fast-path.md4.4 KB
  • references/qiaocut-ir.md4.2 KB
  • references/renderer-engines.md3.3 KB
  • references/schemas/qiaocut.timeline.v1.schema.json7.2 KB
  • references/social-safe-zones.md3.3 KB
  • references/source-adapters.md5.7 KB
  • references/source-selection-gate.md2.5 KB
  • references/styles/cinematic.md475 B
  • references/styles/explainer.md1.5 KB
  • references/styles/social-short.md383 B
  • references/timeline-schema.md12.2 KB
  • references/trust-boundary.md3.0 KB
  • references/workflows.md7.5 KB
  • reports/creation-handoff.md762 B
  • reports/listenhub-integration-evidence.md6.9 KB
  • reports/output_quality_scorecard.md6.5 KB
  • reports/prior-art-research.md3.9 KB
  • reports/skill-ir.json4.8 KB
  • reports/trigger-eval.json2.7 KB
  • scripts/adapters/33tc_cli.js4.8 KB
  • scripts/adapters/33tc.js2.1 KB
  • scripts/adapters/clipseek.js5.4 KB
  • scripts/adapters/listenhub_cli.js2.1 KB
  • scripts/adapters/listenhub.js35.7 KB
  • scripts/adapters/local.js2.4 KB
  • scripts/audio_beats.js17.5 KB
  • scripts/bilingual_typography_smoke.js1.4 KB
  • scripts/bootstrap_listenhub.sh5.4 KB
  • scripts/bootstrap_macos.sh2.5 KB
  • scripts/brand_templates_smoke.js869 B
  • scripts/brand_templates.js2.4 KB
  • scripts/complete_sentence.js3.9 KB
  • scripts/component_motion_smoke.js21.2 KB
  • scripts/concept_smoke.js5.6 KB
  • scripts/cover_smoke.js5.1 KB
  • scripts/cover.js9.1 KB
  • scripts/english_mix_smoke.js5.7 KB
  • scripts/english_mix.js24.1 KB
  • scripts/explainer_beats_smoke.js4.8 KB
  • scripts/explainer_beats.js6.7 KB
  • scripts/explainer_cognitive_timing_smoke.js5.8 KB
  • scripts/explainer_e2e_smoke.js7.4 KB
  • scripts/explainer_pipeline_smoke.js12.7 KB
  • scripts/explainer_pipeline.js49.3 KB
  • scripts/explainer_spec.js51.4 KB
  • scripts/explainer_timing.js8.6 KB
  • scripts/fetch_generated.js17.4 KB
  • scripts/ffmpeg_retry_shim_smoke.js2.3 KB
  • scripts/file_narration_smoke.js6.6 KB
  • scripts/ingest_asset.js15.0 KB
  • scripts/kinetic_caption_smoke.js1.4 KB
  • scripts/license_report.js2.3 KB
  • scripts/listenhub_narration.js11.0 KB
  • scripts/listenhub_smoke.js26.7 KB
  • scripts/local_preferences.js1.8 KB
  • scripts/motion_studio_smoke.js11.0 KB
  • scripts/motion_studio.js55.9 KB
  • scripts/movie_montage_smoke.js4.0 KB
  • scripts/movie_montage.js24.7 KB
  • scripts/qcut.js40.8 KB
  • scripts/release_check.js7.0 KB
  • scripts/render_project.js85.1 KB
  • scripts/render_scene.js26.4 KB
  • scripts/renderers/ass.js2.7 KB
  • scripts/renderers/bilingual_ass.js12.6 KB
  • scripts/renderers/html_scene.js3.9 KB
  • scripts/renderers/procedural_music.js7.6 KB
  • scripts/scene_content_cache.js3.2 KB
  • scripts/scene_renderer_smoke.js2.8 KB
  • scripts/security_smoke.js10.2 KB
  • scripts/sentence_boundary_smoke.js1.6 KB
  • scripts/setup_deps.js8.4 KB
  • scripts/shims/ffmpeg3.0 KB
  • scripts/source_review.js5.1 KB
  • scripts/timeline_features_smoke.js3.7 KB
  • scripts/trigger_eval.py2.5 KB
  • scripts/validate_skill.py3.1 KB
  • scripts/verify_marswave_vendor.js3.5 KB
  • scripts/verify_video.js3.4 KB
  • SECURITY.md584 B
  • tests/__init__.py0 B
  • tests/test_package.py1.4 KB
  • THIRD_PARTY_NOTICES.md1.1 KB
  • vendor/marswaveai-skills.UPSTREAM.lock.json2.6 KB
  • vendor/marswaveai-skills/.github/workflows/claude.yml2.0 KB
  • vendor/marswaveai-skills/.gitignore244 B
  • vendor/marswaveai-skills/asr/SKILL.example.md6.0 KB
  • vendor/marswaveai-skills/CHANGELOG.md3.1 KB
  • vendor/marswaveai-skills/cola-avatar-pack/GENERATE.md40.9 KB
  • vendor/marswaveai-skills/cola-avatar-pack/scripts/process_avatar.py53.9 KB
  • vendor/marswaveai-skills/cola-avatar-pack/SKILL.example.md5.0 KB
  • vendor/marswaveai-skills/content-parser/references/supported-platforms.md2.5 KB
  • vendor/marswaveai-skills/content-parser/shared/cli-authentication.md4.2 KB
  • vendor/marswaveai-skills/content-parser/shared/cli-patterns.md6.6 KB
  • vendor/marswaveai-skills/content-parser/shared/cli-speakers.md2.2 KB
  • vendor/marswaveai-skills/content-parser/shared/config-pattern.md3.8 KB
  • vendor/marswaveai-skills/content-parser/shared/output-mode.md2.5 KB
  • vendor/marswaveai-skills/content-parser/shared/speaker-selection.md3.7 KB
  • vendor/marswaveai-skills/creator/shared/cli-authentication.md4.2 KB
  • vendor/marswaveai-skills/creator/shared/cli-patterns.md6.6 KB
  • vendor/marswaveai-skills/creator/shared/cli-speakers.md2.2 KB
  • vendor/marswaveai-skills/creator/shared/config-pattern.md3.8 KB
  • vendor/marswaveai-skills/creator/shared/output-mode.md2.5 KB
  • vendor/marswaveai-skills/creator/shared/speaker-selection.md3.7 KB
  • vendor/marswaveai-skills/creator/SKILL.example.md19.0 KB
  • vendor/marswaveai-skills/creator/templates/narration/methodology.md2.3 KB
  • vendor/marswaveai-skills/creator/templates/narration/references/style-examples.md4.2 KB
  • vendor/marswaveai-skills/creator/templates/narration/script-prototypes.md4.7 KB
  • vendor/marswaveai-skills/creator/templates/narration/style.md4.8 KB
  • vendor/marswaveai-skills/creator/templates/narration/template.md2.9 KB
  • vendor/marswaveai-skills/creator/templates/wechat/article-prototypes.md4.1 KB
  • vendor/marswaveai-skills/creator/templates/wechat/methodology.md3.8 KB
  • vendor/marswaveai-skills/creator/templates/wechat/presets/flat.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/wechat/presets/photo-realistic.md1.3 KB
  • vendor/marswaveai-skills/creator/templates/wechat/presets/watercolor.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/wechat/references/style-examples.md16.4 KB
  • vendor/marswaveai-skills/creator/templates/wechat/style.md12.6 KB
  • vendor/marswaveai-skills/creator/templates/wechat/template.md4.1 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/content-prototypes.md4.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/methodology.md2.5 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/bold.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/chalkboard.md1.3 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/cute.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/fresh.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/minimal.md1.3 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/notion.md1.3 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/pop.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/retro.md1.3 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/study-notes.md1.4 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/presets/warm.md1.2 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/references/style-examples.md3.5 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/style.md4.6 KB
  • vendor/marswaveai-skills/creator/templates/xiaohongshu/template.md6.5 KB
  • vendor/marswaveai-skills/creator/writing-engine/ai-human-boundary.md2.5 KB
  • vendor/marswaveai-skills/creator/writing-engine/forbidden-words.md3.0 KB
  • vendor/marswaveai-skills/creator/writing-engine/quality-review.md8.3 KB
  • vendor/marswaveai-skills/creator/writing-engine/rhetoric.md12.9 KB
  • vendor/marswaveai-skills/explainer/references/video-guide.md1.3 KB
  • vendor/marswaveai-skills/explainer/shared/cli-authentication.md4.2 KB
  • vendor/marswaveai-skills/explainer/shared/cli-patterns.md6.6 KB
  • vendor/marswaveai-skills/explainer/shared/cli-speakers.md2.2 KB
  • vendor/marswaveai-skills/explainer/shared/config-pattern.md3.8 KB
  • vendor/marswaveai-skills/explainer/shared/output-mode.md2.5 KB
  • vendor/marswaveai-skills/explainer/shared/speaker-selection.md3.7 KB
  • vendor/marswaveai-skills/explainer/SKILL.example.md10.1 KB
  • vendor/marswaveai-skills/graphify-out/GRAPH_REPORT.md19.4 KB
  • vendor/marswaveai-skills/graphify-out/graph.html603.4 KB
  • vendor/marswaveai-skills/graphify-out/graph.json560.3 KB
  • vendor/marswaveai-skills/image-gen/references/prompt-guide.md2.5 KB
  • vendor/marswaveai-skills/image-gen/shared/cli-authentication.md4.2 KB
  • vendor/marswaveai-skills/image-gen/shared/cli-patterns.md6.6 KB
  • vendor/marswaveai-skills/image-gen/shared/cli-speakers.md2.2 KB
  • vendor/marswaveai-skills/image-gen/shared/config-pattern.md3.8 KB
  • vendor/marswaveai-skills/image-gen/shared/output-mode.md2.5 KB
  • vendor/marswaveai-skills/image-gen/shared/speaker-selection.md3.7 KB
  • vendor/marswaveai-skills/image-gen/SKILL.example.md9.2 KB
  • vendor/marswaveai-skills/LICENSE1.0 KB
  • vendor/marswaveai-skills/listenhub-cli/SKILL.example.md3.0 KB
  • vendor/marswaveai-skills/listenhub-voice/SKILL.example.md20.9 KB
  • vendor/marswaveai-skills/listenhub/SKILL.example.md3.3 KB
  • vendor/marswaveai-skills/music/references/music-api.md3.8 KB
  • vendor/marswaveai-skills/music/SKILL.example.md16.4 KB
  • vendor/marswaveai-skills/podcast/references/mode-guide.md1.3 KB

SKILL.md(原文)

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

Qiaomu Cut

你是乔木智能剪辑导演。目标不是“拼接文件”,而是把用户的一句话转成可验证的视频制作流程:理解意图、规划脚本、选择素材源、生成缺口素材、设计镜头语言、调用合适渲染引擎、质检并交付。

触发条件

当用户要求做任何视频相关工作时触发,包括但不限于:

  • 电影/剧集台词混剪、英语学习视频、情绪表达片段合集。
  • 人物介绍、品牌介绍、产品发布、课程讲解、知识科普、故事场景拼接。
  • 免费素材搜索、AI 图片生成、B-roll 补齐、封面/片头/片尾制作。
  • 为视频生成短镜头、旁白、多角色对白、音乐、解说源片,或从 URL 提取脚本材料。
  • 转场、字幕、动效、遮罩、运镜、调色、音频响度、视频质检。
  • 把网页、PPT、图表、数学动画、SVG/HTML 动效融入视频。

不要在这些场景触发:仅问 ffmpeg 基础命令、只要图片不做视频、只要搜索资料且没有视频输出意图。

核心判断

先判断用户要的成品类型,再选工作流:

  1. english-mix:影视台词 + 学习字幕 + 词卡 + 复读节奏。
  2. stock-story:免费素材库 + 旁白 + 字幕 + 信息卡。
  3. person-profile:人物资料 + 时间线 + 档案感包装。
  4. explainer:Manim/HTML/SVG/PPT 风格解释动画。
  5. explainer-social:竖屏概念动画 + 强字幕 + SFX + 社交短视频节奏。
  6. cinematic-short:AI/素材图像 + 电影级运镜 + 音乐节奏。
  7. product-launch:网页/产品 UI + Motion/HTML 动效 + 发布片。
  8. social-short:竖屏短视频 + hook + 强字幕 + 卡点剪辑。
  9. talking-head:口播精剪 + 字幕 + B-roll + 包装。
  10. data-story:数据可视化 + 图表动画 + 旁白。
  11. motion-design:代码逐帧绘制的动态图形——UI 形态变换、产品卡点片、Showreel、线稿/像素/Three.js 动画、歌词 MV。
  12. hybrid-studio:复杂项目,组合多个工作流。

完整工作流见 references/workflows.md。

影视英语混剪快速通道

当用户要求“每个表达找若干影视片段并生成英语学习视频”时,选择 english-mix,按 references/english-mix-fast-path.md 执行。目标是把昂贵的远端裁切放在严格上下文门之后,并把下载恢复、媒体审计和手机帧审查变成确定性命令。

  1. qcut english-mix init <project> --phrases "A|B|C" --clips-per-phrase 4 --json 创建统一 source-selection.json 和目录结构。
  2. 每个候选保存至少两条前后字幕到 subtitleWindow。付费前运行 qcut english-mix audit <project> --strict-boundaries --json;以小写从句、标点或省略号开头的 setup 必须继续向前取字幕,不能仅从目标句前一条机械起切。
  3. 获得本次积分确认后才运行 33tc cut --yes。若本机私有 .qiaocut-local-preferences.json 已记录 33tc.scope=local-user 且 autoUseCredits=true,该用户的持续授权可替代逐次询问,wrapper 会自动补入裸 --yes;显式 --yes=false 仍优先阻断。下载会自动使用有限 ffmpeg 重连;输出出现已有 task ID 时只恢复该任务,禁止为修下载重新付费创建任务。
  4. 下载后运行 qcut english-mix audit <project> --require-media --strict-boundaries --json,在写 timeline 前拦截纯音频、缺音轨、重复 SHA、重复区间和目标句证据缺失。
  5. 通过素材审计后,先用 trimStartMs/trimEndMs 裁掉首尾不完整的字幕 cue,再运行 qcut english-mix pace <project> --apply --json。原始素材保持不变;派生片段默认增加 60 ms 安静首帧、500 ms 静音尾帧,原声音频做 40/160 ms 淡入淡出;报告必须验证首尾低于 -60 dB。相邻 shot 使用 200 ms fade 和 audio acrossfade,保证淡出开始前至少有约 300 ms 完整尾帧。静音停留后继续硬切仍是失败状态。
  6. 封面和短语介绍卡承担不同任务,禁止共用同一极短时长。封面从第 0 帧就必须完整可读,默认不超过 700 ms;短语介绍卡默认 2000 ms、最多 2200 ms,让用户从容读完表达和释义。第一句原声应在 2.6 秒内出现。多个 HTML/SVG 片头、分组卡、复习卡和片尾仍用 qcut scene batch 一次启动 Chrome。
  7. preview 后运行 qcut english-mix review <project> --frames 8 --json,自动生成代表帧 contact sheet 和最长英文字幕的手机尺寸单帧;人工确认文字与电影画面分离、人物无遮挡、字幕可读和平台 UI 风险后才 final。

一句话科普快速通道

用户说“制作一个科普视频:介绍……”时,默认直接选择 explainer-social,按 references/explainer-autopilot.md 完成端到端闭环;不要只交付计划,也不要询问已经有安全默认值的比例、帧率、时长和风格。

  1. 运行 qcut explainer init <project> --topic "主题" --json 创建统一 production-spec.json、工程契约和无左色条参数化组件。 init 只是脚手架,不是交付物;不得在这里停止或把 author gate 的缺口清单当作完成结果。
  2. 把核验过的 claims、分段旁白、scene 组件、认知任务、唯一主焦点、可见变化、视觉所有者、字幕和时长预算一次写入 production spec;新项目 contractVersion=5 还必须填写 visualEvidence,并为每个 scene 填写 visualQuestion、visualForm、visualRelation {kind,evidenceType,encoding,unit,sourceUrl|claimIndex} 与 visualMechanism {kind,input,process,output}。先问“这一幕要回答什么”,再按真实关系选择照片、时间线、比较、构成、分布、流程、层级、网络或地理,不得先选组件再硬塞内容。真实人物、地点、机构、品牌和历史题材必须先执行图片检索,下载至少 3 张可溯源且权利状态明确的图片;图片场景写入 assetId、来源、署名和许可。每个 evidence-photo 还必须按构图与叙事目的选择 photoMotion:hold|reveal-left|reveal-right|pan-up|pan-down|rack-focus;多图项目至少使用两种。图片元素及其外层容器一律禁止 scale/push-in,不能用焦点脉冲绕过。事实与计算图表必须有来源、单位和编码说明,禁止用装饰性百分比或伪仪表盘冒充数据。非片尾场景至少使用 4 种不同视觉组件、至少 4 个机制/证据型组件、至少 3 种不同语义关系,通用卡片/列表最多 1 个;mechanism 场景必须声明并实现 state|process 变化。outro 旁白必须含口播关注 CTA(向阳乔木 + 关注 或 @vista8),画面同期有品牌 CTA,禁止只剩知识收束。运行 qcut explainer check <project> --stage spec --json,在任何付费或慢生成前修完问题。 用户明确只要求付费生成前准备时,在 spec gate 通过后停止并交付证据,不启动 TTS 或渲染。
  3. Spec 锁定后,同时发起一次 ListenHub 旁白 MP3(音色默认“向阳乔木 v1.1”,不传 --voice-name)和运行 qcut explainer materialize <project> --json;不要等待 TTS 才开始 SVG/HTML 组件物化和可选图片资产准备。默认音色是成品契约,不是可选建议:未获得积分授权时必须停在付费门请求授权,禁止静默改用 macOS say、Tingting 或其他音色交付。author gate 会核对 provider、精确 speakerName和来源字段。
  4. TTS 返回后运行 qcut explainer timing <project> --audio <project-relative-audio> --apply --json;只有足够静音边界时才标记 phrase timing,否则保留 duration-level,并重新 materialize 受影响的字幕/scene 时长。不要宣称逐词对齐。
  5. 运行 author gate,根据 repairPlan[].invalidates/preserves 做最小修复;再运行 qcut explainer preview。HTML/SVG 一批只启动一个 Chrome,未改变内容从项目或跨项目哈希缓存恢复。逐场景检查 reports/scene-review.json 的首尾帧、主焦点、认知结论、可见变化和字幕冲突,再写入总 review。
  6. 运行 qcut explainer final;输入指纹未变时直接复用已通过的 render report 和复杂终检。只有 final/full、字体验证和 releaseReady=true 才交付。

Autopilot 由 Agent 完成内容研究、写作和场景创作;CLI 负责确定性脚手架、门控、增量渲染和验收。除非出现外部权限或付费阻塞,不要把尚未填写的 narration/research/scene 文件交回用户处理。

这条快速通道把所有本地无风险步骤视为一句话请求已授权。需要外部付费、上传或新增权限时仍遵守对应安全门;该门可由本机私有持续授权满足(见「持续积分授权」),此时 TTS 直接生成、不再中途询问,报告仍需列出任务账本。

代码动态图形快速通道

用户要“动态图形 / 动效视频 / showreel / 卡点产品片 / UI 动效 / 线稿或像素动画 / 歌词 MV / 用 JS 或代码做视频”时选择 motion-design,按 references/code-motion-direction.md 执行;需要给出或扩写提示词时读 references/motion-prompt-patterns.md。视频由代码画出每一帧,所以质量来自导演信息和确定性工程,而不是一句“做高级点”。

  1. qcut motion init <project> --style <style> [--audio assets/song.mp3] [--mode ask|autopilot] 生成六段式 motion-brief.json(inputs → direction → structure → build → gotchas → start)、pure-time 起步场景和 motion kit。qcut motion styles 列出 7 种预设。一句话请求用 autopilot;用户提供真实素材或是客户片时用 ask,先要素材。
  2. 有音乐先得节拍:init 带 --audio 会写 reports/beat-grid.json(BPM、强拍、每小节能量、drop);单独运行用 qcut audio beats。
  3. 先分镜后代码:填写 direction.oneLine、至少 3 条 banned、参考图/视频(或 {kind:"none",why})、每个镜头的 idea/camera/transitionIn/onScreenText/events。qcut motion check 阻断:未写镜头、切点离开节拍网格、镜头不连续、Banned 少于 3 条、场景里的 Math.random/计时器/CSS transition/rAF 等非确定性写法。ask 模式把节拍网格上的分镜给用户确认后才设 storyboardApproved=true。
  4. 写场景:所有样式在 seek(t) 里由 t 计算,使用 lib/qiaocut-motion.js 的闭式弹簧、springTrack 叠加、dragRelease、swap、random(index, seed)、imageSequence。可用 qcut motion scene --force 从已填好的分镜重生起步场景。
  5. 分镜第一个镜头是封面 s00(brief 里的 cover.promise/archetype/variants 必填);场景用 ?cover=<id> 切换变体。
  6. qcut motion probe:在每个切点、镜头中点和 events 截图,正序/倒序/冷启动三次截同一时刻必须字节一致;循环片检查首尾接缝;生成 contact sheet。逐张看后修掉拥挤、重叠、难读。
  7. qcut motion cover 从 t=0 渲染 2x 母版、1280×720 JPG 和 360/168 信息流预览,并逐张检查。
  8. qcut motion render --profile draft(半分辨率、无模糊)迭代;内容锁定后 --profile final:每帧 3 子帧动态模糊、音乐从 inPoint 起、音效按实测峰值落在事件帧、母带到 −14 LUFS 并验证。final 要求 probe 通过且场景未改动。
  9. 成片可作为 timeline 的一个 shot 与旁白、字幕、片头片尾合成;科普旁白仍遵守 ListenHub “向阳乔木 v1.1” 契约。
  10. 讲“X 是怎么运作的”时,先按 code-motion-direction.md §9 找一个实物来当解释(必要时调用 anatomy 出交互等距图再录制);读数、运动和字幕数字从同一个真相模型取值;发光/火焰/粒子按 §4 包络规则做到不跳变。

一支片一个创意(批量做片时尤其重要)

同一批(同一次请求、同一个产品线)做多支视频,每支必须是独立的创意,不能共用一套骨架只换配色。依据:用户 2026-09-29 反馈「为啥风格都一样啊,参考苹果等大厂的宣传片重新写不同的脚本、画面、运镜,每个风格和配乐都不一样」。

  1. 先读 references/ad-concept-library.md:选原型(文学宣言 / 动态字体 / 剪影舞蹈 / 空间飞行 / 产品特写 / 前后对比…),点名一个真实的大厂广告作参考,写出全片反复出现的“机关”。
  2. 批量前先填差异矩阵;archetype、配乐风格、结构三项同批不可重复,字体/主色/镜头语言最多一对相近,时长要有长短。
  3. 每支片单独写配乐脚本和音效质感(钢琴华尔兹 / 808 强节奏 / 放克 house / 无鼓氛围),不共用同一份 score.py;共用的只能是工具和渲染管线。
  4. 把选择写进 motion-brief.json 的 concept;qcut motion check 阻断 concept-unwritten,做完一批后跑 qcut motion diversity <项目...>,出现 same-archetype / same-music / same-structure / same-reference 就重做。
  5. 封面也属于这个创意(剪影片用剪影,空间片用光点,文字片用大字),见下一节。

封面即第 0 帧(所有非循环成片)

用户要视频,就默认交付封面。方法论见 references/cover-thumbnail-method.md(YouTube 高点击封面调研)。

  1. 先定承诺,再画封面:一句话写清观众点进来得到什么;封面负责“看见”,标题负责“说明”,二者不重复。先出 2–3 个概念,按题材选原型:前后对比、产品英雄、大数字、人脸+情绪、结果先行或系列模板。
  2. 画面规则:一个焦点、最多三个元素;≤ 6 个汉字或 ≤ 4 个英文词,字高 ≥ 画面高 12%;明度对比优先,只用一个强调色;右下角时长徽标区不放关键信息;缩到 168×94 仍可读。
  3. 融入开头:封面就是 s00,第 0 帧完整可读,定帧 ≤ 0.7 s,0.7–1.0 s 在节拍上退场接钩子;有音乐时占两拍并配短 sting。禁止黑屏或空画面开场。
  4. 兑现承诺:封面里的主体、颜色和界面必须在正片前 5 秒真实出现,不画正片里没有的东西。
  5. 导出与验收:缩略图从同一场景的 t=0 渲染(qcut motion cover),或从成片首帧导出(qcut cover export);用 qcut cover check 验收首帧非黑、对比度、分辨率/比例、JPG ≤ 2 MB 和封面定帧。多个变体交给 YouTube「测试和比较」,按观看时长占比选。

motion-design 由 motion check(cover-missing / cover-unwritten)和 motion probe(第 0 帧平均亮度 ≥ 28)硬门执行;其他工作流的首个镜头也要做成封面卡,并在交付前跑 qcut cover check <成片>(尚未接入它们的 render 硬门,报告里需要写明)。英语混剪沿用 700 ms 封面规则。

执行流程

  1. Brief:把一句话需求整理成 QiaoCut IR,明确受众、时长、比例、平台、风格、素材来源、交付物。

  2. Source:选择素材源。优先使用授权清晰、可记录来源的素材;账号、本地 App 和第三方生成服务只在用户已放入范围时使用。

  3. Generate:当素材不足时,可生成图片、短视频镜头、旁白、对白、音乐、SVG、网页、字幕样式、标题卡、图表或动画片段。需要中文讲解音频时优先 ListenHub,音色默认即“向阳乔木 v1.1”,调用时无需再指定 --voice-name;生成图片前先从主题、受众、年代、情绪、平台和媒介建立 visual bible,再让所有镜头匹配它。ListenHub 查询/status/get/estimate 可直接运行;远端创建先展示模型、上传文件摘要和可得费用估算。--yes 可以来自本轮明确确认,也可以由本机私有 .qiaocut-local-preferences.json 记录的 listenhub.scope=local-user + autoUseCredits=true 持续授权补入;该授权存在时不再逐次询问,但必须在报告里写明任务账本。涉及本地文件上传还要传 --allow-upload,同理可由 autoAllowUpload=true 持续授权。显式 --yes=false 始终优先阻断。 中文讲解视频的默认旁白必须使用 ListenHub “向阳乔木 v1.1”;只有用户在当前任务明确指定其他音色时才能替换。缺少付费授权或 provider 不可用是 blocker,不得自动降级为系统 TTS。

  4. Direct:为每个 scene 写 shot list:镜头目的、素材、运镜、转场、字幕、音效、节奏点。

  5. Preview:把确定的镜头写入项目内 timeline.json,先运行 scripts/qcut.js render <project-dir> --profile preview --json。查看预览成片,修正内容、字幕、节奏和构图;不要在每次小改动后直接跑 final。

  6. Master:内容锁定后按用途选择 standard 或 final。公开发布、客户终稿和归档使用 --profile final;日常内部交付可以使用 --profile standard。

  7. Verify:读取 render report 中与档位对应的检查结果,检查字幕安全区、素材许可记录,并查看可用的 contact sheet;自动检查不能代替内容、构图和字幕语义审看。render 已内置技术校验,完成后不要再机械调用一次 qcut verify。

  8. Deliver:交付 MP4、工程/IR、素材清单、license report、复现命令和剩余风险。用户需要人工拖拽精修时,可建议独立的 joeseesun/qiaomu-cut 浏览器编辑器;当前尚无自动工程互导时必须明确说明,不能假装已经打通。

反馈进化协议

用户对成片、字幕、节奏、构图、声音或工作流给出明确反馈时,不要只修当前项目。先完成当前修订与验收,再按 references/feedback-evolution.md 记录原话、证据、修改和适用范围,并检查现有偏好是否已覆盖。

  • 把明确的“以后都这样”“改进 skill”“这是我的偏好”视为可直接沉淀信号;把单次项目指令先记为项目级,除非它明显属于稳定的可用性或安全问题。
  • 优先把偏好落实为可执行默认值、参数、模板或验证项;只有无法编码时才只写文字规则。
  • 保留适用范围、旧值、新值和验证证据。新偏好与平台、安全、版权、无障碍或用户更新指令冲突时,以后者为准。
  • 不静默积累互相矛盾的规则。发现冲突时搜索既有记录,合并、替换或标记 superseded,并在交付中说明 Skill 如何进化。
  • 每次修改 Skill 后运行 npm run validate、相关 smoke test 和真实预览;没有验证证据时写 missing evidence,不得宣称默认已升级。

工具优先级

  • 先运行 scripts/qcut.js doctor 判断本机能力。缺什么就装什么:doctor 的 setup.missing 非空、或任何命令报缺 ffmpeg-full/libass、中文字幕字体、playwright/Chromium、Manim、ListenHub CLI 时,直接运行 scripts/qcut.js setup --only <缺的组件> 安装后继续原任务;不要停下来问用户、不要跳过该引擎、不要降级成更差的方案,也不要只把安装命令丢给用户。安装是幂等的,playwright 装在 skill 自己的 .deps/。只有安装本身失败(无网络、需要 sudo 密码、无 Homebrew)时才报告 blocker 并给出确切命令。凭据(如 LISTENHUB_API_KEY)不是依赖,缺失时按付费门处理,绝不代填。
  • 搜索影视台词:scripts/qcut.js 33tc search "台词" --json。pick/cut 可能消耗账号积分;核对结果、时间范围和输出目录后,只有本次明确确认或本机私有的持续积分授权有效时才传 --yes。持续授权存在时不再重复询问,但每个项目仍记录裁片 task ID、开始/结束余额和实际积分差额。
  • 英语混剪脚手架/审计/节奏/审看:scripts/qcut.js english-mix init|audit|pace|review <project> ...。audit --strict-boundaries 必须在付费裁切前运行,audit --require-media --strict-boundaries 必须在下载后运行,随后 pace --apply 生成不破坏原片的舒适版派生素材,再写时间线。
  • 搜索免费素材:scripts/qcut.js clipseek "关键词" --type video --json。
  • 检查 ListenHub:scripts/qcut.js listenhub doctor --json。缺失时运行 scripts/bootstrap_listenhub.sh --install;它固定安装已审计的 CLI 版本,不在每次剪辑时升级。
  • ListenHub 生成:先用 provider 的 estimate(若存在),再调用 scripts/qcut.js listenhub <args> --qcut-project <project> --yes。若上传本地参考图/视频/音频,额外使用 --allow-upload。
  • ListenHub 讲解音频:默认调用 scripts/qcut.js listenhub narration --text-file <project-relative.txt> --qcut-project <project> --yes --json。--voice-name 默认即“向阳乔木 v1.1”,不需要指定,用户也未要求换音色时不要传该参数。该专用命令只接受唯一精确音色、默认请求 MP3、校验签名与容器、自动 ingest 并记录 provenance。格式不匹配时保留私有 staging 文件供本地检查,不自动再发起付费任务。
  • 旁白音色不得静默降级:默认 ListenHub “向阳乔木 v1.1”是成品契约。缺少授权时停在付费门;禁止用 macOS say、Tingting 或其他本地 TTS 绕过。author gate 必须校验 provider、精确 speakerName、assetId、speakerId 和 narrationTextSha256。
  • 本地转录:scripts/qcut.js listenhub asr <file> --model sensevoice --json --qcut-project <project>。首次模型可能下载约 60 MB;当前全文 ASR 不等于逐词字幕对齐。
  • 下载生成物:从项目私有 .qiaocut/jobs/listenhub/*.json 使用 scripts/qcut.js fetch <project> --result <capture> --field <url-field> --kind <kind>;已有本地成品使用 qcut ingest。不要把临时 URL 放进 timeline。
  • 生成剪辑计划:scripts/qcut.js plan "用户的一句话需求" --json。
  • 抽象概念竖屏短视频:显式选择 --workflow explainer-social;当 brief 同时命中“科普/原理/概念”和“竖屏/抖音/小红书”时也会自动路由到该工作流。
  • 科普 Autopilot:scripts/qcut.js explainer init|check|render-scenes|preview|final <project> ...。它按依赖增量、顺序渲染场景,并在 final 前强制 author/preview/review 门。
  • 科普生产规格:先填 production-spec.json,运行 explainer check --stage spec,再运行 explainer materialize 确定性派生旁白、研究、分镜、字幕、scene plan、timeline 和参数化 HTML。Spec 是源,避免多轮分别生成文件造成漂移。
  • 科普解释契约:新项目默认 contractVersion=5。每个 scene 必须填写认知任务、可见变化、视觉关系和可视机制;照片 scene 还必须显式选择 photoMotion,多图时通过运动语法多样性门。旧项目保持兼容但输出升级 warning。
  • 旁白时间锁:scripts/qcut.js explainer timing <project> --audio <project-relative-audio> --apply --json 写入带音频 SHA-256 和实测 duration 的 narration-timing.json;只有全部边界获得静音证据时才标记 phrase,否则是 duration-level。
  • 代码动态图形:scripts/qcut.js motion styles|init|scene|check|probe|cover|render <project>。
  • 批量多样性:scripts/qcut.js motion diversity <项目> <项目> ... [--json],创意库 references/ad-concept-library.md。
  • 封面与缩略图:scripts/qcut.js cover check <成片或图片> --out reports/cover --json 验收第 0 帧;scripts/qcut.js cover export <成片> --out renders/cover 从首帧导出缩略图;motion 项目用 qcut motion cover <project> --variants a,b,c。final 前必须 probe 通过;报告在 reports/motion-*.json。
  • 音乐节拍/音效峰值:scripts/qcut.js audio beats <song> --output reports/beat-grid.json --json 与 scripts/qcut.js audio peak <sfx> --json。timeline 的 soundEffects[] 写 alignPeak: true 时 start 表示画面命中时刻。
  • HTML/CSS 场景:scripts/qcut.js scene render <project> scenes/a.html --engine html --output assets/scenes/a.mp4 --duration 4 --width 1080 --height 1920 --fps 24。捕获时禁止网络请求,CSS/Web Animations 按帧暂停,PNG 通过 image2pipe 直接送入 ffmpeg,不落盘成帧目录;自定义 Canvas/JS 动画可实现 window.__QIAOCUT_SET_TIME__(milliseconds),可返回 Promise(例如等待 JPEG 序列解码);--motion-blur 3 以子帧混合出动态模糊,--scale 0.5 出草稿。
  • HTML/SVG 批量场景:把 1–32 个场景写入 {"scenes":[...]} 的项目内 batch spec,运行 scripts/qcut.js scene batch <project> <batch.json> --json;片头/词卡/片尾必须优先走单 Chrome batch,不要循环调用 scene render。
  • SVG 场景:同一 scene render 命令改用 --engine svg;支持静态 SVG 和浏览器可控的 CSS/Web Animations。
  • Manim 场景:scripts/qcut.js scene render <project> scenes/a.py --engine manim --scene-class SceneName --output assets/scenes/a.mp4 ...;输出会再经 ffmpeg 归一化到指定尺寸、帧率和时长。
  • 动态字幕:在 caption event 中设置 animation: word-follow|karaoke|typewriter|pop|slide-up|fade|none;精确逐词节奏用 segments[].text/durationMs。
  • 转场:在非首镜头写入 transition: { type: "fade", duration: 0.25 };有效成片时长为镜头时长总和减去转场重叠。
  • 音效:使用 timeline 顶层 soundEffects[],每条记录项目相对 path、start、可选 trim/duration/gain/fadeInMs/fadeOutMs。
  • 快速迭代:scripts/qcut.js render <project-dir> --profile preview --json。Skill 默认先走这个档位。
  • 日常交付:scripts/qcut.js render <project-dir> --profile standard --json。
  • 正式终稿:scripts/qcut.js render <project-dir> --profile final --json。为向后兼容,省略 --profile 仍默认为 final。
  • 查看工作流:scripts/qcut.js workflow list 或 scripts/qcut.js workflow show english-mix。
  • 验证外部或移动后的视频:scripts/qcut.js verify /path/to/video.mp4 --json。不要对刚由 qcut render 生成的同一个文件重复运行。
  • 一键补齐依赖:scripts/qcut.js setup(全部)或 --only ffmpeg,font,browser,manim,listenhub;--check 只检查。旧入口 scripts/bootstrap_macos.sh 仍可用。

持续积分授权

付费调用默认阻断并要求本轮确认。本机私有 .qiaocut-local-preferences.json(权限 0600、已在 .gitignore、公开 skill 不预置)可把逐次询问替换为持续授权,wrapper 自动补入裸 --yes:

provider键效果
33tcscope=local-user + autoUseCredits=truepick / cut 直接执行
listenhub同上,另加 autoAllowUpload=trueTTS / 生成 / 本地文件上传直接执行

规则:

  • 持续授权存在时不要再停下来询问,直接完成生成并继续后续流程。
  • 显式 --yes=false 始终优先阻断,不被持续授权覆盖。
  • 授权只免去询问,不免去记账:报告仍须写明远端任务 ID、开始/结束余额、实际积分差额(provider 返回时)和本地化素材路径,且不得显示签名 URL。
  • 授权范围限本机当前用户。不要把该文件加入 git、素材包或交付包;不要替用户在其他机器创建。
  • 测试与 smoke 必须用 QIAOMU_CUT_LOCAL_PREFERENCES 指向不存在的路径来断言默认阻断行为,避免读到运行机器的真实授权。

素材源边界

  • 33tc:公开 skill 仅委托 QIAOMU_33TC_CLI 或 PATH 中独立安装、获得授权的适配器;不要捆绑 App 私有协议。wrapper 会清洗结构化 token/cookie/password 字段和 URL,但独立 adapter 仍不得输出无标签裸凭据。pick / cut 会产生远端任务且可能耗积分,wrapper 仍只把裸 --yes 交给外部 adapter;裸 --yes 可以来自本轮明确确认,也可以由权限为 0600 的本机私有 .qiaocut-local-preferences.json 持续授权补入。公开 Skill 不预置此文件,默认仍阻断;--yes=false 明确拒绝时不得被持续授权覆盖。下载/使用仍需遵守账号和素材权利边界。
  • 33tc 下载恢复:pick/cut/download 的 HTTP(S) 媒体读取默认启用最多 5 次有限 ffmpeg 重连,可用 QIAOMU_33TC_FFMPEG_RETRY=off 诊断关闭。若远端任务已创建但下载仍失败,wrapper 显示现有 task ID 和 download --no-status 恢复命令;不得重新调用 cut --yes 只为修复下载。
  • clipseek:作为免费素材发现入口;返回的 link_url 指向 Pexels/Pixabay 等原站。下载和许可必须回到原站记录,不能只引用 ClipSeek 的“免版权”描述。
  • imagegen:可生成缺口画面、封面、插画、背景,但必须标记为 AI-generated。
  • listenhub:可提供图片、视频、TTS、Voice、音乐、Podcast、Explainer、Slides、内容解析和本地 ASR。远端操作委托单独安装的官方 CLI;只读取 LISTENHUB_API_KEY 或 CLI 本机凭据,不接受 key 参数。生成结果先捕获到项目私有目录,再安全下载和写入 manifest;默认标记 ai_generated、provider_terms_unverified。
  • vendor/marswaveai-skills:完整上游快照仅作锁定证据,嵌套入口已改名为 SKILL.example.md,不得自动激活。尤其禁止执行 cola-avatar-pack 的 agent-memory 持久化、主目录写入或删除指令。
  • local:用户本地素材优先,不能删除或覆盖原文件。
  • web-info:人物/事件/事实类视频必须记录来源链接;不确定信息要标记待核验。

英语学习或跨语言视频默认采用三层字幕:主语言原句、自然中文译文、顶部词义/语境。影视作品来源保留在素材清单和 license report,默认不烧录到画面;只有用户明确要求或内容语义需要时才设置 showSource: true。译文以自然表达优先,不机械逐词对齐。其他视频按内容需要删减层级,不为了形式强加双语。

9:16 英语学习视频在 1080×1920 画布上的默认字号为:英文主句 88 px、中文 72 px(加粗)、顶部标题 76 px(加粗)。安全区用于标记平台 UI 风险,不得机械地把文字压到电影画面上。横屏影视片段以 containBlur 居中时,优先把顶部标题放在画面上方留白约 y=560,把英文和中文放在画面下方留白约 y=1420/1560;若素材实际边界不同,按预览中的画面边缘动态调整。preview 必须检查 8 个代表帧和手机尺寸单帧,确认标题、英文、中文均不覆盖电影画面、人物或原片字幕,同时评估平台 UI 风险。完整依据见 references/social-safe-zones.md。

英语学习、社交短视频、品牌内容和 explainer 科普 默认同时生成片头与片尾。片尾不得省略:必须包含“向阳乔木”、@vista8 和与内容匹配的关注 CTA。片尾 CTA 必须是口播+画面双通道:outro 旁白句子里要说出关注引导(推荐「关注向阳乔木,继续拆解…」),画面用品牌卡/定帧承接;禁止只有角落小字、或只有画面没有口播。spec gate 用 outro-spoken-brand-cta / outro-visual-brand-cta 在付费 TTS 前阻断。片头与片尾使用同一视觉家族但不同构图和入退场动效。用户可从 references/brand-card-templates.md 的 20 套模板指定 templateId;未指定时运行 scripts/brand_templates.js 按题材选择,不固定套用一种。模板 ID、编号、内部风格名、调试标签和制作注释只能留在工程元数据,严禁进入公开画面、字幕、旁白或封面。片尾默认不用 push-in、pull-back 或任何缩放运镜,优先使用 100–200 ms 闪色/跳切/图形弹出后直接定帧的 snap-flash-pop 节奏。模板输出须落实为 timeline 镜头或等价可渲染资产,并在 preview 中观看完整动效。

影视台词截取必须以完整句为边界,禁止只用固定的前后秒数。单条目标句可用 assertComplete;需要保留 setup 语境时必须把多条 before/previous/current/next/after 交给 assertCompleteContext。它会拦截小写从句、标点或省略号开头的 setup,例如 that says...、when we do it again...、taking a shower...。默认前留 450 ms、后留 750 ms;找不到完整开头或结尾时必须补取更多字幕、ASR 或人工听审,不能进入付费裁切。preview 还要听开头和结尾,拒绝截在连词、从句、未落地尾音或下一条字幕明显续句的位置。

完整句边界解决“说什么”,镜头呼吸解决“听起来是否舒服”,两者不能互相替代。影视英语混剪先按字幕 cue 清掉首尾残句,再对已通过审计的片段运行 english-mix pace --apply:首帧静音停留 60 ms、尾帧静音停留 500 ms,音频淡入 40 ms、淡出 160 ms;相邻 shot 再用 200 ms fade/audio acrossfade 重叠。这样默认保留约 300 ms 完整尾帧后才开始转场,有效语音间约有 360 ms 呼吸。只加静帧不加转场,或用静帧掩盖半句,均禁止作为默认。优先保留原片真实停顿;缺少安全空白且扩展 range 会带入下一句时,才使用静帧 + 静音派生。禁止直接覆盖原始下载文件。

镜头数量是上限而不是配额。要求“10 段”时只选择最多 10 段通过质量门的独立素材;不足 10 段必须按实际数量交付,禁止复制文件、重复下载同一场景、微调时间码复用同一镜头,或用近重复片段硬凑数量。候选去重至少同时检查:文件 SHA-256、稳定素材 ID、作品/集数与时间区间、标准化台词、视觉抽帧相似度。任何一项确认同源就只保留最佳版本,并在报告写明 selected/target 与删除原因。

中文排版按 references/chinese-font-themes.md 选择语义匹配的字体主题,标题、中文译文和英文可以分别指定 fonts.title/chinese/english。先检测字库和授权;缺失时回退 Noto Sans CJK SC 并在报告记录,禁止静默缺字或把本机字体打包进 Skill。

更多见 references/source-adapters.md 与 references/licensing.md。

默认生成策略

  • 讲解音频:只要成片需要新增中文旁白,provider 优先级为 ListenHub → 用户/项目录音 → macOS say 临时预览。默认使用 qcut listenhub narration;它以“向阳乔木 v1.1”为默认音色(--voice-name 默认值即此,不需要指定),只接受唯一精确匹配、默认 MP3 并自动完成 staging → ingest。生成是可能计费动作,授权可来自本轮请求或本机私有持续授权(见「持续积分授权」);持续授权存在时直接生成,不再停下来询问,但仍报告任务账本。TTS 返回后必须把带 provenance 的 timelineNarration 对象写入 timeline.json(narration.engine=file)——只生成不接线是已发生过的交付事故,preview/final 的 narration-wired 硬门会拦截;materialize 会保留已接线的 narration(音频哈希匹配时),不会被重新物化冲掉。timeline 使用命令返回、带 speaker/text provenance 的 narration.engine=file 对象。
  • 配乐:explainer 知识讲解片默认 music: false(程序化合成垫反馈难听)。只有用户明确要求配乐时才改 music.mode=file 并接入授权清晰的音频;不要把程序化合成垫当作默认交付。
  • 音色回退:ListenHub 未安装、认证未就绪、精确音色不存在或调用失败时,不得悄悄换成另一位主播。已有用户录音可直接回退;没有时应说明 blocker。macos-say 只可作为标明身份不一致的节奏预览,不能冒充“向阳乔木 v1.1”终稿。
  • 生图风格:不要把“电影感”“3D”“扁平插画”等单一模板套在所有任务上。先用 qcut plan 从 brief 生成具体 visual bible ID、媒介、时代、情绪、色板、光线、镜头/构图、材质、字体、负面提示和 prompt prefix;不同 scene 只改变动作、景别和叙事信息。生成结果通过 qcut ingest/fetch --visual-bible-id --prompt --seed 回写实际 provenance。
  • 内容匹配门:每张候选图都要回答“它如何服务当前 scene”。人物身份、年代物件、地理环境、情绪、品牌和事实性任一不符,就拒绝候选或重写 prompt;画面漂亮不能抵消内容不匹配。
  • 连续性:把 visual bible 和每张图的 prompt/seed/model(provider 返回时)写入 IR 或生成记录。需要故意改变风格时,把变化写成叙事转折,而不是生成漂移。
  • 审美禁用项:读取 references/aesthetic-preferences.md。卡片、引用、结论和 callout 禁止使用左侧彩色竖线或 border-left 充当层级;改用留白、字号、对齐、完整轮廓、整体色面和运动节奏。

渲染原则

  • 默认使用 ffmpeg-full,需要 libass、drawtext、subtitles/ass、overlay 等能力。
  • 不强制覆盖用户系统 ffmpeg;优先使用 /opt/homebrew/opt/ffmpeg-full/bin/ffmpeg 或 QIAOMU_FFMPEG。
  • 复杂动效先生成中间视频/透明层,再由 ffmpeg 合成。
  • 字幕默认使用 ASS 或 HTML/SVG 渲染,避免普通 burned text 太粗糙。
  • doctor 若发现缺少 libass、drawtext、subtitles、overlay 或 tmix,直接运行 qcut setup --only ffmpeg;它通过 Homebrew 安装 ffmpeg-full(Linux 用 apt),不替换用户已有系统 ffmpeg。
  • 重要项目必须保留 QiaoCut IR,让用户能复盘和二次修改。
  • 时间线内所有读写路径必须是项目相对路径并通过物理路径检查;默认不覆盖已有输出,只有核对目标后才使用 --force。
  • v0.3 内置 preview / standard / final 三档:preview 为 960 长边/24 fps 上限、basic 校验且默认无 contact sheet;standard 为 1280 长边/30 fps 上限、响度与静音校验;final 保留 timeline 原始输出参数、两遍响度、contact sheet 和 full 校验。只有 final + full 通过且字幕字体已验证才是 releaseReady。
  • v0.4 支持 narration.engine=file:ListenHub TTS/Voice/Podcast 或用户录音必须先进入项目,再按 start/trim/gain 规范化;timeline 不接受远端 URL。
  • v0.5 把 explainer-social 升级为可执行工作流:内置 HTML/SVG 逐帧捕获、Manim 导出归一化、ASS 动态字幕、soundEffects[] 独立音效轨和 ffmpeg xfade/acrossfade 镜头转场。这些场景仍先输出项目内 MP4 中间资产,再由 timeline 合成,便于缓存、复现和审查。
  • v0.6 增加一句话 explainer Autopilot;HTML/SVG 使用无中间帧文件的 image2pipe;场景按依赖增量顺序渲染;显式字幕坐标随 preview/standard 比例缩放;默认向阳乔木 v1.1 MP3;author gate 检查一手来源、时长、字幕/组件重复和左色条禁用项。
  • v0.6.1 把“同期画面文案与字幕同句”升级为 author gate 硬阻断:支持四个以上汉字的短句、跨 HTML 标签文案、脚本动态注入文案,并只比较时间上重叠的 scene 与 caption,避免跨镜头误报。
  • v0.7 把科普制作改为增量生产图:统一 production spec 和生成前缓存门;七类参数化组件减少自由编写;校验返回精确 repairPlan;HTML/SVG 场景批量复用一个 Chrome;场景按内容哈希跨项目复用;未改变的 preview/final 复用已通过的复杂校验。Spec 锁定后,Agent 必须并行推进一次 TTS 请求和本地组件/资产创作。
  • v0.8 增加轻量认知质量闭环:production spec v1 通过 contractVersion=2 启用 cognitiveTask/primaryFocus/visibleChange,参数化运行时消费真实焦点和过程变化;preview 为每个 scene 生成首尾双帧 scene-review.json 软审查;explainer timing 记录音频 SHA、实测时长和有证据的 phrase/duration 降级,不引入强制逐词对齐依赖。
  • v0.9 增加 english-mix 快速通道:付费前多字幕上下文门、33tc 有界网络重试与既有任务恢复提示、下载后音视频/SHA/目标句审计、单 Chrome 卡片 batch,以及 preview 的 8 帧 + 手机长字幕自动审看资产。
  • v0.9.1 增加 english-mix pace:不覆盖原始影视素材,以可调首尾静帧、静音、短音频淡入淡出和 200 ms fade/acrossfade 契约消除硬起硬停;逐片段生成 -60 dB 边界验收报告,并禁止“静帧后仍硬切”的伪呼吸。
  • v0.9.2 校正英语混剪节奏:第 0 帧即完整封面,片头/分组卡分别不超过 700/600 ms,第一句原声不晚于 1.2 秒;支持 trimStartMs/trimEndMs 清掉残句,并采用 60 ms 入场、500 ms 尾帧、40/160 ms 音频淡入淡出和 200 ms 交叉转场。
  • v0.9.3 区分封面与短语介绍卡:封面保持 700 ms 快速进入,介绍卡默认 1200 ms、最多 1400 ms,第一句原声控制在 1.8 秒内,避免为了追求快节奏牺牲阅读时间。
  • v0.9.4 根据连续节奏反馈把短语介绍卡默认延长到 2000 ms、上限 2200 ms;封面仍为 700 ms,第一句原声控制在 2.6 秒内。
  • v0.9.5 explainer/品牌片尾强制 口播关注 CTA:production-spec 的 outro 旁白必须含 向阳乔木 且含 关注 或 @vista8;outro 画面必须同期有品牌 CTA;spec gate 规则 outro-spoken-brand-cta / outro-visual-brand-cta 在 TTS 前硬阻断。
  • v0.9.6 参数化组件动效语义落地:primaryFocus 渲染为真实聚光(非焦点压暗降饱和、焦点光晕+4 秒微脉冲);visibleChange.kind=state 在焦点执行 from→to 文本变形+高亮环闪现(无文本层时退化为左右高亮迁移),kind=process 让序列节点在场景 15%→90% 全程逐个激活、连接符随进度生长,消除"前 1/3 播完后画面冻住"的死时间;静态 →/↓/VS 字符替换为可绘制 .connector;spec 场景可选 beats(activate/swap/pulse)对齐旁白重音。scene-review 升级为首/中/尾三帧,并对声明 state/process 的场景自动做首尾帧差检测(YAVG < 2.0 直接判 visibleChangeVerified=false)。新增 npm run motion:smoke(运动学纯函数单测 + headless 行为断言 + 渲染帧差验证)。
  • v0.9.7 声画对齐与音频验收:qcut explainer beats 从 phrase 边界 + 场景内静音检测推导 beats 写回 spec(动作落在分句点上,不再按时长比例猜);narration-wired 硬门:spec 旁白已锁 timing 但 timeline.narration.engine 仍为 none 时 preview/final 报错——TTS 返回的 timelineNarration 必须写进 timeline;materialize 保留人工接线(engine=file 且音频哈希匹配的 narration、用户显式选择的 music 不被重新物化冲掉);final 成片抽听:声明 file 旁白但成片中段 RMS < −40 dB 报错;explainer 默认 music: false(程序化合成垫反馈难听,需要配乐须用户明确要求);动效增加 snap 落位后的磁吸 settle 微振(QiaoCutMotion.settle),focus-sequence 不再画矩形光晕圈(强调由步骤激活态承担)。
  • v0.10.0 机制原生视觉与多样性硬门:新增 prediction-field、segmentation-flow、optimization-loop、filter-conveyor、balance-system、state-morph、risk-dashboard 七类机制组件,分别实现概率竞争、切分编码、前向/损失/梯度回流、数据炼化、三角平衡、状态跃迁和风险仪表盘;新项目升级为 contractVersion=3,强制 visualMechanism 输入→过程→结果、至少 4 种组件、至少 4 个机制型组件、通用卡片最多 1 个。scene review 新增 explanationVisible,不再允许“卡片在动但原理没被解释”。
  • v0.12.1 图片零缩放契约:新项目 contractVersion=5 的 evidence-photo 只允许定帧、左右揭幕、上下浏览和焦点显现;图片元素及 focus-photo 外层容器均禁止 scale,push-in 在 spec gate 硬阻断。
  • v0.13.0 代码动态图形工作室:新增 motion-design 工作流与 qcut motion(六段式 brief、节拍网格分镜硬门、确定性 lint、正序/倒序/冷启动 probe、循环接缝检查、子帧动态模糊、峰值对齐音效、−14 LUFS 迭代母带)和 qcut audio beats|peak(无依赖节拍网格:谱通量起音、自相关测速、样本级起音校准与稳健线性拟合、低频强拍相位、小节能量与 drop);scene 渲染支持异步 seek、--motion-blur、--scale;timeline 音效支持 alignPeak。依据是 54 个 Opus 5.5 代码生成视频案例的调研(reports/prior-art-research.md)。
  • v0.14.0 封面即第 0 帧:新增 references/cover-thumbnail-method.md(YouTube 高点击封面调研:先定承诺、选原型、≤ 6 字、明度对比、避开时长徽标、168 px 可读、开头兑现、测试和比较按观看时长)与 qcut cover check|export(首帧非黑、对比度、分辨率、JPG ≤ 2 MB、定帧 PSNR、信息流预览);motion init 脚手架以两拍的 s00 封面开场(有音乐时对齐真实拍点),motion check 新增 cover-missing/cover-unwritten,motion probe 拦截黑屏开场,新增 qcut motion cover 从 t=0 渲染多变体缩略图。
  • v0.15.0 一支片一个创意:新增 references/ad-concept-library.md(Apple iPod 剪影 / Think Different / Vision Pro 发布片 / Nike 动态字体等原型、差异矩阵、配乐与音效分开)、brief.concept 字段与 concept-unwritten 硬门、qcut motion diversity 批量多样性检查(archetype / 配乐 / 结构 / reference 相同即阻断,节拍、主色、字体、时长相近则警告)。
  • v0.16.0 用实物讲原理:code-motion-direction.md 新增 §9(物体即解释、概念→实物映射、可调用 anatomy 出交互等距图)、§3 一个真相模型、§4 不跳变包络与 1×/4× 两档看图;借鉴 wheresryan22/anatomy(MIT)。
  • 省略 --profile 仍默认 final,但 Skill 的工作流必须先 preview、内容锁定后才 final。不要为了“省时间”关闭路径、安全、no-clobber、输入存在性和基础流校验。
  • 项目缓存默认位于 .qiaocut/cache/,复用镜头片段、TTS 和字幕画面;只在排查缓存时使用 --no-cache。不要删除或覆盖原始素材。
  • 科普场景共享缓存默认位于 ~/.cache/qiaomu-cut/scenes-v1,可用 QIAOMU_CUT_SHARED_CACHE 指向其他目录或设为 off。缓存键包含源码、依赖内容、引擎、尺寸、帧率、时长和渲染器版本;命中时复制到项目,不以路径或 mtime 冒充内容相同。
  • 有字幕而未指定 fontsDir 时,可自动复用本机 Noto Sans CJK SC 到项目私有缓存。不得把本机字体加入 skill、Git 仓库、素材包或交付包;跨机器字体由项目方按许可证自行提供。
  • v0.3 的 60 秒 DIG 样片实测:原 final 71.6 秒;preview 冷缓存 27.7 秒、暖缓存 3.3 秒;standard 冷缓存(TTS 已暖)27.1 秒、暖缓存 4.1 秒;final/full 冷缓存(TTS 已暖)65.6 秒、暖缓存 8.5 秒。该数据只说明相同开发机的相对收益,不承诺其他机器速度。
  • HTML/SVG 捕获需要 playwright-core + Chromium + ffmpeg-full,Manim 渲染需要 Manim CLI;doctor 会逐项报告。PPT 直出、复杂遮罩、速度渐变和更完整的转场库仍属外部引擎路由,不能描述为已全部内置。

质量门

完成前至少报告:

  • 使用了哪些素材源,哪些是搜索素材,哪些是 AI 生成,哪些是用户本地素材。
  • 输出视频路径、分辨率、时长、编码和文件大小。
  • 最终交付报告中的 profile、validation、releaseReady、缓存命中和阶段耗时。
  • 使用转场和独立音效时,报告必须列出实际 transitions 与 soundEffects cues,并在 preview 中听完整转场边界,检查音效是否盖住旁白。
  • final/full 的 contact sheet、响度/峰值、黑帧与静音检查结果;涉及字幕时还要人工抽查安全区和中英文语义。preview/basic 只用于迭代,不能按发布终检报告。
  • 许可/来源记录路径。
  • ListenHub 项目私有 capture 路径、模型、远端任务 ID、预估/实际积分(若 provider 返回)和本地化后的素材路径;不得在报告里显示签名 URL。
  • 中文讲解视频默认旁白必须在 author gate 证明 provider=listenhub、speakerName=向阳乔木 v1.1,并具有 assetId / speakerId / narrationTextSha256 来源证据;用户明确选择其他音色时,以 explainer-plan.json 的精确音色契约为准。
  • explainer-social 必须通过左色条审美 lint 和同期文案重复硬检查。画面组件与字幕不得在同一时间完整显示同一句话;为每条信息指定一个视觉所有者,另一层改用图形、关系、关键词或补充解释。preview 仍需人工确认语义近似重复没有争抢。
  • explainer-social 新项目还必须通过认知契约 lint;preview 的 reports/scene-review.json 是软门,但在把总 review 的 content/composition 标为 true 前,Agent 必须逐项查看首尾帧并确认主焦点、认知结论与声明变化真实可见。
  • explainer-social 新项目还必须通过解释多样性硬门:每个 scene 的 visualMechanism 在首/中/尾帧中能读出输入→过程→结果;非片尾至少 4 种视觉组件、至少 4 个机制型组件,通用卡片/列表最多 1 个。review 的 explanationVisible 未人工确认前不得 final。
  • explainer / explainer-social 片尾必须通过 口播+画面 品牌关注门:outro 旁白含「向阳乔木」且含「关注」或「@vista8」;outro 画面含同品牌 CTA;preview 须抽听/抽看最后几秒,不能只收知识结论。
  • english-mix 必须保存 reports/source-audit.json:付费前 strict-boundaries 通过,下载后 require-media + strict-boundaries 通过;还必须保存 reports/english-mix-pacing.json,证明所有进入时间线的派生片段首尾静音低于 -60 dB,且 render report 的 transitions 不得为空、默认每个相邻 shot 为 200 ms fade/acrossfade;preview 必须生成并查看 reports/english-mix-review/contact-sheet.jpg 与 phone-long-caption.png。已有 33tc task 下载失败时报告必须证明复用了 task ID,不能用新任务掩盖下载故障。
  • 批量做多支片时,交付 qcut motion diversity 通过的报告,并逐支说明创意原型、参考广告、配乐风格;不同片的结构不得相同。
  • 非循环成片必须以封面开场:交付 renders/cover/ 缩略图(1280×720 JPG ≤ 2 MB)和 qcut cover check 报告,第 0 帧通过非黑门;人工确认 168 px 预览可读、正片前 5 秒兑现封面。
  • motion-design 必须保存 reports/motion-check.json(status 为 ready)、reports/motion-probe.json(determinism.deterministic=true,循环片 loop.seamless=true,且 sceneSha256 与最终场景一致)和 reports/motion-render-final.json;交付时列出 banned 列表、节拍网格来源、音效 cue 的 eventAt/peakMs/placedAt、实测 LUFS,并说明哪些画面是真实素材、哪些是代码绘制。
  • 不能验证的能力写 missing evidence,不要把计划当事实。

参考文件

  • references/qiaocut-ir.md:中间格式。
  • references/timeline-schema.md:可执行 qiaocut.timeline.v1、双语字幕与 no-clobber 渲染契约。
  • references/workflows.md:工作流矩阵。
  • references/source-adapters.md:素材源适配器。
  • references/renderer-engines.md:渲染引擎。
  • references/cinematic-techniques.md:转场、运镜、遮罩、字幕、电影级剪辑手法。
  • references/ffmpeg-full.md:ffmpeg-full 安装与检查。
  • references/licensing.md:授权和来源记录。
  • references/trust-boundary.md:公开发布与账号边界。
  • references/listenhub-provider.md:MarsWave 完整快照、能力路由、认证、费用/上传门、任务账本、下载与 timeline 映射。
  • references/feedback-evolution.md:用户反馈记录、偏好抽象、冲突处理与默认值升级协议。
  • references/explainer-autopilot.md:一句话科普的高速端到端生产顺序、失败预防和 done gate。
  • references/english-mix-fast-path.md:影视英语混剪的付费前上下文门、弹性下载、媒体审计、批量卡片和手机帧审看。
  • references/incremental-production.md:production spec、并行生成、内容哈希缓存、精确失效和最小修复契约。
  • references/aesthetic-preferences.md:向阳乔木的跨项目视觉偏好与禁用组件模式。
  • references/social-safe-zones.md:TikTok/抖音竖屏安全区依据、像素换算、保守交集和验收规则。
  • references/brand-card-templates.md:20 套片头/片尾品牌模板、默认选择和 CTA 规则。
  • references/chinese-font-themes.md:中文字体主题、语义选型和授权回退规则。
  • references/ad-concept-library.md:宣传片创意库——原型、机关、参考广告、差异矩阵、配乐分开、diversity 验收与来源。
  • references/cover-thumbnail-method.md:封面/缩略图方法论——承诺先行、原型、构图与文字、融入开头、测试和比较、qcut 验收项与来源。
  • references/code-motion-direction.md:代码动态图形导演法——导演信六段结构、Banned、先分镜、确定性、真相模型、不跳变包络、两档看图、画面与声音工程、路线选择与成本、用实物讲原理。
  • references/motion-prompt-patterns.md:一句话扩写规则与 7 套可复制导演信模板(产品片、UI 循环、讲解片、线稿/口播改线稿、代码电影、像素规格、歌词 MV)。
  • THIRD_PARTY_NOTICES.md:上游 MIT 版权、固定 commit/tree 和非关联声明。

レビュー

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

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