#607 by GitHub stars

JimLiu/baocut

BaoCut: an AI video agent with an editable timeline. Transcribe, subtitle, translate, dub, cut and animate.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

packages/runtime-core/src/skills/testing/agent-skill-fixture/skills/baocut/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

packages/runtime-core/src/skills/testing/agent-skill-fixture/skills/baocut/built-in-skills/demo-chapters/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

packages/runtime-core/src/skills/testing/agent-skill-fixture/skills/baocut/built-in-skills/demo-polish/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/clip-montage/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/cover-and-title/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/cross-video-qa/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/design/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/design-system/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/docs/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/explainer-video/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/history-video/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/motion-graphics/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/narration/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/polish-transcript/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/production-scripts/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/shorts-segments/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/slides/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/speaker-labeling/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/subtitle-workflow/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/talking-head-cut/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/titles-and-description/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/translate-subtitles/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/video-blog/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/video-chapters/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/video-production/SKILL.md

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

ab45aefbf2c3 → 48b701a3fad6

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

skills/baocut/built-in-skills/video-summary/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Not checked yet → After Instructions only

ab45aefbf2c3 → 48b701a3fad6

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 48b701a3fad673ee75e6935b194f93fa3822e23e

git clone --filter=blob:none --no-checkout https://github.com/JimLiu/baocut.git .hotskills/jimliu-baocut && git -C .hotskills/jimliu-baocut checkout --detach 48b701a3fad673ee75e6935b194f93fa3822e23e # Copy each selected skill directory from .hotskills/jimliu-baocut into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/JimLiu/baocut.git .hotskills/jimliu-baocut && git -C .hotskills/jimliu-baocut checkout --detach 48b701a3fad673ee75e6935b194f93fa3822e23e # Copy each selected skill directory from .hotskills/jimliu-baocut into .agents/skills/<skill-name>/
1.7kGitHub stars
49stars in 7 days
27skills in this repository
1.4kcommits in 30 days

Heat

7.4
  • Star growth, last 7 daysAhead of 95% of tracked repositories
  • Star growth, last 24 hoursAhead of 95% of tracked repositories
  • Rank movement, last 7 daysAhead of 44% of tracked repositories
  • Commits, last 30 daysAhead of 100% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 20261,689

Individual skills in this repository

How it works

baocut

When your agent uses it

测试用的说明书:用 BaoCut 转录、翻译、剪辑与导出视频。

What it loads into context

Frontmatter

32 tokens

Always available to the agent

SKILL.md

490 tokens

When the skill is activated

Reference documents

3,025 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 启动
  2. 目录
  3. 硬规则
  4. 交付

Files

  • SKILL.mdcore1,719 bytes
  • references/catalog/editing.mddoc2,138 bytes
  • references/catalog/media.mddoc265 bytes
  • references/conventions.mddoc3,228 bytes
  • references/craft/README.mddoc127 bytes
  • references/craft/demo-chapters.mddoc385 bytes
  • references/craft/demo-polish.mddoc941 bytes
  • references/craft/demo-polish/references/notes.mddoc367 bytes
  • references/mcp.mddoc2,082 bytes
  • references/start.mddoc233 bytes
  • references/workflows.mddoc214 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • baocut
  • 示例分章
  • 示例润色
  • baocut
  • clip-montage
  • cover-and-title
  • cross-video-qa
  • design
  • design-system
  • docs
  • explainer-video
  • history-video
  • motion-graphics
  • narration
  • polish-transcript
  • production-scripts
  • shorts-segments
  • slides
  • speaker-labeling
  • subtitle-workflow
  • talking-head-cut
  • titles-and-description
  • translate-subtitles
  • video-blog
  • video-chapters
  • video-production
  • video-summary

Repository facts

License
No license detected
Created
Jul 13, 2026
Last pushed
Nov 6, 2026
Forks
172
Open issues
5
Project activity
Active

Rank over the last 12 weeks

Now #607 · best #570 · up 366 in 30 days

  1. #600 on Oct 31
  2. #601 on Nov 1
  3. #604 on Nov 2
  4. #605 on Nov 3
  5. #606 from Nov 4 to Nov 5
  6. #607 since Nov 6
