@optima-chat/optima-agent 0.8.95 → 0.8.96

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 (41) hide show
  1. package/.claude/skills/gen/SKILL.md +1 -1
  2. package/.claude/skills/video-gen/SKILL.md +443 -0
  3. package/.claude/skills/video-gen/templates/lifestyle-scene.md +18 -0
  4. package/.claude/skills/video-gen/templates/pdp-360-showcase.md +17 -0
  5. package/.claude/skills/video-gen/templates/pdp-feature-highlight.md +18 -0
  6. package/.claude/skills/video-gen/templates/tiktok-before-after.md +17 -0
  7. package/.claude/skills/video-gen/templates/tiktok-product-reveal.md +17 -0
  8. package/.claude/skills/video-gen/templates/tiktok-unboxing.md +18 -0
  9. package/package.json +1 -1
  10. package/.claude/skills/video-clone/SKILL.md +0 -199
  11. package/.claude/skills/video-clone/assets/phase-state-template.json +0 -11
  12. package/.claude/skills/video-clone/references/ffmpeg-commands.md +0 -42
  13. package/.claude/skills/video-clone/references/gate-enforcement.md +0 -144
  14. package/.claude/skills/video-clone/references/kling-api.md +0 -85
  15. package/.claude/skills/video-clone/references/prompt-template.md +0 -71
  16. package/.claude/skills/video-clone/references/url-parsing.md +0 -32
  17. package/.claude/skills/video-clone/references/workflow-system.md +0 -92
  18. package/.claude/skills/video-clone/scripts/_confirm.py +0 -96
  19. package/.claude/skills/video-clone/scripts/_confirm_test.py +0 -125
  20. package/.claude/skills/video-clone/scripts/_gate.py +0 -162
  21. package/.claude/skills/video-clone/scripts/_gate_e2e_test.py +0 -226
  22. package/.claude/skills/video-clone/scripts/_gate_test.py +0 -148
  23. package/.claude/skills/video-clone/scripts/_project.py +0 -56
  24. package/.claude/skills/video-clone/scripts/analyze_source.py +0 -113
  25. package/.claude/skills/video-clone/scripts/analyze_source_test.py +0 -52
  26. package/.claude/skills/video-clone/scripts/assemble.py +0 -106
  27. package/.claude/skills/video-clone/scripts/confirm.py +0 -12
  28. package/.claude/skills/video-clone/scripts/edit_first_frame.py +0 -66
  29. package/.claude/skills/video-clone/scripts/extract_frames.py +0 -108
  30. package/.claude/skills/video-clone/scripts/gen_video.py +0 -59
  31. package/.claude/skills/video-clone/scripts/init_project.py +0 -103
  32. package/.claude/skills/video-clone/scripts/init_project_test.py +0 -106
  33. package/.claude/skills/video-clone/scripts/kling_generate.py +0 -262
  34. package/.claude/skills/video-clone/scripts/kling_generate_test.py +0 -191
  35. package/.claude/skills/video-clone/scripts/preflight.py +0 -102
  36. package/.claude/skills/video-clone/scripts/preview.py +0 -208
  37. package/.claude/skills/video-clone/scripts/preview_test.py +0 -169
  38. package/.claude/skills/video-clone/scripts/save_workflow.py +0 -129
  39. package/.claude/skills/video-clone/scripts/save_workflow_test.py +0 -106
  40. package/.claude/skills/video-clone/scripts/status.py +0 -202
  41. package/.claude/skills/video-clone/scripts/status_test.py +0 -174
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gen
3
- description: "生成和编辑图片/语音/虚拟试穿。使用场景:生成图片(generate images/生成图片/画图)、编辑图片(edit images/编辑图片/图生图/风格转换)、文本转语音(TTS/语音合成/朗读)、语音识别(ASR/语音转文字/转录)、虚拟试穿(virtual try-on/试穿/换装/试衣)。视频生成请使用 video-clone skill。"
3
+ description: "生成和编辑图片/语音/虚拟试穿。使用场景:生成图片(generate images/生成图片/画图)、编辑图片(edit images/编辑图片/图生图/风格转换)、文本转语音(TTS/语音合成/朗读)、语音识别(ASR/语音转文字/转录)、虚拟试穿(virtual try-on/试穿/换装/试衣)。视频生成请使用 video-gen skill。"
4
4
  ---
