@gitruck/cli 0.2.15 → 0.2.17

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.
@@ -37,6 +37,11 @@ description: MG 动态图颗粒铺轨器——成片 SOP 第 ④ 步,在 B-rol
37
37
 
38
38
  ## 逐槽位工作流(产 → lint → 铺,循环到铺满)
39
39
 
40
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
41
+ > 一切产物(颗粒 HTML / 成片 / 预览 / 素材 / 工程文件)只落**工程目录**(颗粒恒存 `<产物目录>/mg/`)或**用户显式指定的输出路径**;
42
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
43
+ > 临时文件(抽帧图等)一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
44
+
40
45
  ### 1. 看板起手:先看 `dispatch.mg` 有哪些槽位、铺到哪了
41
46
 
42
47
  ```bash
@@ -49,7 +54,7 @@ gtrk mg status --project "<split产物目录>" --json
49
54
  ### 2. 逐槽位产颗粒(驱动栏目 MG 生产 skill)
50
55
 
51
56
  对每个「缺 HTML」的槽位:把它的 `composition_id` + `handoff`(`theme` / `duration_hint` / `category`:`overlay` 透明叠加·不挡主体 / `fullscreen` 不透明满屏)+ beat 语义上下文,**交给第「业务分离」节解析出的栏目 MG 生产 skill 产一颗 html-particle**。产完把颗粒**存到 `<产物目录>/mg/<composition_id>.html`**(`gtrk mg` 就从这里读)。
52
- - **产前先抽帧看底轨(`overlay` 槽位必做,别只凭派单盲产)**:颗粒最终要叠在真实画面上,构图必须因势象形。对该槽位挂点用本地 ffmpeg 抽 1-2 帧(`ffmpeg -ss <track_st秒> -i <底轨视频> -frames:v 1 <out.jpg>`,成本≈0)看清三件事——①真人主体/人脸的位置(颗粒 bbox 避开,呼应栏目「不盖说话人」铁律);②该处是否已有烧入包装或 AI 画面(有 → 别铺这颗,报用户裁决——二次过毛片高发);③画面明暗基调(深底/浅底影响衬底与配色取舍)。把这些**连同抽帧图一起附进产片订单**交给栏目生产 skill;`fullscreen` 槽位可免(满屏不透明无避让问题)。
57
+ - **产前先抽帧看底轨(`overlay` 槽位必做,别只凭派单盲产)**:颗粒最终要叠在真实画面上,构图必须因势象形。对该槽位挂点用本地 ffmpeg 抽 1-2 帧(`ffmpeg -ss <track_st秒> -i <底轨视频> -frames:v 1 "<系统temp>/<beat>.jpg"`,成本≈0;抽帧图是临时文件——落系统 temp、用完即删,**别落 cwd / agent 自有目录**)看清三件事——①真人主体/人脸的位置(颗粒 bbox 避开,呼应栏目「不盖说话人」铁律);②该处是否已有烧入包装或 AI 画面(有 → 别铺这颗,报用户裁决——二次过毛片高发);③画面明暗基调(深底/浅底影响衬底与配色取舍)。把这些**连同抽帧图一起附进产片订单**交给栏目生产 skill;`fullscreen` 槽位可免(满屏不透明无避让问题)。
53
58
  - **产片订单必须附带坑位硬约束(gsap-emit v1 铁律⑦,2026-07-24 主理人硬性规定)**:颗粒 GSAP 时间线总长 ≥ **坑位时长**(该槽位 `track_ed − track_st` 包络,**不是** `duration_hint`)+ 0.3s 余量;`duration_hint` 只是动画主叙事节奏参考。主叙事播完后颗粒必须**定格保持或有限循环驻留到坑位末尾**——坑位内任意一帧核心内容都可见;**禁全局渐隐/整体退场/清空画面**(渐隐与剪辑层转场冲突,淡出由剪辑层决定);定格不动是合法终态。违反的观感 = 动画一过完颗粒突兀消失。
54
59
  - **`-aux<n>` 叠层颗粒同样处理**:`gtrk split` 若在某 beat 的 `aux_layers` 派了 `overlay`,会派生 `<beat>-aux<n>` 进 `dispatch.mg`(多为 B-roll 底轨之上叠透明概念图解)——照样产、照样存到对应 `composition_id.html`。
55
60
  - **category 决定叠法**:`overlay` 颗粒背景透明、盖在 B-roll 上不挡主体;`fullscreen` 不透明满屏。最终透明度由颗粒 HTML 的 `background` 声明反推的 `opaque` 定,生产 skill 要让二者自洽(lint 会查)。**「实心底该写在哪个元素上」的正本条款是 `contracts/gsap-emit-v1.md` 铁律 4(含真机证据锚)——本 skill 不复述元素位置,改了要以契约为准**;`fullscreen` 颗粒把实心底写错地方会吃非致命 `4-bg-on-root`(见下节)。
@@ -60,7 +65,7 @@ gtrk mg status --project "<split产物目录>" --json
60
65
  gtrk mg lint "<产物目录>/mg/<composition_id>.html" --dispatch "<产物目录>/split/dispatch.json"
61
66
  ```
