@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.
@@ -9,9 +9,9 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
9
9
 
10
10
  > **定位**:本 skill 是第一张 **structure 级组合图纸**——它不新增任何命令,只编排既有原子零件(transcript / matrix / project init / split / mg / audio lay / subtitle lay / TTS 工具)。零件的参数细节以各自 skill(`gtrk-matrix` / `gtrk-splitter` / `gtrk-mg` / `gtrk-transcript`)与 `--help` 为准,**本图纸引用不复制**;但**编排次序、检查点、配方级参数**以本图纸为准。**CLI 是手,你是脑**:写稿、切 beat、挑候选信号、产字卡颗粒、管检查点,都是你的活。
11
11
  >
12
- > **家族归位(2026-08-27 主理人拍板)**:本图纸是**解说链**(`gtrk-narration` 正本)的先行垂类实例——解说 = 把素材语料自带的叙事时序提炼看点后重述;时序铺排三档、引用段、出处对齐等链级条款以 `gtrk-narration` 为正本,本图纸的旅拍要素层(贵大奇多钩子/攻略 tips/升华笔法)为垂类专属。素材无自带时序的题材(科普/情感/带货)属配音链,走 `gtrk-voiceover`。
12
+ > **家族归位**:本图纸是**解说链**(`gtrk-narration` 正本)的旅拍垂类实例。时序铺排、引用段、出处对齐等链级条款以 `gtrk-narration` 为正本;本图纸只补充旅拍要素层(贵大奇多钩子、攻略 tips、升华笔法)。素材无自带时序的题材(科普/情感/带货)走 `gtrk-voiceover`。
13
13
  >
14
- > **本 skill 已含跑通全链需要的全部编排信息**。打样验证:2026-08-19 黄石公园 20 分钟长视频二创,双轮真机全链通过。
14
+ > **本 skill 已含跑通全链需要的编排信息**。
15
15
 
16
16
  ## 一、输入契约与双场景识别
17
17
 
@@ -23,11 +23,11 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
23
23
  | BGM 音频文件 | 可选 | 没有就走素材矩阵搜索(见检查点①) |
24
24
  | 介绍类文本(txt/md) | 可选 | 有则作写稿补充素材 |
25
25
 
26
- **一夹多片时检索域按场景分流(★ 2026-09-02 补)**:二创场景一个夹里常躺着好几条互不相干的片,
26
+ **一夹多片时检索域按场景分流**:二创场景一个夹里常躺着好几条互不相干的片,
27
27
  **B-roll 检索域 MUST 收窄到正在做的那一部片本身**——`--dirs` 既吃文件夹也吃**单个素材文件**,传文件即把域收窄到该素材(见 §五 ⑦ 的★铁则)。
28
28
  原创(自拍素材集)那一档整夹就是这一片的素材域,**传夹正确**。
29
29
 
30
- **MUST NOT 下载二创源片 / 主体素材**:网络视频二创场景下,下载动作归用户(版权责任边界)——用户给的文件夹里是什么就用什么。**射程只到源片与构成成片主体画面的素材**:平台授权素材(同和素材矩阵的 BGM / 空镜)的**签名直链不在此列**(⟲ 2026-09-02 收窄:原措辞写「任何网络下载」,严于本 skill 自己的规格,且让 §四.4 那步 BGM 落地在字面上不合法;家族口径见 `gtrk-narration` / `gtrk-food-recap`——那两份长期同时挂着同款禁令与「`song` MUST 下载 `accompaniment_url` 伴奏版」,并存即证禁令从来只指源片)。收窄 MUST NOT 被读作给源片下载开口子——那条版权边界一字不动。
30
+ **MUST NOT 下载二创源片 / 主体素材**:网络视频二创场景下,用户提供的文件夹就是输入,下载动作归用户。平台授权素材(素材矩阵的 BGM / 空镜)可按其签名直链落地;这条例外不适用于源片与主体画面素材。
31
31
 
32
32
  **双场景识别**(决定理解编排走法):
33
33
  - **二创**:文件夹里是网络旅行长视频(通常含博主解说语音)→ 原片文案是写稿主料;
@@ -35,22 +35,19 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
35
35
  - 拿不准就 ffprobe 看时长与条数:单条 10 分钟以上大概率二创;几十条短素材大概率原创。仍拿不准,问用户一句。
36
36
  - 原创场景的素材集常常**通篇没有对白**——那就不跑转写,下表的语种一问以「无对白 / 不转写」闭合,MUST NOT 因缺这个答案阻塞开工。
37
37
 
38
- **开工三问:稿源 · 声音基座 · 源片语种**(⟲ 2026-08-27 解说链家族回炉先立稿源与声音基座;⟲ 2026-09-02 补语种这一问——260902 真机一条**粤语对白**的片子按缺省 `zh-CN` 静默转写跑完,全链无一处问过语种。三问开工时与双场景识别**一并问清、一张表一次问完、MUST NOT 代猜**):
38
+ **开工三问:稿源 · 声音基座 · 源片语种**。三问开工时与双场景识别**一并问清、一张表一次问完、MUST NOT 代猜**:
39
39
 
40
40
  | 问 | 选项与走法 |
41
41
  |---|---|
42
42
  | 稿从哪来 | **AI 代写**(缺省,§三 规约写)/ **用户自备稿**——跳过写稿,稿直接进检查点①过目(文风铁律不强加于用户手稿,只提示明显硬伤) |
43
43
  | 声音怎么来 | **TTS 配音**(缺省,检查点①挑音色)/ **用户自己念**——拿念稿毛片先走 `gtrk oralcut` 粗剪(带稿最准;外录收音先 `gtrk audio align` 对轨),产出的粗剪工程即时间基座,§五 的「配音④→建工程⑤」两步跳过,从拆分⑥接入,后续铺排/字卡/BGM/字幕照旧 |
44
- | **源片语种 / 方言** | 取证=**听一段 / 看片内有无内嵌字幕 / 看素材出处**;答案定 §五 ① 的 `gtrk transcript --lang`(`zh-CN` 普通话 / **`zh-HK` 粤语** / `en-US` / `ja-JP`…)。**MUST 问用户、MUST NOT 代猜、MUST NOT 以缺省 `zh-CN` 静默开跑转写**——转写是计费动作**且早于检查点①**:**非中文素材**(`en-US` / `ja-JP`…)语种传错,用户在检查点①拿到的稿子就是坏的、重来要再付一次 ASR(真机实证)。**中文这一档(`zh-CN` ↔ `zh-HK`)不在此列**:粤语 **SHOULD** 如实填 `zh-HK`(元数据诚实 + 备将来链路切换),但当前实现下该参数**对粤语无影响**——两种写法发出的请求逐字段相同,详见 §五 ① 注。素材无对白:答「无对白 / 不转写」即闭合 |
44
+ | **源片语种 / 方言** | 取证=**听一段 / 看片内有无内嵌字幕 / 看素材出处**;答案定 §五 ① 的 `gtrk transcript --lang`(`zh-CN` 普通话 / **`zh-HK` 粤语** / `en-US` / `ja-JP`…)。**MUST 问用户、MUST NOT 代猜、MUST NOT 以缺省 `zh-CN` 静默开跑转写**——转写是计费动作且早于检查点①,非中文素材传错语种会让检查点①拿到错误稿件并产生重复 ASR 成本。粤语建议如实填 `zh-HK`;当前 `--json` 路径按字级转写。素材无对白:答「无对白 / 不转写」即闭合 |
45
45
 
46
- > ⟲ **推荐面(公约 §三‴)**:问答收口时多问一句「要不要看看第三方 skill?」,不列名;题材命中场景触发词才多 1–2 句定向推(`gtrk skills recommend --scene <id> --json` 取 tier 最高者,各给一句为什么),用户追问才展开完整块;轻提加定向合计不超三句、同会话同场景只推一次、答「不要」零动作。
46
+ > **推荐面(公约 §三‴)**:问答收口时可问一句「要不要看看第三方 skill?」;题材命中场景触发词才定向推荐,读取 `gtrk skills recommend --scene <id> --json`;用户拒绝后不执行推荐动作。
47
47
 