5
5
 
6
6
  # AI 内容生成工具
@@ -0,0 +1,443 @@
1
+ ---
2
+ name: video-gen
3
+ description: "帮商家用 AI 生成产品视频(社媒投放 / 产品详情页)。触发场景:用户要做视频(做视频/生成视频/产品视频/宣传视频/图生视频)、用户给视频链接+产品图要复刻(复刻/翻拍/仿拍/做同款/爆款复刻)、用户给产品图想发社媒(TikTok视频/IG视频/短视频)、用户给产品图想放详情页(PDP视频/产品展示视频)。"
4
+ ---
5
+
6
+ # Video Generation Skill
7
+
8
+ 帮电商商家用 AI 视频生成替代传统实拍。核心价值:**帮用户形成一份满意的 Storyboard,然后按 Storyboard 执行生成。**
9
+
10
+ ## 工作目录
11
+
12
+ 所有状态都在 `~/video-gen/`,整个目录是一个 git repo。
13
+
14
+ ```
15
+ ~/video-gen/
16
+ ├── preferences.md
17
+ ├── history.md
18
+ └── videos/{video-id}/
19
+ ├── analysis.md
20
+ ├── storyboard.md
21
+ ├── production-plan.md
22
+ ├── quality-report.md
23
+ ├── assets/
24
+ │ ├── product.jpg
25
+ │ ├── reference.mp4
26
+ │ └── keyframes/
27
+ ├── prompts/
28
+ │ └── seg-N.txt
29
+ ├── clips/
30
+ │ ├── seg-N.pending.json
31
+ │ ├── seg-N.meta.json
32
+ │ └── seg-N.mp4
33
+ └── final.mp4
34
+ ```
35
+
36
+ ## 每次 session 的启动流程
37
+
38
+ 按顺序执行:
39
+
40
+ 1. **检查工作目录**:`ls ~/video-gen/preferences.md`
41
+ - 不存在 → 走「First-time init」
42
+ - 存在 → 继续步骤 2
43
+ 2. **扫描未完成任务**:找 `~/video-gen/videos/` 下无 `quality-report.md` 且创建 < 7 天的目录
44
+ - 有 → 在回复用户前主动提一次:"你有 N 个视频没完成..."
45
+ - 无 → 继续步骤 3
46
+ 3. **读 preferences.md** 和 **history.md**
47
+ 4. **按用户意图分流**:
48
+ - 有视频 + 有产品图 → Fast-path:直接走「分析 → Storyboard → Production Plan → 生成」全管道
49
+ - 有视频,无产品图 → 问"换成哪个产品?"
50
+ - 只有产品图/文字,信息充分 → Fast-path:走「Storyboard → Production Plan → 生成」
51
+ - 只有产品图/文字,信息不足 → 问"这个视频用在哪?"
52
+ - 社媒 → "要不要找 3 个爆款参考?"
53
+ - 要 → 走「参考发现」,用户选后继续管道
54
+ - 不要 → 从模板构建 Storyboard
55
+ - PDP → 从 PDP 模板构建 Storyboard
56
+ - "再试 / 更活泼 / 改 X" → 走「迭代」
57
+
58
+ **Fast-path 触发条件**(必须全部满足才走 fast-path,否则先问):
59
+
60
+ | 场景 | 必须有 | 可从 preferences 兜底 |
61
+ |---|---|---|
62
+ | **复刻** | 视频文件/链接 + 产品图 | 调性、平台 |
63
+ | **生成(社媒)** | 产品图 + 明确的意图动词("做视频"/"生成") + 平台 | 调性 |
64
+ | **生成(PDP)** | 产品图 + 明确说"详情页"/"PDP" | 调性 |
65
+ | **迭代** | 明确的 delta("更活泼"/"暖一点")+ history 无歧义匹配 | — |
66
+
67
+ **Fast-path 行为**:Storyboard 展示后告知而非审批,但**生成前必须告知预估成本**(见「执行生成」的成本确认)。用户可随时喊停。
68
+
69
+ ## First-time init
70
+
71
+ 首次使用时执行:
72
+
73
+ ```bash
74
+ mkdir -p ~/video-gen/videos
75
+ cd ~/video-gen
76
+ git init -b main
77
+ ```
78
+
79
+ 创建 `~/video-gen/preferences.md`:
80
+
81
+ ```markdown
82
+ # Preferences
83
+
84
+ ## Brand
85
+ name:
86
+ palette:
87
+ tone:
88
+ forbidden:
89
+
90
+ ## Defaults
91
+ platform:
92
+ aspect_ratio:
93
+ duration_seconds:
94
+
95
+ ## Learned
96
+ ```
97
+
98
+ 创建 `~/video-gen/history.md`:
99
+
100
+ ```markdown
101
+ # History
102
+
103
+ | date | video-id | product | purpose | template | storyboard-summary | parent | status | liked |
104
+ |---|---|---|---|---|---|---|---|---|
105
+ ```
106
+
107
+ 创建 `.gitignore`:
108
+
109
+ ```
110
+ videos/**/assets/reference.mp4
111
+ videos/**/assets/*.mov
112
+ videos/**/clips/*.mp4
113
+ videos/**/clips/*.mov
114
+ videos/**/final.mp4
115
+ videos/**/final.mov
116
+ ```
117
+
118
+ ```bash
119
+ git add -A && git commit -m "init: video-gen workspace"
120
+ ```
121
+
122
+ **Minimal init**:不要在首次使用时做问卷。只建骨架文件,preferences 留空。
123
+
124
+ 如果用户的首条消息已经包含了足够的信息(产品图 + 意图),**直接进管道**,在过程中自然补充 preferences:
125
+ - 用户说了"TikTok" → 默默填 Defaults.platform = TikTok
126
+ - 用户说了"warm 风格" → 默默填 Brand.tone = warm
127
+ - 都没说 → 从模板默认值兜底,不打断流程去问
128
+
129
+ 只有当管道完全无法推进时(例如连产品图都没有),才问**一个**关键问题。
130
+
131
+ 每次有新信息写入 preferences → `git commit -m "prefs: update <field>"`
132
+
133
+ ## 参考发现(仅社媒 + 用户同意时)
134
+
135
+ 1. 根据产品品类 + 平台,调 scout 相关命令搜近期爆款
136
+ 2. 品牌契合 + 产品形态匹配过滤
137
+ 3. 展示 3 个候选:平台 + 时间 + 指标 + 风格摘要
138
+ 4. **用户选一个** → 继续「分析源视频」
139
+ 5. "都不要" → 从模板构建 Storyboard
140
+
141
+ **绝不自动选参考。**
142
+
143
+ ## 分析源视频
144
+
145
+ 有源视频时执行。产出 `videos/{id}/analysis.md`。
146
+
147
+ 1. 创建项目目录:
148
+
149
+ ```bash
150
+ VIDEO_ID="$(date +%Y%m%d-%H%M)-<slug>"
151
+ mkdir -p ~/video-gen/videos/$VIDEO_ID/{assets/keyframes,prompts,clips}
152
+ ```
153
+
154
+ 2. 保存素材到 `assets/`
155
+
156
+ 3. ffmpeg 场景检测:
157
+
158
+ ```bash
159
+ ffprobe -v quiet -print_format json -show_format -show_streams assets/reference.mp4
160
+ ffmpeg -i assets/reference.mp4 -vf "select='gt(scene,0.3)',showinfo" -vsync 0 -f null - 2>&1 | grep showinfo
161
+ ```
162
+
163
+ 4. 每段抽 3 帧(首/中/尾):
164
+
165
+ ```bash
166
+ ffmpeg -i assets/reference.mp4 -vf "select='eq(n\,<FRAME_NUM>)'" -vsync 0 assets/keyframes/seg-<N>-<pos>.jpg
167
+ ```
168
+
169
+ 5. 读取关键帧图片,分析每段的 subject / composition / camera / lighting / palette / description
170
+
171
+ 6. 验证 ffmpeg 切段合理性(修正软切/漏切)
172
+
173
+ 7. 以表格写入 `analysis.md`:
174
+
175
+ ```markdown
176
+ # Analysis
177
+
178
+ ## 元数据
179
+ | 项目 | 值 |
180
+ |---|---|
181
+ | 总时长 | 7.0s |
182
+ | 比例 | 9:16 |
183
+ | FPS | 30 |
184
+ | 片段数 | 4 |
185
+
186
+ ## 镜头分析
187
+
188
+ | 段 | 时长 | 主体 | 角色 | 构图 | 运镜 | 光线 | 色调 | 描述 |
189
+ |---|---|---|---|---|---|---|---|---|
190
+ | 1 | 0-1.5s | ... | ... | ... | ... | ... | ... | ... |
191
+ | ... |
192
+
193
+ ## 整体风格
194
+ | 项目 | 值 |
195
+ |---|---|
196
+ | Pacing | slow |
197
+ | Mood | aspirational, minimalist |
198
+ | Hook | subtle visual intrigue |
199
+ | CTA | logo reveal |
200
+ ```
201
+
202
+ 8. `git commit -m "video: analyze $VIDEO_ID — N segments, Xs"`
203
+
204
+ ## 形成 Storyboard
205
+
206
+ 核心产出。**用户语言写,用户能读能改。**
207
+
208
+ 1. 读输入:preferences + analysis(如有)+ history 匹配 liked 记录 + 匹配模板(从 `$CLAUDE_SKILL_DIR/templates/` 读)
209
+
210
+ 2. 有模板则以模板为骨架填入产品/品牌信息;否则从零构建
211
+
212
+ 3. 复刻场景做**物理合理性预检**:原主体和用户产品形态是否兼容
213
+ - 不合理 → 告知原因,降级策略或建议换参考
214
+
215
+ 4. 写 `videos/{id}/storyboard.md`:
216
+
217
+ ```markdown
218
+ # Storyboard
219
+
220
+ ## 基本信息
221
+ | 项目 | 值 |
222
+ |---|---|
223
+ | 产品 | <名称> |
224
+ | 平台 | <TikTok / IG / PDP> |
225
+ | 时长目标 | <Ns> |
226
+ | 调性 | <调性> |
227
+ | 参考来源 | <来源或"从模板构建"> |
228
+
229
+ ## 镜头表
230
+ | 段 | 时长 | 内容 | 运镜 | 替换说明 |
231
+ |---|---|---|---|---|
232
+ | 1 | 0-1.5s | <内容> | <运镜> | <替换或"原创"> |
233
+ | ... |
234
+
235
+ ## Hook
236
+ <第 1 秒如何抓注意力>
237
+
238
+ ## CTA
239
+ <末尾留什么>
240
+
241
+ ## 物理合理性预检
242
+ <复刻时:替换是否合理。无参考时写 N/A>
243
+ ```
244
+
245
+ 5. 展示给用户:
246
+ - Fast-path:告知(不等审批),用户可喊停
247
+ - 非 Fast-path:问"OK 吗?想改哪段告诉我。"
248
+
249
+ 6. 确认后 `git commit -m "video: storyboard $VIDEO_ID — <summary>"`
250
+
251
+ ## 产出 Production Plan
252
+
253
+ Storyboard 确认后自动推导。用户通常不改。
254
+
255
+ 1. 选策略:
256
+
257
+ | 特征 | 策略 | 默认 provider |
258
+ |---|---|---|
259
+ | 1 镜头,无参考 | single-shot | 默认 |
260
+ | 多镜头,无参考 | multi-shot-concat | 默认 |
261
+ | 有参考,大致复刻 | clone-loose | 默认 |
262
+ | 有参考,高度还原 | clone-strict | 默认 |
263
+ | PDP 多卖点 | pdp-feature-concat | 默认 |
264
+ | 人物讲话 + 严格对口型 | talking-head | `piapi`(Kling 3.0) |
265
+ | 用户明确要 premium 质量 | 任一 + premium | `piapi` |
266
+
267
+ 2. 写 `videos/{id}/production-plan.md`:
268
+
269
+ ```markdown
270
+ # Production Plan
271
+
272
+ ## 策略
273
+ <策略名>
274
+ 原因: <选择理由>
275
+
276
+ ## 步骤
277
+ | Step | 工具 | 输入 | 输出 | 依赖 | Prompt 摘要 |
278
+ |---|---|---|---|---|---|
279
+ | 1 | <工具> | <输入> | <输出> | — | <prompt 或 N/A> |
280
+ | ... |
281
+
282
+ ## 验收标准
283
+ - 比例: <从 Storyboard>
284
+ - 时长: <从 Storyboard ±20%>
285
+ - Hook: <从 Storyboard>
286
+ - CTA: <从 Storyboard>
287
+ ```
288
+
289
+ 3. 为每个需 prompt 的步骤生成 `prompts/seg-N.txt`
290
+
291
+ 4. `git commit -m "video: plan $VIDEO_ID — <strategy>"`
292
+
293
+ ## 执行生成
294
+
295
+ <COST-GATE>
296
+ **生成前成本确认(必做,包括 Fast-path)**:在执行任何 `gen video` / `gen image` 调用之前,必须向用户展示一次成本摘要:
297
+
298
+ > 即将生成 N 段视频(策略: <策略名>),预计:
299
+ > - 调用次数: N 次 gen video + M 次 gen image(首帧编辑)
300
+ > - 预估耗时: ~X 分钟
301
+ > - 预估成本: ~$Y(扣 Optima credits)
302
+ >
303
+ > 继续?
304
+
305
+ 用户说"继续"/"好"/"OK" → 开始执行。
306
+ 用户说"太贵"/"换个便宜的" → 回到 Production Plan,换策略(如 strict → loose)。
307
+ 用户不回应超过合理时间 → 不执行,等用户。
308
+
309
+ **即使是 Fast-path 也必须走这一步。** 这是花钱步骤的唯一确认点。
310
+ </COST-GATE>
311
+
312
+ 按 production-plan.md 步骤表逐步执行。
313
+
314
+ **每步执行前**写 `clips/seg-N.pending.json`:
315
+
316
+ ```json
317
+ {
318
+ "task_id": "",
319
+ "submitted_at": "<ISO>",
320
+ "step": 1,
321
+ "tool": "<gen video | gen image | ffmpeg>"
322
+ }
323
+ ```
324
+
325
+ **工具调用**:
326
+
327
+ ```bash
328
+ # I2V(图生视频)— 默认走 DashScope Wan 2.6,便宜快
329
+ gen video <input_image> \
330
+ --prompt "<from prompts/seg-N.txt>" \
331
+ --duration <5|10> \
332
+ --resolution <720P|1080P> \
333
+ -o clips/seg-<N>.mp4
334
+
335
+ # I2V 需要精确口型/人物动作(talking head)— 用 Kling 3.0
336
+ gen video <input_image> \
337
+ --prompt "<from prompts/seg-N.txt>" \
338
+ --duration <5|10> \
339
+ --provider piapi \
340
+ -o clips/seg-<N>.mp4
341
+
342
+ # 首帧编辑(产品替换)— 双图模式
343
+ gen image "<编辑指令>" -i <原始首帧> -i <产品图> -o assets/keyframes/seg-<N>-edited.jpg
344
+
345
+ # 拼接
346
+ printf "file '%s'\n" clips/seg-*.mp4 > concat_list.txt
347
+ ffmpeg -f concat -safe 0 -i concat_list.txt -c copy final.mp4
348
+
349
+ # 任务查询 / 取消 / 重试
350
+ gen task get <task_id>
351
+ gen task cancel <task_id>
352
+ gen task retry <task_id>
353
+ ```
354
+
355
+ **Provider 选择逻辑**(在产出 Production Plan 时决定):
356
+
357
+ | 场景 | Provider | 理由 |
358
+ |---|---|---|
359
+ | 默认(产品展示 / 生活场景 / 大部分复刻) | 默认(DashScope) | 便宜(~10x 差距),质量足够 |
360
+ | 人物讲话 + 严格对口型 | `--provider piapi`(Kling 3.0) | Kling 3.0 口型精度更高 |
361
+ | 高质量严格复刻(用户明确要求 premium) | `--provider piapi` | Kling 3.0 保真度更高 |
362
+
363
+ **时长限制**:`gen video --duration` 仅支持 5 或 10 秒。多段视频用多次 `gen video` + `ffmpeg concat` 拼接。
364
+
365
+ **每步完成后**:
366
+ - 删 `seg-N.pending.json`
367
+ - 写 `seg-N.meta.json`(duration / resolution / status)
368
+ - `git commit -m "video: receive $VIDEO_ID seg-N"`
369
+
370
+ **全部完成**:`git commit -m "video: done $VIDEO_ID"`
371
+
372
+ **失败**:自动重试 1 次 → 仍失败标记 `needs_user_review`
373
+
374
+ **无依赖步骤可并行。生成过程中不问用户。**
375
+
376
+ ## Review
377
+
378
+ 生成完成后对照 storyboard.md 检查:
379
+
380
+ 1. **硬约束**(不过 → 告知用户):
381
+ - 比例匹配
382
+ - 时长 ±20%
383
+ - 文件可播放(`ffprobe final.mp4`)
384
+
385
+ 2. **软推荐**(不过 → 写入迭代建议):
386
+ - 产品可见性(抽 5 帧)
387
+ - 主体一致性(5 帧比对)
388
+ - 首帧质量
389
+
390
+ 3. 写 `quality-report.md` → `git commit -m "video: review $VIDEO_ID"`
391
+
392
+ 4. 展示结果 + 质量摘要 + **2-3 个迭代建议**
393
+
394
+ 5. 更新 `~/video-gen/history.md` 追加一行
395
+
396
+ 6. 用户说"好/完美" → 在 preferences.md Learned 追加一条 → `git commit -m "prefs: learn from $VIDEO_ID — <pattern>"`
397
+
398
+ ## 迭代
399
+
400
+ 用户说"再试 / 更 X / 改 Y":
401
+
402
+ 1. history.md 找匹配项
403
+ 2. 读该 video 的 storyboard.md
404
+ 3. 判断:
405
+ - "故事不对" → 改 storyboard → production-plan 重推 → 重新生成
406
+ - "效果不对" → storyboard 不动 → 改 production-plan → 重新生成
407
+ 4. 新 video-id = `{旧id}-v2`,history 的 parent 指向旧 id
408
+
409
+ ## 核心规则
410
+
411
+ - **信息够就直接做(Fast-path)**——最重要的一条
412
+ - **Storyboard 是核心产物**,所有路径汇聚于它
413
+ - **Production Plan 由 skill 自动推导**
414
+ - **每步完成立刻 git commit**
415
+ - **生成过程零打扰**
416
+ - **参考视频永远让用户选**
417
+ - **生成完给迭代建议**
418
+ - **新会话有未完成任务先告知一次**
419
+ - **不暴露模型名**——说"视频生成中"
420
+ - **git 记录一切,不允许 reset**
421
+
422
+ ## 错误处理
423
+
424
+ | 故障 | 处理 |
425
+ |---|---|
426
+ | gen 返回 failed | 重试 1 次 → 仍失败告知用户 |
427
+ | ffmpeg 失败 | 检查输入完整性,告知用户 |
428
+ | 源视频无法下载 | 建议手动下载后重试 |
429
+ | scout 无结果 | 告知,转模板构建 |
430
+ | 产品替换不合理 | 告知原因,降级策略或换参考 |
431
+ | 会话关闭 | 状态在文件系统 + git,下次接续 |
432
+ | gen task 超时 | 按 pending.json 重提 |
433
+ | git commit 失败 | 说明原因,不 reset |
434
+
435
+ ## 相关工具
436
+
437
+ - `gen video` — 图/文 → 视频
438
+ - `gen image` — 文 → 图
439
+ - `gen image` — 文生图,也是图像编辑(`-i` 传入输入图,可多次使用最多 8 张;产品替换首帧用 `-i 源帧 -i 产品图`)
440
+ - `gen task get/cancel/retry` — 异步任务控制
441
+ - `gen tts` — 文本 → 语音
442
+ - `ffmpeg` / `ffprobe` — 视频分析、抽帧、拼接
443
+ - `scout` — 爆款视频发现
@@ -0,0 +1,18 @@
1
+ # Template: 生活场景
2
+
3
+ 适合:需要展示使用场景的产品,强调生活方式
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-2s | 场景建立(环境全景)| 广角/慢推 |
9
+ | 2 | 2-5s | {product} 出现在场景中 | 中景 |
10
+ | 3 | 5-8s | 使用中(手部交互/操作)| 特写/跟手 |
11
+ | 4 | 8-{duration}s | 使用效果 + {product} 回归 + {cta} | 中景 |
12
+
13
+ ## 默认值
14
+ - Hook: 场景氛围(光线/色调)
15
+ - CTA: 产品 + 场景回味
16
+ - Pacing: moderate
17
+ - Duration: 8-15s
18
+ - Aspect: 9:16(社媒)或 16:9(PDP)
@@ -0,0 +1,17 @@
1
+ # Template: PDP 360 度展示
2
+
3
+ 适合:产品详情页主视频,强调产品外观
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-5s | {product} 正面 → 缓慢旋转一圈 | 环绕 |
9
+ | 2 | 5-10s | {product} 细节特写(材质/按钮/接口)| 推近 |
10
+ | 3 | 10-{duration}s | {product} 全景 + 尺寸参照 | 拉远 |
11
+
12
+ ## 默认值
13
+ - Hook: 干净的产品正面
14
+ - CTA: 产品名(无侵入式 CTA)
15
+ - Pacing: slow, steady
16
+ - Duration: 15-25s
17
+ - Aspect: 1:1 或 16:9
@@ -0,0 +1,18 @@
1
+ # Template: PDP 卖点逐个讲
2
+
3
+ 适合:功能性产品,有多个卖点需要展示
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-3s | {product} 全景介绍 | 缓推 |
9
+ | 2 | 3-8s | 卖点 A 细节 + 文字标注 | 推近 |
10
+ | 3 | 8-13s | 卖点 B 细节 + 文字标注 | 推近 |
11
+ | 4 | 13-{duration}s | {product} 全景收尾 | 拉远 |
12
+
13
+ ## 默认值
14
+ - Hook: 产品全景建立认知
15
+ - CTA: 产品名(简洁)
16
+ - Pacing: moderate, informative
17
+ - Duration: 15-30s
18
+ - Aspect: 1:1 或 16:9
@@ -0,0 +1,17 @@
1
+ # Template: TikTok 前后对比
2
+
3
+ 适合:效果类产品(美妆、清洁、改造)
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-2s | 痛点场景(before) | 手持/抖动 |
9
+ | 2 | 2-3s | {product} 介入 | 快切 |
10
+ | 3 | 3-{duration}s | 效果场景(after)+ {cta} | 稳定/慢推 |
11
+
12
+ ## 默认值
13
+ - Hook: 痛点的视觉冲击
14
+ - CTA: 产品名 + "立即体验"
15
+ - Pacing: fast
16
+ - Duration: 6-10s
17
+ - Aspect: 9:16
@@ -0,0 +1,17 @@
1
+ # Template: TikTok 产品揭晓
2
+
3
+ 适合:新品首发、产品亮点展示
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-1.5s | {product} 暗场渐入特写 | 静止→缓推 |
9
+ | 2 | 1.5-4s | {product} 使用场景 | {camera_style} |
10
+ | 3 | 4-{duration}s | {product} + {cta} | 静止 |
11
+
12
+ ## 默认值
13
+ - Hook: 暗场渐入的视觉悬念
14
+ - CTA: logo reveal
15
+ - Pacing: moderate
16
+ - Duration: 6-10s
17
+ - Aspect: 9:16
@@ -0,0 +1,18 @@
1
+ # Template: TikTok 开箱
2
+
3
+ 适合:有包装的产品、礼盒套装
4
+
5
+ ## 镜头表
6
+ | 段 | 时长 | 内容 | 运镜 |
7
+ |---|---|---|---|
8
+ | 1 | 0-2s | 包装盒全景 / 桌面摆拍 | 俯拍静止 |
9
+ | 2 | 2-5s | 手打开包装,缓缓取出 {product} | 跟手 |
10
+ | 3 | 5-7s | {product} 特写展示 | 缓推 |
11
+ | 4 | 7-{duration}s | {product} + 场景 + {cta} | 中景 |
12
+
13
+ ## 默认值
14
+ - Hook: 包装的视觉吸引力
15
+ - CTA: 产品 + logo
16
+ - Pacing: slow to moderate
17
+ - Duration: 8-12s
18
+ - Aspect: 9:16
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/optima-agent",
3
- "version": "0.8.95",
3
+ "version": "0.8.96",
4
4
  "description": "基于 Claude Agent SDK 的电商运营 AI 助手",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",