@gitruck/cli 1.0.1 → 1.0.3
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 +13 -0
- package/LICENSE +21 -21
- package/README.en.md +626 -540
- package/README.md +624 -540
- package/contracts/README.md +14 -14
- package/contracts/handoff-contracts.json +10 -10
- package/dist/index.js +5271 -2009
- package/package.json +66 -66
- package/skills/gtrk-ai-drama/SKILL.md +221 -214
- package/skills/gtrk-cover/SKILL.md +93 -93
- package/skills/gtrk-cover/assets/workbench-template.html +955 -955
- package/skills/gtrk-cover/references/checklist.md +81 -81
- package/skills/gtrk-cover/references/layout-recipes.md +337 -337
- package/skills/gtrk-cover/references/prompt-templates.md +119 -119
- package/skills/gtrk-cover/references/workbench-guide.md +99 -99
- package/skills/gtrk-long2short/SKILL.md +71 -68
- package/skills/gtrk-matrix/SKILL.md +55 -15
- package/skills/gtrk-mg/SKILL.md +182 -165
- package/skills/gtrk-music-visualizer/SKILL.md +76 -76
- package/skills/gtrk-splitter/SKILL.md +208 -178
- package/skills/gtrk-splitter/references/example-visual-split.json +638 -638
- package/skills/gtrk-splitter/references/example-visual-split.md +439 -439
- package/skills/gtrk-splitter/references/field-schema.md +138 -134
- package/skills/gtrk-style-maker/references/ammo.md +16 -16
- package/skills/gtrk-style-maker/references/contracts-ref.md +9 -9
- package/skills/gtrk-style-maker/references/seeds/README.md +4 -4
- package/skills/gtrk-style-maker/references/seeds/seed-ecom-home-goods.md +37 -37
- package/skills/gtrk-style-maker/references/seeds/seed-psych-humanities.md +35 -35
- package/skills/gtrk-tools/SKILL.md +132 -124
- package/skills/gtrk-transcript/SKILL.md +64 -58
- package/skills/gtrk-transcript/agents/openai.yaml +4 -4
- package/skills/gtrk-travel-recap/SKILL.md +212 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gtrk-matrix
|
|
3
|
-
description: B-roll 检索铺轨编排手册——成片管线里第一个铺的车道(SOP
|
|
3
|
+
description: B-roll 检索铺轨编排手册——成片管线里第一个铺的车道(SOP ③ B-roll 底轨阶段的影视/本地素材腿),也是素材智能铺轨「乐高架构」的裁定层指引。消费拆分派单的 FILM_BROLL 队列(`dispatch.film_broll`),双口向量检索 + 下载 preview 代理,在工程里平铺 N 条候选 B-roll 轨,供用户在 opencut 里用轨道小眼睛切换对比、挑选/调整;确认后交棒同阶段的 AI 情景片段腿(`/gtrk-ai-drama`,车道非空时),三源落齐再进 ④ 全局抽帧检查构图、⑤ 才铺 MG。另支持**本地素材模式**(`matrix index` 建免切片索引、`--local` 本地检索铺轨,素材本体不上云)、**按需理解零件**(`matrix describe`:VLM 描述/标签/质量分/可用性信号,plan 注入或素材直理解)、**源时间窗检索**(`--source-window`,电影解说式逐段推进)、**通用三态素材检索**(`matrix material`:clip/image/audio 下载向整条素材,BGM/配图主场,2×2 身份路由下半行)与 **plan 可编辑通路**(agent 改 plan 后 `matrix lay` 消费)。当用户想「铺 B-roll / 检索素材 / 找空镜 / 给空镜配画面 / 填 B-roll 候选 / 单独搜个词补个空槽 / 找 BGM / 搜配乐 / 搜张配图 / 用我自己的素材铺 B-roll / 给素材文件夹建索引 / 理解一下这些素材能不能用 / 把这堆素材剪成片 / 影视解说配画面」时使用本 skill。凡涉及把素材检索并铺进工程,优先用本 skill 驱动 gtrk CLI 的 `matrix` 命令族,别让用户自己去终端敲、也别手搓检索。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# B-roll 检索铺轨编排手册(gtrk-matrix)
|
|
@@ -14,8 +14,8 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
14
14
|
```
|
|
15
15
|
裁定层(你):按题材/素材形态/文稿有无/用户偏好,选配方或自创编排
|
|
16
16
|
配方层(本手册 §配方库):原子命令的调用序列——只是起手式,可变奏可自创
|
|
17
|
-
原子层(gtrk CLI):index / search(--local/--source-window) / describe / matrix(plan) / lay / tool image_move
|
|
18
|
-
服务层(云端):embed 端点 / material_describe /
|
|
17
|
+
原子层(gtrk CLI):index / search(--local/--source-window) / material / describe / matrix(plan) / lay / tool image_move
|
|
18
|
+
服务层(云端):embed 端点 / material_describe / 检索 2×2 四口(剪辑向×通用三态 × 公开×成员) / image_move
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
1. **零件不裁定**:原子命令不猜用户意图,行为全由显式参数决定。`describe` 出的 `usable_flags`(水印/字幕/黑边/模糊)只是**给你的信号**——CLI 永远不会依据它自动剔除候选,剔不剔由你编辑 plan 裁定。
|
|
@@ -123,11 +123,40 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
123
123
|
| 每段多给几个候选 | `--top-k <n>` | 整数 · 派单 `shots` 值(服务端上限 50) | 每 query 候选数上限 |
|
|
124
124
|
| 指定素材类型 | `--material-class <c>` | `real_shot` \| `concept` · 栏目策略 | 仅 internal 矩阵成员口 |
|
|
125
125
|
| 填充门槛 | `--score-floor <f>` | 浮点 0–1 · `0.2` | 低于不采纳、槽位留空露黑底;调完必看空洞告警 |
|
|
126
|
+
| 切点对齐字幕句 | `--cut-align <r>` | 浮点 0–1 · `0.7`(`0`=关闭) | 三七开拍板:约七成字幕句起点恰逢镜头切点、三成有意错开;句级时码取 transcript 重投影(降级自动回旧节奏并告警);开启时结果 JSON `lay.cut_align` 报实测比例 |
|
|
127
|
+
| 主轨空洞填充 | `--gap-fill <m>` | `fast` \| `solid`(默认)\| `none` | **仅音频驱动工程主轨**(口播工程不适用零回归):fast=放宽地板随便填候选→延长相邻颗粒→黑片兜底;solid=黑片垫齐(精修一眼看出没匹配到);none=留 gap(客户端主轨磁吸会吸除 gap 致画面与配音错位,慎用);生效时结果 JSON `lay.gap_fill` 报明细 |
|
|
126
128
|
| 不要黑底垫轨 | `--no-black-bed` | 开关 · 默认铺 | 黑底按 beat 包络整条铺,B-roll 期间遮口播 |
|
|
127
129
|
| 已编辑轨强铺逃生门 | `--force-relay` | 开关 · 关 | 用户明确点头才带;raw 登记删除不可恢复 |
|
|
128
130
|
| 同素材彻底不二用 | `--dedup-scope material` | `scene`(默认)\| `material` | 收严会加剧空洞,先看 `lay.dedup.emptySlots` |
|
|
129
131
|
| 机读(你必带) | `--json` | 开关 · 关 | 人读日志转 stderr,stdout 只出结果 JSON |
|
|
130
132
|
|
|
133
|
+
**通用三态素材检索零件**(`gtrk matrix material`,云端素材库、**下载向**出参):
|
|
134
|
+
|
|
135
|
+
与上面那张表的剪辑向检索是**并列的第二条线**,出参契约独立(下载向直链 vs 剪辑向 segments),别混用:要 B-roll 段落走 `matrix search`/派单主路,要整条素材(BGM、配图、整条原片)走本零件。
|
|
136
|
+
|
|
137
|
+
> **2×2 路由矩阵**(身份自动判定,每次运行探一次、不降级不缓存):
|
|
138
|
+
>
|
|
139
|
+
> | | external 公开口 | internal 矩阵成员口 |
|
|
140
|
+
> |---|---|---|
|
|
141
|
+
> | 剪辑向 | `/task/video_clip_search` | `/task/custom/video_clip_search` |
|
|
142
|
+
> | 通用三态 | `/task/material_search` | `/task/custom/material_search` |
|
|
143
|
+
>
|
|
144
|
+
> 成员口搜**全库**(含非商用/概念素材)且 **0 积分**;公开口只含可商用实拍素材、**1 积分/次**。差距不是理论值:Artlist 全库 2397 条音乐 `is_copyright=0`,同一 query 公开口 0 条、成员口 5/5 命中。
|
|
145
|
+
|
|
146
|
+
| 用户想要 | CLI 怎么传 | 取值 · 默认 | 说明 |
|
|
147
|
+
|---|---|---|---|
|
|
148
|
+
| 搜整条素材(BGM 主场) | `gtrk matrix material "<词>"` | 字符串 · — | 单条检索;`--out <file>` 落盘或缺省 stdout |
|
|
149
|
+
| 指定素材形态 | `--scope <s>` | `clip` \| `image` \| `audio` · `audio` | 三态通用;clip 要的是**整条**原片直链(要段落用 `matrix search`) |
|
|
150
|
+
| 只要可商用 | `--commercial-only` | 开关 · 关(搜全库) | 成员口传 `copyright_scope=commercial`;公开口本就只含可商用,该档位会**显式提示**而非静默忽略 |
|
|
151
|
+
| 按成片时长挑 | `--min-duration <秒>` / `--max-duration <秒>` | 数字 · 不过滤 | 可单独或组合给;成员口透传服务端 `filters`,公开口无该入参(CLI 按结果 `duration` 本地过滤并提示);负数 / 上界小于下界=参数错误 |
|
|
152
|
+
| 多给几条候选 | `--top-k <n>` | 整数 · `5`(服务端上限 50) | BGM 推荐 3-5 首的量级 |
|
|
153
|
+
| 去同质化 | `--diversity` | 开关 · 关 | 避免返回雷同素材 |
|
|
154
|
+
| 机读(你必带) | `--json` | 开关 · 关 | `mode:"material"`,stdout 只出结果 JSON |
|
|
155
|
+
|
|
156
|
+
出参逐条:`{id, note, duration, audio_type, tags, score, download_url, cover_url}`;`audio_type`(`pure` 纯音乐 / `song` 歌曲)与 `accompaniment_url`(song 类现成伴奏直链,零处理成本)**两档通用**;**只有 `is_copyright`(及 clip 的 `material_class`)是成员口独有**——公开口**没有**这个字段,零件如实缺省不伪造,你也别把「没有该字段」读成「不可商用」。`download_url` 带 24h 签名(过期重跑即重签)。
|
|
157
|
+
|
|
158
|
+
**upsell 口径**:`--json` 出参可能带一个**独立顶层字段** `upsell`(人读模式则是末尾一行提示)——**当且仅当**公开口档位且结果不足(0 条或少于请求量一半)时才有,内容是「加入同和新媒体矩阵可免费搜全库」+ 链接。它**不在 `results` 里、不改写任何候选**:原样转述给用户,别把它当成一条素材。成员档恒无此字段。
|
|
159
|
+
|
|
131
160
|
**本地素材零件**(`matrix index` / `--local`):
|
|
132
161
|
|
|
133
162
|
| 用户想要 | CLI 怎么传 | 取值 · 默认 | 说明 |
|
|
@@ -138,7 +167,7 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
138
167
|
| **源时间窗过滤** | `--source-window <start,end>` | 秒,`start<end` · 不过滤 | 仅 `--local`:只返回与窗口**有交集**的命中段(段边界不裁剪);与其他过滤器 AND 叠加;图片候选自动排除;**空窗 = ok 空结果非错误**,扩窗是你的裁定 |
|
|
139
168
|
| 场景切分粒度 | `--scene-threshold <f>` | 浮点 (0,1) · `0.3` | 仅 index:镜头切换快调高、长镜头调低 |
|
|
140
169
|
| 固定机位判稳阈值 | `--stability-threshold <f>` | 浮点 (0,1) · `0.05` | 仅 index:场景内最大帧间变化低于此值判 stable,抽帧收敛为**中点 1 帧**(60s 固定机位从 30 帧省到 1 帧);summary 分列 stable/unstable 场景数与省帧数;误判 stable 丢检索粒度、误判 unstable 只是不省钱——**宁严勿松**;默认为保守值待标定 |
|
|
141
|
-
| 索引强制重建 | `--rebuild` | 开关 · 关 | 忽略指纹全部重算向量;**理解缓存(describes
|
|
170
|
+
| 索引强制重建 | `--rebuild` | 开关 · 关 | 忽略指纹全部重算向量;**理解缓存(describes)不清**。存量索引库(2026-08-19 闪帧修复之前建的)**没有切点全集**:铺轨消不到段内切点、消不掉 2~3 帧异景残片——用户报「成片有闪帧」且素材是高帧率长视频时,先带本开关重建一次索引 |
|
|
142
171
|
| 不要图片候选 | `--no-image-broll` | 开关 · 默认参与 | 检索与铺轨完全排除图片(零图片上云);pinned 也不豁免这条 |
|
|
143
172
|
| 跳过计费确认 | `--yes` | 开关 · 关 | 图片运镜 / describe >20 张两处护栏通用 |
|
|
144
173
|
|
|
@@ -159,7 +188,8 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
159
188
|
|---|---|---|---|
|
|
160
189
|
| 消费(编辑后的)plan 铺轨 | `gtrk matrix lay --project <目录>` | 目录 · — | 读 `<目录>/split/broll-plan.json`,白名单校验后按 **plan 现值**铺轨(不重新检索、零检索开销) |
|
|
161
190
|
| 显式指定 plan 文件 | `--plan <path>` | 路径 · 上述默认 | 配方 C 手工组的 plan 从这进 |
|
|
162
|
-
|
|
|
191
|
+
| 美观度参与排序 | `--mark-weight <w>` | 浮点 0–1 · `0`(关闭) | 仅 `matrix lay`:候选融合分 = `sim×(1-w)+(mark/100)×w`,mark 取 describe 理解缓存(素材内**就近帧**命中);无缓存候选**中性**(融合分=sim,不惩罚不加分、绝不变相剔除);score 地板仍只看原始 sim。**零件不裁定:默认关(0 时排序与产物逐字节零回归),开不开、开多大由配方/你裁定**——先 describe 过一轮才有 mark 可用(配方 B ② 之后开才有意义),开启时结果 JSON `lay` 含 `mark_weight/mark_hit/mark_neutral` |
|
|
192
|
+
| 其余铺轨参数 | `--lay/--score-floor/--cut-align/--gap-fill/--no-black-bed/--force-relay/--dedup-scope/--yes/--no-image-broll` | 同主命令 | 语义一致 |
|
|
163
193
|
|
|
164
194
|
## plan 编辑口径(法定通道的边界)
|
|
165
195
|
|
|
@@ -170,6 +200,7 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
170
200
|
- `segments` 数组:**删段**(某命中段不想要就删);
|
|
171
201
|
- `result.describe`:增删(describe 命令注入的,你也可以手写笔记进去);
|
|
172
202
|
- `result.pinned: true`:**钉选**——分配器优先满足(覆盖 score 排序、免 score 地板强制入选)。多个 pinned 冲突(同槽/供长不足)时**后到让位**,让位名单在结果 JSON `lay.pinned.yielded` 与告警里明示。注意 `--no-image-broll` 下图片候选连 pinned 也进不来(零图片上云是硬承诺)。
|
|
203
|
+
- beat 的 `anchors`:**关键词锚**(拆分稿圈定、plan 检索时内插 `at_sec`)——`[{keyword, utterance, at_sec, query}]`,lay 把锚 query 最高分命中钉在 `at_sec−0.5s`(时长 min(命中段, per_shot×2)),其余槽位在锚点分割的区间内序贯填充。可编辑:**挪 `at_sec`**(微调卡点时刻)、**换 `query`**(换锚画面)、**删锚**(整条删除);`at_sec:null`=内插失败态,lay 按降级普通槽处置。锚 query 池内有 pinned 候选时**用户钉选优先占锚槽**。
|
|
173
204
|
- beat 的 `per_shot_sec`/`requested_shots`(节奏锚,影响槽长档位)。
|
|
174
205
|
|
|
175
206
|
**不可编辑面**(动了会被 `matrix lay` 校验拒绝并指名字段):
|
|
@@ -185,20 +216,25 @@ description: B-roll 检索铺轨编排手册——成片管线里第一个铺的
|
|
|
185
216
|
|---|---|---|---|---|
|
|
186
217
|
| embed(`matrix index` 抽帧图) | **0.1 积分/张** | **会话计量**:开跑前按抽帧计划预扣 `ceil(N×0.1)`,跑完按实际用量结算多退少不补(用量>0 最低 1 积分) | ✅ gc_member_type=internal 免会话零计费 | **文本 embed 免费**——`--local` 检索本身零积分 |
|
|
187
218
|
| describe(`matrix describe`) | **1 积分/张** | **异步任务**(提交预扣→完成结算,失败自动退款),无会话 | ✅ 同上(豁免时 >20 张护栏免确认仅提示) | 缓存命中零调用零计费;>20 张确认护栏(`--yes` 跳过) |
|
|
219
|
+
| 通用素材检索(`matrix material`) | 公开口 **1 积分/次**;矩阵成员口 **0 积分** | 同步返回按次计费(成员口 0 元也照留痕带 task_id) | 看的是 **matrix_member_type**(走哪个口就按哪个口计价,非 gc 豁免维度) | 云端检索双口;剪辑向 `matrix search` 同款口径(成员口 0 元、公开口 1 积分/次) |
|
|
188
220
|
| image_move(图片运镜入轨) | **2 积分/张** | 按任务计费 | **internal 不豁免、照常计费**(已查证:走标准任务计费链路无 gc_member_type 豁免;豁免只存在于 embed/describe 两个原子口) | 工程内同图同参恒复用不再扣费;铺轨前有预估确认(`--yes` 跳过,拒绝=整轮中止零调用) |
|
|
189
221
|
|
|
190
222
|
- 豁免看的是 **gc_member_type**(同合云内部成员),与检索档位 `matrix_member_type` 是两个维度——`memberType:"internal"`(检索口)≠ 计费豁免,别混。
|
|
191
223
|
- 量级参考:全量索引 5000 帧 ≈ 500 积分 ≈ 5 元;describe 50 张候选 = 50 积分;增量都只按新增算(索引指纹增量、理解缓存命中)。
|
|
192
224
|
|
|
193
|
-
## 你在成片管线里的位置(SOP 第 ③ 步 ·
|
|
225
|
+
## 你在成片管线里的位置(SOP 第 ③ 步 · B-roll 底轨阶段的影视/本地素材腿)
|
|
194
226
|
|
|
195
227
|
成片是**有序 SOP + 用户检查点**,不是并行一次铺完。全链:
|
|
196
228
|
|
|
197
|
-
> ① `oralcut` 剪口播 → ② `split` 拆分派单出 `dispatch.json` → **③
|
|
229
|
+
> ① `oralcut` 剪口播 → ② `split` 拆分派单出 `dispatch.json` → **③ B-roll 底轨全铺齐**(**`matrix` 铺影视/本地素材(你在这)** + `/gtrk-ai-drama` 产稿→外部出片→用户手动回铺,**两条腿同一阶段**)→ **用户 opencut 调整/挑选** → ④ **全局抽帧检查画面构图** → ⑤ `mg` 铺 MG(含 ov,最后叠上)→ `subtitle lay` 上字幕(快速成片模式必做——工程直接带好字幕)→ `render` 收口。
|
|
230
|
+
|
|
231
|
+
**为什么 B-roll 整个阶段最先**:**AI 情景片段属于底轨 B-roll 画面家族,不是叠加层**——叠加层只有 MG(含 ov)。MG 的排版决策是「因势象形避主体」,**依赖底轨的最终画面构图**;三源(影视/本地/AI)没落齐就产 MG,等 AI 片段回铺后避让必然错位、甚至盖住 AI 画面主体。
|
|
232
|
+
|
|
233
|
+
> ⚠️ 旧序(MG ④ 在 AI 再现 ⑤ 之前、理由写「越往后叠得越上层」)**是把「工序次序」误当成了「图层次序」**。工序上 AI 片段必须先落位;图层上它本来就在底轨。
|
|
198
234
|
|
|
199
|
-
|
|
235
|
+
铺完**必须停下等用户在 opencut 里挑选/调整**(关键检查点),不要一口气往下冲。
|
|
200
236
|
|
|
201
|
-
**前置**:需要跑过 `gtrk split` 的产物目录(`split/dispatch.json`)。`film_broll` 空 =
|
|
237
|
+
**前置**:需要跑过 `gtrk split` 的产物目录(`split/dispatch.json`)。`film_broll` 空 = 本片没有影视/本地素材腿 → 跳过本步,看 AI 情景片段腿(`dispatch.ai_drama` 非空则交棒 `/gtrk-ai-drama`),两腿都空才直接进 ⑤。`gtrk` 找不到 → `npm i -g @gitruck/cli@latest`。用户先在 opencut 手调过切点也不怕——命令每次都现场重投影 beat 窗口,微调口播轨不用重跑 `gtrk split`,只有拆分稿本身变了才要。
|
|
202
238
|
|
|
203
239
|
**业务分离**:本框架 skill 不硬编任何栏目审美。B-roll 的 `queries` 在 ② 拆分时已写进派单(不触发生产 skill);栏目只供检索偏好(`--column`,internal 口生效)。档位由命令自己探(结果 JSON `memberType`),external 口固定 real_shot+有版权素材。
|
|
204
240
|
|
|
@@ -243,7 +279,7 @@ gtrk matrix --project "<split 产物目录>" [--lay N] [--score-floor F] [--top-
|
|
|
243
279
|
```
|
|
244
280
|
|
|
245
281
|
- `--json`:人读日志走 stderr,成功时 stdout 只有一行结果 JSON:
|
|
246
|
-
`{ ok, mode:"plan", memberType, columnId?, planPath, lay:{ refused, laidTracks:[…], laidClips, removedTracks:[…], keptEditedTracks:[…], blackTrack, blackBedHoleSec, blackBedHoles:[…], dedup:{scope,emptySlots,adjacentWaived}, pinned?:{requested,placedSlots,yielded}, downloads:{preview,raw,reused,failed} }, integrity:{…}, reprojection:{…}, counts:{ beats, queries, results, errors } }`
|
|
282
|
+
`{ ok, mode:"plan", memberType, columnId?, planPath, lay:{ refused, laidTracks:[…], laidClips, removedTracks:[…], keptEditedTracks:[…], blackTrack, blackBedHoleSec, blackBedHoles:[…], dedup:{scope,emptySlots,adjacentWaived}, pinned?:{requested,placedSlots,yielded}, anchors?:{planned,pinned,degraded}, anchor_details?:[{beat,keyword,at_sec,track_st,clip_id,status,reason?}], downloads:{preview,raw,reused,failed} }, integrity:{…}, reprojection:{…}, counts:{ beats, queries, results, errors } }`
|
|
247
283
|
(`--lay 0` 时无 `lay`;`search` 模式 `{ ok, mode:"search", results:[…], counts, outPath? }`;`matrix lay` 模式 `mode:"lay"` 且 `counts.queries` 恒 0——零检索;`matrix describe` 模式 `{ ok, mode:"describe", described, cached, called, failed, credits_estimated, exempt?, planPath?/items? }`)
|
|
248
284
|
- **拒铺结局**(候选轨已被用户编辑):stdout 出 `{ ok:false, refused:[…], reason:"tracks_edited", planReusable:true, … }` 且非 0 退出——不是命令失败,plan 已产出,处置见下表。
|
|
249
285
|
- **命令失败**(缺派单、鉴权失败、全部 query 失败、参数越界、坏 plan 被 lay 拒)→ 非 0 退出、报错在 stderr、stdout 无 JSON。先看退出码,把 stderr 报错如实回给用户。
|
|
@@ -261,6 +297,7 @@ gtrk matrix --project "<split 产物目录>" [--lay N] [--score-floor F] [--top-
|
|
|
261
297
|
- `lay.removedTracks` / `lay.keptEditedTracks`:剥了哪些旧自产轨 / 因「你编辑过」保留未剥的轨。删了什么必须跟用户说。
|
|
262
298
|
- `lay.dedup`:`emptySlots`(宁空不重复的空槽数——多了是该补料或走动线②的信号)、`adjacentWaived`。
|
|
263
299
|
- `lay.pinned`(有钉选才出现):`requested/placedSlots/yielded`——`yielded` 非空要指名哪些钉选让位了(stderr 也有告警)。
|
|
300
|
+
- `lay.anchors` / `lay.anchor_details`(拆分稿圈了关键词锚才出现):`planned` 钉位数 / `pinned` 用户钉选占锚槽数 / `degraded` 降级数——`degraded` 非零要按 `anchor_details` 指名哪个关键词没锚上及原因(无合格命中/文本漂移/窗口不足),提示用户该处「听到关键词看到画面」的卡点没兑现、可换 query 或补素材后重跑。
|
|
264
301
|
- `lay.downloads`:`raw` 原片回落 / `failed` 掉槽位非零时提一句。
|
|
265
302
|
- `integrity`(素材落盘自检,只在真写回过时出现):`dangling` 悬空引用全量清单;`danglingReferenced`(时间线上没素材可放)与 `danglingOrphan`(只挂在 materials 里)严重度差一个量级,**分开说**;`external` 绝对路径找不到文件另一档。告知不拦阻,别自己删素材。
|
|
266
303
|
- 单 query 失败是局部化的(`counts.errors>0` 但 `ok:true`):如实说哪几段没检到。
|
|
@@ -278,7 +315,7 @@ gtrk matrix --project "<split 产物目录>" [--lay N] [--score-floor F] [--top-
|
|
|
278
315
|
- 候选轨下方垫了纯黑底轨(`lay.blackTrack`)——删多余候选轨时**别误删它**;换片拖到**候选轨颗粒**上、别拖到黑底条上(0.2.10 起客户端会拒绝并提示;旧版会静默建轨——用户说「拖了没反应」先让他重启客户端吃强更,再查轨道数,`Ctrl+Z` 整条撤销)。**MUST NOT 对旧版客户端用户承诺「客户端会拒绝并提示」**。
|
|
279
316
|
- 觉得填充有问题(太杂/太空/漏段)→ 回来找我调参重铺(配方 B 的理解裁定也在这时上场)。
|
|
280
317
|
|
|
281
|
-
**用户明确说「B-roll
|
|
318
|
+
**用户明确说「B-roll 就这样」之后**,才往下走——先看 AI 情景片段腿(同属 ③),三源齐了再进 ④ 全局抽帧检查,过了才交棒 ⑤ 铺 MG。详见末节「下一步」。
|
|
282
319
|
|
|
283
320
|
## 常见情况处置(据结果因势象形调整,同目录可反复重跑对比)
|
|
284
321
|
|
|
@@ -304,11 +341,14 @@ gtrk matrix --project "<split 产物目录>" [--lay N] [--score-floor F] [--top-
|
|
|
304
341
|
|
|
305
342
|
> **搜词规范**(ad-hoc `search` 与理解派单 queries 通用):英文长句场景描述(5–12 词,谁+在哪+做什么),一条只装一个场景意象,避多义/字面强的动词("pointing"/"hunting" 会召回特写/猎人,改用 "giving suggestions in a meeting" 这类场景语义)。
|
|
306
343
|
|
|
307
|
-
##
|
|
344
|
+
## 下一步(别停在铺完,也别直接跳去铺 MG)
|
|
308
345
|
|
|
309
|
-
|
|
346
|
+
用户确认你这条腿的 B-roll 满意后,**先看 AI 情景片段腿有没有活**——它与你同属 ③ B-roll 底轨阶段,MUST 在 MG 之前落位:
|
|
310
347
|
|
|
311
|
-
-
|
|
348
|
+
- **`dispatch.ai_drama` 非空** → 交棒 `/gtrk-ai-drama`(产分镜稿 → 用户去外部平台出片 → 手动回铺)。一句话交代:「影视素材这腿定了,AI 情景片段还有 N 段要出,我把分镜稿产出来给你」。
|
|
349
|
+
⚠️ **异步等待的口子**:外部平台抽卡可能数天,严格串行会把后续无限期卡住。故进 ⑤ 的硬门是「**AI 片段已回铺 ∨ 用户明示先跳过**」。走「明示跳过」时 MUST 把**与 AI beat 相邻或重叠区间的 MG 颗粒**标记为「AI 回铺后待复查构图」并在收口时复述该清单,**MUST NOT 静默跳过**。
|
|
350
|
+
- **`dispatch.ai_drama` 为空** → 三源已齐,直接进 **④ 全局抽帧检查画面构图**:对最终底轨抽帧看主体位置 / 安全区 / 画面朝向 / 明暗,**停下等用户确认构图无误**(这与刚才「挑选 B-roll」那次确认是两次不同的确认),过了才交棒 ⑤ `/gtrk-mg`。
|
|
351
|
+
- `dispatch.mg` 也为空 → 无 MG 车道,④ 检查过后直接 `render` 收口。
|
|
312
352
|
- 用户表示暂时只要 B-roll → 停在这,尊重他的节奏。
|
|
313
353
|
|
|
314
|
-
> 原则:**agent 替用户跑 CLI / 接力 skill,用户只对话**——别让用户自己去终端敲下一条 gtrk
|
|
354
|
+
> 原则:**agent 替用户跑 CLI / 接力 skill,用户只对话**——别让用户自己去终端敲下一条 gtrk 命令;但关键检查点务必停下等用户确认再进下一步——本车道涉及**两处**:① B-roll 铺完让用户挑选/调整;② ④ 全局抽帧检查后让用户确认构图。
|