48
- ## 一′、素材适配闸(写稿前必过 · ★ 2026-09-02 真机事故立)
48
+ ## 一′、素材适配闸(写稿前必过)
49
49
 
50
- > **事故形态**:三条素材里有一条是**有剧情、有台词、有摆拍的学生短片**,本图纸从头到尾跑完(含 TTS 计费步骤)、**零提示**。
51
- > 根因不是漏写一句,是**唯一的路由条款判的是「时序」而不是「题材」**——§一 的家族归位按「素材有无自带时序」出链,
52
- > 而剧情短片**自带叙事时序**(剧情线),按解说链判据它不但不出链,**反而正落在射程内**,出链闸永远不会触发。
53
- > ⇒ **本闸判的是题材,与「有无自带时序」正交,MUST NOT 由后者代行。**
50
+ > 本闸判的是题材,与「有无自带时序」正交。剧情短片、摆拍表演和单一室内场景不能直接套用旅拍要素层。
54
51
 
55
52
  **取证零新增计费**(读的都是编排里本来就要产的东西,MUST NOT 为这道闸新加一次 describe 或转写):
56
53
 
@@ -62,10 +59,10 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
62
59
  - 主判据——这一条**能不能回答「这是在哪、看到了什么」**(可辨认的地点 + 所见之物)。能答的占比过低 ⇒ 不适配;
63
60
  - 反向命中任一即不适配:文本呈现**剧情对白**(人物一来一往推进情节)/ **摆拍表演**(演出来的而非记录下来的)/ **单一室内场景**(全片不出一个可辨认的地点)。
64
61
 
65
- **命中即硬停:MUST NOT 进入写稿**(形制照 `gtrk-vlog-docu` 的立神闸「写不出来 = 神没立住,MUST NOT 进入写稿」)。
62
+ **命中即硬停:MUST NOT 进入写稿**(形制照 `gtrk-vlog-docu` 的立神闸)。
66
63
  硬停位置是**写稿之前 = TTS 计费之前**——它与 §四 检查点①「未经确认 MUST NOT 发起计费动作」是同一条防线的**前置一层**:
67
64
  检查点①拦的是「稿子对不对」,本闸拦的是「**这活该不该接**」。停下时 MUST 如实列出**哪几条不适配 + 依据原文**
68
- (引 `desc` / `tags` / 转写里的原句,别只下结论),并给三条出路:
65
+ (引 `desc` / `tags` / 转写里的原句,别只下结论),并给三条出路:
69
66
 
70
67
  | 出路 | 怎么走 |
71
68
  |---|---|
@@ -74,7 +71,7 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
74
71
  | ③ **照跑** | 用户坚持就照办,但 **MUST 在交付说明里如实登记**「素材与旅拍垂类不匹配、要素层(贵大奇多钩子 / 攻略 tips)多半落空」(降档路径如实登记,口径同《成片型图纸公约》) |
75
72
 
76
73
  **两条边界写死**:agent **MUST NOT 自行判死**(决定权在用户,本闸只提名不宣判)、**MUST NOT 静默照跑**——
77
- 后者正是 260902 那次事故的形态:全链跑完、零提示、钱已经花了。
74
+ 静默照跑会让整条链在错误题材上完成并产生不必要的计费,因此必须在此停下。
78
75
 
79
76
  ## 二、全链总览(快速成片)
80
77
 
@@ -94,7 +91,7 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
94
91
  ⑫ 交付 客户端打开工程出片(gtrk render 仅主轨快照预览,见 §八)
95
92
  ```
96
93
 
97
- 检查点①之后一路跑完不再打扰用户——**垂类示例的承诺面就是快速成片一杆到底**(⟲ 2026-08-27 公约分层拍板)。
94
+ 检查点①之后一路跑完不再打扰用户——**垂类示例的承诺面就是快速成片一杆到底**。
98
95
  ⚠️ 这条承诺**以 ①′ 适配闸通过为前提**:闸命中时的那次停顿不算「打扰用户」,它是在把钱花出去之前问一句「这活该不该接」。交付后对个别环节不满意走 §七 增量重跑,对垂类玩法本身不满意走 §七 个性化出路。
99
96
 
100
97
  ## 三、三段式写稿规约
@@ -103,16 +100,16 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
103
100
 
104
101
  **结构三段式**:第一部分「钩子」抓眼球保留存 → 第二部分「干货」给内容价值 → 第三部分「升华」给情绪价值。爆款四属性贯穿:快乐+知识+共鸣+节奏。
105
102
 
106
- **背景检索建议(⟲ 2026-08-28 主理人拍板)**:写稿信息源除了画面与音频(字幕不一定有),
103
+ **背景检索建议**:写稿信息源除了画面与音频(字幕不一定有),
107
104
  **建议**执行 agent 对素材主题的关键词做一轮背景/上下文检索(地名典故、店家来历、片名与
108
- 公开报道等),检索所得须与素材内可见事实互证后才可入稿、并在拍板档案里标注来源。
105
+ 公开报道等),检索所得须与素材内可见事实互证后才可入稿,并标注来源。
109
106
  有检索能力就做、没有不强求(能力缺席按纯素材信息写,不算违约);检索到的**外部数字与
110
107
  争议性说法宁缺勿滥**。
111
108
 
112
109
  **文风铁律**:
113
110
  - 禁模板连接词:让我们/首先/然后/最后/此外 等一律不用;
114
111
  - 拒翻译腔:全部短句中文语感,无欧化从句;
115
- - **禁「否定—转折」对举句式(★ 主理人 2026-08-19 拍板,最高优先级)**:**八成的 AI 厌恶感来自这一种句式**。禁的是整个家族,不只字面:
112
+ - **禁「否定—转折」对举句式(最高优先级)**:禁的是整个家族,不只字面:
116
113
  - 「这不是 X,而是 Y」/「与其说是 X,不如说是 Y」
117
114
  - 「X 不仅仅是 Y,更是 Z」/「X 不只是 Y,它还是 Z」
118
115
  - 「重要的不是 X,而是 Y」/「真正的 X 从来不是 Y」
@@ -127,8 +124,8 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
127
124
  - 内容支撑:有多少真东西说多少话,素材再多也不注水;
128
125
  - 素材支撑:按「30% 图片×8 秒 + 70% 视频素材时长」估算上限,稿子在写稿阶段就按上限收敛(不要等铺轨时开天窗);把这个秒数换算成字数用下一条的折算口径(**公式本身不动**);
129
126
  - **折算口径 = 挂钟语速**(wall-clock:稿件字数 ÷ 合成音频总时长,**含**句间停顿),**按检查点①选定的那条音色取值:读 catalog 该音色的 `speech_rate_cpm`(字/分钟),并把 `speech_rate_basis` 一并报给用户(`measured` = 实测 / `derived` = 由声学参数推算)**;catalog 没给该字段(非中文音色)或拉不到 catalog 时才用**缺省 ≈330 字/分钟**,并明说这是缺省估值、**不是该音色的实测值**。3 分钟成片 ≈ **1000 字**。
130
- 缺省 330 的出处(★ 2026-09-02 立,`fix-speech-rate-calibration`):全库 49 条 zh-CN 音色挂钟中位 308.7、`narrator` 349.3(**单点实测,未覆盖全库**)、260902 真机三条片 316–342 —— 逐条档案与标定方法见 `references/speech-rate.md`,**MUST NOT 把那张表贴回本图纸**(单一真值源,垂类只许引用)。
131
- - ⚠️ **MUST NOT 拿计费折算常量(240 字/分钟)推稿子字数**:那是**计费**用的保守下界(volc 单点实测 260 再下调留余量),与写稿侧的保守方向**正好相反**——计费侧低估语速只是「分钟数变大、不少收」,写稿侧低估语速却会让稿子写短、成片缩水(按 240 写 3 分钟 = 720 字,用 349 的挂钟语速实播只有 2.06 分钟,**缩水 31%**)。计费那一栏见 §九,两个数 MUST NOT 互相冒充。
127
+ 缺省 330 的依据与标定方法见 `references/speech-rate.md`,本图纸只引用该单一真值源。
128
+ - ⚠️ **MUST NOT 拿计费折算常量(240 字/分钟)推稿子字数**:计费口径与写稿口径分开,计费常量只用于估算费用。
132
129
 
133
130
  **写后自校验清单**(逐项过,不过重写):
134
131
  - [ ] 三段结构完整、时长在 min 公式内
@@ -146,7 +143,7 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
146
143
  - **升华笔法**(第三部分):思考/感悟/启发/感动,正能量收束;第一人称历数、物象隐喻收尾都是成熟笔法;
147
144
  - 有文化衍生空间(历史典故/风俗人文)可适当发挥,但以原素材内容为锚。
148
145
 
149
- ## 三′、L1 看点 rubric · 画面投影版(260828 新增,供 `--highlight-weight` 用)
146
+ ## 三′、L1 看点 rubric · 画面投影版(供 `--highlight-weight` 使用)
150
147
 
151
148
  `highlight` 是**镜头看点分**——服务端 VLM 对着一帧画面打 0–100。旅拍这一档的准则
152
149
  (`highlight_rubric`):
@@ -167,8 +164,7 @@ description: 旅拍解说一站式成片图纸——输入一个旅拍素材文
167
164
  > 分工是:**画面 rubric 管「这一帧值不值得看」,写稿管「这件事值不值得讲」。**
168
165
  > 平淡的过渡帧判低分不等于不可用——降权不排除,候选稀疏时照样上(留空更难看)。
169
166
 
170
- **怎么把它真的传进去**(2026-09-09 补:此前只有准则文本、没有入口,照做也传不进去,
171
- `--highlight-weight` 打的一直是服务端领域无关缺省分):把上面代码块**原样**存成工程目录下的
167
+ **传入方式**:把上面代码块**原样**存成工程目录下的
172
168
  `highlight-rubric.txt`,理解那一步带上它——
173
169
 
174
170
  ```bash