71 earlier periods
  1. #844 on Aug 2
  2. #841 on Aug 7
  3. #846 from Aug 8 to Aug 9
  4. #881 on Aug 10
  5. #883 on Aug 11
  6. #880 on Aug 12
  7. #879 on Aug 13
  8. #856 on Aug 14
  9. #828 on Aug 15
  10. #850 on Aug 16
  11. #851 on Aug 17
  12. #870 on Aug 18
  13. #863 on Aug 19
  14. #852 on Aug 20
  15. #809 on Aug 22
  16. #865 on Aug 23
  17. #877 on Aug 24
  18. #888 on Aug 25
  19. #874 on Aug 26
  20. #877 on Aug 27
  21. #917 on Aug 28
  22. #835 on Aug 29
  23. #838 on Aug 30
  24. #883 on Aug 31
  25. #918 on Sep 1
  26. #894 on Sep 3
  27. #858 on Sep 4
  28. #833 on Sep 5
  29. #868 on Sep 6
  30. #895 on Sep 7
  31. #913 on Sep 8
  32. #897 on Sep 9
  33. #895 on Sep 10
  34. #899 on Sep 14
  35. #888 on Sep 15
  36. #883 on Sep 18
  37. #859 on Sep 19
  38. #878 on Sep 20
  39. #898 on Sep 21
  40. #919 on Sep 22
  41. #875 on Sep 24
  42. #852 on Sep 26
  43. #872 on Sep 27
  44. #921 on Sep 28
  45. #949 on Sep 29
  46. #915 on Sep 30
  47. #882 on Oct 4
  48. #902 on Oct 5
  49. #892 on Oct 6
  50. #931 on Oct 7
  51. #973 on Oct 8
  52. #923 on Oct 9
  53. #883 on Oct 10
  54. #820 on Oct 11
  55. #777 on Oct 12
  56. #744 on Oct 13
  57. #734 on Oct 14
  58. #717 on Oct 15
  59. #718 on Oct 16
  60. #691 on Oct 17
  61. #676 on Oct 18
  62. #704 on Oct 19
  63. #691 on Oct 20
  64. #684 on Oct 21
  65. #654 on Oct 22
  66. #598 on Oct 23
  67. #570 on Oct 24
  68. #630 on Oct 25
  69. #602 on Oct 28
  70. #600 on Oct 29
  71. #601 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 3, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 8 notes
  • skills/baocut/references/craft/design-system/references/demo.json:1 [Credential-related source omitted]
  • skills/baocut/references/craft/production-scripts/scene-kit/geo110.js:4 Analysis incomplete: physical or joined line exceeds character limit
  • skills/baocut/built-in-skills/cross-video-qa/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/baocut/built-in-skills/design-system/references/demo.json:1 [Credential-related source omitted]
  • skills/baocut/built-in-skills/production-scripts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/baocut/built-in-skills/production-scripts/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/baocut/built-in-skills/production-scripts/scene-kit/geo110.js:4 Analysis incomplete: physical or joined line exceeds character limit
  • skills/baocut/built-in-skills/shorts-segments/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 154 signals by file

skills/baocut/built-in-skills/clip-montage/references/sourcing.md

  • Network accessline 9
    - **网上的视频下载前先过用户**:BaoCut 的素材检索里 Commons 与 Internet Archive 的许可清楚(public-domain、cc0 随便用,cc-by 要署名,cc-by-sa 要求成片同样许可,带 nc 的只许非商业),按用户说的用途筛;YouTube 的许可多半没写(版权归上传者),把要用的几条(标题、频道、链接)列给用户,由用户决定。用户一次说过「都可以下,后续我去取授权」就不再逐条问,只在交付时列清单。

skills/baocut/built-in-skills/design-system/references/demo.json

  • Network accessline 1
    [Credential-related source omitted]

skills/baocut/built-in-skills/design-system/references/format.md

  • Network accessline 64
    // recipe:extract-content — the file table out of a one-file PAGE (kept in files: skip) const html = await (await fetch(ARTIFACT_URL)).text();
  • Network accessline 65
    const html = await (await fetch(ARTIFACT_URL)).text();
  • Possible obfuscationline 84
    const p = v.slice(v.indexOf(',') + 1), bytes = /;base64,/.test(v.slice(0, v.indexOf(',') + 1)) ? Uint8Array.from(atob(p), c => c.charCodeAt(0)) : new TextEncoder().encode(decodeURIComponent(p)); // assets = paths under assets/

skills/baocut/built-in-skills/design-system/references/from-code.md

  • Network accessline 5
    两样都要有:一个**读**仓库的途径——带 `git`/`gh` 的 shell(把仓库克隆到一个临时目录,或者工作目录本身就是它),或者 GitHub 连接器的文件、搜索和提交工具——以及你的文件工具,用来写设计系统的目录。缺任何一样:说出来(没有连接器也没有 checkout:请用户改为把文件放到工作目录里;连接器看不到的私有仓库:请用户给权限)然后停下。在你工作目录**里面**的一个目录中干活(如果工作目录就是 checkout,不要提交它);文件内容写到那里,绝不写进