62
67
 
63
- - 纯本地静态校验颗粒 HTML 的**六铁律机器可判定子集**:`<template>` 包裹、`data-composition-id` + 1920×1080、`gsap.timeline({ paused: true })`、`window.__timelines` 注册、无 `Math.random` / `Date.now`(可逐帧 seek 的确定性)、自包含无相对外链、`background` 声明与 `opaque` 自洽…;给 `--dispatch` 会额外校验 `composition_id` 命中派单。
68
+ - 纯本地静态校验颗粒 HTML 的**铁律机器可判定子集**:`<template>` 包裹、`data-composition-id` + 1920×1080、`gsap.timeline({ paused: true })`、`window.__timelines` 注册、无 `Math.random` / `Date.now`(可逐帧 seek 的确定性)、自包含无相对外链、`background` 声明与 `opaque` 自洽…;给 `--dispatch` 会额外校验 `composition_id` 命中派单。
64
69
  - **`1-cid-expect`(致命)——复制改名必查**:颗粒内部的 `data-composition-id` 必须等于期望 id(`--dispatch` 命中时 = 该条派单的 `composition_id`,否则 = 文件名)。**你从别的颗粒复制模板时最容易漏改内部 id**:那样铺出来的 clip 指向 A、文件注册的却是 `__timelines["B"]`,渲染必错,且两颗粒抢同一个 `[data-composition-id]` 样式作用域。改名的临时副本(`./tmp.html`)不比对,不会误伤。
65
70
  - **铁律④「实心底与透明度」两项恒非致命**(正本条款 = `contracts/gsap-emit-v1.md` 铁律 4,含 2026-07-26 真机证据锚;**本处只说看到该码怎么办,元素位置以契约为准**):
66
71
  - `4-bg-on-root`:这颗把**实心底写在了根元素的 `style` 上**。**根元素的绘制属性会在子合成挂载时被丢弃**——那层底在成片里**一个像素都不落地**:前景照常渲出、底没了、底轨透出来,观感是「浮空面板」;而**本地播放器与客户端预览都看不出**(预览会按登记的 `opaque` 位自己给根盒打底,对这个问题结构性失明)。**报了要回步骤 2 让生产 skill 把实心底下沉为子层**——改法是机械的(把那条 `background` 声明整体搬到根下第一个全幅子层,根上改写 `background:transparent`)。⚠️ 它**不影响退出码、不拦铺轨**(避免存量颗粒一夜之间铺不进去),但**不是可以放着不管的噪音**:不改就是出片丢底。