@@ -183,50 +179,36 @@ gtrk matrix describe --plan <工程>/split/broll-plan.json --highlight-rubric @<
183
179
 
184
180
  写完稿**必须停下**,把以下六项一次给用户拍板。**未经确认 MUST NOT 发起 TTS 与 B-roll 云端编排计费动作**。
185
181
 
186
- > ⟲ **2026-08-31 订正**(口径抄齐 `gtrk-narration` 正本 §六 与 `gtrk-food-recap` §五,同一条口径只许有一种说法):
187
- > 本节原以「TTS 是唯一计费闸」立论,已不成立——**本地素材的编排自该日起默认走云端并按「编排量」计费**,
188
- > `matrix lay` **跑前会再停一次**报预估(那次不是拍板,是花费确认)。
189
- > **agent 纪律**:MUST 先把预估用量告诉用户、**拿到同意再带 `--yes`**;**MUST NOT 未经同意就带 `--yes`**。
190
- > 不带 `--yes` 且无 TTY 时本步**整轮铺轨中止**、工程零改动(plan 照常可用、可重跑)——
191
- > **MUST NOT 把它描述成「回落本机编排」**:那是 2026-08-31 二次拍板前的旧行为,家族里还有过期字面在流传。
192
- > (260902 真机三条片全部停在第 ⑦ 步,就是「图纸没带 `--yes`、也没地方报预估」这一处漏的形态。)
182
+ > 本地素材的编排缺省走云端并按编排量计费。`matrix lay` 跑前必须报告预估用量,取得同意后才能带 `--yes`;无 TTY 且未确认时整轮中止,工程不改动,plan 可重跑。
193
183
 
194
- > **语种不在这六项里**(⟲ 2026-09-02):它在 §一 开工三问就已定,检查点①对它最多做**过目复核**。
184
+ > **语种不在这六项里**:它在 §一 开工三问就已定,检查点①对它最多做**过目复核**。
195
185
  > MUST NOT 把语种拖到这一步才问——此时 ① 的 `gtrk transcript` 已经跑完并已计费,稿子也已按错语种写出来了。
196
186
 
197
187
  1. **解说稿 + 标题**:正文全文贴给用户(不是给路径),标题候选列出;
198
- 2. **画幅**(★ 打样事故教训——横屏素材铺进默认竖屏画布=信箱黑边):问目标平台——横屏 B 站/西瓜=1920x1080,竖屏抖音=1080x1920。**素材几何与画幅不一致时明确提示**(横素材→竖画布会裁切或留边);
188
+ 2. **画幅**:问目标平台——横屏 B 站/西瓜=1920x1080,竖屏抖音=1080x1920。**素材几何与画幅不一致时明确提示**(横素材→竖画布会裁切或留边);
199
189
  3. **TTS 音色**:拉 catalog(`GET {apiBase}/task/tts/voices`,免鉴权)按内容调性挑 2-4 个候选,**每个附试听链接**(catalog 的 audition_url 字段,api.ai-mcn.tv:9000 静态直链)——用户在对话框里直接点开听。internal 标注的音色注明「仅内部成员」。也可按用户描述语义挑(「要个温柔女声」)。
200
- **每个候选还 SHALL 附上该音色的挂钟语速与据此推的稿件字数区间**(取同一份 catalog 载荷里的 `speech_rate_cpm` + `speech_rate_basis`,零额外往返;该字段缺席就明说「用缺省 330 估」;标定方法与历史档案见 `references/speech-rate.md`,不再从那里查数)——挑音色的同时也是在挑稿子长度,别让用户回头才发现稿子长了三成。这条是**加项**,MUST NOT 削弱既有的「无试听链接 = 未完成推荐」义务;
190
+ **每个候选还 SHALL 附上该音色的挂钟语速与据此推的稿件字数区间**(取同一份 catalog 载荷里的 `speech_rate_cpm` + `speech_rate_basis`,零额外往返;该字段缺席就明说「用缺省 330 估」;标定方法见 `references/speech-rate.md`)——挑音色的同时也是在挑稿子长度,别让用户回头才发现稿子长了三成。这条是**加项**,MUST NOT 削弱既有的「无试听链接 = 未完成推荐」义务;
201
191
  4. **BGM 处置(双来源)**:
202
192
  - 用户有本地音乐 → 询问是否 `gtrk tool audio_separation` 伴奏分离后取伴奏(缺省建议分离——TTS 配音不与歌曲人声打架);
203
193
  - 用户未提供 → **搜同和素材矩阵**:`gtrk matrix material "<按稿件情绪+地理文化写的检索词>" --scope audio --top-k 5 --diversity --json`