skills/baocut/built-in-skills/design/SKILL.md

  • Network accessline 33
    1. 先定设计系统,再定任何外观。本次会话的指令或用户指明了设计系统(一个目录、一个 Space 条目)?就用那些。用户拒绝了?就不用。否则在 Space(`space_list`,种类 `design-system`)和工作目录里找设计系统,每个都是一个含 `design-system.json` 的目录:找到了 → 说出它们的名字,在有人能回答时问要不要用其中一个;没人可问,或一个都没有 → 用你自己的外观。用设计系统时,在**一条**消息里用你的文件工具读它的 `REA
  • Network accessline 34
    2. 设计系统的 README 写了 bundle 的全局名(`window.<Ns>`)?**挂载**它的真组件,绝不用仿制品:现在就读 `references/design-system-components.md`。其余一切仍写成画板 markup:只为已有的或共享的组件挂载 `x-import`,绝不为你自己的内容挂载。 3. 每个图片或字体**文件**(png/jpg/gif/webp/svg;woff2/woff/ttf/otf):用 design_import_
  • Network accessline 35
    3. 每个图片或字体**文件**(png/jpg/gif/webp/svg;woff2/woff/ttf/otf):用 design_import_asset 导入(见下文;它要求磁盘上已有 `<canvas>/canvas.json`:先写好它,见第 5 步)→ 它返回的 `src`(`/_blob/<id>`)**原样**写到用到这个文件的地方:`<img src>`、`<helmet><style>` 规则里的 `url(…)`(不要写在行内 `style="…"` 里

skills/baocut/built-in-skills/design/references/format.md

  • Network accessline 56
    - **事件确实支持**:用 JSX 驼峰写法、整个值就是一个 hole 的 attribute:`onClick="{{ pick }}"`,其中 `pick` 是 `renderVals()` 返回的函数。可交互的选中 state(可点的 swatch、尺寸 pill)是这里的惯用做法:把选中项存在 `state` 里;需要每项一个处理函数时,在 `renderVals()` 里给每个循环项挂一个:`items: xs.map((x) => ({ ...x, pick: 
  • Network accessline 57
    - **控制流**:`<sc-if value="{{ cond }}" hint-placeholder-val="{{ true }}">…</sc-if>` 做分支;`<sc-for list="{{ items }}" as="item" hint-placeholder-count="3">` 做重复,作用域里有 `{{ item.x }}` 和 `{{ $index }}`。始终设置 `hint-*` attribute(值还在流式传入时,渲染的就是它们)。 - 
  • Network accessline 58
    - **画板之间的链接**:`<a href="Cart.dc.html">View cart</a>` 让 Play 切到那块画板,原地或全窗口都一样(编辑时不会)。href 是目标相对于本画板的路径;以 `/` 开头表示设计稿根目录(`/sub/Cart.dc.html`)。把 `<a>` 本身做成按钮的样子:放在它里面的 `<button>` 或 input 会吞掉点击。`href="#id"` 在画板内滚动;`https://…` 打开一个新标签页。每块画板有自己的 

skills/baocut/built-in-skills/docs/references/editing.md

  • Network accessline 36
    {"op":"delete","target":{"kind":"find","text":" if legal review runs long"}},   {"op":"insert","target":{"kind":"blocks","ids":["mq2x81a0kfd.16"]},"side":"after",    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retr
  • Network accessline 37
    {"op":"insert","target":{"kind":"blocks","ids":["mq2x81a0kfd.16"]},"side":"after",    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retro on Oct 6\n- [Vendor pricing](https://example.com/pricing)"}}},   {"op":"replac
  • Network accessline 38
    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retro on Oct 6\n- [Vendor pricing](https://example.com/pricing)"}}},

skills/baocut/built-in-skills/docs/references/tabs.md

  • Network accessline 19
    {"$lid":"n","verb":"create","object":"node","engine":"prose",    "payload":{"parent":{"object":"file","id":"$lid:f"},               "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example
  • Network accessline 20
    "payload":{"parent":{"object":"file","id":"$lid:f"},               "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example.com/pricing), checked weekly"}}}},   {"verb":"update","ref":{"ob
  • Network accessline 21
    "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example.com/pricing), checked weekly"}}}},

skills/baocut/built-in-skills/explainer-video/SKILL.md

  • Network accessline 13
    「东西本身就是解释」、画面与读数由同一份事实驱动、像审片人一样先放大看这几条思路,参考了 Ryan 的 Anatomy skill(https://github.com/wheresryan22/anatomy),按线性视频与大众观众改写。

skills/baocut/built-in-skills/history-video/references/sources.md

  • Network accessline 23
    - 每下一张,就在 `sources.json` 记一条。 - Wikimedia Commons 一张一张地下,每次请求间隔一秒以上,并带上写明用途的 User-Agent;下得太快会被限流。 - 只要中等尺寸时,用缩略图地址 `https://commons.wikimedia.org/wiki/Special:FilePath/<文件名>?width=1600`,不下整张原图。
  • Network accessline 25
    - 只要中等尺寸时,用缩略图地址 `https://commons.wikimedia.org/wiki/Special:FilePath/<文件名>?width=1600`,不下整张原图。

skills/baocut/built-in-skills/motion-graphics/references/grammar.md

  • Network accessline 141
    3. 统一出场那行在,结束前 0.62 s 开始、0.05 s 结束。 4. 所有 `range(time, a, b)`:a、b 只用数字、`DURATION` 与四则运算(否则 lint 只能给警告);第一个 a ≥ 0.02;每个 0.2 ≤ b − a ≤ 2.0,且不越出 0–duration;最后一个入场的 b ≤ 出场开始 − 1.2(连续动效除外)。写在 `Math.sin(...)` / `Math.cos(...)` 参数里的 `range`(pulse 
  • Network accessline 142
    4. 所有 `range(time, a, b)`:a、b 只用数字、`DURATION` 与四则运算(否则 lint 只能给警告);第一个 a ≥ 0.02;每个 0.2 ≤ b − a ≤ 2.0,且不越出 0–duration;最后一个入场的 b ≤ 出场开始 − 1.2(连续动效除外)。写在 `Math.sin(...)` / `Math.cos(...)` 参数里的 `range`(pulse 这类停留期动效)不算入场窗口。 5. 没有 `http://`、`htt
  • Network accessline 143
    5. 没有 `http://`、`https://`、`//` 开头的地址,没有 `<script src>`、`<link>`、`@import`、`fetch(`、`XMLHttpRequest`、`WebSocket`、`EventSource`、动态 `import(`。

skills/baocut/built-in-skills/motion-graphics/scripts/build-bundle.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 255
    [/<link\s/gi, 'EXTERNAL_LINK', '<link>'],     [/@import\b/g, 'CSS_IMPORT', '@import'],     [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],
  • Network accessline 256
    [/@import\b/g, 'CSS_IMPORT', '@import'],     [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],     [/\bXMLHttpRequest\b/g, 'NETWORK_API', 'XMLHttpRequest'],
  • Network accessline 257
    [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],
  • Dangerous shell operationline 282
    while ((rm = rafRe.exec(html))) {

skills/baocut/built-in-skills/production-scripts/scene-kit/geo110.js

  • Executable scriptline 1
    Executable file

skills/baocut/built-in-skills/production-scripts/scene-kit/scene-kit.js

  • Executable scriptline 1
    Executable file

skills/baocut/built-in-skills/production-scripts/scripts/align.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/assemble.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/build.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/captions.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/coverage.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/envelope.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/fonts.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/gaps.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/legibility.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/level.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/lib.mjs

  • Executable scriptline 1
    Executable file

skills/baocut/built-in-skills/production-scripts/scripts/overlay.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/preview.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/quotes.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/production-scripts/scripts/sources.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Possible obfuscationline 88
    fs.writeFileSync(csv, '<U+FEFF>' + [keys.map(k => cell(cols[k])).join(','), ...rows].join('\n') + '\n');

skills/baocut/built-in-skills/production-scripts/scripts/srt.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Possible obfuscationline 43
    return body.replace(/^<U+FEFF>/, '').replace(/\r\n?/g, '\n').trim().split(/\n{2,}/).flatMap(block => {

skills/baocut/built-in-skills/production-scripts/scripts/voice.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/built-in-skills/slides/SKILL.md

  • Network accessline 40
    "source-sans-3": {       "family": "Source Sans 3",       "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"
  • Network accessline 41
    "family": "Source Sans 3",       "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"     }
  • Network accessline 42
    "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"

skills/baocut/built-in-skills/slides/references/format.md

  • Network accessline 113
    - 页面里用到的网络字体与字体文件,都要在 `deck.json` 的 `faces` 里登记:键是自己起的短名,值是 `{ "family": "…", "href": "…" }` 或 `{ "family": "…", "src": "…" }`,`href` 与 `src` 只写一个。 - `family` 以英文字母开头,只含字母、数字、空格、`-`、`_`,最长 40 个字符,与 `font-family` 里写的完全一致。 - `href` 只能是 Google
  • Network accessline 114
    - `family` 以英文字母开头,只含字母、数字、空格、`-`、`_`,最长 40 个字符,与 `font-family` 里写的完全一致。 - `href` 只能是 Google Fonts 的 css2 地址(`https://fonts.googleapis.com/css2?family=…`),最长 1024 个字符,用到的字重都写进去。 - `src` 是 deck 里的字体文件的地址,原样写;不写 `data:`、网上地址或相对路径。只有一个字重的静态字体文
  • Network accessline 115
    - `href` 只能是 Google Fonts 的 css2 地址(`https://fonts.googleapis.com/css2?family=…`),最长 1024 个字符,用到的字重都写进去。

skills/baocut/built-in-skills/video-production/SKILL.md

  • Network accessline 24
    本做法的分阶段流程借鉴了 Manus 官方 skill video-generator,并按 BaoCut 的工具与能力改写。开头样段、视觉参考图、稿子与材料的对应表、按条处理修改意见,以及旁白用真人录音还是合成的取舍,受「大师的AI小灶」(@dashiAIxz)分享的 Opus 5.5 剪辑经验启发(https://x.com/dashiAIxz/status/2108785099663867916)。代码场景里整首歌按整帧分段、样段带上第一次高潮、角色分开画再在代码里同框

skills/baocut/built-in-skills/video-production/examples/bundle-preview.html

  • Network accessline 84
    const fresh = url => url + (url.includes('?') ? '&' : '?') + 'v=' + Date.now();   const getJson = async url => (await fetch(fresh(url))).json();
  • Network accessline 85
    const getJson = async url => (await fetch(fresh(url))).json();
  • Network accessline 126
    au.removeAttribute('src');     // 整段读成 blob 再播:简单的静态服务不支持 Range 请求,直接给地址拖不动进度     if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());
  • Network accessline 127
    // 整段读成 blob 再播:简单的静态服务不支持 Range 请求,直接给地址拖不动进度     if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());     for (const c of clips) URL.revokeObjectURL(c.el.src);
  • Network accessline 128
    if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());
  • Network accessline 132
    const el = document.createElement('video');       Object.assign(el, { className: 'clip', muted: !c.audio, volume: c.volume ?? 1, playsInline: true, preload: 'auto' });       el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blo
  • Network accessline 133
    Object.assign(el, { className: 'clip', muted: !c.audio, volume: c.volume ?? 1, playsInline: true, preload: 'auto' });       el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blob());       $('clips').appendChild(el); clips.push
  • Network accessline 134
    el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blob());
  • Network accessline 137
    if (my !== token) return;     // 入口加了时间戳,入口引用的脚本仍可能取到浏览器缓存的旧版:先按入口里的地址强制重取一遍,iframe 再加载时拿到的就是新的     const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 
  • Network accessline 138
    // 入口加了时间戳,入口引用的脚本仍可能取到浏览器缓存的旧版:先按入口里的地址强制重取一遍,iframe 再加载时拿到的就是新的     const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 'text/html');     const refs =
  • Network accessline 139
    const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 'text/html');
  • Network accessline 140
    const refs = [...doc.querySelectorAll('script[src], link[rel=stylesheet][href]')].map(el => new URL(el.getAttribute('src') || el.getAttribute('href'), new URL(entry, location.href)).href);     await Promise.all(refs.map(u => fetch(u, { cach
  • Network accessline 141
    await Promise.all(refs.map(u => fetch(u, { cache: 'reload' }).catch(() => {})));

skills/baocut/built-in-skills/video-production/examples/post-fx.js

  • Executable scriptline 1
    Executable file

skills/baocut/built-in-skills/video-production/references/code-scenes.md

  • Network accessline 84
    - **一段接一段导入**时带 `background: true`:导入立刻返回 `bakeJobId`,烘焙在后台排队串行进行(jobs_list / jobs_wait 看进度),期间接着导入下一段或改别的片段。上一段烘完写替身与下一段导入会撞版本:不给 `revision` 时 Runtime 按最新版本重试,给了就自己重试。后台任务结束后 jobs_inspect 结果的 `result.bake.renderer` 看它走了指令还是像素。改了这一段(换代码包、变速
  • Network accessline 85
    - **用 Three.js、p5 WEBGL 或别的 WebGL 库**时走不了指令,整段按截图烘焙(1080p 实测约 7–18 帧/秒,随场景复杂度变化;八分钟的片子约半小时),导入前跟用户说清要等多久。文字、数字与图解画在 WebGL 画布上面的第二张 2D 画布里(两张画布都放进根元素),比在 3D 里做文字清楚、好改。库文件放进包里(`vendor/three.module.js` 原样能用),不引 CDN;模型与贴图用 `gltf` / `glb` / `bin
  • Network accessline 86
    - **用 p5 画 2D**能走指令:实例模式 `new p5(sketch, root)` 让画布挂进根元素,`setup` 里 `pixelDensity(1)`、`createCanvas(W, H)`、`noLoop()`,`draw` 开头 `clear()`(透明)或整幅 `background(...)`(不透明,根元素写 `data-alpha="false"`),`renderAt` 记下时间后 `inst.redraw()`,`initialize` 等

skills/baocut/references/catalog/media.md

  • Network accessline 72
    候选的 `downloadWith` 说用哪个工具下载。Commons 与 Internet Archive 的许可清楚:public-domain 与 cc0 随便用,cc-by 要署名,cc-by-sa 还要求成片用同样的许可(先告诉用户),带 nc 的只许非商业用途。YouTube 的许可多半没写(`license.class` 为 `unknown`,版权归上传者):下载前把要用的几条(标题、频道、链接)告诉用户,由用户决定。

skills/baocut/references/catalog/voice-gemini-tts.md

  • Network accessline 10
    本页只描述 Gemini TTS 的预置音色体系,见 [Gemini TTS 官方音色文档](https://ai.google.dev/gemini-api/docs/speech-generation#voice-options)。实际可用项取决于所选模型、版本与服务暴露的能力,先用 {{tool:models_capabilities}} 核对;这不是 BaoCut 所有 TTS 模型共用的音色清单。

skills/baocut/references/catalog/web.md

  • Network accessline 42
    - 链接形如 `http://127.0.0.1:<端口>/home?video=…#code=…`:`#code=` 后面是**一次性代码**,两分钟内有效、只能用一次。打开后页面用它换成浏览器会话,地址栏里的代码随即去掉。
  • Network accessline 77
    - **不用先问。** 与 `web open` 一样只在本机开服务、发链接,不改视频。服务没开时它先开起来,并设为随 BaoCut 启动;结果里 `result.link.autostartEnabled` 为 true(终端里多一行说明)时,在回复里告诉用户一句。 - **开到用户面前。** 宿主有浏览器面板或浏览器工具时,直接在里面打开 `result.link.url`:审片页开在会话旁边,用户不用自己找链接,也不用访问码。同时在回复里给出整条链接,用户要在系统浏览器
  • Network accessline 78
    - **开到用户面前。** 宿主有浏览器面板或浏览器工具时,直接在里面打开 `result.link.url`:审片页开在会话旁边,用户不用自己找链接,也不用访问码。同时在回复里给出整条链接,用户要在系统浏览器、另一块屏幕上看,或之后再打开时用它。宿主没有浏览器时只给链接。不用系统命令打开它(见「前置检查」)。 - **原样给出。** `result.link.url` 形如 `http://127.0.0.1:<端口>/review/<videoId>#key=…`,`#k
  • Network accessline 79
    - **原样给出。** `result.link.url` 形如 `http://127.0.0.1:<端口>/review/<videoId>#key=…`,`#key=` 是密钥,整条都要给,不截断、不改写;宿主能渲染链接就给可点的链接。

skills/baocut/references/craft/clip-montage/references/sourcing.md

  • Network accessline 11
    - **网上的视频下载前先过用户**:BaoCut 的素材检索里 Commons 与 Internet Archive 的许可清楚(public-domain、cc0 随便用,cc-by 要署名,cc-by-sa 要求成片同样许可,带 nc 的只许非商业),按用户说的用途筛;YouTube 的许可多半没写(版权归上传者),把要用的几条(标题、频道、链接)列给用户,由用户决定。用户一次说过「都可以下,后续我去取授权」就不再逐条问,只在交付时列清单。

skills/baocut/references/craft/design-system/references/demo.json

  • Network accessline 1
    [Credential-related source omitted]

skills/baocut/references/craft/design-system/references/format.md

  • Network accessline 66
    // recipe:extract-content — the file table out of a one-file PAGE (kept in files: skip) const html = await (await fetch(ARTIFACT_URL)).text();
  • Network accessline 67
    const html = await (await fetch(ARTIFACT_URL)).text();
  • Possible obfuscationline 86
    const p = v.slice(v.indexOf(',') + 1), bytes = /;base64,/.test(v.slice(0, v.indexOf(',') + 1)) ? Uint8Array.from(atob(p), c => c.charCodeAt(0)) : new TextEncoder().encode(decodeURIComponent(p)); // assets = paths under assets/

skills/baocut/references/craft/design-system/references/from-code.md

  • Network accessline 7
    两样都要有:一个**读**仓库的途径——带 `git`/`gh` 的 shell(把仓库克隆到一个临时目录,或者工作目录本身就是它),或者 GitHub 连接器的文件、搜索和提交工具——以及你的文件工具,用来写设计系统的目录。缺任何一样:说出来(没有连接器也没有 checkout:请用户改为把文件放到工作目录里;连接器看不到的私有仓库:请用户给权限)然后停下。在你工作目录**里面**的一个目录中干活(如果工作目录就是 checkout,不要提交它);文件内容写到那里,绝不写进

skills/baocut/references/craft/design.md

  • Network accessline 31
    1. 先定设计系统,再定任何外观。本次会话的指令或用户指明了设计系统(一个目录、一个 Space 条目)?就用那些。用户拒绝了?就不用。否则在 Space(`baocut space list`,种类 `design-system`)和工作目录里找设计系统,每个都是一个含 `design-system.json` 的目录:找到了 → 说出它们的名字,在有人能回答时问要不要用其中一个;没人可问,或一个都没有 → 用你自己的外观。用设计系统时,在**一条**消息里用你的文件工具读
  • Network accessline 32
    2. 设计系统的 README 写了 bundle 的全局名(`window.<Ns>`)?**挂载**它的真组件,绝不用仿制品:现在就读 [设计系统的真组件](design/references/design-system-components.md)。其余一切仍写成画板 markup:只为已有的或共享的组件挂载 `x-import`,绝不为你自己的内容挂载。 3. 每个图片或字体**文件**(png/jpg/gif/webp/svg;woff2/woff/ttf/otf)
  • Network accessline 33
    3. 每个图片或字体**文件**(png/jpg/gif/webp/svg;woff2/woff/ttf/otf):终端里没有把它导入设计稿的命令:先不放(图片换成带说明的 placeholder),并说明这份设计需要哪些文件。.css .js .json 文件是 `<canvas>/` 下的辅助文件,用相对路径引用:`<head>` 里 `support.js` 那一行之后的 `<link rel="stylesheet" href>`、`<script src>`,以及 

skills/baocut/references/craft/design/references/format.md

  • Network accessline 58
    - **事件确实支持**:用 JSX 驼峰写法、整个值就是一个 hole 的 attribute:`onClick="{{ pick }}"`,其中 `pick` 是 `renderVals()` 返回的函数。可交互的选中 state(可点的 swatch、尺寸 pill)是这里的惯用做法:把选中项存在 `state` 里;需要每项一个处理函数时,在 `renderVals()` 里给每个循环项挂一个:`items: xs.map((x) => ({ ...x, pick: 
  • Network accessline 59
    - **控制流**:`<sc-if value="{{ cond }}" hint-placeholder-val="{{ true }}">…</sc-if>` 做分支;`<sc-for list="{{ items }}" as="item" hint-placeholder-count="3">` 做重复,作用域里有 `{{ item.x }}` 和 `{{ $index }}`。始终设置 `hint-*` attribute(值还在流式传入时,渲染的就是它们)。 - 
  • Network accessline 60
    - **画板之间的链接**:`<a href="Cart.dc.html">View cart</a>` 让 Play 切到那块画板,原地或全窗口都一样(编辑时不会)。href 是目标相对于本画板的路径;以 `/` 开头表示设计稿根目录(`/sub/Cart.dc.html`)。把 `<a>` 本身做成按钮的样子:放在它里面的 `<button>` 或 input 会吞掉点击。`href="#id"` 在画板内滚动;`https://…` 打开一个新标签页。每块画板有自己的 

skills/baocut/references/craft/docs/references/editing.md

  • Network accessline 38
    {"op":"delete","target":{"kind":"find","text":" if legal review runs long"}},   {"op":"insert","target":{"kind":"blocks","ids":["mq2x81a0kfd.16"]},"side":"after",    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retr
  • Network accessline 39
    {"op":"insert","target":{"kind":"blocks","ids":["mq2x81a0kfd.16"]},"side":"after",    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retro on Oct 6\n- [Vendor pricing](https://example.com/pricing)"}}},   {"op":"replac
  • Network accessline 40
    "source":{"as":"markdown","from":{"kind":"inline","content":"- Launch retro on Oct 6\n- [Vendor pricing](https://example.com/pricing)"}}},

skills/baocut/references/craft/docs/references/tabs.md

  • Network accessline 21
    {"$lid":"n","verb":"create","object":"node","engine":"prose",    "payload":{"parent":{"object":"file","id":"$lid:f"},               "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example
  • Network accessline 22
    "payload":{"parent":{"object":"file","id":"$lid:f"},               "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example.com/pricing), checked weekly"}}}},   {"verb":"update","ref":{"ob
  • Network accessline 23
    "source":{"as":"markdown","from":{"kind":"inline","content":"# Sources\n\n- [Vendor pricing](https://example.com/pricing), checked weekly"}}}},

skills/baocut/references/craft/explainer-video.md

  • Network accessline 11
    「东西本身就是解释」、画面与读数由同一份事实驱动、像审片人一样先放大看这几条思路,参考了 Ryan 的 Anatomy skill(https://github.com/wheresryan22/anatomy),按线性视频与大众观众改写。

skills/baocut/references/craft/history-video/references/sources.md

  • Network accessline 25
    - 每下一张,就在 `sources.json` 记一条。 - Wikimedia Commons 一张一张地下,每次请求间隔一秒以上,并带上写明用途的 User-Agent;下得太快会被限流。 - 只要中等尺寸时,用缩略图地址 `https://commons.wikimedia.org/wiki/Special:FilePath/<文件名>?width=1600`,不下整张原图。
  • Network accessline 27
    - 只要中等尺寸时,用缩略图地址 `https://commons.wikimedia.org/wiki/Special:FilePath/<文件名>?width=1600`,不下整张原图。

skills/baocut/references/craft/motion-graphics/references/grammar.md

  • Network accessline 143
    3. 统一出场那行在,结束前 0.62 s 开始、0.05 s 结束。 4. 所有 `range(time, a, b)`:a、b 只用数字、`DURATION` 与四则运算(否则 lint 只能给警告);第一个 a ≥ 0.02;每个 0.2 ≤ b − a ≤ 2.0,且不越出 0–duration;最后一个入场的 b ≤ 出场开始 − 1.2(连续动效除外)。写在 `Math.sin(...)` / `Math.cos(...)` 参数里的 `range`(pulse 
  • Network accessline 144
    4. 所有 `range(time, a, b)`:a、b 只用数字、`DURATION` 与四则运算(否则 lint 只能给警告);第一个 a ≥ 0.02;每个 0.2 ≤ b − a ≤ 2.0,且不越出 0–duration;最后一个入场的 b ≤ 出场开始 − 1.2(连续动效除外)。写在 `Math.sin(...)` / `Math.cos(...)` 参数里的 `range`(pulse 这类停留期动效)不算入场窗口。 5. 没有 `http://`、`htt
  • Network accessline 145
    5. 没有 `http://`、`https://`、`//` 开头的地址,没有 `<script src>`、`<link>`、`@import`、`fetch(`、`XMLHttpRequest`、`WebSocket`、`EventSource`、动态 `import(`。

skills/baocut/references/craft/motion-graphics/scripts/build-bundle.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 255
    [/<link\s/gi, 'EXTERNAL_LINK', '<link>'],     [/@import\b/g, 'CSS_IMPORT', '@import'],     [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],
  • Network accessline 256
    [/@import\b/g, 'CSS_IMPORT', '@import'],     [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],     [/\bXMLHttpRequest\b/g, 'NETWORK_API', 'XMLHttpRequest'],
  • Network accessline 257
    [/\bfetch\s*\(/g, 'NETWORK_API', 'fetch('],
  • Dangerous shell operationline 282
    while ((rm = rafRe.exec(html))) {

skills/baocut/references/craft/production-scripts/scene-kit/geo110.js

  • Executable scriptline 1
    Executable file

skills/baocut/references/craft/production-scripts/scene-kit/scene-kit.js

  • Executable scriptline 1
    Executable file

skills/baocut/references/craft/production-scripts/scripts/align.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/assemble.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/build.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/captions.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/coverage.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/envelope.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/fonts.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/gaps.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/legibility.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/level.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/lib.mjs

  • Executable scriptline 1
    Executable file

skills/baocut/references/craft/production-scripts/scripts/overlay.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/preview.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/quotes.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/production-scripts/scripts/sources.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Possible obfuscationline 88
    fs.writeFileSync(csv, '<U+FEFF>' + [keys.map(k => cell(cols[k])).join(','), ...rows].join('\n') + '\n');

skills/baocut/references/craft/production-scripts/scripts/srt.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Possible obfuscationline 43
    return body.replace(/^<U+FEFF>/, '').replace(/\r\n?/g, '\n').trim().split(/\n{2,}/).flatMap(block => {

skills/baocut/references/craft/production-scripts/scripts/voice.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/baocut/references/craft/slides.md

  • Network accessline 38
    "source-sans-3": {       "family": "Source Sans 3",       "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"
  • Network accessline 39
    "family": "Source Sans 3",       "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"     }
  • Network accessline 40
    "href": "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap"

skills/baocut/references/craft/slides/references/format.md

  • Network accessline 115
    - 页面里用到的网络字体与字体文件,都要在 `deck.json` 的 `faces` 里登记:键是自己起的短名,值是 `{ "family": "…", "href": "…" }` 或 `{ "family": "…", "src": "…" }`,`href` 与 `src` 只写一个。 - `family` 以英文字母开头,只含字母、数字、空格、`-`、`_`,最长 40 个字符,与 `font-family` 里写的完全一致。 - `href` 只能是 Google
  • Network accessline 116
    - `family` 以英文字母开头,只含字母、数字、空格、`-`、`_`,最长 40 个字符,与 `font-family` 里写的完全一致。 - `href` 只能是 Google Fonts 的 css2 地址(`https://fonts.googleapis.com/css2?family=…`),最长 1024 个字符,用到的字重都写进去。 - `src` 是 deck 里的字体文件的地址,原样写;不写 `data:`、网上地址或相对路径。只有一个字重的静态字体文
  • Network accessline 117
    - `href` 只能是 Google Fonts 的 css2 地址(`https://fonts.googleapis.com/css2?family=…`),最长 1024 个字符,用到的字重都写进去。

skills/baocut/references/craft/video-production.md

  • Network accessline 22
    本做法的分阶段流程借鉴了 Manus 官方 skill video-generator,并按 BaoCut 的工具与能力改写。开头样段、视觉参考图、稿子与材料的对应表、按条处理修改意见,以及旁白用真人录音还是合成的取舍,受「大师的AI小灶」(@dashiAIxz)分享的 Opus 5.5 剪辑经验启发(https://x.com/dashiAIxz/status/2108785099663867916)。代码场景里整首歌按整帧分段、样段带上第一次高潮、角色分开画再在代码里同框

skills/baocut/references/craft/video-production/examples/bundle-preview.html

  • Network accessline 84
    const fresh = url => url + (url.includes('?') ? '&' : '?') + 'v=' + Date.now();   const getJson = async url => (await fetch(fresh(url))).json();
  • Network accessline 85
    const getJson = async url => (await fetch(fresh(url))).json();
  • Network accessline 126
    au.removeAttribute('src');     // 整段读成 blob 再播:简单的静态服务不支持 Range 请求,直接给地址拖不动进度     if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());
  • Network accessline 127
    // 整段读成 blob 再播:简单的静态服务不支持 Range 请求,直接给地址拖不动进度     if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());     for (const c of clips) URL.revokeObjectURL(c.el.src);
  • Network accessline 128
    if (s.audio) au.src = URL.createObjectURL(await (await fetch(fresh(s.audio))).blob());
  • Network accessline 132
    const el = document.createElement('video');       Object.assign(el, { className: 'clip', muted: !c.audio, volume: c.volume ?? 1, playsInline: true, preload: 'auto' });       el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blo
  • Network accessline 133
    Object.assign(el, { className: 'clip', muted: !c.audio, volume: c.volume ?? 1, playsInline: true, preload: 'auto' });       el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blob());       $('clips').appendChild(el); clips.push
  • Network accessline 134
    el.src = URL.createObjectURL(await (await fetch(fresh(c.src))).blob());
  • Network accessline 137
    if (my !== token) return;     // 入口加了时间戳,入口引用的脚本仍可能取到浏览器缓存的旧版:先按入口里的地址强制重取一遍,iframe 再加载时拿到的就是新的     const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 
  • Network accessline 138
    // 入口加了时间戳,入口引用的脚本仍可能取到浏览器缓存的旧版:先按入口里的地址强制重取一遍,iframe 再加载时拿到的就是新的     const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 'text/html');     const refs =
  • Network accessline 139
    const entry = s.bundle.replace(/\/?$/, '/') + 'index.html', doc = new DOMParser().parseFromString(await (await fetch(fresh(entry))).text(), 'text/html');
  • Network accessline 140
    const refs = [...doc.querySelectorAll('script[src], link[rel=stylesheet][href]')].map(el => new URL(el.getAttribute('src') || el.getAttribute('href'), new URL(entry, location.href)).href);     await Promise.all(refs.map(u => fetch(u, { cach
  • Network accessline 141
    await Promise.all(refs.map(u => fetch(u, { cache: 'reload' }).catch(() => {})));

skills/baocut/references/craft/video-production/examples/post-fx.js

  • Executable scriptline 1
    Executable file

skills/baocut/references/craft/video-production/references/code-scenes.md

  • Network accessline 86
    - **一段接一段导入**时带 `background: true`:导入立刻返回 `bakeJobId`,烘焙在后台排队串行进行(`baocut jobs list` / `baocut jobs wait` 看进度),期间接着导入下一段或改别的片段。上一段烘完写替身与下一段导入会撞版本:不给 `revision` 时 Runtime 按最新版本重试,给了就自己重试。后台任务结束后 `baocut jobs inspect` 结果的 `result.bake.rendere
  • Network accessline 87
    - **用 Three.js、p5 WEBGL 或别的 WebGL 库**时走不了指令,整段按截图烘焙(1080p 实测约 7–18 帧/秒,随场景复杂度变化;八分钟的片子约半小时),导入前跟用户说清要等多久。文字、数字与图解画在 WebGL 画布上面的第二张 2D 画布里(两张画布都放进根元素),比在 3D 里做文字清楚、好改。库文件放进包里(`vendor/three.module.js` 原样能用),不引 CDN;模型与贴图用 `gltf` / `glb` / `bin
  • Network accessline 88
    - **用 p5 画 2D**能走指令:实例模式 `new p5(sketch, root)` 让画布挂进根元素,`setup` 里 `pixelDensity(1)`、`createCanvas(W, H)`、`noLoop()`,`draw` 开头 `clear()`(透明)或整幅 `background(...)`(不透明,根元素写 `data-alpha="false"`),`renderAt` 记下时间后 `inst.redraw()`,`initialize` 等

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 126 facts

and 76 more

Works with

  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

JimLiu/baocut: #607 on hotskills, 1.7k stars

[![JimLiu/baocut on hotskills](https://hotskills.dev/badge/jimliu-baocut.svg)](https://hotskills.dev/skill/jimliu-baocut/)