gitruck/cli/gtrk-matrix
Claude Code and agent skill by gitruck/cli
- community
Checking that the SKILL.md file is still in the repository.
B-roll 检索铺轨编排手册——成片管线里第一个铺的车道(SOP ③ B-roll 底轨阶段)。消费拆分派单的 FILM_BROLL 队列(`dispatch.film_broll`),检索素材并在工程里平铺 N 条候选 B-roll 轨,供用户在 opencut 里用轨道小眼睛切换对比、挑选/调整;确认后交棒同阶段的 AI 情景片段腿(`/gtrk-ai-drama`,车道非空时)。命令族还含:**本地素材模式**(`matrix index` 建索引、`--local` 用自己的素材铺轨,**素材本体不上云**)、**按需理解**(`matrix describe`,为排序提供画质与看点信号)、**源时间窗检索**(`--source-window`,电影解说式逐段推进)、**通用三态素材检索**(`matrix material`:clip/image/audio 整条素材下载向,BGM/配图主场)、**plan 可编辑通路**(agent 改 plan 后 `matrix lay` 消费)。当用户想「铺 B-roll / 检索素材 / 找空镜 / 给空镜配画面 / 填 B-roll 候选 / 单独搜个词补个空槽 / 找 BGM / 搜配乐 / 搜张配图 / 用我自己的素材铺 B-roll / 给素材文件夹建索引 / 理解一下这些素材能不能用 / 把这堆素材剪成片 / 影视解说配画面」时使用本 skill。凡涉及把素材检索并铺进工程,优先用本 skill 驱动 gtrk CLI 的 `matrix` 命令族,别让用户自己去终端敲、也别手搓检索。
Install
npx vskill@latest install gitruck/cli/gtrk-matrixSKILL.md
B-roll 检索铺轨编排手册(gtrk-matrix)
把素材检索铺轨当乐高:CLI 提供原子零件(index / search / describe / plan / lay),你按场景裁定怎么编排——本手册给你六个起手配方、三条裁定判据、零件参数总表、plan 编辑口径与计费速查。CLI 是手(检索/理解/下载/铺轨/写回),你是脑(裁定用哪个配方、管用户检查点、遇差调参补空)。
本 skill 已含你需要的全部信息,照它做即可,不用也无法去查外部文档。(gtrk matrix --help也随时列全部 flag。)
四层架构与三条铁律(先立规矩)
- 零件不裁定:原子命令不猜用户意图,行为全由显式参数决定。
describe出的usable_flags(水印/字幕/黑边/模糊)只是给你的信号——CLI 永远不会依据它自动剔除候选,剔不剔由你编辑 plan 裁定。 - 配方不进代码:配方只活在本手册。遇到新场景,别等 CLI 发版——用现有零件拼。
- plan 是一等可编辑中间产物:检索产 plan → 你改 plan(删候选/重排/删段/注理解/钉选)→
matrix lay消费。这是你的裁定注入铺轨的法定通道(口径见 §plan 编辑口径)。
配方库 v1(起手式,可变奏可自创)
当前 Agent 的审片路径(本地素材优先)
视觉理解优先由用户当前会话的 Agent 完成。CLI 不启动另一个 Agent;“本地”指编排位置,不保证当前 Agent 的模型在离线设备运行。
- 概览:按素材时间顺序查看带时码的抽帧与照片;长场景也保留多个观察位置。结合
gtrk transcript的原声转写整理事件、人物、环境和待核实之处,不从文件名猜内容。 - 细查:脚本要求某个动作或情绪时,对相关素材用
describe --materials <视频> --source-window <起秒,止秒> --prepare <工程目录/审阅目录>加密取帧;通过当前视觉工具检查过程。有音频依赖时回看/听对应原声,不以一张图证明完整动作。 - 回传:查看任务中的实际图片后填写
visual-review.json,以相同输入参数加--review <回执路径>导入。全部本地完成时零豆包调用;不能看图或无法完成的单项标unavailable并说明原因,只有这些项由豆包补齐。不得把未查看项批量写成完成,也不得仅因省事直接调用豆包。 - 编排:从已观察证据中按脚本意图选择片段。按脚本语义选材,本手册不调用视频高光算法;该增强仅由 Vlog 图纸按需编排。看片范围、未确认事实和原声覆盖均如实记录。
准备和导入是 Agent 的内部工具接力,不要求用户逐帧填表。确实没有视觉能力时,可以直接用既有豆包 describe,报告回退原因。远端 URL 候选尚不支持本地交接,沿用豆包通道。--plan 仍只看每候选 segments[0].best 帧,动作细查走明确的 --materials --source-window;不能把候选描述当作整条视频都已审过。
配方前置都一样:能跑gtrkCLI;本地素材类配方先gtrk matrix index --dirs <素材夹>建索引。每条命令都带--json。⚠️ 路径里有英文半角逗号(Bears, Salmon and Adventure这种)时--dirs/--materialsMUST 重复传(--dirs "A" --dirs "B",累加不覆盖),别塞进一串里 —— 缺省按半角逗号分隔。整串在盘上存在时会自动不拆,中文全角「,」从不参与拆分。
配方 A · 纯匹配铺轨(默认主路)
- 适用线索:文稿强(口播/解说已定)、素材净(策划过的素材夹或云端素材库)、节奏快、成本敏感。
- 命令序列:
``bash gtrk split <拆分稿> # ② 产派单 gtrk matrix --project <目录> --json # ③ 检索+铺轨一步走(云端) # 本地素材版:gtrk matrix --local --dirs <素材夹> --project <目录> --json ``
- 变奏点:
--lay N多候选轨;--score-floor卡准入;--top-k扩候选面;--lay 0先出 plan 人审再matrix lay。
配方 B · 匹配后理解铺轨(求稳/素材可信度存疑)
- 适用线索:素材夹很「野」(下载杂片/相机胶卷,可能混着带水印、烧字幕、黑边、糊片);高价值成片求稳;用户抱怨过「搜出来的像但不能用」。
- 命令序列:
``bash gtrk matrix --local --dirs <素材夹> --project <目录> --lay 0 --json # ① 只出 plan 不铺 gtrk matrix describe --plan <目录>/split/broll-plan.json --top-k 5 --json # ② 理解 top 候选,产物注入 plan # ③ 你读 plan 各 result.describe,裁定:剔除 usable_flags 命中且描述证实不能用的候选(删 result 条目)、 # 按描述调顺序(重排)、把非留不可的候选标 pinned:true —— 直接编辑 plan 文件 gtrk matrix lay --project <目录> --json # ④ 消费你编辑后的 plan 铺轨 ``
- 变奏点:
--top-k控理解成本(1 积分/张,只理解你会认真考虑的那几条);云端 plan 同样可 describe(帧从签名 url 现抽);理解产物有本地缓存,反复迭代不重复扣费。 - 裁定要点:
usable_flags是信号不是判决——结合desc复核(水印在角落的航拍也许仍可用);剔除动作=从 plan 删掉那条 result,CLI 不会替你剔。
另读 describe 输出的剔除风险清单:候选数 ≤1 的 beat 一删就掏空(音频驱动 ⇒ 整段黑屏或跨 beat 借片;口播 ⇒ 露 A-roll)。先补素材再剔,MUST NOT 见 flag 就删。 该清单只是判据,剔不剔仍归你(铁律①「零件不裁定」,见 §四层架构与三条铁律)。
配方 C · 时间窗匹配(电影解说式)
- 适用线索:解说顺序≈素材内时间顺序(影视解说、赛事复盘、长录像剪辑)——第 N 段解说该配影片第 N 段邻域的画面,全片乱配会剧透/错位。
- 命令序列(逐段推进窗口,窗口推进是你的编排逻辑,CLI 不自动推进):
``bash # ⚠️ --dirs 钉到**这一部片的绝对路径**,不是它所在的夹——同夹邻片会抢占候选 gtrk matrix index --dirs <这一部片的绝对路径> --json # 对解说的每一段(第 i 段,共 n 段,影片时长 D 秒): # 窗口中心 ≈ D × (i/n)(解说进度比),半径 r 可调(起手 ±D/n 到 ±2D/n) gtrk matrix search "<该段画面描述>" --local --dirs <这一部片的绝对路径> --source-window <中心-r>,<中心+r> --out seg-i.json --json # ↑ --dirs(文件域)与 --source-window(源时间域)是**两个维度**,AND 叠加: # 前者限定「哪一部片」,后者限定「片内哪一段」。只用后者不限文件域,邻片的同时段照样进候选。 # 空窗(results 空)→ 你裁定:扩半径重试 / 接受留空 / 放弃时序约束去全片搜 # 汇总各段命中组一份 plan(结构照 broll-plan.json;每段一个 beat、track_st/ed=该段口播窗口) # ★ 每个 seg-i.json 里的 results 条目**原样搬进去**,MUST NOT 自己重写 segments gtrk matrix lay --project <目录> --plan <你组的 plan 路径> --json #(可选)组 plan 前先 describe 一轮候选帮助取舍(配方 B ③ 的动作) ``
- 变奏点:窗口公式只是起手——非线性叙事(倒叙/闪回)按你对片子的理解手排窗口;
--source-window与--score-floorAND 叠加;窗口显式传入时图片候选自动排除(无时间轴)。 - 要点:段边界不被窗口裁剪(有交集即完整返回),截多长归铺轨槽长逻辑;扩窗与否永远是你的裁定,CLI 绝不自动扩。
- ★ 组 plan 时最容易丢的东西:
cuts(段内切点)与motion(段级运动量)住在 `segments[]` 里面,检索结果本来就带着它们。你原样搬results条目就都在;一旦按「我自己写个 start/end/best」的姿势重写 segments,它们一起没了,后果具体是: - 丢
cuts⇒ 铺轨的端点残片收缩空转(只剩帧网格吸附,还得候选带fps才生效)——成片上可能出现一闪而过的异景帧; - 丢
motion⇒ 高运动降权不生效(缺席=不可判,不是「平稳」); - 没跑过
describe⇒ 美观度 / 看点 / 模糊降权三条一并不生效(那是配方 B ② 的产物)。 - 两种「没有 cuts」要分开处理:① 素材压根没扫过切点 ⇒ 跑
gtrk matrix index --dirs <夹> --rebuild补上;② 你重写了 segments 把cuts抹掉了 ⇒ 重跑索引一万遍也不会消,改姿势原样搬回results条目即可。
⚠️ 告警本身分不清这两档——两者在 plan 里长得一模一样(都是 cuts 整键缺席)。判别法是先跑 ①,若告警还在就是 ②(matrix lay 的告警原文里也是这么写的)。 另注:cuts: [](空数组)不是「没有 cuts」,那是「扫过了,这段里恰好没切点」,可判且无风险,不会触发告警。
配方 D · 理解先行编剧(vlog 式,素材→文稿)
- 适用线索:没有文稿、素材是叙事源头(「帮我把这堆素材剪成片」、旅行胶卷、活动跟拍)。查询不存在,无物可匹配——先理解素材,再由你编剧。
- 命令序列:
``bash gtrk matrix index --dirs <素材夹> --json gtrk matrix describe --materials <素材路径列表> --json # 全量或抽样理解(视频按场景抽帧、图片直传) # 你拿着逐场景描述编剧:大纲 → 章节 → 逐章旁白(与用户对话定基调) # 旁白定稿 → 走口播管线反填:oralcut/TTS 出口播 → gtrk split → 配方 A/B 反填 B-roll ``
- 变奏点:素材多时先抽样(每夹几条)理解定大纲,定了再补理解入选素材;描述有缓存,二次编排零成本;
>20张会有计费确认(1 积分/张),先跟用户对齐预算。
配方 E · 三层层叠(企业动线)
- 适用线索:本地素材不够填、需要栏目概念素材/通用素材补空洞;企业客户三源混用。
- 命令序列(任意顺序,层序铁律自动保序 local > concept > common):
``bash gtrk matrix --local --dirs <素材夹> --project <目录> --lay 2 --json # 本地层 gtrk matrix --project <目录> --column <id> --material-class concept --json # 概念层(internal 矩阵成员口) gtrk matrix --project <目录> --json # 通用层垫底填空洞 ``
- 变奏点:每层可独立换配方(本地层走 B 先理解再铺);每层铺完停下让用户看(见「三条业务动线」节);重铺某层不碰他层。
- 注意:概念层重铺请走上面的检索命令(
matrix lay从 plan 推导层归属:local→local、云端→common,概念层信息不在 plan 里)。
配方 F · 图文混排
- 适用线索:素材夹含大量剧照/海报/示意图;图片值得上轨(被选中时自动经云端 image_move 转运镜视频,2 积分/张)。
- 命令序列:任意配方照跑——图片默认参与索引/检索/铺轨;
--no-image-broll反向排除(零图片上云)。 - 变奏点:describe 对图片是文件直传理解;出域与计费口径见「图片候选运镜入轨」节——图片本体会上云这条差异必须跟用户说清。
裁定线索(判断素材,不是分支条件)
拿到一个活,先过三个判据。它们帮你倾向某配方,不是 if-else——边界情况跟用户对话确认。
- 信息流方向:成片从素材长出来(素材→文稿),还是素材服务既有叙事(文稿→素材)?
用户给了完整口播/文稿/解说 → 查询存在,匹配主导(A/B/C)。用户只有一堆素材、叙事尚未诞生 → 无物可匹配,理解主导(D)。「先剪口播再配画面」是前者,「把这堆素材剪成片」是后者——同一个用户两天能各来一次,别拿昨天的路径套今天。
- 素材可信度:素材越「野」,理解的前置价值越大。策划过的素材(成片切片/精选夹/云素材库)→ 纯匹配直接吃(A);下载杂片/用户随手拍(可能混水印、字幕残留、糊片)→ 匹配后理解过一道(B),甚至先 describe 全量过滤再谈其他。判断不了就问用户素材哪来的。
- 规模 × 决策类型:几十个镜头 → 描述装得进上下文,你直接读 describe 产物做编排;万级库 → embedding 粗筛必须先行(index/search),理解只花在 top 候选(B 的成本结构:O(候选) 而非 O(素材库))。「找相似画面」→ 检索足矣;「排叙事/定取舍/避剧透」→ 必须理解物+你裁定(B/C/D)。
再叠两条场景特征:解说与素材同源(影视解说)→ C 的时间窗;素材夹里图片占比高 → F 的口径先交代。
零件参数总表
检索/铺轨主命令(gtrk matrix,云端派单消费为默认路):
| 用户想要 | CLI 怎么传 | 取值 · 默认 | 说明 | |||
|---|---|---|---|---|---|---|
| 消费派单铺 B-roll(主路) | gtrk matrix --project <目录> | 目录 · — | 读 split/dispatch.json 的 film_broll,产候选清单 + 铺轨 | |||
| 单独搜个词(ad-hoc) | gtrk matrix search "<词>" | 字符串 · — | 单条检索;--out <file> 落盘或缺省 stdout | |||
| 显式指定派单文件 | --dispatch <path> | 路径 · 由 --project 推 | 非标准布局兜底 | |||
| 按某栏目检索偏好 | --column <id> | 栏目 id · config defaultColumn→内置默认 | 仅 internal 口生效 | |||
| 多铺几条候选对比 | --lay <n> | 非负整数 · 1(0=只出 plan 不铺轨) | opencut 小眼睛切换对比挑选 | |||
| 每段多给几个候选 | --top-k <n> | 整数 · 派单 shots 值(服务端上限 50) | 每 query 候选数上限 | |||
| 指定素材类型 | --material-class <c> | real_shot \ | concept · 栏目策略 | 仅 internal 矩阵成员口 | ||
| 填充门槛 | --score-floor <f> | 浮点 0–1 · 0.2 | 低于不采纳、槽位留空——口播工程里留空处由候选轨补纯黑片;调完必看空洞告警 | |||
| 切点对齐字幕句 | --cut-align <r> | 浮点 0–1 · 0.7(0=关闭) | 三七开拍板:约七成字幕句起点恰逢镜头切点、三成有意错开;句级时码取 transcript 重投影(降级自动回旧节奏并告警);开启时结果 JSON lay.cut_align 报实测比例 | |||
| 主轨空洞填充 | --gap-fill <m> | fast \ | solid(默认)\ | none | 仅音频驱动工程主轨(口播工程不适用零回归):fast=放宽地板随便填候选→延长相邻颗粒→跨 beat 借候选→次地板补真画面→仍不够才黑片;借来的画面与本段稿子相关性弱、次地板槽是不到 1.2s 的快切,两者都会在日志里指名报出(kind 为 borrowed / subfloor)——那是如实告知,不是缺陷,别当 bug 上报;solid=黑片垫齐(精修一眼看出没匹配到);none=留 gap(客户端主轨磁吸会吸除 gap 致画面与配音错位,慎用);生效时结果 JSON lay.gap_fill 报明细 | |
| 编排交给云端跑 | --arrange <m> | 按素材来源自动定档,一般不用传 | 铺自己电脑里的素材→cloud(编排在服务端,按编排量计费);铺素材矩阵的素材→local(编排仍在本机、不计费,逐字不动)。shadow=本机照跑照铺轨、云端只对拍不采纳。⚠️ 本地素材路上 --arrange local 不受理;云端拿不到产物时直接报错,不会换算法把活干完。⚠️ 它不是省钱开关——矩阵素材要付检索费,两条路都花钱、只是花在不同环节,MUST NOT 对用户说「用本地就不花钱」 | |||
| 落轨前先质检画音对齐 | --arrange-qc | 开关 · 缺省关 | 只查各 beat 的卡点句(span.from 领衔句):画面没给到稿句说的东西就换候选重排,最多 2 轮,到限即交付 + 如实登记残余。零渲染。⚠️ 按帧计费(每卡点句 1 帧/轮),跑前报预估求确认。默认关,用户没说就别带。拿不到卡点句(无 dispatch / 重投影降级)时会明说「跳过 ≠ 查过」,别把那条日志读成通过 | |||
| 云端编排本次上限 | --arrange-cost-cap <n> | 正整数 · 不限 | 超限服务端前置拒绝、零执行零计费(不是跑一半掐断)。只在 `--arrange shadow\ | cloud` 时有意义 | ||
| 先估价再决定跑不跑 | --arrange-estimate-only | 开关 · 缺省关 | 走到云端编排的计价确认那一步就停:报出编排量后成功返回(ok:true + estimateOnly:true,不是「被拒绝」),零云端调用、工程零改动。机读值在 lay.arrange.units 与 lay.arrange.scale。⚠️ 它省的是云端那一次调用与其计费(及其后的下载落轨),不是整条链——工程/plan/重投影照样要走。素材矩阵路会报 applicable:false 而不是 0。与 --yes 同给时以它为准 | |||
| 云端编排请求体存证 | --dump-request <file> | 路径 · 缺省不写 | 排障专用,用户没提就别带。 把实际上行的云端编排请求体逐字节落到该文件——服务端不保存 plan 全文,所以复现一次调用只能靠它。⚠️ 不能指向工程目录内(工程会被打包拷走,而它含 beat 名与检索词),传了会报参数错;开 --arrange-qc 时每轮各一份(第 N 轮加 .roundN)。回执在 lay.arrange_run.dump_request。⚠️ 转交这份文件前 MUST 先告诉用户里面有什么,别替他做决定 | |||
| 外发调参仪表 | --explain | 开关 · 缺省关 | 缺省 lay.dedup 只出 emptySlots(判素材池够不够用,upsell 判据就是它);本开关再补 emptySlotsByRefine / adjacentWaived / hotSlotsPlaced / blurrySlotsPlaced 四个调参仪表,人读日志同口径。不改任何决策,工程产物逐字节不变。⚠️ 用户问「为什么这颗抖/糊/空」时才带,别缺省开着刷噪音 | |||
| 用户的客户端太旧(不认片段底板) | --black-bed | 开关 · 默认关 | 旧形态:铺一条纯黑底垫轨、候选片段不带底板。缺省是候选片段自带纯黑底(background_fill)、空档在候选轨内补纯黑片,不铺黑底轨;--no-black-bed 已是缺省(无操作) | |||
| 已编辑轨强铺逃生门 | --force-relay | 开关 · 关 | 用户明确点头才带;raw 登记删除不可恢复 | |||
| 同素材彻底不二用 | --dedup-scope material | scene(默认)\ | material | 收严会加剧空洞,先看 lay.dedup.emptySlots | ||
| 机读(你必带) | --json | 开关 · 关 | 人读日志转 stderr,stdout 只出结果 JSON |
⚠️ 编排档位不是 flag。--arrange管的是取数路(在哪算:本机还是云端),与「怎么排」无关。编排档位(direct高档锚定直排 /temporal中档 /semantic低档)是 plan 层字段beat.arrange_mode,由 agent 在图纸层逐 beat 标注,同一片内可混档。没有--arrange-tier这种参数,CLI 不猜档位。高档还要在同一个 beat 上给direct_slots[]:{ clip_id, clip_st, clip_ed, track_st?, track_ed?, query?, slot_role? }。slot_role二选一——quote引用段(画音逐秒对齐,端点是硬约束,**必须给track_st/track_ed**)、provenance硬出处段(位置可协商,要精修消端点残片);缺席 = 按硬出处处置。越界取值一律拒绝,MUST NOT 静默降级。
通用三态素材检索零件(gtrk matrix material,云端素材库、下载向出参):
与上面那张表的剪辑向检索是并列的第二条线,出参契约独立(下载向直链 vs 剪辑向 segments),别混用:要 B-roll 段落走 matrix search/派单主路,要整条素材(BGM、配图、整条原片)走本零件。
2×2 路由矩阵(身份自动判定,每次运行探一次、不降级不缓存):| | external 公开口 | internal 矩阵成员口 ||---|---|---|| 剪辑向 |/task/video_clip_search|/task/custom/video_clip_search|| 通用三态 |/task/material_search|/task/custom/material_search|成员口搜全库(含非商用/概念素材)且 0 积分;公开口只含可商用实拍素材、1 积分/次。差距不是理论值:Artlist 全库 2397 条音乐is_copyright=0,同一 query 公开口 0 条、成员口 5/5 命中。
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/gtrk-matrix/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gitruck/cli/gtrk-matrix)