204
194
  (检索词口径见公约 §三′:**内容驱动、禁通用词、至少含一个只有这一片才成立的词**;候选
205
- MUST 给用户挑不许默认 top1;跨片避让由 `audio lay` 记账 + 检索缺省 `--exclude-recent` 自动完成)(按成片时长挑可加 `--min-duration <秒>`)。身份路由(矩阵成员搜全库 / 非成员搜公开库)与计费口径由零件持有;**版权状态要你如实转述**——出参 `is_copyright` 的权威语义是 `1/true` = **可商用**、`0/false` = **不可商用**(反直觉:`is_copyright:false` MUST NOT 读成「无版权、可随便用」,它恰恰是不可用的那一档;概念素材固定 `is_copyright=0` 即此意)。**⟲ 260906 拍板 · 选材口径**:零件缺省 `copyright_scope=all`,矩阵成员档就是**搜全库**——你 MUST NOT 默认加 `--commercial-only`,也 MUST NOT 以「保险起见」为由剔掉 `is_copyright:false` 的候选(全库正是成员身份买到的东西)。对价是**如实标注**:推荐时 MUST 逐条带上派生位 `copyright_label` 给的中文标签,不可商用的照直说,但 MUST NOT 升级成追问或阻塞。用户**特意说明**只要可商用 / 要商用发布 / 客户商单时,才加 `--commercial-only` 把不可商用的挡在候选之外;「用户没说」MUST NOT 当成「用户要求收紧」。出参 `results[]` 直接用,`upsell` 是独立顶层字段(非成员且没搜够时才有,原样转述给用户即可,**不要**把它当候选)。
195
+ MUST 给用户挑不许默认 top1;跨片避让由 `audio lay` 记账 + 检索缺省 `--exclude-recent` 自动完成(按成片时长可加 `--min-duration <秒>`)。身份路由与计费口径由零件持有;**版权状态要如实转述**——`is_copyright=true` = 可商用、`false` = 不可商用。矩阵成员档缺省搜全库并逐条给 `copyright_label`;用户**特意说明**只要可商用或商用发布时才加 `--commercial-only` 收紧。`upsell` 是独立顶层字段,不是候选。
206
196
  推荐 3-5 首、**每首附试听链接**(结果的 `download_url`);`audio_type:"pure"` 纯音乐直接用,`"song"` 直接取 `accompaniment_url` 现成伴奏(零处理成本,两档都有);注意曲长 vs 成片时长(`duration` 字段):`audio lay` **缺省循环叠满至工程末尾、尾段裁齐**(多 clip 首尾相接,命令会打 INFO 报段数),短曲只是**接缝多一些**、不会铺一半就静音(想少几道接缝,挑曲时加 `--min-duration <秒>`);要单次铺请显式传 `--no-loop`;
207
197
  - **试听链接义务(MUST)**:音色与 BGM 的推荐没有试听链接=未完成推荐。
208
- - **BGM 落地一步(MUST,别留悬空 · ⟲ 2026-09-02 补)**:检索出参只给**签名 URL**,而 §五 ⑩ 的 `gtrk audio lay --file` **只收本地路径**(传 URL 必炸)——拍板之后、上轨之前,agent MUST 把选中曲**落成本地文件**。口径照解说链正本 `gtrk-narration` §五 原文对齐:`audio_type:"song"` **MUST 取 `accompaniment_url` 伴奏版上轨**、**MUST NOT 用 `download_url` 原曲**(人声与配音打架,260827 美食批踩坑);`"pure"` 取 `download_url`。文件名按 **`bgm-<曲名>[-伴奏].<扩展名>`** 约定——跨片避让记账按**标题归一化键**匹配(剥 `bgm-` 前缀与 伴奏 / instrumental / off-vocal 后缀),命名不合规会让下一轮 `--exclude-recent` 避让失准。这一步不违反 §一 的下载禁令:那条禁令的射程只到二创源片 / 主体素材,平台授权素材的签名直链不在其内。
198
+ - **BGM 落地一步(MUST)**:检索出参只给签名 URL,而 `gtrk audio lay --file` 只收本地路径。拍板后先把选中曲落成本地文件:`audio_type:"song"` 取 `accompaniment_url` 伴奏版,`"pure"` 取 `download_url`。文件名按 `bgm-<曲名>[-伴奏].<扩展名>`,供跨片避让记账使用。
209
199
  5. **字幕样式**:7 种样式(default/outline/cinema_yellow/immersive_box/wide_spacing/deep_shadow/boxed)× 11 色(雅黑/淡绿/森林绿/湖蓝/道奇蓝/钢蓝/浅粉红/深橙/珊瑚橙/橙红/土豪金)挑选;**用户没选就用 default+雅黑**(不追问不阻塞)。拍板值在 ⑪ `gtrk subtitle lay` 落地,客户端里仍可整轨换样式(悔棋通道)。
210
- 6. **B-roll 编排量预估(★ 2026-09-02 补,本地素材路必报)**:本地素材产的 plan 走 `matrix lay` 时**缺省即云端编排、按「编排量」计费**(`--arrange local` 已不受理,逃生舱是关死的)。先拿数再拍板:
200
+ 6. **B-roll 编排量预估(本地素材路必报)**:本地素材产的 plan 走 `matrix lay` 时缺省即云端编排并按编排量计费(`--arrange local` 不受理)。先拿数再拍板:
211
201
 
212
202
  ```bash
213
203
  gtrk matrix lay --project "<工程目录>" --arrange-estimate-only --json # 停在计价确认之前:零云端调用、工程文件零改动
214
204
  ```
215
205
 
216
- 把它与 TTS / describe 的预估**同屏**报给用户,一次拿到同意——§五 ⑦ 的 lay 才允许带 `--yes`。**报不出这笔就不许开跑**(图纸原来既没这一项、也没那个 flag,于是既报不出、又必断链)。
206
+ 把它与 TTS / describe 的预估**同屏**报给用户,一次拿到同意——§五 ⑦ 的 lay 才允许带 `--yes`。**报不出这笔就不许开跑**。
217
207
 
218
208
  ## 五、快速成片编排(打样验证过的真实命令)
219
209
 
220
- > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
221
- > 文本产物只落 CLI 返回的路径或**用户显式指定的 `-o, --out`**;`transcript` / `oralcut` / `long2short`
222
- > 的缺省落点都是**源文件同目录**,这是在案设计、不是 bug(`skills/gtrk-transcript/SKILL.md:21`、
223
- > `README.md:343`·`:351`、`test/transcript-cmd.test.mjs:63` 三处独立在案)。
224
- > 但二创的源片通常躺在**用户自己的素材库**里,落进去每跑一条污染一次
225
- > (260902 真机在 `旅拍素材原片/` 下留了 4 个裸产物)⇒ 本图纸 §五 ① **SHOULD 带 `-o`
226
- > 把文本产物挪进工程 / 文稿目录**;用户明说就要放源片旁,不传即可——那是缺省,不算违纪。
227
- > **MUST NOT** 把原片或任何大媒体复制进 agent 自有工作目录(会话工作区 / agent 家目录缓存)——
228
- > 需要引用媒体时**用原路径引用**,不做副本;临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。
229
- > 交付物(颗粒 HTML / 工程文件 / 派单稿 / 文稿等)SHALL **直接以工程目录内的最终路径为写入路径**,MUST NOT 先写 agent 自有工作目录再拷进工程——**中转本身即违规**,不以「最后拷进去了」免责,**体积不是豁免理由**(2026-09-07 事故里漂掉的是 2.7–6.2 KB 的 HTML)。与上一条的分界:抽帧图这类**不交付**的中间物走系统 temp;**要交付的东西没有暂存态**。
210
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:文本产物写入 CLI 返回路径或用户显式指定的 `-o, --out`;交付物直接写入工程目录;引用媒体用原路径,不复制到 agent 工作目录;临时文件放系统 temp,用完即删。
211
+ > 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
230
212
 