@@ -71,6 +76,10 @@ gtrk mg lint "<产物目录>/mg/<composition_id>.html" --dispatch "<产物目录
71
76
  - `7-no-estimate`:一条时长调用都解析不到 → **明说「铁律⑦这颗没校验」**,不是通过。这时 tl 总长只能靠真引擎 seek 或人读代码确认,别当它过了。
72
77
  - `7-infinite-repeat`:颗粒里写了 `repeat:-1` → 总长变 `Infinity`、铁律⑦不可验证(契约 2026-07-26 已明文禁)。让生产 skill 改成按坑位算死的有限次数:`repeat = ceil((坑位 − 循环起点) / 单圈) − 1`。
73
78
  - 三项都**不影响退出码、不拦铺轨**——真判据是渲染引擎逐帧,静态估长只做提醒。**但「没报 7-fill-slot」≠「时长够了」**,要看是否同时出了 `7-no-estimate`。
79
+ - **铁律⑧「重复图元合并」为恒非致命提示,但看见必须处理**:
80
+ - `8-primitive-merge`:这颗有一批由循环直接创建、或由循环调用具名工厂创建的可合并重复图元;它们落到同一父节点,且没有逐元素动画驱动。纯数字循环可算且同父累计 **≥ 8** 时会报数;边界算不出时会报「条数未知」。逐元素 `gsap.set` / tween、或作为 tween 首实参使用的元素数组会被排除。
81
+ - 本项报的是「这批图元可**无损**合并,合并后画面逐像素不变」这一写法事实,**不是**「该颗粒有缺陷」或「超过某个数量会出问题」;真实触发轴未知。反过来,没报也**不代表安全**,真判据仍是真渲染出片抽帧。
82
+ - **处置**:回步骤 2,把原始提示完整交给栏目 MG 生产 skill,让它把整组同步驱动的网格 / 排线 / 刻度 / 点阵合成单元素(SVG 用一条 `<path>` 多子路径;同色分档可分档合成),然后重产、重 lint。**别硬铺,也别当没看见**;CLI 为兼容存量把它做成**非致命、不影响退出码、不拦铺轨**,不等于 agent 可以跳过修正。确需 stagger / 逐条画入 / 逐个变色的逐元素动画批次属于契约豁免,不要为了消项删掉动画身份。
74
83
  - **「回调与 seek 语义」三项恒非致命**(契约同名一节,2026-07-26 增补;**报了不用改颗粒**):
75
84
  - `x-callback-driven`:这颗的画面靠 `onUpdate` 等时间线回调写 DOM 驱动,且没带任何 seek 兜底(GSAP `seek(t)` 的 `suppressEvents` 缺省为 `true`,会吞掉回调)。**该写法合规**——回调可达性由契约压在**引擎侧**的 MUST 条款保证(引擎定帧 MUST 用 `seek(t,false)` / `time(t)` / `progress(p)`),**且该条款已于 2026-07-26 经真渲染引擎核实**(producer `0.6.101`,纯回调驱动无垫片颗粒三帧读数各不相同)。本项**核实之后照留**做**哨兵**:结论绑死引擎版本,引擎换实现或失守时补间属性照常插值、回调不跑 → 画面**静默定格在初始态**(不是黑屏,本地播放器和预览都看不出)。**别因为它去让生产 skill 改写法,更别让它自己加垫片。**
76
85
  - `x-engine-api-override`:颗粒运行时覆写了 `tl.seek`(老颗粒常见的 `rr-seek-shim`)或把 `__timelines[…]` 换成了包装对象。它会推翻引擎显式传的 `seek(t, true)`,且引擎改走 `time()`/`progress()` 就完全失效。**既有垫片属过渡态**:2026-07-26 引擎侧结论已核实(引擎本就不抑制回调),垫片已无保护作用、也无害,**可择期清理**(删后须重跑 lint 并重渲复验),不清也不拦;新颗粒别再加。
