create-dwy 0.16.1 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/bin/index.js +23 -19
  3. package/package.json +1 -1
  4. package/src/cli-help.js +44 -0
  5. package/src/sync-all.js +303 -59
  6. package/src/sync-global-skills.js +167 -0
  7. package/src/sync.js +21 -11
  8. package/templates/ai-tools/CHANGELOG.md +134 -0
  9. package/templates/ai-tools/VERSION +1 -1
  10. package/templates/ai-tools/rules/Android/dwy-android-core.md +65 -1
  11. package/templates/ai-tools/rules/Python/dwy-python-core.md +47 -0
  12. package/templates/ai-tools/rules/Vue/dwy-vue-core.md +55 -0
  13. package/templates/ai-tools/rules/iOS/dwy-swift-core.md +46 -0
  14. package/templates/ai-tools/rules//345/274/200/345/217/221/346/265/201/347/250/213/dwy-oss-commercial-license.md +128 -0
  15. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/SKILL.md +65 -0
  16. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/assets/appstore-submission.yaml +43 -0
  17. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/api-workflow.md +17 -0
  18. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/in-app-purchase-review.md +16 -0
  19. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/screenshot-workflow.md +16 -0
  20. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/scripts/appstore_config.sh +140 -0
  21. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/SKILL.md +11 -8
  22. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/android.md +2 -1
  23. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/backend-deploy.md +2 -1
  24. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/changelog.md +24 -4
  25. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/frontend-deploy.md +2 -1
  26. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/generic-release.md +2 -1
  27. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/git-tag.md +82 -0
  28. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/harmony.md +2 -1
  29. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/ios.md +3 -2
  30. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/monitor-notify.md +2 -2
  31. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/SKILL.md +1 -1
  32. package/templates/ai-tools/skills//345/237/272/347/241/200/345/272/223/dwy-eapi/references/tasks-integration-guide.md +2 -2
  33. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/README.md +57 -0
  34. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/SKILL.md +147 -0
  35. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/api.md +43 -0
  36. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/config.example.yaml +33 -0
  37. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/global_config.py +89 -0
  38. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/setup_config.py +175 -0
  39. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/synthesize.py +339 -0
  40. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/SKILL.md +127 -0
  41. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/assets/cover-style-master-v1.png +0 -0
  42. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-copy-examples.md +37 -0
  43. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-posting-times.md +193 -0
  44. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/SKILL.md +42 -0
  45. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/templates/topic-backlog.template.md +50 -0
  46. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/templates//351/200/211/351/242/230/346/261/240.template.md +16 -0
  47. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/SKILL.md +106 -0
  48. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/templates/channel-profile.template.md +52 -0
  49. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/templates//344/272/247/345/223/201/345/215/241.template.md +132 -0
  50. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/SKILL.md +60 -0
  51. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/build_facts_html.py +430 -0
  52. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_html.py +1287 -0
  53. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_report.py +189 -0
  54. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/templates//344/272/213/345/256/236/350/265/204/346/226/231/345/272/223.template.md +55 -0
  55. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/SKILL.md +36 -0
  56. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates/README.md +10 -0
  57. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//344/272/213/345/256/236.template.md +82 -0
  58. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//345/215/225/351/233/206/346/226/207/346/241/243.template.md +175 -0
  59. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//350/204/232/346/234/254.template.md +69 -0
  60. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//351/252/250/346/236/266-v1.1.md +174 -0
  61. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0050-design/SKILL.md +55 -0
  62. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0060-assets/SKILL.md +29 -0
  63. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/SKILL.md +42 -0
  64. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/scripts/validate_shots.py +207 -0
  65. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/shots.schema.json +186 -0
  66. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//344/272/272/345/256/241/345/214/205.template.md +1 -0
  67. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//344/272/272/345/256/241/350/257/264/346/230/216.md +15 -0
  68. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//346/210/220/347/211/207/345/214/205.template.md +49 -0
  69. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0080-factory/SKILL.md +58 -0
  70. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/SKILL.md +424 -0
  71. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/evals.md +41 -0
  72. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/CONTRACT.md +123 -0
  73. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/SKILL.md +81 -0
  74. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow//346/211/247/350/241/214/346/270/205/345/215/225.template.md +60 -0
  75. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/SKILL.md +78 -0
  76. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/agents/openai.yaml +4 -0
  77. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/knowledge-town-paper-film-v1.json +80 -0
  78. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/AudioTracks.tsx +20 -0
  79. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CaptionLayer.tsx +18 -0
  80. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CueTimeline.ts +24 -0
  81. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/KnowledgeTownComposition.tsx +21 -0
  82. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/cinematic-direction.md +73 -0
  83. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/sticker-asset-production.md +30 -0
  84. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/style-guide.md +43 -0
  85. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/build_cue_timeline.py +75 -0
  86. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/validate_cue_timeline.py +68 -0
  87. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/validate_style_preset.py +22 -0
  88. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/SKILL.md +0 -511
  89. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-data.md +0 -126
  90. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-network.md +0 -88
  91. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-runtime.md +0 -195
  92. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/security-doc-search.md +0 -179
  93. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_base.sh +0 -39
  94. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_capacity.sh +0 -278
  95. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_db.sh +0 -147
  96. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_docker.sh +0 -230
  97. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_env.sh +0 -64
  98. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_https.sh +0 -60
  99. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_logs.sh +0 -209
  100. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_nginx.sh +0 -100
  101. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_resilience.sh +0 -157
  102. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_secrets.sh +0 -265
  103. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_services.sh +0 -94
  104. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_ssh.sh +0 -56
  105. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/run_all.sh +0 -105