231
213
  ```bash
232
214
  # ① 理解(二创:转写原片,--json 顺产 transcript.json 备用)
@@ -258,10 +240,10 @@ gtrk matrix material "<情绪+地理文化检索词>" --scope audio --top-k 5 --
258
240
  # ④ 配音(音色 code 用 catalog 的 voice_id;稿子存 txt 传 --text-file)
259
241
  gtrk tool audio_tts_clone --text-file <稿.txt> --speaker <voice_id> --json
260
242
 
261
- # ④′ 语速回校(★ 2026-09-02 新增,零成本自我标定;快速成片照跑不停顿,只汇报)
243
+ # ④′ 语速回校(零成本自我标定;快速成片照跑不停顿,只汇报)
262
244
  # 实测挂钟语速 = 稿件字数 ÷ 音频实际时长(时长取 ffprobe duration;字数口径同服务端:Unicode 码点、含标点与英文数字)
263
245
  # 与写稿时所用的估值比对:**偏差 >15% MUST 在交付汇报里点名**(报「估 X / 实测 Y / 偏 Z%」),
264
- # 并按 references/speech-rate.md 的五项格式追加一条标定档案 —— 每跑一条片攒一条样本,「孤证」从结构上消失。
246
+ # 并按 references/speech-rate.md 的五项格式追加本片标定记录,供后续估值复核。
265
247
  # MUST NOT 自动改稿、MUST NOT 自动重跑 TTS:改稿得从 ④ 重跑(TTS 变=全链时码变,⑤起全部重建)、要重付 TTS 费用,返工与否是用户的决定。
266
248
 
267
249
  # ⑤ 建工程(画幅按检查点①拍板;产物目录含 gtrk/transcript/audio)
@@ -282,26 +264,24 @@ gtrk split --project "<工程目录>" --json # 投影:拿 utterance i
282
264
  # beat 必填字段全表以 gtrk-splitter 的 references/field-schema.md 为准,MUST 照该表写全
283
265
  gtrk split "<拆分稿>" --project "<工程目录>" --json
284
266
  # ↑ 落地后走一遍 §六 末的**字卡自检清单**:数 type:"overlay" 的 aux 条数、核对 --json 回执里
285
- # queues.mg 的条数是否落在「每片 2-4 颗」(这个数以前全链无一处比对,真机两条片各只落 1 颗无人喊)
267
+ # queues.mg 的条数是否落在「每片 2-4 颗」
286
268
 
287
269
  # ⑦ B-roll 三连(describe 给字卡抽帧检查与 mark 加权供料;internal 用户 describe 免费)
288
- # ★ 铁则(口径同 gtrk-narration 与 gtrk-matrix,不许长出第二种说法):解说链**一稿对一片**——
289
- # 二创场景 --dirs MUST 钉到**这一部片的绝对路径**,**不许传素材夹**。--dirs 既吃文件夹也吃单个素材文件,
290
- # 传文件就是把检索域收窄到该素材。同夹邻片会抢占候选:260828 三片同夹实测 187 个候选里 86 条来自邻片(46.0%),
291
- # 那不是「排序靠后的次优解」,是**范畴错误**——A 稿的解说配 B 片的画面永远不可能对。
270
+ # ★ 铁则(口径同 gtrk-narration 与 gtrk-matrix,不许长出第二种说法):解说链**一稿对一片**——
271
+ # 二创场景 --dirs MUST 钉到**这一部片的绝对路径**,**不许传素材夹**。传文件就是把检索域收窄到该素材;同夹多片时一次实测 187 条候选中有 86 条来自邻片(46.0%),不能把邻片结果当作次优解。
292
272
  gtrk matrix index --dirs "<这一部片的绝对路径>" --json
293
273
  # ↑ 二创也要先建索引(原来 index 只挂在原创分支下,于是只能顺手对整夹建、正好把三条片灌进同一个 index.db);
294
- # 若此前已对整夹建过索引则**不必重建**,检索侧传单片即可收窄(判据是路径前缀,传的就是那一条素材本身)
274
+ # 如果整夹已有索引,**不必重建**,检索侧传单片即可收窄(判据是路径前缀,传的就是那一条素材本身)
295
275
  gtrk matrix --project "<工程目录>" --local --dirs "<这一部片的绝对路径>" --lay 0 --json
296
276
  gtrk matrix describe --plan "<工程目录>/split/broll-plan.json" --yes --json
297
277
  # ↑ describe 结果里的 usable_flags 由你裁定(text_overlay 命中=撞原片字幕区,考虑换段或保留交客户端悔棋)
298
278
  # ↑ 同时读 describe 输出的**剔除风险**清单:候选数 ≤1 的 beat 一删就掏空
299
279
  # (音频驱动 ⇒ 整段黑屏或跨 beat 借片;口播 ⇒ 露 A-roll)。先补素材再剔,MUST NOT 见 flag 就删。
300
- # ——260902 真机 P3 八个 beat 里七个只有 1 条候选,按 flag 删就是把整段掏空
280
+ # 候选稀疏时先补素材再剔除,按 flag 直接删除可能掏空整段
301
281
  gtrk matrix lay --project "<工程目录>" --mark-weight 0.3 --highlight-weight 0.2 --gap-fill fast --yes --json
302
- # ↑ --yes 的前提是**编排量预估已在检查点①(§四.6)报过并拿到同意**;MUST NOT 未经同意就带。
282
+ # ↑ --yes 的前提是**编排量预估已在检查点①(§四.6)报过并拿到同意**;MUST NOT 未经同意就带 `--yes`。
303
283
  # 不带 --yes 且无 TTY 时本步**整轮铺轨中止**、工程零改动(plan 照常可用、可重跑)——
304
- # 260902 真机三条片全停在这一步,就是「图纸漏了这个 flag、也没地方报预估」的形态
284
+ # 未报预估或未取得同意时不要继续执行
305
285
 
306
286
  # ⑧⑨ 字卡(§六 规约产颗粒 → lint → 铺)
307
287
  gtrk mg lint "<工程目录>/mg/<composition_id>.html" --dispatch "<工程目录>/split/dispatch.json"
@@ -309,7 +289,7 @@ gtrk mg --project "<工程目录>" --json
309
289
 
310
290
  # ⑩ BGM(音量口径见下;<bgm> 是**本地文件**,检查点①拍板后先落地——URL 传给 --file 必炸)
311
291
  # BGM 是带人声歌曲(audio_type:"song")→ MUST 下载 accompaniment_url 伴奏版上轨,
312
- # 不得用 download_url 原曲(人声与配音打架,260827 美食批踩坑);"pure" 取 download_url。
292
+ # 不得用 download_url 原曲(人声与配音会打架);"pure" 取 download_url。
313
293
  # 文件名 bgm-<曲名>[-伴奏].<扩展名>:跨片避让按**标题归一化键**记账(剥 bgm- 前缀与伴奏/instrumental/off-vocal 后缀),乱命名=下一轮 --exclude-recent 失准
314
294
  # --beat-align 的高潮点取自 split.beats 的 narrative / container_stage(升华段 → 容器转折 → 回扣段);
315
295
  # 拆分稿没带这两个字段 ⇒ 落 0.75×全片兜底档,**CLI 会明示那是猜的**。不接受就用 --climax <轨秒> 指定。
@@ -322,26 +302,26 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
322
302
 
323
303
  > **停顿太长时**:自训音色加 `--fragment-interval 0.2`(合成时就对);云引擎音色**不支持**该参数(传了会报错,不会静默忽略),改在合成后跑 `gtrk audio tighten --project <工程>` 收紧句间停顿(纯本地零计费;只压跨句界的停顿,句内换气与原声引用段不动)。
324
304
 
325
- **配方级参数口径**(打样标定):
305
+ **配方级参数口径**:
326
306
  - `--mark-weight 0.3`:美观度加权起步值(mark 缺失素材中性不受罚);
327
- - `--highlight-weight 0.2`(260828 新增):看点加权,配 §三′ 的 rubric——
307
+ - `--highlight-weight 0.2`:看点加权,配 §三′ 的 rubric——
328
308
  **须在 describe 那一步带 `--highlight-rubric @<工程>/highlight-rubric.txt`**,
329
309
  不带就是按服务端缺省准则打分,旅拍这一档的奇观地貌/极端天候/规模感全不算数。与 mark 正交——
330
310
  mark 判「好不好看」、highlight 判「有没有看点」。两权之和 0.5,语义仍占一半,
331
311
  **MUST NOT 加到语义压不住**(那会变成「专挑好看的,不管说的是什么」)。
332
312
  ⚠️ 两个权重与 blurry 降权**都依赖 `matrix describe --plan` 跑过**(编排 ⑦ 那一步);
333
313
  没跑就是全部候选中性、排序与不开权重逐字节一致——lay 会就此打告警,看到就说明漏了;
334
- - `--gap-fill fast`(★ 主理人 2026-08-21 拍板:快速成片不留空):主轨空洞按**五级**依次填——放宽地板取剩余候选 → 段界内延长相邻颗粒 → **跨 beat 借未消费候选** → **次地板补真画面** → 仍不够才落黑片。⚠️ 后两级容易被误当 bug:借来的画面**与本段稿子相关性弱**,次地板槽是**不到 1.2s 的快切**;两者都会在日志里指名报出(`kind` 为 `borrowed` / `subfloor`)——那是**如实告知,不是缺陷,别当 bug 上报**。宁可这样也不落黑,是因为客户端主轨磁吸开启时 gap 会被吸除、画面与配音错位,快速成片以画面连续性优先;CLI 缺省是 solid(黑片垫齐,精修可见),本配方须**显式传 fast**;
335
- - 句界吸附(`--cut-align`)默认 0.7 即三七开拍板值,不用传——约七成字幕句起点恰逢镜头切点、三成有意错开;
336
- - **BGM 音量口径 = -20dB(线性 0.10,★ 主理人 2026-08-19 拍板定值)**:配音主导原则——BGM 是垫底不是主角,成品音乐响度天然高于 TTS 电平。⚠️ 契约 volume 字段**只写线性增益、MUST NOT 写 dB**(composition-contract-v1 §4 明文,dB 残档曾致客户端打不开工程)——-20dB 换算=10^(-20/20)=0.10 写入。**客户端音量面板显示的就是 dB 值(标准 20·log10 换算,两侧同一标尺)**:写 0.10 打开面板即显示 -20.0,主理人实测该值听感最佳且偏保守(宁小声不大声)。用户嫌低在客户端拉高(终调权在客户端);
314
+ - `--gap-fill fast`:主轨空洞按**五级**依次填——放宽地板取剩余候选 → 段界内延长相邻颗粒 → **跨 beat 借未消费候选** → **次地板补真画面** → 仍不够才落黑片。借来的画面与本段稿子相关性可能较弱,次地板槽可能很短;两者都会在日志里指名报出。CLI 缺省是 solid,本配方须**显式传 fast**;
315
+ - 句界吸附(`--cut-align`)默认 0.7,约七成字幕句起点贴近镜头切点,其余有意错开;
316
+ - **BGM 音量口径 = -20dB(线性 0.10)**:BGM 作为垫底,`volume` 字段只写线性增益;客户端需要更响时再调整。
337
317
  - 时间窗(`--source-window`):二创场景解说序≈素材序时按 beat 对应的原片区间约束检索(可选增强,全库检索在几百场景规模下命中率已够);
338
318
  - 素材不二用、黑片叠底、层序(黑底最低号<common<concept<local,契约=大号在上)均由 lay 内建,MUST NOT 绕过。
339
319
 
340
320
  ## 六、MG 轻量字卡规约(旅拍向最小集,不建栏目 skill)
341
321
 
342
- > ⟲ 2026-08-27 注:本节「因势象形、不建栏目 skill」是**成片型图纸通用原则「MG 风格 = 内容驱动的临场泛化」的旅拍实例**——风格必须有,但不强行锚定(锚在这一片的内容上,而非预设模板)。原则正本在仓内《成片型图纸公约》§三(`docs/成片型图纸公约.md`),后续新图纸引用正本。
322
+ > 本节采用「因势象形、不建栏目 skill」原则:风格锚定本片内容,不强行套用预设模板。原则正本见《成片型图纸公约》§三。
343
323
 
344
- 快速成片**禁留白**(★ 打样修正)——字卡按下述规约**先斩后奏**直接产好叠上,用户不满意在客户端删,别等确认。
324
+ 快速成片**禁留白**——字卡按下述规约直接产好叠上,用户不满意在客户端删,别等确认。
345
325
 
346
326
  - **内容**:地名字卡为主(地标名中文+英文/头衔副标),可加里程/价格数字卡;每片 2-4 颗、挂在地标出场句(拆分稿 aux_layers overlay);
347
327
  - **形态**:左下安全区地名条——竖色条装饰+半透明深色衬底圆角条+主标题(60px 级粗体白字)+副标题(28px 级 75% 白);透明叠加不挡画面主体;
@@ -350,18 +330,13 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
350
330
  - **产前抽帧**(overlay 必做):对挂点用本地 ffmpeg 抽 1 帧看底轨明暗与主体位置(临时文件落系统 temp 用完即删);
351
331
  - 产物存 `<工程目录>/mg/<composition_id>.html`,逐颗 lint 过了再铺。
352
332
 
353
- **字卡自检清单**(★ 2026-09-02 补,形制同 §三「写后自校验清单」):
333
+ **字卡自检清单**(形制同 §三「写后自校验清单」):
354
334
 
355
335
  - [ ] 拆分稿写完,**数一遍** `aux_layers` 里 `type:"overlay"` 的条数,是否落在**每片 2-4 颗**;
356
336
  - [ ] 落地后核对 `gtrk split --json` 的 `queues.mg` 条数,与上一条对得上、且仍在 2-4;
357
337
  - [ ] 不足按地标出场句补挂;超出按「稀缺才有力」裁掉。
358
338
 
359
- > **为什么补在图纸而不上机器闸**(拍板留痕):「2-4 颗」以前**全链无一处拿它比对**——`split` 只如实报数、
360
- > `mg` 的 `empty_queue` 只防误清空整轨、`mg lint` 是单颗 HTML 内的静态校验、`splitdoc` 对 `aux_layers`
361
- > 条数零校验;于是真机两条片各只落 **1 颗**,下游每一环都 100% 报「全部铺成」,观感上完全正常,**无人喊**。
362
- > 但它与仓内唯一那道数量硬闸(`MAX_ANCHORS_PER_BEAT`)**判据类型不同**:那条的理由是**工程后果**
363
- > (锚过密会把序贯填充区间切碎),字卡颗数是**审美编排量**——上通用闸等于让通用契约背垂类配方
364
- > (撞 `gtrk-mg`「不硬编任何栏目的视觉风格」)。缺口的真正位置是**图纸缺自检项**(§三 有、§六 没有),
339
+ > 这是图纸层的审美自检,不是 CLI 通用硬闸:`split` 与 `mg` 负责报告实际条数,是否在 2–4 颗由本垂类图纸裁定。
365
340
  > 补在缺口上最省,**零代码变更**。⚠️ 反方也如实记:颗数是 `dispatch.mg.length` 一行就能算的机器可判量,
366
341
  > 若这类漂移反复发生,改上「通用可选入参 + 由图纸传值 + 非致命告警」是正当的。
367
342
 
@@ -403,7 +378,7 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
403
378
  | BGM 矩阵搜索(`gtrk matrix material`) | 公开口 1 积分/次;矩阵成员口 0 积分 | 档位由零件自动路由,命令输出如实报口径与计费 |
404
379
  | image_move 图片运镜 | 2 积分/张 | 素材夹含图片且被选中上轨时 |
405
380
 
406
- > ★ **脚注(划界,2026-09-02)**:表里那个 **240 字/分钟是计费折算常量**,
381
+ > ★ **脚注(划界)**:表里那个 **240 字/分钟是计费折算常量**,
407
382
  > **MUST NOT 用于写稿篇幅估算** —— 写稿口径在 §三(挂钟语速,按音色取、缺省 ≈330),两者保守方向相反。
408
383
  > 本脚注**只划界,不动**该行的积分档位与计量单位(单位口径归 infra `refactor-billing-measure-kchar` 的 CLI 联动件)。
409
384
 
@@ -417,7 +392,7 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
417
392
  - **字幕**:⑪ `gtrk subtitle lay` 已直接上好(7 样式 × 11 色,客户端可整轨换样式、逐条可编辑);改稿重跑 TTS 后须重跑 subtitle lay(时码变了);
418
393
  - describe 的 `text_overlay` 信号命中多为撞上原片烧录字幕区(片头片尾高发)——裁定换段或保留交客户端;
419
394
  - `matrix lay` 拒铺(`tracks_edited`)不是失败:用户在客户端动过候选轨,plan 照产(`planReusable:true`),提示用户后按其意愿 `--replace-all` 或保留;
420
- - BGM 曲长 < 成片:**已不再是边界**(⟲ 2026-09-02 订正——旧条目按早期行为写,落后于实现整整一版)。现行缺省是**循环叠满至工程末尾、尾段裁齐**(多 clip 首尾相接,命令打 INFO 报段数),不必再去客户端补尾;要单次铺才传 `--no-loop`。
395
+ - BGM 曲长 < 成片:缺省**循环叠满至工程末尾、尾段裁齐**(多 clip 首尾相接,命令打 INFO 报段数);要单次铺才传 `--no-loop`。
421
396
 
422
397
  ---
423
398
 
@@ -9,17 +9,17 @@ description: Vlog 纪实类一站式成片图纸——纪实 Vlog 是散文的
9
9
 
10
10
  > **定位**:structure 级组合图纸,不新增命令,只编排既有原子零件。零件参数以各自 skill(`gtrk-transcript` / `gtrk-matrix` / `gtrk-splitter` / `gtrk-mg`)与 `--help` 为准,**本图纸引用不复制**;编排次序、检查点、配方参数以本图纸为准。**CLI 是手,你是脑。**
11
11
  >
12
- > **本体定性(★ 主理人 2026-08-25,最上位的一条,先读懂再动手)**:
13
- > **纪实 Vlog 是散文的载体——用有限的素材,把一个故事、或一个几个思想,最终串联起来。**
12
+ > **本体定性**:
13
+ > **纪实 Vlog 是散文的载体——用有限的素材,把一个故事、或一个几个思想,最终串联起来。**
14
14
  >
15
15
  > 三个推论,构成本图纸的全部决策原点:
16
- > - **形散神不散**:素材可以跳跃、场景可以断裂、时间可以不连续,但**必须有一根线**。没有那根线的片子叫「相册」不叫作品(样本里质感最低的两条正是「记录了但没串起来」)。
16
+ > - **形散神不散**:素材可以跳跃、场景可以断裂、时间可以不连续,但**必须有一根线**。没有那根线的片子叫「相册」不叫作品。
17
17
  > - **素材有限是前提不是缺陷**:创作力体现在「用手上这些素材能串出什么」,不是「还差什么素材」。**先看素材里有什么,再决定串什么**——这是散文与说明文的分野。
18
18
  > - **先立神,再选材**:写稿的第一步不是排素材顺序,是找到那根线(§3.2)。顺序反了就会写成流水账。
19
19
  >
20
20
  > **表达形态上的定义性特征**:纪实类是**双声道交替**——现场同期声承载真实感与人格,后期旁白承载知识与升华。**同期声片段是内容本体,不是可替换的配画**。这是它区别于口播链与配音链的根本。
21
21
  >
22
- > ⚠️ **本图纸 v0(2026-08-25)**:类型语法基于 20 条样本片(152 min)全量转写+逐条结构分析,已定稿可用;链路形态已拍板(**C 分段拼接** + **默认保留部分毛边**),但 `gtrk project compose` 命令**尚未实现**(本图纸是长远设想,不追求近期落地)——A/C 档在 compose 落地前不可跑,B 档与「立神+选段+旁白稿」创作件随时可用。细节见 `openspec/.plans/explore-vlog-docu-skill.md` §四之二。用户要做时**MUST**先说明当前状态。
22
+ > ⚠️ **当前实现状态**:链路形态采用 **C 分段拼接** 与默认保留部分毛边,但 `gtrk project compose` 命令**尚未实现**。A/C 档在 compose 落地前不可跑;B 档可走配音链,「立神+选段+旁白稿」创作件可独立交付。用户要做时**MUST**先说明当前状态,细节见 `openspec/.plans/explore-vlog-docu-skill.md` §四之二。
23
23
 
24
24
  ## 一、输入契约与三档识别
25
25
 
@@ -46,7 +46,7 @@ description: Vlog 纪实类一站式成片图纸——纪实 Vlog 是散文的
46
46
 
47
47
  **判别动作**:`gtrk transcript` 抽听 1-2 条代表素材——转写出大量口语碎句、语气词、对话接话 → A 档;几乎无人声或只有环境音 → B 档;有对话但用户明显想表达观点 → C 档。**拿不准问用户一句**:「你是想让现场的声音说话,还是你来讲?」
48
48
 
49
- > **C 档是自制片里质感最高的形态**(样本实证):纪实同期声当前段素材,中后程整段切入议论式旁白,把当天事件升华为观点+私人自白,落一句可摘录的态度句。有条件优先推 C。
49
+ > **C 档适合需要升华观点的自制片**:以纪实同期声承载事件,中后程切入议论式旁白,把当天经历升华为观点与私人自白,落一句可摘录的态度句。有条件优先推 C。
50
50
 
51
51
  ## 二、全链总览(快速成片)
52
52
 
@@ -87,7 +87,7 @@ description: Vlog 纪实类一站式成片图纸——纪实 Vlog 是散文的
87
87
 
88
88
  纪实 Vlog 是散文的载体——**用有限的素材,把一个故事、或一个几个思想,串联起来**。「神」就是那根线。**没有神的片子是相册,不是作品。**
89
89
 
90
- **★ 立神是多轮访谈,不是单点拍板(主理人 2026-08-25 拍板)**:**神的所有权在创作者**——素材分析只能提名候选,真正的神往往在创作者的经历和冲动里,不问是挖不出来的。本 skill 在成片实战中 SHALL 围绕神与创作者做**多次沟通和确认**,问够为止;快速成片免打扰的射程只覆盖执行环节(⑥以后),**不覆盖立神对话**。
90
+ **★ 立神是多轮访谈,不是单点拍板**:**神的所有权在创作者**——素材分析只能提名候选,真正的神往往在创作者的经历和冲动里。本 skill SHALL 围绕神与创作者做多次沟通和确认,问够为止;快速成片免打扰只覆盖执行环节(⑥以后)。
91
91
 
92
92
  **访谈协议(写稿前必做)**:
93
93
 
@@ -125,7 +125,7 @@ description: Vlog 纪实类一站式成片图纸——纪实 Vlog 是散文的
125
125
  - **要求**每一段都能回答「它为神做了什么」——是铺垫、是印证、是转折、还是留白?答不上来的段**砍掉**,哪怕画面好看;
126
126
  - **素材有限是前提不是缺陷**:不要为「素材不够」而注水或强行拉长。手上有什么,就串什么——这正是本类型的创作力所在。
127
127
 
128
- > ⚠️ **反面案例(样本实证)**:质感最低的两条恰恰是「拍得不差但没串起来」——记录了一天的见闻,每段都成立,合起来没有神。**这是本类型的头号失败模式**,比文笔差、比素材糙都致命。
128
+ > ⚠️ **主要失败模式**:素材拍得不差却没有串成一条神,记录了一天的见闻,每段都成立,合起来仍像相册。它比文笔差、素材糙更致命。
129
129
 
130
130
  ### 3.3 纪实要素层(本类型专属)
131
131
 
@@ -146,9 +146,9 @@ description: Vlog 纪实类一站式成片图纸——纪实 Vlog 是散文的
146
146
  到场定位(口播或旁白一句)→ 背景科普(旁白)→ 现场体验(同期声,让开)→ 攻略数字(旁白/字卡)→ 转场(车程字卡)
147
147
  ```