@@ -18,6 +18,11 @@ description: 音乐可视化成片——把一首歌通过同合云出成一条
18
18
 
19
19
  ## 一条命令
20
20
 
21
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
22
+ > 成片等一切产物只落产物目录(缺省 = 音频同目录)或**用户显式指定的 `--out`**;
23
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
24
+ > 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
25
+
21
26
  ```
22
27
  gtrk music-visualizer <音频> --template <模板id> [可选样式/文件] [--json]
23
28
  ```
@@ -85,6 +85,11 @@ oralcut 现在**本地预处理**(探原片几何 + 抽 16k 单声道 mp3 /
85
85
 
86
86
  ## 执行(每次都带 `--json`)
87
87
 
88
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
89
+ > 一切产物(成片 / 预览 / 代理 / 素材 / 工程文件)只落**工程目录**或**用户显式指定的输出路径**;
90
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
91
+ > 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
92
+
88
93
  ```bash
89
94
  gtrk oralcut "<毛片绝对路径>" [--script "<txt路径>"] [--preset steady|concise|compact] [其它参数…] --json
90
95
  ```
@@ -24,6 +24,11 @@ description: 视觉拆分派单器——把一条已剪好的口播工程(gtrk
24
24
 
25
25
  ## 完整流程(取视图 → 拆分 → 落地 → 修正循环 ≤3 轮)
26
26
 
27
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
28
+ > 一切产物(拆分稿 / 派单 / 成片 / 预览 / 素材 / 工程文件)只落**工程目录**或**用户显式指定的输出路径**;
29
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
30
+ > 临时文件(抽帧图等)一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
31
+
27
32
  ### 1. 取投影视图(你的唯一创作输入)
28
33
 
29
34
  ```bash
@@ -42,7 +47,7 @@ gtrk split --project "<oralcut产物目录>" --json
42
47
 
43
48
  按下面「拆分方法论」把连续的 utterance 分成若干 beat。一个 beat 覆盖**连续的 id 区间**(可跨多句),但**不能跨前后两处拼接**。beat 之间允许留空隙(未覆盖段默认 A_ROLL 底轨直出),**不许重叠**。
44
49
 
45
- **抽帧确认底轨画面(凡毛片可能已含视觉包装时必做,勿只凭文稿派单)**:view.json 只给你文字,看不见画面——但毛片未必是素的。**二次过 / 补 ov 场景**(毛片本身是已烧入 MG、AI 再现或其他包装的成片再加工)尤其危险:只凭时码派 overlay 会撞上已有包装叠罗汉。姿势:对候选挂点(尤其打算派 `overlay` 的句区间)用本地 ffmpeg 按 `track_st` 抽 1 帧看一眼(`ffmpeg -ss <秒> -i <毛片> -frames:v 1 <out.jpg>`,成本≈0),确认该处画面性质——**裸口播 → 正常派;已有包装 → 避开该区间或另选挂点;拿不准 → 列给用户裁决**。首次过全素毛片可免;一旦毛片来历含「粗剪成片 / 待 ov 补充 / 二次过」字样,此步为硬门。抽帧顺带看清真人主体位置与画面明暗,写进 beat 的语义上下文,供下游产颗粒时构图避让。
50
+ **抽帧确认底轨画面(凡毛片可能已含视觉包装时必做,勿只凭文稿派单)**:view.json 只给你文字,看不见画面——但毛片未必是素的。**二次过 / 补 ov 场景**(毛片本身是已烧入 MG、AI 再现或其他包装的成片再加工)尤其危险:只凭时码派 overlay 会撞上已有包装叠罗汉。姿势:对候选挂点(尤其打算派 `overlay` 的句区间)用本地 ffmpeg 按 `track_st` 抽 1 帧看一眼(`ffmpeg -ss <秒> -i <毛片> -frames:v 1 "<系统temp>/<句id>.jpg"`,成本≈0;抽帧图是临时文件——落系统 temp、用完即删,**别落 cwd / agent 自有目录**),确认该处画面性质——**裸口播 → 正常派;已有包装 → 避开该区间或另选挂点;拿不准 → 列给用户裁决**。首次过全素毛片可免;一旦毛片来历含「粗剪成片 / 待 ov 补充 / 二次过」字样,此步为硬门。抽帧顺带看清真人主体位置与画面明暗,写进 beat 的语义上下文,供下游产颗粒时构图避让。
46
51
 
47
52
  ### 3. 写拆分稿 JSON
48
53
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gtrk-style-maker
3
- description: "能生产 skill 的 meta skill——通过启发式访谈引导视频创作者想清楚**他自己的**视觉语法,并把它落成**他自己的可执行 skill 家族**(黑盒、留本地)+ 栏目内共享词表 + 栏目配置登记。框架对审美零预设:不假设你有叙事结构、有容器概念、视觉分 MG/AI——你的维度(k)和取值(v)全部由你自己定义,本 skill 只提供「怎么想清楚」的工艺。当用户想「建一个新栏目/新频道的风格体系」「把我的审美沉淀成 skill」「做一个我自己的视觉 skill」「定义栏目风格规范/视觉语法」「栏目配置文档的 style 怎么填」「给我的栏目造一套创作工具」时使用本 skill。产出的 skill 通过通用 skills 适配器安装到当前或多个 Agent,登记进 gtrk 栏目配置(style.skills)。"
3
+ description: "能生产 skill 的 meta skill——通过启发式访谈引导视频创作者想清楚**他自己的**视觉语法,并把它落成**他自己的可执行 skill 家族**(黑盒、留本地)+ 栏目内共享词表 + 栏目配置登记。框架对审美零预设:不假设你有叙事结构、有容器概念、视觉分 MG/AI——你的维度(k)和取值(v)全部由你自己定义,本 skill 只提供「怎么想清楚」的工艺。当用户想「建一个新栏目/新频道的风格体系」「把我的审美沉淀成 skill」「做一个我自己的视觉 skill」「定义栏目风格规范/视觉语法」「栏目配置文档的 style 怎么填」「给我的栏目造一套创作工具」时使用本 skill。产出的 skill 通过通用 skills 适配器安装到当前或多个 Agent,登记进 gtrk 栏目配置(style.skills)。"
4
4
  ---
5
5
 
6
6
  # gtrk-style-maker · 造你自己的视觉 skill
@@ -75,7 +75,7 @@ description: "能生产 skill 的 meta skill——通过启发式访谈引导视
75
75
  1. **起 skill 目录**(用户作坊目录为正本,如 `D:\<他的工作区>\skills\<skill-name>\`):SKILL.md(frontmatter `name`+`description`,description 即触发器,写清「当用户想…时使用」)+ **README.md 必产**(含「正本→安装」单向流声明)+ 按需 references/ assets/。exemplar 一旦在 SKILL.md 里被引用就必须真实存在——「计划中的案例」不能以文件路径形式出现。skill 正文结构**由访谈产出的维度决定**,不套模板。
76
76
  2. **契约绑定**:产物命中管线 handoff 类型的,查 `contracts/handoff-contracts.json`(本 CLI 包内);映射到契约的(如 HTML 动画颗粒 → gsap-emit v1),在 skill 中引用「契约名+版本」并把契约合规项加进其自检清单;映射为 null 或管线外产物,无此要求。
77
77
  3. **共享词表**(条件产出,见第⑤招)。
78
- 4. **安装**:以作坊里的 skill 目录为源,运行 `npx -y skills add "<skill正本目录>" -g -y`,让通用适配器自动探测 Agent,并以统一正本 + symlink/junction 安装;用户明确指定宿主时追加 `-a <agent-id>`(可重复),明确要求独立副本时追加 `--copy`。不要在本 skill 里维护 Claude/Codex/TRAE 等路径表。skill README 写明**「正本→安装」单向流**:源码正本在作坊,安装位是产物,改动先改正本再重装。
78
+ 4. **安装**:以作坊里的 skill 目录为源,运行 `npx -y skills add "<skill正本目录>" -g -y`,让通用适配器自动探测 Agent,并以统一正本 + symlink/junction 安装;用户明确指定宿主时追加 `-a <agent-id>`(可重复),明确要求独立副本时追加 `--copy`。不要在本 skill 里维护各 Agent 宿主的安装路径表(探测归适配器)。skill README 写明**「正本→安装」单向流**:源码正本在作坊,安装位是产物,改动先改正本再重装。
79
79
  5. **登记**:把 `{id, ref: <正本路径>, produces: <handoff 类型或自造串>}` **追加**进本地栏目配置 `style.skills`(词表进 `style.shared`)。配置文件位置以 gtrk 的 paths 口径为准(当前 `~/.gitruck/columns/<栏目id>.json`);文件不存在则创建最小骨架 `{meta:{id},style:{skills:[…]}}`。**追加,绝不清空既有条目**。产物是管线外的(封面等),登记时加 `routing:"none"`。
80
80
 
81
81
  ## 交付前自检(你自己的 Quality Bar)
@@ -87,7 +87,7 @@ description: "能生产 skill 的 meta skill——通过启发式访谈引导视
87
87
  - [ ] 契约绑定查了映射表(而不是凭记忆)?
88
88
  - [ ] 产出 skill 是**纯生产者**——正文里没有任何 gtrk 命令、没有「产完接着跑…」、不碰 dispatch/struct_meta/SOP 编排(铁律 6)?
89
89
  - [ ] 栏目配置登记是**追加**语义,既有条目一条没丢?
90
- - [ ] 已提醒用户:skill 是他的资产,留本地即可用;上传云端(claude.ai)是可选分发,非必需?
90
+ - [ ] 已提醒用户:skill 是他的资产,留本地即可用;上传到 agent 产品的云端 skill 市场是可选分发,非必需?
91
91
 
92
92
  ## 下一步(回成片管线)
93
93
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## 2. 「正本→安装」单向流(写进产出 skill 的 README)
19
19
 
20
- > 本 skill 源码正本在 `<用户作坊路径>`;Agent 的 skills 目录是安装产物。改动**永远先改正本**,再运行 `npx -y skills add "<用户作坊路径>/<name>" -g -y` 重新安装。通用适配器负责 Agent 探测、目录映射,以及统一正本到各宿主的 symlink/junction;需要独立副本时才加 `--copy`。云端上传是可选的第三级分发,同样以作坊正本打包。
20
+ > 本 skill 源码正本在 `<用户作坊路径>`;Agent 的 skills 目录是安装产物。改动**永远先改正本**,再运行 `npx -y skills add "<用户作坊路径>/<name>" -g -y` 重新安装。通用适配器负责 Agent 探测、目录映射,以及统一正本到各宿主的 symlink/junction;需要独立副本时才加 `--copy`。云端上传是可选的第三级分发,同样以作坊正本打包。
21
21
  > ——副本漂移是有血泪教训的(同一枚举曾在 6 处定义、口径打架),单向流是唯一解法。
22
22
 
23
23
  ## 3. 共享词表(条件产出)
@@ -30,7 +30,8 @@
30
30
 
31
31
  - 位置:以 gtrk paths 口径为准(当前 `~/.gitruck/columns/<栏目id>.json`;权威在 CLI 的 paths 模块,本文档不是路径权威源)。
32
32
  - 写法:**追加**进 `style.skills` / `style.shared` 数组,绝不清空既有条目;文件不存在则创建最小骨架。
33
- - 条目:`{ "id": "<skill-name>", "ref": "<正本绝对路径>", "produces": "<handoff 类型或用户自造串>" }`;管线外产物(封面、周边图等)加 `"routing": "none"`(豁免疑似拼写提示)。
33
+ - 条目:`{ "id": "<skill-name>", "ref": "<正本绝对路径>", "produces": "<handoff 类型或用户自造串>" }`。
34
+ - `routing:"none"` 的语义是「跳过我」(消费方按惯例跳过该条目,用于退役 / 显式停用,配合 `status` 注明缘由)——**不是**「管线外产物」的标配:产线若存在消费方框架 skill(如封面 → `/gtrk-cover` 消费 `produces=="cover"`),**活跃条目不要加** `routing:"none"`,否则会被消费方跳过;只有确无任何消费方、又想豁免疑似拼写提示的纯登记条目才加。
34
35
  - `produces` 是登记不是审批:写用户自造串完全合法(框架静默惰性登记);只有命中管线 handoff 注册集的才参与派单路由。
35
36
 
36
37
  ## 5. 契约绑定
@@ -42,5 +43,5 @@
42
43
 
43
44
  ## 6. 收尾提醒(给用户)
44
45
 
45
- - skill 留本地即完整可用;上传 claude.ai(打包 .skill zip)是**可选**分发,供网页/移动端触发。
46
- - 后续迭代:改作坊正本 → 重跑 `npx -y skills add "<正本目录>" -g -y` → (可选)重新打包上传。
46
+ - skill 留本地即完整可用;上传到 agent 产品的云端 skill 市场(按其要求打包)是**可选**分发,供网页/移动端触发。
47
+ - 后续迭代:改作坊正本 → 重跑 `npx -y skills add "<正本目录>" -g -y` → (可选)重新打包上传。
@@ -57,6 +57,11 @@ description: gtrk 单点工具与媒体转换能力的调用向导,覆盖 `gtr
57
57
 
58
58
  ## 调用纪律(每次都照做)
59
59
 
60
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
61
+ > 一切产物只落 `outDir`(缺省 = 输入同目录)或**用户显式指定的 `--out`**;
62
+ > **MUST NOT** 把成片、预览或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
63
+ > 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
64
+
60
65
  1. **先看清单、再对号**:用户的意图对到某个工具名(拿不准就 `gtrk tool list --json` 核对触发语与输入要求)。
61
66
  2. **执行前转述实时计费提示**:先读本次 `gtrk tool list --json` 的 `billingHint`/`pricing`,再把实时结果如实告诉用户;不得引用本文件或记忆中的旧价格。若显示价格暂不可用,就说明最终以服务端结算为准。
62
67
  3. **一律带 `--json`**:`gtrk tool <name> <输入> --json`。stdout 只会有一行结果 JSON(`{ ok, outDir, files, taskId, fileId, … }`),人读日志在 stderr。按 `ok` 判成败、从 `files` 拿产物路径、把 `outDir` 回给用户。
@@ -11,6 +11,11 @@ description: 将用户本地视频转成一个飞书妙记式 Markdown 文字稿
11
11
 
12
12
  ## 硬边界
13
13
 
14
+ > **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
15
+ > 唯一 Markdown 产物只落 CLI 返回的 `output` 路径(缺省 = 视频同目录)或**用户显式指定的 `--out`**;
16
+ > **MUST NOT** 把原视频或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
17
+ > 临时文件一律放系统 temp 且**用完即删**(含中断 / 失败路径)。违者后果 = 用户系统盘被静默吃满(真机事故,非假设)。
18
+
14
19
  - 只接收用户电脑上已存在的视频文件;遇到 URL、平台视频 ID 或“帮我下载后转写”时,要求用户先提供本地文件,不代为抓取。
15
20
  - CLI 在本地抽取 16 kHz 单声道音频,只上传音频衍生物;原视频不得上传。
16
21
  - 最终只保留 CLI 返回的一个 Markdown,不另建总结、字幕、TXT、JSON 或 HTML 文件。