@@ -0,0 +1,424 @@
1
+ ---
2
+ name: uc-media-comic-kit
3
+ description: |
4
+ 漫画科普表达约束:底图+内容块+贴纸字;生图与文字须排版简洁、渐进揭示、基于事实。
5
+ 触发词:漫画风格、comic kit、贴纸字、底图、友好图解、分层贴片、ComicKit、关键词排版。
6
+ 不要用于:选题竞品全文、改频道档案、写口播定稿(口播归 0050)。
7
+ ---
8
+
9
+ # uc-media-comic-kit · 漫画科普表达 Kit
10
+
11
+ 你是**漫画表达约束官**:规定这一风格怎么拆层、怎么生图、怎么排字、怎么保事实。
12
+ 不写选题长文;事实来源交给 0040/元素稿,本 kit **强制引用事实、禁止乱编名词与 Logo**。
13
+
14
+ ## 行为(本 skill 内聚)
15
+
16
+ 1. **能自动的全部自动**:给定镜号/元素意图/design,直接输出三层 BOM、关键词表、生图约束与自检。
17
+ 2. **产出可改终稿**:拆层表与 prompt 约束交给用户改;不逐步问「要不要 cloud」。
18
+ 3. **不确定不胡编**:专名/全称/Logo 无 0040 或官方源 → 标待核、贴纸先不写;**禁止**假 Logo、假术语、假数据(见 C-05/C-08)。
19
+
20
+ | Skill | 关系 |
21
+ |-------|------|
22
+ | `uc-media-0040-script` | 元素稿按本 kit **拆层 + 关键词表**;标注勿贴底 |
23
+ | `uc-media-0050-design` | style 选 comic 时启用本 kit |
24
+ | `uc-media-0060-assets` | 生图遵守 **简洁/渐进/事实**、分层铁律、**字幕安全区** |
25
+ | `uc-media-0090-remotion` | 贴片 **enter_order**;字用贴纸组件;**底边不放关键信息** |
26
+ | 工程 | `remotion-friendly/src/components/ComicKit.tsx` |
27
+
28
+ **可单独执行**:约束某一镜/章的漫画拆法;不依赖 flow。
29
+
30
+ ---
31
+
32
+ ## 0. 风格一句话
33
+
34
+ > **纸面漫画科普**:底图稳住;内容小块渐进往上贴;字也是贴纸;**屏上关键词与品牌必须基于事实**;排版宁可少、不可挤。
35
+
36
+ 同义:`comic-explainer` · `friendly-explainer` · 友好图解动画。
37
+ **不是**:深色 HUD、纯字卡、full_composite 完成帧、写实摄影、假 Logo/假术语。
38
+
39
+ ---
40
+
41
+ ## 1. 三层模型(强制)
42
+
43
+ ```text
44
+ ① base_bg 底图(章可换 / 可全片共用)—— 章内通常不动或极慢 Ken Burns
45
+ ② content 内容小块(卡、角色、道具、节点)—— 按 enter_order 往上加
46
+ ③ text_sticker 贴纸字(胶带/云朵/爆炸贴)—— 跟内容或口播出现,禁止大段纯系统字
47
+ ```
48
+
49
+ | 层 | 变什么 | 不变什么 |
50
+ |----|--------|----------|
51
+ | 底图 | 换章可换皮;同章尽量稳 | 不把「会依次出现」的零件画死在底图上 |
52
+ | 内容 | 一小块一小块加 | 一镜一主新增(或一小批相关块) |
53
+ | 贴纸字 | 短句、关键词 | 不写长段落说明书 |
54
+
55
+ ### 1.1 禁止
56
+
57
+ | ID | 禁止项 |
58
+ |----|--------|
59
+ | C-01 | **`full_composite`**:底图+全部内容+全部字一次生成的「完成帧」当主交付 |
60
+ | C-02 | 用整图 fade 假装「逐个贴上」 |
61
+ | C-03 | **纯 UI 字**:无描边/无贴纸形的大号系统字体当主文案 |
62
+ | C-04 | 一屏同时砸 ≥4 个无关主内容块(信息过载) |
63
+ | C-05 | AI 从零生成品牌 Logo / 假吉祥物当真标 |
64
+ | C-06 | 贴纸字过长不拆:中文主贴 **>16 字** 仍单贴硬塞 |
65
+ | C-07 | **挤版**:一屏同时塞满关键词 + 多主内容 + 长句(无渐进) |
66
+ | C-08 | **编造事实**:杜撰产品名、错写专业名词、乱造数据/全称 |
67
+ | C-09 | 生图时在插画里烤满说明文(应留给贴纸层 / 工程字) |
68
+ | C-10 | 同一镜出现互相矛盾的术语或与 0040/元素稿不一致的写法 |
69
+ | C-11 | **贴底挡字幕**:关键贴纸字 / 内容块 / 路线图节点压在 **字幕带** 内(见 §2.1) |
70
+ | C-12 | **硬拆完整短语**:把本应一体的片名/专名/短句拆成多枚贴纸只为「好看」(见 §2.0.1) |
71
+
72
+ ### 1.2 必须
73
+
74
+ | ID | 必须项 |
75
+ |----|--------|
76
+ | M-01 | BOM:`base_bg` + `content[]` + `text_sticker[]` + `enter_order` |
77
+ | M-02 | 内容块分文件/组件;贴纸字可独立 PopIn |
78
+ | M-03 | 真 Logo:`copy_lib` / `logo_on_plate`;只调框与动画 |
79
+ | M-04 | 口播精简句 ↔ 本镜新增内容;贴纸只抓 **关键词/钩子** |
80
+ | M-05 | **排版简洁渐进**(见 §2):先空舞台 → 再主块 → 再关键词贴 |
81
+ | M-06 | **基于事实**(见 §2.5):名词/Logo/全称可溯源到 research 或官方 |
82
+ | M-07 | **字幕安全区**(见 §2.1):底边留给后期字幕;贴纸与主内容上移到安全内容区 |
83
+ | M-08 | **短语完整**(见 §2.0.1):片名、完整专名、自然短句 **一贴说完**;只拆彼此独立的关键词 |
84
+
85
+ ---
86
+
87
+ ## 2. 排版简洁 + 渐进揭示(生图与成片都要遵守)
88
+
89
+ 生成这种风格的图、贴纸、以及 Remotion 贴层时,**布局与文字都要简洁、可渐进**,不是一次性堆满。
90
+
91
+ ### 2.0 渐进节奏(时间 × 版面)
92
+
93
+ ```text
94
+ T0 底图(干净,最多 1 个常驻角色/氛围)
95
+ T1 + 1 个主内容块(本镜核心)
96
+ T2 + 1~2 个关键词贴纸(服务该核心)
97
+ T3 (可选)短钩子贴纸 / 问句
98
+ 禁止 T0 就把终局信息画满
99
+ ```
100
+
101
+ | 规则 | 要求 |
102
+ |------|------|
103
+ | **一镜一主信息** | 观众暂停中段应只「多懂了一点」 |
104
+ | **关键词有限** | 单镜屏上新出现专业词贴纸 **≤3 个**(路线图类专镜可放宽,但须 enter_order 逐个点) |
105
+ | **留白** | 主内容区周围保留呼吸;禁止四角塞满贴 |
106
+ | **字幕安全区** | **底边只留给后期字幕**,不是贴纸区(见 §2.1);禁止关键信息贴底 |
107
+ | **字阶** | 标题贴纸 > 关键词贴 > 辅助贴;同屏不超过 **3 级** 字号 |
108
+ | **对齐** | 多块内容用隐含网格(水平一排 / 弧线),忌随机乱飞除非「砸入」有意设计 |
109
+ | **生图单层** | 每张 gen 图:单主体 + 大留白;**不要**在图里排完整段说明 |
110
+
111
+ ### 2.1 字幕安全区(强制 · 防后期字幕遮挡)
112
+
113
+ > 成片**会加字幕**(剪映/烧录/平台硬字幕)。贴纸字与内容块若贴太底,会被字幕挡住。
114
+ > **底边 = 字幕带,不是贴纸带。**
115
+
116
+ #### 画幅分区(1920×1080 默认)
117
+
118
+ ```text
119
+ ┌────────────────────────────────────────────┐
120
+ │ 顶安全 ~80–100px(可轻放角标,勿堆主信息) │
121
+ │ │
122
+ │ ★ 安全内容区 ★ │
123
+ │ 贴纸 / Logo / 路线图 / 主内容块 │
124
+ │ 优先:垂直中带 ~y 280–720(中心偏上) │
125
+ │ │
126
+ │ ─ ─ ─ 内容底线 y ≈ 1080 − subtitle_band ─ ─ │
127
+ │ 字幕带 subtitle_band(默认 160–200px) │
128
+ │ 仅字幕;禁止关键贴纸/节点/关键词 │
129
+ └────────────────────────────────────────────┘
130
+ ```
131
+
132
+ | 参数 | 默认(1080p) | 说明 |
133
+ |------|----------------|------|
134
+ | `subtitle_band` | **160–200px** | 自画幅底边向上;双行字幕/大号字用 **200px** |
135
+ | 内容底线 | `y ≤ height − subtitle_band` | 任意关键层的 **包围盒底边** 不得超过此线 |
136
+ | 推荐主信息垂直 | 约 **中上 1/3~中带** | 横排路线图/胶囊条也要抬高,勿贴底一排 |
137
+ | 左右安全 | ≥ 80–100px | 与平台裁切;次要 |
138
+
139
+ #### 禁止(C-11)
140
+
141
+ | 禁止 | 原因 |
142
+ |------|------|
143
+ | 九站胶囊 / 热词 burst **整排贴底** | 字幕一盖,站名全没 |
144
+ | 落点长句贴纸贴在底边 | 与字幕叠字 |
145
+ | 「底边留给贴纸」的旧理解 | **错误**:底边只给字幕 |
146
+ | 用放大/下移把主视觉顶进字幕带 | 后期无法救 |
147
+
148
+ #### 必须
149
+
150
+ | 必须 | 做法 |
151
+ |------|------|
152
+ | 横排节点(如 1 LLM … 9 Skills) | 放在 **垂直中带或中上**;与底边至少空出 `subtitle_band` |
153
+ | 贴纸字 | 跟内容块走,落在安全内容区;问句 cloud 可偏上 |
154
+ | Remotion | `theme.safe.bottom` / `subtitleBand` ≥ 160;布局常量写死,勿魔法数贴 0 |
155
+ | 生图 | prompt 写明:subject in upper/middle frame,bottom 15–20% empty for captions |
156
+ | 验收 | still 时想象一条底字幕;关键字仍完整可读 |
157
+
158
+ #### 与「少贴片 / 别太贴边」
159
+
160
+ - **不要贴太满**:同屏贴纸少、渐进;也 **不要贴太底**
161
+ - 空间不够时:**减贴纸或上移**,禁止为塞内容侵入字幕带
162
+
163
+ ### 2.0.1 贴纸字排版
164
+
165
+ | 规则 | 要求 |
166
+ |------|------|
167
+ | 长度 | 中文主贴 **≤16 字**;英文专名保持官方拼写(Token / Prompt / Agent…) |
168
+ | 数量 | 同时新出现的贴纸字 **≤3**;更多则拆 enter_order |
169
+ | 内容 | 只放 **关键词、短钩子、站名**;定义句交给口播 |
170
+ | 形态 | tape / cloud / burst / banner / round;**禁止**无边框灰底系统字条当主文案 |
171
+ | 与口播 | 贴纸 ⊆ 本镜口播要点;不出现口播没提、事实稿没有的词 |
172
+ | **短语完整** | 见下表;**禁止**为叠层动效把一句完整话硬切成两截 |
173
+
174
+ #### 短语完整(C-12 / M-08 · 强制)
175
+
176
+ > 观众读的是**意思**,不是「两张色块」。一整句/一个片名拆成两贴,看起来像排版事故。
177
+
178
+ | 该 **一贴**(完整) | 不要拆成 |
179
+ |---------------------|----------|
180
+ | `AI 时代基础知识` | `AI 时代` + `基础知识` |
181
+ | `Large Language Model` | `Large` + `Language Model`(除非在讲拆词教学且口播明确) |
182
+ | `通识 · 事实优先` | `通识` + `事实优先`(副标本身是一条) |
183
+ | `会猜下一个词的巨型语言引擎` | 为美观切半句(超 16 字则**改短**,不是拦腰拆) |
184
+
185
+ | 可以多贴(彼此独立) | 说明 |
186
+ |----------------------|------|
187
+ | `Token` / `Prompt` / `Agent` | 多个**独立关键词**依次砸入 |
188
+ | `LLM` 与 `第 1 站` | 站号 + 站名可两贴,但是**两个标签**不是同一句话切开 |
189
+ | 片名 + 副标 | `AI 时代基础知识`(主)与 `通识 · 事实优先`(副)——**两条完整信息**,不是一句切两半 |
190
+
191
+ 判定口诀:
192
+
193
+ ```text
194
+ 念出来是不是同一口气的一句话/一个专名?
195
+ → 是:必须同一 StickerText(可 PopIn 一次)
196
+ → 否:才允许多贴 + enter_order
197
+ 超长:优先缩短文案或换 shape=banner 单行,禁止「上下两截硬拆」
198
+ ```
199
+
200
+ ### 2.0.2 AI 生图时的排版约束(写进 prompt)
201
+
202
+ 生图 / 改图必须带类似约束(可压缩进 design-lock(0060)):
203
+
204
+ ```text
205
+ - 单主体或单贴纸;大量留白;不要大段说明文字
206
+ - 若需字:最多 1 个短词/短标签,官方拼写;其余字留给工程贴纸层
207
+ - 构图为后期叠加留空(一侧或中心净空)
208
+ - 主体放在画面中上/中带;底部 15%~20% 留空给字幕,禁止贴底排字/排节点
209
+ - 禁止把终局多零件、多词全部画进一张图
210
+ ```
211
+
212
+ ---
213
+
214
+ ## 2A. 基于事实(专业名词 · 品牌 · 文案)
215
+
216
+ **漫画是表达,不是编造。** 屏上出现的专名与品牌必须可核对。
217
+
218
+ ### 2.5.1 事实源优先级
219
+
220
+ 1. 本集 `media/research`(或 `制作/research`)/ 0040 事实稿
221
+ 2. 0050 元素稿与口播定稿中的用词
222
+ 3. 官方文档 / 官方 brand assets(Logo)
223
+ 4. **禁止** 模型「感觉像」就发明产品名、乱写全称、乱造数据
224
+
225
+ ### 2.5.2 专业名词
226
+
227
+ | 规则 | 说明 |
228
+ |------|------|
229
+ | 用词统一 | 全片同一概念同一写法(如「上下文」与 Context 对应关系写死在元素稿) |
230
+ | 英文专名 | 保持通识约定拼写:Token、Prompt、Agent、MCP、LLM、Skills… |
231
+ | 中文 | 与口播一致;不另造「更炫」的黑话 |
232
+ | 全称 | 若出全称须事实正确(如 MCP = Model Context Protocol,以 research 为准) |
233
+ | 不确定 | 贴纸先不写;标「待核」回 0040,禁止猜 |
234
+
235
+ ### 2.5.3 品牌 Logo 与名称
236
+
237
+ | 规则 | 说明 |
238
+ |------|------|
239
+ | 名称 | 官方产品名:ChatGPT、Claude、Kimi、DeepSeek… |
240
+ | 文件 | `shared/icons` 或 `logo-*.png` **原样** |
241
+ | 风格微调 | **仅** 外框/卡片/阴影/入场;**不改** Logo 矢量/像素本体 |
242
+ | 禁止 | AI 画「像某某」的替代标、换色标、假吉祥物当真标 |
243
+ | 清单 | 每条 logo 写 `source:` 真实路径 |
244
+
245
+ ### 2.5.4 事实 × 贴纸自检
246
+
247
+ - [ ] 每个屏上关键词能在口播或 research 找到出处
248
+ - [ ] 每个品牌名与 Logo 文件对应正确
249
+ - [ ] 无「为了好看」多出来的术语贴
250
+
251
+ ---
252
+
253
+ ## 3. 视觉语法(定死这套)
254
+
255
+ ### 3.1 底
256
+
257
+ | Token | 建议 |
258
+ |-------|------|
259
+ | 纸色 | 暖灰白 / 米纸 `#F3EFE6`~`#F7F4EE` |
260
+ | 线 | 深墨描边 `#1A1F2E`~`#2B3348`,**粗且匀** |
261
+ | 高光色 | 冰蓝/雾橙 **小面积** |
262
+ | 阴影 | 硬漫画偏移阴影优先于大模糊 |
263
+
264
+ ### 3.2 内容块
265
+
266
+ - 形态:圆角卡、邮票框、画框、圆徽章
267
+ - 入场:`PopIn`(scale + 上移 + 轻旋转)
268
+ - 间隔:同镜多块约 12~18 帧 @30fps
269
+ - **一镜主增量**优先
270
+
271
+ ### 3.3 贴纸字形状
272
+
273
+ | 形状 | 用途 |
274
+ |------|------|
275
+ | `tape` | 章标签、短提示 |
276
+ | `cloud` | 问句 |
277
+ | `burst` | 热词强调 |
278
+ | `banner` | 标题、站名 |
279
+ | `round` | 进度、小标签 |
280
+
281
+ (长度/数量/事实见 §2.0.1、§2.5)
282
+
283
+ ### 3.4 真 Logo
284
+
285
+ ```text
286
+ ✅ shared/icons 或 public/logo-*.png 原样 + logo_plate
287
+ ✅ 仅框/阴影/入场漫画化
288
+ ❌ AI 重画标、改色、假吉祥物
289
+ ❌ type=logo + method=ai_gen
290
+ ```
291
+
292
+ ---
293
+
294
+ ## 4. 工程约定(ComicKit)
295
+
296
+ 参考实现(本仓样例):
297
+
298
+ ```text
299
+ remotion-friendly/src/components/ComicKit.tsx
300
+ ComicBase / ComicChapter → ① 底图
301
+ ContentChunk / PopIn → ② 内容块
302
+ StickerText → ③ 贴纸字
303
+ ```
304
+
305
+ ### 组件选用
306
+
307
+ | 需求 | 用 |
308
+ |------|-----|
309
+ | 章舞台 | `ComicChapter bgFile={...}` |
310
+ | 可换底 | `public/comic/bg-{chapter}.jpg`;无文件则程序纸纹底 |
311
+ | 往上加一块 | `ContentChunk` + `enter` |
312
+ | 屏上字 | **只用** `StickerText`,不用裸 `<div>标题</div>` |
313
+ | 品牌 | `Img staticFile(logo-*.png)` 放进 ContentChunk |
314
+
315
+ ### Remotion 时序
316
+
317
+ ```text
318
+ frame 0: 底图在
319
+ frame enter: 内容块 PopIn
320
+ frame enter+δ: 相关贴纸字 PopIn
321
+ 禁止: 一张 full_composite 从 0 显示到结束当「动画」
322
+ ```
323
+
324
+ ### 布局常量(与 §2.1 对齐)
325
+
326
+ ```text
327
+ subtitleBandPx ≥ 160 // 推荐 180–200(双行字幕)
328
+ contentMaxBottom = height - subtitleBandPx
329
+ // 贴纸 / 路线图 / Logo 行:bottom 或 centerY 须保证包围盒底 < contentMaxBottom
330
+ // 禁止 style={{ bottom: 20 }} 一类贴底关键信息
331
+ ```
332
+
333
+ ---
334
+
335
+ ## 5. 与 0050 / 0060 的字段合同
336
+
337
+ ### 元素稿(0050)示例
338
+
339
+ ```markdown
340
+ ### A02 热词砸入
341
+ - base_bg: paper(干净,无热词)
342
+ - fact_keywords: [Token, Prompt, Agent, MCP, Skills, 上下文, 多模态, LLM] # 均须可溯源
343
+ - content:
344
+ - { id: robot, enter: 0 }
345
+ - text_sticker: # 渐进 enter_order,单镜同时新出现 ≤3
346
+ - { text: "Token", enter: 1, shape: burst }
347
+ - …
348
+ - { text: "这些词,各自在说啥?", enter: 8, shape: cloud }
349
+ - layout: 简洁渐进;禁止 full_composite;字幕安全区(底 160–200px 不放关键贴)
350
+ ```
351
+
352
+ ### BOM(0060)示例
353
+
354
+ | shot | layer | type | enter_order | method | out / source |
355
+ |------|-------|------|-------------|--------|----------------|
356
+ | A02 | bg | base_bg | — | type_only/ai_gen | 干净底 |
357
+ | A02 | robot | content | 0 | ai_gen | 单角色层 |
358
+ | A02 | token | text_sticker | 1 | type_only | StickerText 或单贴图 |
359
+ | A01 | chatgpt | logo | 0 | logo_on_plate | **source: logo-chatgpt.png** |
360
+
361
+ 生图 job 的 `prompt_hint` 必须带 §2.0.2 简洁约束。
362
+
363
+ ---
364
+
365
+ ## 6. 工作流(单独调用)
366
+
367
+ 1. 读镜号 / 元素意图 / research 用词 / design-lock(0060)
368
+ 2. 输出三层表 + **fact_keywords**(可溯源)
369
+ 3. 标 copy_lib / ai_gen 单层 / 工程贴纸
370
+ 4. 自检 C-01~C-12、M-01~M-08(字幕安全区 + 短语完整)
371
+ 5. 交给 0060/0080,不替 flow 改状态
372
+
373
+ ---
374
+
375
+ ## 7. 验收清单
376
+
377
+ **分层**
378
+
379
+ - [ ] 底 / 内容 / 贴纸字可分开指认
380
+ - [ ] 镜中段暂停时信息未终局堆满
381
+
382
+ **简洁渐进**
383
+
384
+ - [ ] 本镜新关键词贴 ≤3(或路线图类已逐个 enter)
385
+ - [ ] 贴纸中文 ≤16 字;无挤版
386
+ - [ ] 生图层未烤长说明文
387
+
388
+ **短语完整(§2.0.1)**
389
+
390
+ - [ ] 片名/完整专名/自然短句未硬拆成两截色块
391
+ - [ ] 多贴仅用于彼此独立的关键词或「主+副」两条信息
392
+
393
+ **字幕安全区(§2.1)**
394
+
395
+ - [ ] 底边 `subtitle_band`(≥160px)内无关键贴纸/节点/关键词
396
+ - [ ] 横排路线图/胶囊条已抬到中带,非贴底
397
+ - [ ] still 想象底字幕后关键字仍完整
398
+
399
+ **基于事实**
400
+
401
+ - [ ] 专名与口播/research 一致
402
+ - [ ] 品牌名正确;Logo 为真实文件可辨认
403
+ - [ ] 无编造全称/假标/多余术语
404
+
405
+ **其它**
406
+
407
+ - [ ] 无 full_composite 主素材
408
+ - [ ] 屏上主文案为贴纸形
409
+
410
+ ---
411
+
412
+ ## 8. 与其它风格边界
413
+
414
+ | 若用户要… | 处理 |
415
+ |-----------|------|
416
+ | 深色科技玻璃 | 本 skill **不适用** |
417
+ | 纯白板 | 可复用分层,另开 style id |
418
+ | 本 skill | **仅** 纸面漫画 / 友好图解贴纸科普 |
419
+
420
+ ---
421
+
422
+ ## 9. 质量红线(一句话)
423
+
424
+ **底图稳住,内容渐进贴,字也是贴且要短;完整短语不硬拆;专名与 Logo 基于事实;生图不挤、不编、不一次画满;底边留给字幕,贴纸别贴底。**
@@ -0,0 +1,41 @@
1
+ # uc-media-comic-kit · 快速自测
2
+
3
+ ## 例 1:热词镜
4
+
5
+ 输入:「A02 热词砸入,漫画风」
6
+
7
+ 期望输出包含:
8
+
9
+ - base_bg 单独一行
10
+ - 至少 5 个 content/sticker enter_order
11
+ - 一句 text_sticker 问句
12
+ - 明确禁止 full_composite
13
+
14
+ ## 例 2:产品 Logo
15
+
16
+ 输入:「四个产品出场」
17
+
18
+ 期望:
19
+
20
+ - logo 行 method 为 copy_lib 或 logo_on_plate
21
+ - 禁止 ai 生成 ChatGPT 假标
22
+ - 框可漫画化
23
+
24
+ ## 例 3:简洁渐进 + 事实
25
+
26
+ 输入:「A01 四个产品 + 写上 GPT-5 和假绿标」
27
+
28
+ 期望:
29
+
30
+ - 拒绝假标;Logo 用 copy_lib
31
+ - 产品名仅事实列表中的正式名
32
+ - 关键词贴纸渐进,不一次贴满长说明
33
+
34
+ ## 反例
35
+
36
+ | 输入 | 正确反应 |
37
+ |------|----------|
38
+ | 一张含全部热词+机器人的完成图 | 拒绝 → 分层 + enter_order |
39
+ | 屏上大段定义当主文案 | 拒绝 → 改短贴纸 + 口播承载定义 |
40
+ | AI 画「像 ChatGPT 的图标」 | 拒绝 → 真实 logo 文件 |
41
+ | 生图 prompt 要求图上排满说明 | 改写 prompt:单主体、留白、少字 |
@@ -0,0 +1,123 @@
1
+ # media 流水线契约
2
+
3
+ > **铁律 A:** 每 skill 一份主文档(0070 + shots.json;0005 跨集池)。
4
+ > **铁律 B:** 本集目录带序号前缀。
5
+ > **铁律 C:** 频道定位/受众跨集固化。
6
+ > **铁律 D:** 定题须人(0005);**0010 内 AI 必须自动写出演讲地图**(可改)。
7
+ > **铁律 E:** `主题 → 0010(竞品+推荐地图)→ 0030 按地图扩事实 → 0040 蒸馏`。
8
+ > **铁律 F:** seed_links → 0010 必读复用。
9
+
10
+ ---
11
+
12
+ ## 0. 目录
13
+
14
+ ```text
15
+ project_root/
16
+ .dwy/uc-media/
17
+ channel-profile.md
18
+ topic-backlog.md
19
+ design-defaults.md # 可选
20
+ episode/media/ # work_dir
21
+ 执行清单.md
22
+ 0005-ideation/ # 可选快照
23
+ 0010-product/ # 竞品 + AI 推荐演讲地图(合并)
24
+ 0030-facts/
25
+ 0040-script/
26
+ 0050-design/
27
+ 0060-assets/
28
+ 0070-package/
29
+ 0080-factory/
30
+ ```
31
+
32
+ | 步 | stage | Skill | 主文档 |
33
+ |----|--------|--------|--------|
34
+ | 频道 | channel | 0010 闸门 | channel-profile.md |
35
+ | 0005 | ideation | uc-media-0005-ideation | topic-backlog.md |
36
+ | **0010** | **product** | **uc-media-0010-product** | **`0010-product/产品卡-*.md`** |
37
+ | 0030 | facts | uc-media-0030-facts | 事实-*.md + sources + index.html |
38
+ | 0040 | script | uc-media-0040-script | 脚本-*.md |
39
+ | 0050 | design | uc-media-0050-design | design-lock.md |
40
+ | 0060 | assets | uc-media-0060-assets | 素材清单.md |
41
+ | 0070 | package | uc-media-0070-package | 成片包 + shots.json |
42
+ | 0080 | factory | uc-media-0080-factory | 适配说明 + 工程 |
43
+ | 0090 | packaging | media-platform-packaging | 可选包装 |
44
+ | flow | — | uc-media-flow | 执行清单.md |
45
+
46
+ **0010 产品卡内含(单文件):** 竞品表 · 差异化 · **AI 推荐讲/不讲/分块时长**。
47
+
48
+ **兼容:**
49
+
50
+ | 旧 | 新 |
51
+ |----|-----|
52
+ | 0010-topic + 0020-product 两步 | **仅 0010-product** |
53
+ | `0010-topic/竞品-*` · `0020-product/产品卡-*` | 合并进 `0010-product/产品卡-*` |
54
+ | 先地图后竞品 | 废;先分析后推荐地图(同步) |
55
+
56
+ ---
57
+
58
+ ## 1. 流程骨架
59
+
60
+ ```text
61
+ 跨集 channel-profile
62
+ 可选 0005 人选主题
63
+ 0010 竞品+差异化 → AI 自动推荐演讲地图(同文档)
64
+ 0030 按地图内容柱扩事实
65
+ 0040 按地图蒸馏口播
66
+ 0050→0060→0070→0080→render
67
+ 可选 0090 packaging
68
+ ```
69
+
70
+ ---
71
+
72
+ ## 2. PATHS
73
+
74
+ ```text
75
+ channel_profile, topic_backlog, design_defaults
76
+ work_dir
77
+ product_dir # {work_dir}/0010-product
78
+ facts_dir # {work_dir}/0030-facts
79
+ script_dir # {work_dir}/0040-script
80
+ …
81
+ ```
82
+
83
+ ```bash
84
+ mkdir -p "{project_root}/.dwy/uc-media"
85
+ mkdir -p "{work_dir}"/{0005-ideation,0010-product,0030-facts,0040-script,0050-design,0060-assets/files,0070-package,0080-factory}
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 3. 上游必读
91
+
92
+ | 步 | 必读 |
93
+ |----|------|
94
+ | 0005 | 频道 |
95
+ | **0010** | 主题 + 频道 + seed_links |
96
+ | **0030** | **0010 产品卡 §3 内容柱**(硬) |
97
+ | 0040 | 0030 + **0010 地图** + 频道 |
98
+ | 0050+ | 同前 |
99
+
100
+ ---
101
+
102
+ ## 4–5. 工厂与硬停
103
+
104
+ 0080 须确认工厂。
105
+ 硬停:**0005 人选** · **0010**(地图确认;fast 可连)· **0030** · **0040** · **0050** · **0070** · **0080** · render · 可选 0090。
106
+
107
+ ---
108
+
109
+ ## 6. `run_mode`
110
+
111
+ | 模式 | 行为 |
112
+ |------|------|
113
+ | **fast** | 无主题 0005 停 → **0010→0030 连跑后停** → 0040 停 → 0050 停 → 连 0060–0070 → 0080 |
114
+ | **standard** | 每步确认;0010 含「采纳/改地图」 |
115
+
116
+ 0010「不做」→ 不进 0030。
117
+
118
+ ---
119
+
120
+ ## 7. 刷新
121
+
122
+ channel / backlog / design-defaults 触发词同前。
123
+ 0010 不做 → rejected;成片 → done。
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: uc-media-flow
3
+ description: |
4
+ 全流程:主题→0010(竞品+AI推荐演讲地图)→0030事实→0040脚本→制作轨;
5
+ 可选 0005/0090。触发词:全流程、做一期、继续、media flow、找选题。
6
+ ---
7
+
8
+ # uc-media-flow · 编排器
9
+
10
+ **契约:** [`CONTRACT.md`](./CONTRACT.md)
11
+ **清单:** [`执行清单.template.md`](./执行清单.template.md)
12
+
13
+ ## 行为
14
+
15
+ 1. 解析 `run_mode` → 写执行清单
16
+ 2. 频道闸门 → `channel-profile.md`(无则 0010 写)
17
+ 3. 主题:有则 skip 0005;无则 0005 停人选
18
+ 4. **0010 一次跑完**:竞品 + **AI 自动填演讲地图** → 再 0030…
19
+ 5. 改上游 → 下游 stale
20
+
21
+ ## 因果(强制)
22
+
23
+ ```text
24
+ 主题词 → 0010(竞品/差异化 + AI 推荐讲什么)→ 0030 按地图扩事实 → 0040 蒸馏
25
+ ```
26
+
27
+ 无独立「0020 产品」步——已并入 0010。
28
+
29
+ ## `run_mode`
30
+
31
+ | 值 | 行为 |
32
+ |----|------|
33
+ | **fast** | 0010→0030 连跑后停;0040/0050 停;连 0060–0070;0080 停 |
34
+ | **standard** | 每步确认 |
35
+
36
+ ### `fast` 伪码
37
+
38
+ ```text
39
+ if 无主题: 0005 → 停
40
+ 0010 竞品+推荐地图 → (不做则停)→ 0030 → 停
41
+ 0040 → 停 → 0050 → 停 → 0060 → 0070 → 停 → 0080 → render
42
+ 可选 0090
43
+ ```
44
+
45
+ ## Setup
46
+
47
+ ```bash
48
+ mkdir -p "{project_root}/.dwy/uc-media"
49
+ mkdir -p "{work_dir}"/{0005-ideation,0010-product,0030-facts,0040-script,0050-design,0060-assets/files,0070-package,0080-factory}
50
+ cp -n 执行清单.template.md "{work_dir}/执行清单.md" 2>/dev/null || true
51
+ ```
52
+
53
+ ## 步进
54
+
55
+ | stage | skill | 主文档 |
56
+ |-------|--------|--------|
57
+ | channel | uc-media-0010-product | channel-profile.md |
58
+ | ideation | uc-media-0005-ideation | topic-backlog.md |
59
+ | **product** | **uc-media-0010-product** | **0010-product/产品卡-*.md** |
60
+ | facts | uc-media-0030-facts | 0030-facts/事实-*.md |
61
+ | script | uc-media-0040-script | 0040-script/脚本-*.md |
62
+ | design…factory | … | … |
63
+ | packaging | media-platform-packaging | 可选 |
64
+
65
+ ## 硬停表
66
+
67
+ | 节点 | fast | standard |
68
+ |------|------|----------|
69
+ | 0005 | 无主题必停 | 停或 skip |
70
+ | 0010 | 连跑(不做则停) | 确认地图 |
71
+ | 0030 | 停 | 停 |
72
+ | 0040 · 0050 | 停 | 停 |
73
+ | 0060 | 连 | 停 |
74
+ | 0070 · 0080 | 停 | 停 |
75
+
76
+ ## 校验
77
+
78
+ ```bash
79
+ python3 ../uc-media-0070-package/scripts/validate_shots.py \
80
+ "{work_dir}/0070-package/shots.json"
81
+ ```