148
148
 
149
- **攻略信息件标准化(收藏钩,样本里自制片最大的欠账)**:凡有地点/消费属性,每站必报**车程 + 价格 + 免费与否 + 避坑**,缺一项就少一分收藏价值。数字进字卡比进旁白更好用。
149
+ **攻略信息件标准化(收藏钩)**:凡有地点/消费属性,每站必报**车程 + 价格 + 免费与否 + 避坑**,缺一项就少一分收藏价值。数字进字卡比进旁白更好用。
150
150
 
151
- **Resonance 素材优先(有则必用、无则不硬造)**:样本里质感最高的几条全靠**坦白脆弱**(落榜、心碎、没钱、亲人离世)与**集体记忆锚点**(城市旧地标、经典电影、老游戏)建立共鸣。写稿前问用户一句:这趟有没有什么真话想说?有就放进升华段,**没有就老实做知识与快乐,不要编情绪**。
151
+ **Resonance 素材优先(有则必用、无则不硬造)**:用**坦白脆弱**(落榜、心碎、没钱、亲人离世)与**集体记忆锚点**(城市旧地标、经典电影、老游戏)建立共鸣。写稿前问用户一句:这趟有没有什么真话想说?有就放进升华段,**没有就老实做知识与快乐,不要编情绪**。
152
152
 
