@gitruck/cli 1.2.14 → 1.3.0
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.
- package/AGENT.md +41 -33
- package/CHANGELOG.md +13 -7
- package/README.en.md +48 -13
- package/README.md +48 -13
- package/contracts/README.md +2 -0
- package/contracts/gsap-emit-v1-evidence.md +196 -0
- package/contracts/gsap-emit-v1.md +162 -408
- package/dist/index.js +252 -251
- package/docs/reference.en.md +35 -33
- package/docs/reference.md +47 -35
- package/package.json +3 -2
- package/skills/gtrk-ai-drama/SKILL.md +10 -8
- package/skills/gtrk-ai-drama/references/sparse-key-scenes.md +38 -0
- package/skills/gtrk-cover/SKILL.md +3 -3
- package/skills/gtrk-food-recap/SKILL.md +9 -11
- package/skills/gtrk-live-slicing/SKILL.md +17 -26
- package/skills/gtrk-long2short/SKILL.md +2 -2
- package/skills/gtrk-matrix/SKILL.md +11 -15
- package/skills/gtrk-mg/SKILL.md +21 -21
- package/skills/gtrk-music-visualizer/SKILL.md +3 -3
- package/skills/gtrk-narration/SKILL.md +23 -57
- package/skills/gtrk-oralcut/SKILL.md +4 -8
- package/skills/gtrk-splitter/SKILL.md +3 -3
- package/skills/gtrk-style-maker/SKILL.md +1 -1
- package/skills/gtrk-talking-head/SKILL.md +5 -6
- package/skills/gtrk-tools/SKILL.md +35 -7
- package/skills/gtrk-transcript/SKILL.md +4 -9
- package/skills/gtrk-travel-recap/SKILL.md +51 -76
- package/skills/gtrk-vlog-docu/SKILL.md +15 -15
- package/skills/gtrk-voiceover/SKILL.md +2 -2
|
@@ -37,37 +37,17 @@ description: 通用解说视频创作图纸(解说链正本)——把「一
|
|
|
37
37
|
| ⑦ | **源片语种 / 方言** | **问用户**:听一段 / 看片内有无内嵌字幕 / 看素材出处 | `gtrk transcript --lang`(`zh-CN` 普通话 / **`zh-HK` 粤语** / `en-US` / `ja-JP`…);素材通篇无对白答「无对白 / 不转写」即闭合,MUST NOT 因缺这个答案阻塞开工 |
|
|
38
38
|
|
|
39
39
|
> ②③④⑤⑦ MUST 问用户、MUST NOT 代猜;一张表一次问完,不碎问。
|
|
40
|
-
>
|
|
40
|
+
> **推荐面(公约 §三‴)**:问答收口时可问一句「要不要看看第三方 skill?」;题材命中场景触发词才定向推荐,读取 `gtrk skills recommend --scene <id> --json`;用户拒绝后不执行推荐动作。
|
|
41
41
|
>
|
|
42
|
-
>
|
|
43
|
-
> 静默转写跑完,整条链上无一处问过语种。⑦ MUST 早于 ① 的转写发起:转写是计费动作且在检查点①**之前**,
|
|
44
|
-
> **非中文素材**(`en-US` / `ja-JP`…)语种传错,用户在检查点①拿到的稿子就是坏的、重来要再付一次 ASR
|
|
45
|
-
> (真机 `--lang en-US` 出英文稿即实证);且豆包 14 项白名单外的语种码在 `word_level=true` 下会裸
|
|
46
|
-
> `KeyError` 炸任务。**MUST NOT 以缺省 `zh-CN` 静默开跑**,检查点①对语种只做过目复核。
|
|
42
|
+
> 语种必须在转写前确认。非中文素材传错语种会让检查点①拿到错误稿件并产生重复 ASR 成本;不要静默使用 `zh-CN`。粤语建议填写 `zh-HK` 作为元数据,当前 `--json` 路径按字级转写;无对白素材回答「无对白 / 不转写」即可。
|
|
47
43
|
>
|
|
48
|
-
> ⟲ **2026-09-02 同日订正(这一问的原粤语论证段已被求证推翻,问本身照旧成立)**:原文写
|
|
49
|
-
> 「`zh-CN` 与 `zh-HK` 在后端是两个不同的识别语种(Whisper `zh` vs `yue`)」——**该因果论断错**。
|
|
50
|
-
> `gtrk transcript` 写死 `word_level: true`(`src/commands/transcript.ts:178`)⇒ 链路钉在豆包、
|
|
51
|
-
> 到不了 Whisper(infra `utils/process/media/audio/asr.py:44-49` 在 `AsrFunc.Whisper` 分支里
|
|
52
|
-
> 仍把 `word_level_handler` 钉成豆包);而豆包字典里 `zh-CN` 与 `zh-HK` **都映射空串**
|
|
53
|
-
> (`utils/partner/volcengine/doubao_llm_asr.py:36-37`)⇒ 两种写法发出的请求**逐字段相同**。
|
|
54
|
-
> 粤语能识别对,靠的是豆包空串模式自己的方言自适应,与这个参数无关;`zh-HK→yue` 那条映射真实存在
|
|
55
|
-
> (`utils/partner/openai/__init__.py:18`)但只在 `word_level=false` 走 Whisper 时生效,CLI 今天走不到。
|
|
56
|
-
> ⇒ 粤语 **SHOULD** 如实填 `zh-HK`(元数据诚实 + 备将来链路切换),但 **MUST NOT 以「粤语语种传错」
|
|
57
|
-
> 为由重跑转写**:`la` 进 ASR 缓存键(`asr_result_cache.py:71-75`),换码必然 cache miss,
|
|
58
|
-
> 白扣一次时长换回同一份结果。
|
|
59
|
-
> ⟲ **2026-09-19 订正**:上段「写死 `word_level: true`」已过时。现口径按产物消费面分流
|
|
60
|
-
> (cli `adjust-transcript-json-word-level`):**无 `--json`** ⇒ 句级、走自部署引擎 + 服务端纠错(小工具用法);
|
|
61
|
-
> **`--json`**(本图纸的用法)⇒ 字级,transcript.json 带 `words[]`,字幕拆行后时间按语音贴。
|
|
62
|
-
> 粤语在 `--json` 路照旧落厂商字级腿;无 `--json` 路的粤语代价见 `switch-transcript-to-selfhosted-asr`。
|
|
63
|
-
|
|
64
44
|
## 三、时序铺排三档(本图纸的技术正本)
|
|
65
45
|
|
|
66
46
|
每段叙述配什么画面,按下面三档路由,**高档优先**:
|
|
67
47
|
|
|
68
|
-
> **⚠️
|
|
48
|
+
> **⚠️ 甲档的适用范围**:
|
|
69
49
|
> **整份手写 plan(免索引直排)降级为「引用段与硬出处段专用」**,叙述段缺省不再走它。
|
|
70
|
-
>
|
|
50
|
+
> 手写 plan 缺少检索结果携带的质量信号,因此:
|
|
71
51
|
>
|
|
72
52
|
> | 信号 | 断在哪 | 后果 |
|
|
73
53
|
> |---|---|---|
|
|
@@ -77,9 +57,6 @@ description: 通用解说视频创作图纸(解说链正本)——把「一
|
|
|
77
57
|
> | `motion` 高运动 | 手写 `segments` 不带该字段 | 抖/摇段不降权 |
|
|
78
58
|
> | `cuts` 切点 | 同上 | **端点残片收缩失效 = 闪帧的机制性根因** |
|
|
79
59
|
>
|
|
80
|
-
> 260828 三条美食片实测 `describes` 行数为 **0**——`--mark-weight 0.3` 明明传了,一分没参与。
|
|
81
|
-
> 这也解释了当时「低清 scdet 事后吸附零改善」:那是在成片上补救,根因在 plan 侧信号缺失,补不回来。
|
|
82
|
-
>
|
|
83
60
|
> ⇒ **叙述段缺省走「出处窗内检索」**(见下方「甲′」),既保出处准、又拿回五条信号。
|
|
84
61
|
> 用户坚持免索引时照办,但 **MUST 先把上表的代价说清**——它不是「快一点」,是质量档位下降,
|
|
85
62
|
> 且 MUST 在交付说明里如实登记本片走的是降档路径。
|
|
@@ -126,42 +103,36 @@ description: 通用解说视频创作图纸(解说链正本)——把「一
|
|
|
126
103
|
> 两条独立,回执分别以 `has_cuts` / `fps` 报,`cut_snap` 三态再把「按你的标注主动不吸」
|
|
127
104
|
> 与「素材没索引想吸也无从吸」分开。
|
|
128
105
|
|
|
129
|
-
> **直写 plan
|
|
106
|
+
> **直写 plan 操作注记**:整份 plan 可以手写——甚至**不依赖本地索引**
|
|
130
107
|
> (4K 长片索引很慢,甲档直排等不起也不必等)。逐 beat 一条 query、逐出处窗一条 result,
|
|
131
108
|
> `segments:[{start,end,best,score}]`(源片秒)。三条铁则:① `best` 是**窗内代表帧时刻**
|
|
132
109
|
> (秒),落窗外会被校验拒;lay 取段大致**以 best 为中心**——想 start 锚定就把 best 设为
|
|
133
|
-
> 「窗起点 + 意图时长/2」;② 预算三量齐足——`per_shot_sec` 按「beat 时长 / 窗数」给、**窗宽 ≥
|
|
110
|
+
> 「窗起点 + 意图时长/2」;② 预算三量齐足——`per_shot_sec` 按「beat 时长 / 窗数」给、**窗宽 ≥ 份额**,长出处区间拆成多个子窗;③ 引用段窗与配音时轴**逐秒对齐**(窗起点 = 引用音频对应的
|
|
134
111
|
> 源时刻),铺后按 `clip_st 与 track_st 的差恒等` 复核零漂移;④ **口播基座下 beat 预算按
|
|
135
112
|
> dispatch 的成片轴包络算**——`transcript.json` 的 st/ed 是源时码,且 beat 连续化会把句间
|
|
136
|
-
> 停顿带并入下一 beat
|
|
137
|
-
> ⑤ **beat
|
|
113
|
+
> 停顿带并入下一 beat,窗预算不足会产生空洞;
|
|
114
|
+
> ⑤ **beat 粒度以关键句为主,采用约七三的对齐与游离比例**。先认清机制:
|
|
138
115
|
> `matrix lay` 在 beat 内按候选分数贪心铺满、**槽序与句序无关**——一个 beat 跨多句时,
|
|
139
116
|
> 只有「领衔句」能拿到为它挑的画面,其余句是跟随。由此定编排法(**顺序不可颠倒**):
|
|
140
117
|
> **①关键词卡点先行**:先挑出有明确视觉指涉的句子(实体/动作/可拍之物),逐句独立成 beat、
|
|
141
118
|
> 一 beat 一窗,保证「稿说什么就给什么」。**划分判据是「素材里有没有」,不是「句子抽不抽象」**
|
|
142
|
-
>
|
|
119
|
+
> ——素材里有对应画面的句子 MUST 卡点
|
|
143
120
|
> (哪怕它夹在抽象段里,如「昨天的老汤兑进今天的新汤」有汤锅镜头就必须给汤锅);素材里
|
|
144
121
|
> 确实没有的才允许降为跟随(「卖过三十年汽车」片里无车、「多线程游戏」无从拍)。判据的
|
|
145
122
|
> 落地取证=渲后 `gtrk qc --alignment`:**卡点句 mismatch MUST 收敛到 0,且每一条 mismatch
|
|
146
|
-
>
|
|
147
|
-
> 素材有标牌镜头却被我把窗猜到别处 = 能卡没卡;u0016 老汤该卡却被我编成跟随 = 该严没严);②**其余填坑**:抽象句、数字句、修辞句、情绪句
|
|
123
|
+
> 都要先问「是我窗选错了,还是素材真没有」;②**其余填坑**:抽象句、数字句、修辞句、情绪句
|
|
148
124
|
> (日期/克数/"比太阳起得早"/"多线程游戏")**没有对应画面可给**,合并进相邻关键句的
|
|
149
125
|
> 长镜头当跟随,或用主题相近的群像长镜头覆盖;③**七三开收口**:约 70% 时长逐句对齐、
|
|
150
126
|
> 30% 游离创造自然感——**游离不是妥协是设计**。
|
|
151
|
-
> ⚠️
|
|
152
|
-
>
|
|
153
|
-
> 就是在毁观感**——对齐质检的靶子是「关键句零 mismatch」,不是「rate 冲 100」。
|
|
154
|
-
> 反向的错也实证过:beat 跨六句共用一窗(B02)会让四五句集体错位,对齐率压到 62%。
|
|
155
|
-
> 两头都是坑,七三开是那条中线。
|
|
156
|
-
> ⑥ **盲选窗跨源镜头切点**——这条曾是免索引直排的固有代价,**走 `direct_slots` 之后
|
|
157
|
-
> 大部分消掉**:直排槽照样过窗口精修,`provenance` 段的端点会被自动吸到切点。
|
|
127
|
+
> ⚠️ **不要追求 100% 逐句硬切**:对齐质检的靶子是「关键句零 mismatch」,其余句允许跟随;一个 beat 也不要跨太多关键句,以免集体错位。
|
|
128
|
+
> ⑥ **盲选窗跨源镜头切点**——`direct_slots` 的直排槽同样会过窗口精修,`provenance` 段的端点会自动吸到切点。
|
|
158
129
|
> 仍会剩下两种情形,都要如实报账而不是靠重铺硬碰:
|
|
159
130
|
> · **素材未索引**(无 `cuts`)⇒ 收缩无数据可用。先索引再铺是正解,等不起就照实说明。
|
|
160
131
|
> · **`quote` 引用段** ⇒ 它按设计**不吸**(吸走就是画音错开)。若那一口确实横跨切换,
|
|
161
132
|
> 那是内容本身如此,正确处置是改稿或改引用区间,不是让铺轨替你挪。
|
|
162
133
|
> 渲后 QC 的 flash/intra_cut 证据仍可反算源切点(clip_st + into_clip_sec)供人工复核。
|
|
163
134
|
|
|
164
|
-
### 甲′ ·
|
|
135
|
+
### 甲′ · 出处窗内检索(叙述段缺省路)
|
|
165
136
|
|
|
166
137
|
**出处准与检索对齐可以兼得**,不必二选一:把出处区间当**检索域**而不是当**答案**。
|
|
167
138
|
|
|
@@ -202,7 +173,7 @@ QC 反算重铺);② 段带 `cuts`,端点残片收缩生效;③ 段带 `
|
|
|
202
173
|
- **切取用流拷贝**(`ffmpeg -c copy`,零重编码);想让 AI 帮你海选可引用的高光,可先跑一遍 `gtrk long2short` 拿选段清单当候选(可选辅助,明示计费)。
|
|
203
174
|
- **装配**:逐段 TTS + 引用段原声按稿序拼成总音频 → 合成 transcript(各段句级时码换算到拼接轴)→ `gtrk project init --audio <总音频> --transcript <合成转写>` 建工程(自备配音兜底路);引用段画面 = 该源区间直排上轨。无引用段时装配退化为单条 TTS + `--tts-task` 主路(与旅拍同款)。
|
|
204
175
|
**产物文件名别硬拼(fix-tool-outdir-collision)**:多段 TTS 落**同一个 `--out`** 时,第二段起的产物会带 taskId 后 6 位后缀(`tts-narrator-a1b2c3.wav`),基名只有第一份是干净的。拼接清单 MUST 按每次回执的 `files` 取路径,MUST NOT 按 `tts-<speaker>.wav` 猜——猜出来的名字会一路指向第一段,拼出来的总音频会把某一段重复多遍而不报错。
|
|
205
|
-
|
|
176
|
+
**主轨无缝铁则**:合成 transcript 里引用段 utterance 的 st/ed **MUST 写物理拼接位**(拼接轴上的真实起止),MUST NOT 加字幕 pad;已有 pad 的工程按「改时刻→重导视图→重落拆分→重铺→字幕重出」修复。
|
|
206
177
|
- **克制丑话**:引用段是佐料——时长占比失衡会让片子变成搬运,平台判定风险归用户(§八 一并告知)。
|
|
207
178
|
|
|
208
179
|
## 五、快速成片编排
|
|
@@ -222,9 +193,8 @@ gtrk transcript "<长片>" --lang <开工⑦所答语种> --json # 影视/游
|
|
|
222
193
|
|
|
223
194
|
# ②③ 写稿(甲档出处共生 / 乙路对照表对齐)→ 检查点①拍板(§六)
|
|
224
195
|
gtrk matrix material "<情绪 题材 检索词>" --scope audio --top-k 5 --json # BGM 候选附试听
|
|
225
|
-
# ⚠️ is_copyright 的权威语义是 1/true=可商用、0/false
|
|
226
|
-
#
|
|
227
|
-
# ⟲ 260906 拍板 · 选材口径:矩阵成员档**缺省搜全库**,MUST NOT 默认加 --commercial-only、
|
|
196
|
+
# ⚠️ is_copyright 的权威语义是 1/true=可商用、0/false=**不可商用**,MUST NOT 把 false
|
|
197
|
+
# 读成「无版权、可随便用」。矩阵成员档**缺省搜全库**,MUST NOT 默认加 --commercial-only、
|
|
228
198
|
# 也 MUST NOT 以「保险起见」为由剔掉 is_copyright:false 的候选(全库正是成员身份买到的东西)。
|
|
229
199
|
# 对价是**如实标注**:推荐时 MUST 逐条带上 copyright_label(派生位,中文标签),不可商用的照直说,
|
|
230
200
|
# 但 MUST NOT 升级成追问或阻塞。用户**特意说明**只要可商用 / 要商用发布 / 客户商单时才加
|
|
@@ -247,7 +217,7 @@ gtrk matrix lay --project "<工程>" --mark-weight 0.3 --highlight-weight 0.2 --
|
|
|
247
217
|
|
|
248
218
|
# ⑧⑨⑩ 字卡(MG 临场泛化,公约 §三)→ BGM(0.10 垫底、短了自动循环铺满)→ 字幕直出
|
|
249
219
|
# BGM 是带人声歌曲(audio_type:"song")→ MUST 下载 accompaniment_url 伴奏版上轨,
|
|
250
|
-
# 不得用 download_url
|
|
220
|
+
# 不得用 download_url 原曲(人声与配音会打架)
|
|
251
221
|
gtrk mg --project "<工程>" --json
|
|
252
222
|
# --beat-align 的高潮点取自 split.beats 的 narrative / container_stage(升华段 → 容器转折 → 回扣段);
|
|
253
223
|
# 拆分稿没带这两个字段 ⇒ 落 0.75×全片兜底档,**CLI 会明示那是猜的**。不接受就用 --climax <轨秒> 指定。
|
|
@@ -259,25 +229,21 @@ gtrk subtitle lay --project "<工程>" --style <样式> --color <色> --json
|
|
|
259
229
|
> **停顿太长时**:自训音色加 `--fragment-interval 0.2`(合成时就对);云引擎音色**不支持**该参数(传了会报错,不会静默忽略),改在合成后跑 `gtrk audio tighten --project <工程>` 收紧句间停顿(纯本地零计费;只压跨句界的停顿,句内换气与原声引用段不动)。
|
|
260
230
|
|
|
261
231
|
配方口径(`--mark-weight 0.3`、BGM 0.10、`--gap-fill fast`、句界吸附缺省)与旅拍图纸 §五 同源,本图纸引用不复制。
|
|
262
|
-
`--highlight-weight 0.2
|
|
232
|
+
`--highlight-weight 0.2`:看点维度与 mark 正交——mark 判「好不好看」、highlight 判
|
|
263
233
|
「有没有看点」(信息量/戏剧性/情绪强度/稀缺性)。看点准则按垂类走 L1 rubric(美食/旅拍图纸各持一份
|
|
264
234
|
**画面投影版**)。两权之和 0.5,语义仍占一半——**MUST NOT 加到语义压不住的程度**,那会变成
|
|
265
235
|
「专挑好看的,不管说的是什么」。
|
|
266
236
|
⚠️ 三个权重(mark/highlight)与 blurry 降权**全都依赖 `matrix describe --plan` 跑过**;
|
|
267
237
|
没跑就是全部候选中性、排序与不开权重逐字节一致。
|
|
268
|
-
|
|
238
|
+
质检按公约「三级收敛」执行:**L1 恒开**;**L2 落轨前**可用 `gtrk matrix lay --arrange-qc` 检查卡点句画音对齐;**L3 渲后终检**随本来就要交付的本地渲附带,不为质检单独逼渲。跑过的质检结论随交付分层呈现。
|
|
269
239
|
|
|
270
240
|
## 六、检查点①(拍板停一次;铺画面前另有一次用量确认)
|
|
271
241
|
|
|
272
|
-
>
|
|
273
|
-
> 本地素材的编排自该日起默认走云端并按「编排量」计费,`matrix lay` **跑前会再停一次**报预估。
|
|
274
|
-
> 后半句仍成立(那次确认也在检查点①之后)。
|
|
275
|
-
> **agent 纪律**:无 TTY 时 CLI 问不到人会回落本机编排并打告警——MUST 先把预估用量告诉用户、
|
|
276
|
-
> 拿到同意再带 `--yes` 重跑;MUST NOT 未经同意就带 `--yes`,也 MUST NOT 看到回落告警当没事发生。
|
|
242
|
+
> 本地素材的编排缺省走云端并按编排量计费。`matrix lay` 跑前必须报告预估用量,取得同意后才能带 `--yes`;无 TTY 且未确认时整轮中止,工程不改动,plan 可重跑。
|
|
277
243
|
|
|
278
244
|
稿件(含引用窗口标注)+ **出处对照表**(乙路时;低置信段标出)+ 画幅 + 音色(附试听)+ BGM(附试听)+ 字幕样式(不挑走默认)——一屏给齐一次拍板。**未经确认 MUST NOT 发起 TTS/长剪短等计费动作。**
|
|
279
245
|
|
|
280
|
-
##
|
|
246
|
+
## 六′、稿句↔镜头对照表(铺轨前必给)
|
|
281
247
|
|
|
282
248
|
候选选定、**铺轨动作发起之前**,把「哪句配哪个镜头、为什么是它」摊开给用户过目。
|
|
283
249
|
出处对照表回答「这段稿从哪来」,本表回答「这段稿给什么画面」——两张表不互替。
|
|
@@ -295,7 +261,7 @@ gtrk subtitle lay --project "<工程>" --style <样式> --color <色> --json
|
|
|
295
261
|
用户在这里改判的成本最低:他说「u0012 我记得片尾还有个更好的标牌镜头」,此时换窗重检索
|
|
296
262
|
只花几秒;等铺完渲完再改,就是整轮返工。
|
|
297
263
|
|
|
298
|
-
##
|
|
264
|
+
## 六″、验收判据
|
|
299
265
|
|
|
300
266
|
含 B-roll 覆盖的成片,验收 MUST 同时满足两条:
|
|
301
267
|
|
|
@@ -303,7 +269,7 @@ gtrk subtitle lay --project "<工程>" --style <样式> --color <色> --json
|
|
|
303
269
|
2. **`gtrk qc --alignment` 的卡点句 mismatch = 0**。
|
|
304
270
|
|
|
305
271
|
> ⚠️ **判据是 lead_mismatch 归零,不是全句对齐率冲 100。**
|
|
306
|
-
> 全句率趋近 100%
|
|
272
|
+
> 全句率趋近 100% 往往意味着逐句硬切,可能让片子变碎。
|
|
307
273
|
> 全句 rate 只作参考量看趋势,**MUST NOT 当达标线**。
|
|
308
274
|
>
|
|
309
275
|
> 每一条 lead mismatch 都先问「**是我窗选错了,还是素材真没有**」:前者换窗重铺,
|
|
@@ -113,11 +113,8 @@ gtrk oralcut "<align 结果 JSON 的 output,即 *_extaudio.mp4>" [原有参数
|
|
|
113
113
|
|
|
114
114
|
## 执行(每次都带 `--json`)
|
|
115
115
|
|
|
116
|
-
> **产物落点纪律(MUST · 全文见随包 `AGENT.md`
|
|
117
|
-
>
|
|
118
|
-
> **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
|
|
119
|
-
> 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
|
|
120
|
-
> 交付物(颗粒 HTML / 工程文件 / 派单稿 / 文稿等)SHALL **直接以工程目录内的最终路径为写入路径**,MUST NOT 先写 agent 自有工作目录再拷进工程——**中转本身即违规**,不以「最后拷进去了」免责,**体积不是豁免理由**(2026-09-07 事故里漂掉的是 2.7–6.2 KB 的 HTML)。与上一条的分界:抽帧图这类**不交付**的中间物走系统 temp;**要交付的东西没有暂存态**。
|
|
116
|
+
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:交付物只写入工程目录或用户显式指定的输出路径;引用媒体用原路径,不复制到 agent 工作目录;临时文件放系统 temp,用完即删。
|
|
117
|
+
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
121
118
|
|
|
122
119
|
```bash
|
|
123
120
|
gtrk oralcut "<毛片绝对路径>" [--script "<txt路径>"] [--preset steady|concise|compact] [其它参数…] --json
|
|
@@ -175,8 +172,7 @@ gtrk oralcut "<毛片绝对路径>" [--script "<txt路径>"] [--preset steady|co
|
|
|
175
172
|
|
|
176
173
|
⚠️ **上面的词只是举例、不是白名单**——判据是「**用户表达了节奏/范围保留**」,换个说法照样得听懂。
|
|
177
174
|
典型误判:「先智能剪口播 **然后我们逐步推进**」——用户说了「然后」,明确表示还要往下,
|
|
178
|
-
**范围**逃生门逐字不成立;但**节奏**逃生门成立 ⇒ **SHALL
|
|
179
|
-
当时只写了范围侧,agent 一口气连跑了三个 skill。)
|
|
175
|
+
**范围**逃生门逐字不成立;但**节奏**逃生门成立 ⇒ **SHALL 停**。不要因用户说「然后」就忽略明确的逐步推进要求。
|
|
180
176
|
|
|
181
177
|
停下时**必须交代下一步是什么、他说一声就继续**,别退化成事事请示。示范:
|
|
182
178
|
「口播工程已就绪。按你说的逐步来,我先停在这。下一步是拆成 beat 级分镜派单,你说一声我就接着做。」
|
|
@@ -198,7 +194,7 @@ gtrk patch trim --project <dir> --clip <clip_id> --out -1s
|
|
|
198
194
|
|
|
199
195
|
**MUST NOT 直接编辑 `.gtrk` 的 JSON。** 片段时码是两套并存的(`clip_st`+`clip_ed` 与
|
|
200
196
|
`clip_st`+`duration`):改一份不改另一份,客户端优先读 `clip_ed`、后端又不强校验它 ⇒
|
|
201
|
-
|
|
197
|
+
`gtrk patch` 替你做恒等式同步 + 帧对齐 + 写前全档校验。
|
|
202
198
|
|
|
203
199
|
> 参数手册在 `AGENT.md` 的「元素级编辑:`gtrk patch`」一节与 README 命令参考。
|
|
204
200
|
> 本节**只指路不搬手册** —— 搬过来就会长出会漂移的副本。
|
|
@@ -12,7 +12,7 @@ description: 视觉拆分派单器——把一条已剪好的口播工程(gtrk
|
|
|
12
12
|
## 三条铁律(先记死,再动手)
|
|
13
13
|
|
|
14
14
|
1. **只引用视图里存在的 utterance id**:beat 的文稿范围 = `span:{from:"u0007", to:"u0011"}`(utterance id 区间)。id 必须来自 `gtrk split --project` 导出的投影视图,**不许臆造**(`u9999` 一定被硬拒)。
|
|
15
|
-
2.
|
|
15
|
+
2. **绝不抄原句文字作定位**:原文片段会诱发幻觉、也会和实拍漂移。一律用 utterance id 区间。
|
|
16
16
|
3. **绝不自造/推算任何时码**:拆分稿里**不写任何秒级时码字段**。轨道时码由 `gtrk split` 落地时现场投影写入 `struct_meta.split` / `dispatch.json`。你只管语义(lane / 叙事功能 / handoff),时间线交给 CLI。
|
|
17
17
|
|
|
18
18
|
## ★ MG 槽位的视觉职能 `visual_job`(必填)
|
|
@@ -73,10 +73,10 @@ description: 视觉拆分派单器——把一条已剪好的口播工程(gtrk
|
|
|
73
73
|
## 完整流程(取视图 → 拆分 → 落地 → 修正循环 ≤3 轮)
|
|
74
74
|
|
|
75
75
|
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
|
|
76
|
+
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
76
77
|
> 一切产物(拆分稿 / 派单 / 成片 / 预览 / 素材 / 工程文件)只落**工程目录**或**用户显式指定的输出路径**;
|
|
77
78
|
> **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
|
|
78
|
-
> 临时文件(抽帧图等)一律放系统 temp
|
|
79
|
-
> 交付物(颗粒 HTML / 工程文件 / 派单稿 / 文稿等)SHALL **直接以工程目录内的最终路径为写入路径**,MUST NOT 先写 agent 自有工作目录再拷进工程——**中转本身即违规**,不以「最后拷进去了」免责,**体积不是豁免理由**(2026-09-07 事故里漂掉的是 2.7–6.2 KB 的 HTML)。与上一条的分界:抽帧图这类**不交付**的中间物走系统 temp;**要交付的东西没有暂存态**。
|
|
79
|
+
> 临时文件(抽帧图等)一律放系统 temp 且**用完即删**。交付物直接写入工程目录或用户显式指定的路径;引用媒体用原路径。
|
|
80
80
|
|
|
81
81
|
### 1. 取投影视图(你的唯一创作输入)
|
|
82
82
|
|
|
@@ -50,7 +50,7 @@ description: "能生产 skill 的 meta skill——通过启发式访谈引导视
|
|
|
50
50
|
### ⑤ 词表沉淀
|
|
51
51
|
|
|
52
52
|
访谈中**反复出现的自造词**(他给自己概念起的名字)逐个登记。这些词就是他栏目的语法词汇。
|
|
53
|
-
- 条件产出:家族 ≥2 个 skill **或** 沉淀出自造词时,单独产共享词表文件(家族各 skill
|
|
53
|
+
- 条件产出:家族 ≥2 个 skill **或** 沉淀出自造词时,单独产共享词表文件(家族各 skill 引用它,防多处定义漂移);单 skill 且无自造词时,词表并入 SKILL.md 一节即可。
|
|
54
54
|
|
|
55
55
|
### ⑥ 家族切分
|
|
56
56
|
|
|
@@ -29,11 +29,11 @@ description: 通用口播视频创作图纸(口播链)——把一条或一
|
|
|
29
29
|
| ② | 有无独立外录音轨? | 看目录配对(每条视频旁的音频文件)+ ffprobe 时长比对 | 走不走双轨换声(§二) |
|
|
30
30
|
| ③ | 有没有文稿? | 问用户。**⚠️ 即兴内容禁传事后整理稿**——oralcut 会把「终稿外内容」当废话剪掉,即兴场景必须走无稿智能重建 | `--script` 传不传 |
|
|
31
31
|
| ④ | 毛片几何 | ffprobe | 画幅随片(**非拍板项**,与旅拍不同——那边是无中生有须拍板画幅);非标帧率会被吸附到标准值,属预期 |
|
|
32
|
-
| ⑤ | **B-roll
|
|
32
|
+
| ⑤ | **B-roll 素材来源** | **问用户,MUST NOT 硬塞**:有没有本地素材文件夹(要路径)?要不要用云端素材填充? | §五 matrix 走法三选一:本地(`--local --dirs`)/ 云端 / **都不要 = 不铺 B-roll**(纯 A_ROLL + MG 字卡也是完整成片形态) |
|
|
33
33
|
|
|
34
34
|
| ⑥ | **有没有与人像同步录制的屏录 / 第二机位?** | **问用户,MUST NOT 代猜**(看目录里有没有同时段的屏录 / 另一机位文件只是提示,不是答案)。有则追问三样:画中画形状(圆 / 圆角方 / 爱心 / 菱形 / 星形,缺省圆)、位置(缺省右下)、大小(缺省约 28% 画幅高) | 走不走 §二′ 双源画中画(`gtrk pip lay`);屏录题材 **⑤ 默认答「不铺 B-roll」**(屏幕本身即画面) |
|
|
35
35
|
|
|
36
|
-
>
|
|
36
|
+
> **推荐面(公约 §三‴)**:问答收口时可问一句「要不要看看第三方 skill?」;题材命中场景触发词才定向推荐,读取 `gtrk skills recommend --scene <id> --json`;用户拒绝后不执行推荐动作。
|
|
37
37
|
|
|
38
38
|
## 二、双轨收音:对轨 → 换轨(本图纸最大的新东西)
|
|
39
39
|
|
|
@@ -47,8 +47,7 @@ description: 通用口播视频创作图纸(口播链)——把一条或一
|
|
|
47
47
|
gtrk audio align "<毛片>" "<外录>"
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
全测得 0、置信度 8.8–13.6)。**测出 0 比假设 0 更稳**:万一素材其实没对齐,假设 0 会静默错轨。
|
|
50
|
+
已对齐、未对齐**都直接跑自动分支**——已对齐素材会测出接近 0 的偏移与高置信。**测出 0 比假设 0 更稳**:万一素材其实没对齐,假设 0 会静默错轨。
|
|
52
51
|
`--offset 0` 只在你确知偏移时用(跳过检测省几秒)。
|
|
53
52
|
|
|
54
53
|
命令自动互相关测偏移并给**置信度**,按置信度分流:
|
|
@@ -158,11 +157,11 @@ gtrk split(投影 → 你写拆分稿 → 落地)→ gtrk matrix(按⑤走
|
|
|
158
157
|
拆分稿写完自查两条:
|
|
159
158
|
- **lane 里出现 AI_DRAMA 即改派**(机检 grep 即可);
|
|
160
159
|
- **字卡要产颗粒的,aux 必须用 `type:"overlay"` + handoff(含 duration_hint)**——`quote-card` 等
|
|
161
|
-
前七类 aux
|
|
160
|
+
前七类 aux 只是语义标注、**不产派单**;需要颗粒的字卡必须用 `type:"overlay"` + handoff。
|
|
162
161
|
|
|
163
162
|
## 六、MG 风格:内容驱动的临场泛化(成片型图纸通用条款)
|
|
164
163
|
|
|
165
|
-
>
|
|
164
|
+
> 横切原则正本见仓内《成片型图纸公约》§三(`docs/成片型图纸公约.md`);本节是口播链的执行文本,旅拍图纸 §六「因势象形」是它的旅拍实例。
|
|
166
165
|
|
|
167
166
|
- **有栏目风格 skill** → 走栏目(经栏目配置注入),本节不适用。
|
|
168
167
|
- **没有栏目风格 skill** → **按当下这片的内容,现场泛化一套自洽风格直接用**:
|
|
@@ -7,7 +7,7 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
7
7
|
|
|
8
8
|
飞书使用教程统一入口:[gtrk CLI 使用教程](https://hocassian.feishu.cn/wiki/HCFpwoF7SivIFbkKosgcFMcEnxk)。
|
|
9
9
|
|
|
10
|
-
`gtrk tool <name> [输入...]` 是 gtrk 的**单点能力**族:一个工具 =
|
|
10
|
+
`gtrk tool <name> [输入...]` 是 gtrk 的**单点能力**族:一个工具 = 单发单收(给一份输入、出一份产物;多文件图片工具的「一份输入」是一组图片路径,顺序即拼装顺序),没有成片 SOP 次序;视频去水印必须先完成下文的用户模式选择——与成片管线的车道命令(`oralcut` / `split` / `matrix` / `mg`)是两回事。本 skill 是这个族的**统一调用向导**:认清有哪些工具、按纪律驱动 `gtrk tool` 命令、把产物和计费如实回给用户。
|
|
11
11
|
|
|
12
12
|
> **本 skill 已含你需要的全部信息**(工具清单、调用纪律、恢复语义、排错话术)。工具清单以 `gtrk tool list --json` 为**唯一真相**——本文件与它漂移时以命令输出为准并回来修本文件。参数细节以 `gtrk tool --help` 为准。
|
|
13
13
|
|
|
@@ -35,6 +35,7 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
35
35
|
| `video_split_screen` | 「分屏 / reaction 同框 / 对比视频 / 多画面合成」 | **2~16 段视频**(多 positional,顺序有语义);精确档 `--clips-json`:条目 `{input:0 起序号, begin_time_ms, end_time_ms, crop 归一化}`(**毫秒时基**、`input` 指第几个输入文件、同文件可多窗口);可选 `--layout-mode/--layout-id/--seed/--output-ratio/--quality/--fit-mode/--audio-mode/--gap-ratio/--background-color`。**成片时长对齐最短段** | 一条分屏成片视频 | 运行前实时查询 | 已上线 |
|
|
36
36
|
| `video_long2short_pro` | 「长视频剪成多条高光短片 / 一键出成片 / 长剪短精剪 / 播客切片直接出片」 | 单条长视频(**整片上传**,云端要渲成片);**`--language <码>` 必填**;可选 `--output-language`、`--main-topic`、`--output-size`、`--no-jump-cut`、`--duration-pref`、`--max-clip-sec`、`--split-screen`、`--split-orientation`、`--speed-factor`、`--no-camera-move`、`--no-subtitle`、`--subtitle-translate-language`;润色细颗粒走 `--params-json` | 逐条成片 `clip{i}.mp4` + 人读报告 `clips.md`(含**润色降级明细**)+ `result-output.json` | 运行前实时查询(**约为粗剪两倍**) | 已上线 |
|
|
37
37
|
| `video_face_track` | 「人脸追踪 / 人物出场时间段 / 视频里有哪几个人」 | 单条本地视频;可选 `--sample-fps`、`--max-faces`、`--min-face-ratio`、`--enable-body-match`、`--similarity-threshold`;`time_ranges` 经 `--params-json` 传(**单位毫秒**,如 `{"begin_time":0,"end_time":30000}`)。**重 GPU、按分钟计费较高** | 人物 ID/时间段/轨迹结构 `result-output.json`(时基以服务端输出为准) | 运行前实时查询 | 已上线 |
|
|
38
|
+
| `video_character_cut` | 「角色 Cut / 找出某角色全片片段 / 正反打角色检索」 | 本地视频;`--character`、`--seed-range`,多人时 `--seed-bbox x,y,w,h`;全片镜头清单 + ≤720p/12fps 代理;CPU 解码 + 外部多图理解 | `video_character_cut.v2`:cuts、review_candidates、context_review、unknown_ranges;仅返回原片时间轴。partial 不可声称全片已找全;身份歧义换种子/框选 | 运行前实时查询 | v2 重构验证中,未部署 |
|
|
38
39
|
| `video_ai_subtitle` | 「智能字幕 / 给视频加字幕 / 视频翻译字幕 / 烧录字幕 / 去原字幕」 | 单条视频或音频;**`--language <码>` 必填**;可选 `--translate-language`、`--need-render`(烧录)、`--need-pure`(去原字幕)、`--subtitle-type`、`--subtitle-color`。**默认只上传本地抽出的音频、毛片不出本地**(几何随请求回传,字幕按原片画布出) | `.ass` 字幕文件 + 可选烧录/去字幕 `.mp4` + `result-output.json`(LLM 摘要 + 字级时间轴) | 运行前实时查询 | 已上线 |
|
|
39
40
|
|
|
40
41
|
> **字幕这两条要提前讲给用户**(`video_ai_subtitle` 专属):
|
|
@@ -117,11 +118,11 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
117
118
|
|
|
118
119
|
## 调用纪律(每次都照做)
|
|
119
120
|
|
|
120
|
-
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
|
|
121
|
+
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
|
|
122
|
+
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
121
123
|
> 一切产物只落 `outDir`(缺省 = 输入同目录)或**用户显式指定的 `--out`**;
|
|
122
124
|
> **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
|
|
123
|
-
> 临时文件一律放系统 temp
|
|
124
|
-
> 交付物(颗粒 HTML / 工程文件 / 派单稿 / 文稿等)SHALL **直接以工程目录内的最终路径为写入路径**,MUST NOT 先写 agent 自有工作目录再拷进工程——**中转本身即违规**,不以「最后拷进去了」免责,**体积不是豁免理由**(2026-09-07 事故里漂掉的是 2.7–6.2 KB 的 HTML)。与上一条的分界:抽帧图这类**不交付**的中间物走系统 temp;**要交付的东西没有暂存态**。
|
|
125
|
+
> 临时文件一律放系统 temp 且**用完即删**。交付物直接写入工程目录或用户显式指定的路径;引用媒体用原路径。
|
|
125
126
|
|
|
126
127
|
1. **先看清单、再对号**:用户的意图对到某个工具名(拿不准就 `gtrk tool list --json` 核对触发语与输入要求)。
|
|
127
128
|
2. **执行前转述实时计费提示**:先读本次 `gtrk tool list --json` 的 `billingHint`/`pricing`,再把实时结果如实告诉用户;不得引用本文件或记忆中的旧价格。若显示价格暂不可用,就说明最终以服务端结算为准。
|
|
@@ -132,7 +133,7 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
132
133
|
7. **透传高级参数**:命令没为某个云端参数开 flag 时,用 `--param k=v`(可重复)或 `--params-json '<对象>'` 直接透传(如 `image_move` 想指定输出几何 `--param width=1080 --param height=1920`)。
|
|
133
134
|
8. **单发单收、批量靠循环**:一次一份输入;用户要批处理就你逐个循环调。例外是多文件图片工具(`image_classic_template` / `image_vertical_stitch`)——它们的一份输入天然是一组图片(一次任务一次计费),传参顺序即拼装顺序,别把它当批处理。
|
|
134
135
|
|
|
135
|
-
图片比例转换常用形态:`gtrk tool image_canvas_adapt ./photo.jpg --canvas-width 1080 --canvas-height 1920 --canvas-type rectangle --json`。`--canvas-type`
|
|
136
|
+
图片比例转换常用形态:`gtrk tool image_canvas_adapt ./photo.jpg --canvas-width 1080 --canvas-height 1920 --canvas-type rectangle --json`。`--canvas-type` 只接受 `normal`、`rectangle`、`square`;省略画布参数时不替服务端写死默认值。
|
|
136
137
|
|
|
137
138
|
图转运镜可指定运镜方式:`gtrk tool image_move ./photo.jpg --motion zoom_in_center --json`。`--motion` 未传时云端自动选择(构图 + 主体识别 + 随机,同图重跑结果会变);显式指定后同图同参重跑结果一致。合法值 26 个、分三组,用户说「往右推 / 拉远 / 从左往右扫」这类自然语言时按语义对号入座,对不上就问清,别瞎猜:
|
|
138
139
|
|
|
@@ -158,8 +159,8 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
158
159
|
- 视频比例转换:`gtrk tool video_canvas_adapt ./clip.mp4 --canvas-width 1080 --canvas-height 1920 --canvas-type rectangle --clip-start 12 --clip-end 60 --without-audio --json`。`--clip-start/--clip-end` 传起止帧序号;省略选项就沿用服务端默认,需要保留音轨时不要传 `--without-audio`。
|
|
159
160
|
- 视频防抖:`gtrk tool video_stabilizer ./clip.mp4 --stabilizer-method turbo --json`。支持 `fast`、`exp`、`turbo`;未传时由服务端使用 `turbo`,`exp` 只按实验方式转述,不承诺观感。
|
|
160
161
|
- 蒸汽波滤镜:`gtrk tool video_vaporwave ./clip.mp4 --vaporwave-filter "灼熱苦夏" --json`。滤镜名原样精确传递,不翻译、不猜别名;未传时 CLI 明确使用 `愈漸升溫`。
|
|
161
|
-
- 视频净化:`gtrk tool video_purify ./clip.mp4 --purify-scope custom --purify-method
|
|
162
|
-
- 按框直接去除:`gtrk tool video_purify ./clip.mp4 --purify-scope region --purify-region 0.8,0.02,0.18,0.08,0,5 --json`(图片把工具换成 `image_purify`、框只写 `x,y,w,h`)。`--purify-region`
|
|
162
|
+
- 视频净化:`gtrk tool video_purify ./clip.mp4 --purify-scope custom --purify-method <用户选定模式> --purify-roi 0,0.78,1,0.2 --json`。ROI 是 `x,y,w,h` 归一化坐标,只能和 `custom` 同用;`raft` 仅支持 20 分钟以内视频,`ffmpeg` 不套用这个上限。只处理用户有权修改的素材,不宣称能还原被遮挡的原始内容。
|
|
163
|
+
- 按框直接去除:`gtrk tool video_purify ./clip.mp4 --purify-scope region --purify-region 0.8,0.02,0.18,0.08,0,5 --json`(图片把工具换成 `image_purify`、框只写 `x,y,w,h`)。`--purify-region` 可重复,图片最多 16 个框、视频按服务资源限制,视频框后可带 `start,end` 秒。`custom` 只去除框内识别到的文字;`region` 不做识别、**框内全部内容都会被处理(包括画面主体)**——用户要去的是图形台标、半透明图案或只在某段时间出现的角标时选 `region`,并提醒框越小越贴边效果越好。
|
|
163
164
|
- 视频超分:`gtrk tool video_upscale ./clip.mp4 --upscale-times 3 --upscale-type Anime --json`。输入最多 60 秒,放大后任一边超过 4000 px 会由服务端拒绝;这是实验性增强,不能承诺主观画质一定提升。
|
|
164
165
|
- 视频插帧:`gtrk tool video_interpolate ./clip.mp4 --interpolate-multiplier 3 --json`。支持 `2`、`3`、`4`,不套用旧总览里的 1 分钟限制;原视频任一边超过 4000 px 时由服务端拒绝。
|
|
165
166
|
|
|
@@ -176,3 +177,30 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
|
|
|
176
177
|
## 毕业条款
|
|
177
178
|
|
|
178
179
|
某个工具若长出复杂度——需要多模式子命令、需要分步用户确认、需要注入栏目风格——它就该从工具族**毕业**成独立命令 / 独立 skill(照成片车道命令的先例)。毕业后旧的 `gtrk tool <名>` 会报错并指路新命令。你只要跟着 `gtrk tool list` 的当前清单走即可。
|
|
180
|
+
|
|
181
|
+
## 可审阅的视频净化
|
|
182
|
+
|
|
183
|
+
### 先选模式,再处理(必须)
|
|
184
|
+
|
|
185
|
+
Agent 在任何去除处理之前 MUST 主动向用户说明两种模式,并等待明确选择:
|
|
186
|
+
|
|
187
|
+
- **快速去除(ffmpeg)**:速度快,做基础模糊去除,可能留下模糊块或涂抹痕迹,适合更看重速度、能接受基础效果的场景。
|
|
188
|
+
- **精细修复(raft)**:速度慢,做内容修复,通常更自然,合适素材可接近无痕;不保证无损或还原被遮挡的真实细节。
|
|
189
|
+
|
|
190
|
+
建议问法:「这次要快速还是精细?快速处理更快,但效果基础、可能留模糊痕迹;精细处理更慢,通常更自然、可接近无痕,但不保证所有画面都能完美修复。你选哪一种?」
|
|
191
|
+
|
|
192
|
+
**没有回答就不开始去除,不替用户默认 ffmpeg,也不默认 raft。** 用户在本次任务已明确选好模式时无需重复询问;批量素材只有在用户明确说明整批沿用该模式时才能统一使用。“直接处理”“无需复核选区”“按检测结果去除”只授权范围,不代表选择了处理模式。只做 detect/edit 可以继续;空清单直接返回原片,不为不发生的处理追问。
|
|
193
|
+
|
|
194
|
+
用户选定后才把对应值显式传给命令:顶层 `--purify-func-type ffmpeg|raft`,旧工具入口 `--purify-method ffmpeg|raft`。这些参数没有默认值;下面的 `<用户选定模式>` 必须替换为本次选择,不能照示例猜一个。
|
|
195
|
+
|
|
196
|
+
不确定误检时:先 `gtrk purify detect <视频> --out <工程目录> --json`,消费摘要与代表时间查看原片,再用 `gtrk purify edit <区域文件> --select-roi x,y,w,h --out <最终文件>` 筛选。edit 还支持重复的 --delete-id / --watermark-region / --protect-region。最后 `gtrk purify apply <最终文件> --purify-func-type <用户选定模式> --json`,最终清单不会被重新检测覆盖。
|
|
197
|
+
|
|
198
|
+
用户明确清理范围时:`gtrk purify run <视频> --detect-scope subtitle --watermark-region x,y,w,h --purify-func-type <用户选定模式> --json`。不得将全屏文字候选默认当成水印;full_screen 需明确选择。图形台标需 Agent 补框。
|
|
199
|
+
|
|
200
|
+
只处理明确的角标框时:`gtrk purify <视频> --no-detect --watermark-region x,y,w,h[,start[,end]] --purify-func-type <用户选定模式> --out <工程内产物目录> --json`,跳过文字检测。省略时间表示全片;每条视频分别确认角标位置,不复用上一条视频的框。用户已授权采用检测结果时无需再审选区,但仍须完成模式选择。检测和处理分别计费,纯人工框只创建处理任务。
|
|
201
|
+
|
|
202
|
+
中断后用 `gtrk purify resume <回执中的运行记录> --json`。新记录沿用用户已选模式;旧记录尚未建处理任务且无法确认选择时,先询问用户,再在 resume 补 `--purify-func-type <用户选定模式>`。已建单只能继续查询下载,不能通过 resume 换模式。
|
|
203
|
+
|
|
204
|
+
**慢速失败、排队或暂不可用时,必须先告知原因及切换快速去除的效果代价,等用户同意后才能另建快速任务;严禁自行手搓本地 ffmpeg 交差。** 长片超出 raft 限制时先说明限制,讨论分段或改模式,不因时长自动降档。交付时写明实际模式与已知效果问题,不把 ffmpeg 结果描述为无痕修复。
|
|
205
|
+
|
|
206
|
+
完整万级区域保存在文件,勿逐条读进模型上下文。保护框优先于去除框,新处理请求会先检查服务支持 review_protocol=2,否则在上传计费前停止。
|
|
@@ -17,11 +17,8 @@ description: 将用户本地视频或音频(自备配音)转成一个飞书
|
|
|
17
17
|
|
|
18
18
|
## 硬边界
|
|
19
19
|
|
|
20
|
-
> **产物落点纪律(MUST · 全文见随包 `AGENT.md`
|
|
21
|
-
>
|
|
22
|
-
> **MUST NOT** 把原视频或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
|
|
23
|
-
> 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
|
|
24
|
-
> 交付物(颗粒 HTML / 工程文件 / 派单稿 / 文稿等)SHALL **直接以工程目录内的最终路径为写入路径**,MUST NOT 先写 agent 自有工作目录再拷进工程——**中转本身即违规**,不以「最后拷进去了」免责,**体积不是豁免理由**(2026-09-07 事故里漂掉的是 2.7–6.2 KB 的 HTML)。与上一条的分界:抽帧图这类**不交付**的中间物走系统 temp;**要交付的东西没有暂存态**。
|
|
20
|
+
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:唯一 Markdown 产物写入 CLI 返回的 `output` 路径(缺省=源文件同目录)或用户指定的 `--out`;引用媒体用原路径,不复制到 agent 工作目录;临时文件放系统 temp,用完即删。
|
|
21
|
+
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
25
22
|
|
|
26
23
|
- 只接收用户电脑上已存在的视频/音频文件;遇到 URL、平台视频 ID 或“帮我下载后转写”时,要求用户先提供本地文件,不代为抓取。
|
|
27
24
|
- CLI 在本地抽取/转码 16 kHz 单声道音频,只上传音频衍生物;原视频/原音频文件不得上传。
|
|
@@ -35,7 +32,7 @@ description: 将用户本地视频或音频(自备配音)转成一个飞书
|
|
|
35
32
|
|
|
36
33
|
2. **先判用途,再决定带不带 `--json`。这一步 MUST NOT 跳过,也 MUST NOT 无脑恒带。**
|
|
37
34
|
|
|
38
|
-
`--json`
|
|
35
|
+
`--json` 不是单纯的输出格式开关,**它决定服务端用哪个引擎**:
|
|
39
36
|
|
|
40
37
|
| 用途 | 命令 | 落腿 |
|
|
41
38
|
|---|---|---|
|
|
@@ -52,9 +49,7 @@ description: 将用户本地视频或音频(自备配音)转成一个飞书
|
|
|
52
49
|
|
|
53
50
|
可选参数:`--out <file>`、`--lang zh-CN`、`--ffmpeg-path <dir>`、`--reupload`。
|
|
54
51
|
|
|
55
|
-
> 🔴 **恒带 `--json`
|
|
56
|
-
> —— Markdown 只渲染句子,`words[]` 一个字都不被读。2026-09-19 一次 254 条的批量转写因此
|
|
57
|
-
> 有 122 条走错了腿,实测发现。**拿不准就不带**:真需要字级时,消费方(`split` / `subtitle`)
|
|
52
|
+
> 🔴 **恒带 `--json` 会把只想要文字稿的请求也送进厂商字级腿**,且 Markdown 不消费 `words[]`。**拿不准就不带**:真需要字级时,消费方(`split` / `subtitle`)
|
|
58
53
|
> 会明确报错要 `words[]`,那时补跑一次即可;反过来多付的钱收不回来。
|
|
59
54
|
> 用户明确说「要建工程 / 要拆分 / 要字幕」才算「喂工程」;只说「转个文字稿」不算。
|
|
60
55
|
|