153
153
  **态度金句是收尾硬指标**:升华段必须落一句**可摘录**的话(能被观众截图、能当评论区引用)。写完自问:这句话单独拎出来,有人愿意转发吗?
154
154
 
@@ -195,9 +195,9 @@ HKRR 四维(缺哪补哪):
195
195
 
196
196
  ## 五、快速成片编排
197
197
 
198
- > **链路形态已拍板(2026-08-25 主理人):C 分段拼接**——全片切 N 段,每段声明 `live`(同期声段,引用原片区间,**内容本体**)或 `narration`(旁白段,TTS + B-roll 空档),由 `gtrk project compose` 按序拼主轨。设计草案见探索工件 §四之二。
198
+ > **链路形态:C 分段拼接**——全片切 N 段,每段声明 `live`(同期声段,引用原片区间,**内容本体**)或 `narration`(旁白段,TTS + B-roll 空档),由 `gtrk project compose` 按序拼主轨。设计草案见探索工件 §四之二。
199
199
  >
200
- > ⚠️ **`gtrk project compose` 尚未实现**(本图纸是长远设想,主理人明示不追求近期落地)。当前可跑的降级通道:**B 档(旁白主导)走配音链**(`project init`,同期声片段当带声 B-roll),命令同旅拍图纸。**A/C 档在 compose 落地前 MUST NOT 假装能跑**——用户要做时如实说明,可先交付「立神+选段+旁白稿」的创作件(§三产物本身就有独立价值)。
200
+ > ⚠️ **`gtrk project compose` 尚未实现**。当前可跑的降级通道:**B 档(旁白主导)走配音链**(`project init`,同期声片段当带声 B-roll)。**A/C 档在 compose 落地前 MUST NOT 假装能跑**;可先交付「立神+选段+旁白稿」创作件。
201
201
 
202
202
  ```bash
203
203
  # ① 理解与定档(抽听 1-2 条代表素材;live 段的 in/out 时码后面全从这份转写里读)
@@ -259,7 +259,7 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
259
259
 
260
260
  ## 六、字幕层规约(本类型的第二解说轨)
261
261
 
262
- **样本实证:字幕层不是被动烧字幕,是承载人格与信息的第二条解说轨。** 无语音段全靠它撑(样本里有片子近 2 分钟纯字卡蒙太奇)。四类字卡进 MG 派单:
262
+ **字幕层不是被动烧字幕,而是承载人格与信息的第二条解说轨。** 无语音段可由它承接信息。四类字卡进 MG 派单:
263
263
 
264
264
  | 类 | 用途 | 样本形态 | 挂点 |
265
265
  |---|---|---|---|
@@ -310,9 +310,9 @@ gtrk subtitle lay --project "<工程目录>" --style default --color 雅黑 --js
310
310
 
311
311
  ## 十、已知边界与排障
312
312
 
313
- - **`gtrk project compose` 未实现**(形态 C 已拍板、命令待 `add-project-compose-command` 立项):A/C 档当前不可跑,MUST 如实告知用户;B 档(旁白主导)走配音链今天可跑通;「立神+选段+旁白稿」创作件不依赖 compose,随时可交付;
313
+ - **`gtrk project compose` 的当前状态见顶部实现状态块**:A/C 档当前不可跑,B 档走配音链,「立神+选段+旁白稿」创作件可独立交付;
314
314
  - **毛边口径已定(默认保留部分毛边)**:只剪长静默/明显重来/跑题闲聊,语气词与自然停顿保留——MUST NOT 照口播链标准剪干净;
315
- - **旁白盖住现场声**是本类型第一大事故:铺完先在客户端听一遍交界处;
315
+ - **旁白盖住现场声**:铺完先在客户端听一遍交界处;
316
316
  - **三源混音**(同期声/旁白/BGM)的响度平衡当前靠客户端手调,无自动 ducking;
317
317
  - 闪帧 / 拆分注释客户端不显示 / describe 的 `text_overlay` 撞原片字幕区 / `matrix lay` 拒铺(`tracks_edited`)/ BGM 曲长不足:同旅拍图纸口径。
318
318
 
@@ -327,4 +327,4 @@ gtrk patch move --project <dir> --clip <clip_id> --to 5.0
327
327
  gtrk patch trim --project <dir> --clip <clip_id> --out -1s
328
328
  ```
329
329
 
330
- **MUST NOT 直接编辑 `.gtrk` 的 JSON**:片段时码两套并存(`clip_st`+`clip_ed` 与 `clip_st`+`duration`),改一份不改另一份 ⇒ 没人报错、成片却用了陈旧出点。`gtrk patch` 替你做恒等式同步 + 帧对齐 + 写前全档校验。
330
+ **MUST NOT 直接编辑 `.gtrk` 的 JSON**:片段时码两套并存(`clip_st`+`clip_ed` 与 `clip_st`+`duration`),改一份不改另一份会造成客户端与后端读取不同出点。`gtrk patch` 替你做恒等式同步 + 帧对齐 + 写前全档校验。
@@ -28,7 +28,7 @@ description: 通用配音视频创作图纸(配音链快速成片预设)—
28
28
 
29
29
  一张表一次问完;**未经检查点①确认 MUST NOT 发起 TTS 计费动作**。
30
30
 
31
- > ⟲ **推荐面(公约 §三‴)**:问答收口时多问一句「要不要看看第三方 skill?」,不列名;题材命中场景触发词才多 1–2 句定向推(`gtrk skills recommend --scene <id> --json` 取 tier 最高者,各给一句为什么),用户追问才展开完整块;轻提加定向合计不超三句、同会话同场景只推一次、答「不要」零动作。
31
+ > **推荐面(公约 §三‴)**:问答收口时可问一句「要不要看看第三方 skill?」;题材命中场景触发词才定向推荐,读取 `gtrk skills recommend --scene <id> --json`;用户拒绝后不执行推荐动作。
32
32
 
33
33
  ## 二、快速成片编排
34
34
 
@@ -36,7 +36,7 @@ description: 通用配音视频创作图纸(配音链快速成片预设)—
36
36
  # ①② 写稿(三段式通用框架层 + 文风铁律自校验)→ 产前六秒方案(公约 §三⁗:基于稿件首段改写钩子文案三候选 + 画面层建议 + 字卡节奏,只改开口不改事实)→ 检查点①拍板
37
37
  gtrk matrix material "<情绪 调性 检索词>" --scope audio --top-k 5 --json # BGM 候选附试听
38
38
  # ⚠️ is_copyright:1/true=可商用、0/false=**不可商用**(反直觉,MUST NOT 读成「无版权、可随便用」)。
39
- # ⟲ 260906 拍板:矩阵成员档**缺省搜全库**,MUST NOT 默认加 --commercial-only、也 MUST NOT 擅自剔掉
39
+ # 矩阵成员档**缺省搜全库**,MUST NOT 默认加 --commercial-only、也 MUST NOT 擅自剔掉
40
40
  # false 的候选;对价是推荐时 MUST 逐条带上派生位 copyright_label 的中文标签(不追问不阻塞)。
41
41
  # 用户**特意说明**只要可商用 / 要商用发布 / 客户商单时,才加 --commercial-only 收紧。
42
42