@gitruck/cli 1.3.6 → 1.3.7
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 +564 -564
- package/CHANGELOG.md +9 -0
- package/README.en.md +50 -50
- package/README.md +50 -50
- package/assets/composite-kit/kit.css +57 -57
- package/assets/composite-kit/kit.js +246 -246
- package/assets/readme/wordmark.svg +6 -6
- package/contracts/README.md +16 -16
- package/contracts/gsap-emit-v1.md +163 -163
- package/contracts/handoff-contracts.json +10 -10
- package/dist/index.js +258 -254
- package/docs/development.en.md +47 -47
- package/docs/development.md +47 -47
- package/docs/reference.en.md +31 -1
- package/docs/reference.md +31 -1
- package/package.json +79 -79
- package/skills/gtrk-ai-drama/SKILL.md +10 -10
- package/skills/gtrk-ai-drama/references/sparse-key-scenes.md +38 -38
- package/skills/gtrk-ai-drama/scripts/validate-storyboard.mjs +119 -119
- package/skills/gtrk-composite/SKILL.md +194 -194
- package/skills/gtrk-cover/SKILL.md +3 -3
- package/skills/gtrk-cover/references/layout-recipes.md +337 -337
- package/skills/gtrk-cover/references/prompt-templates.md +119 -119
- package/skills/gtrk-food-recap/SKILL.md +9 -9
- package/skills/gtrk-mg/SKILL.md +391 -391
- package/skills/gtrk-music-visualizer/SKILL.md +3 -3
- package/skills/gtrk-narration/SKILL.md +23 -23
- package/skills/gtrk-splitter/SKILL.md +298 -298
- package/skills/gtrk-splitter/references/example-visual-split.json +645 -645
- package/skills/gtrk-splitter/references/example-visual-split.md +439 -439
- package/skills/gtrk-splitter/references/field-schema.md +171 -171
- package/skills/gtrk-style-maker/SKILL.md +1 -1
- 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-talking-head/SKILL.md +205 -205
- package/skills/gtrk-transcript/SKILL.md +4 -4
- package/skills/gtrk-transcript/agents/openai.yaml +4 -4
- package/skills/gtrk-travel-recap/SKILL.md +51 -51
- package/skills/gtrk-voiceover/SKILL.md +2 -2
package/docs/development.en.md
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
# Development and contributions
|
|
2
|
-
|
|
3
|
-
[Back to README](../README.en.md) · [Command reference](reference.en.md) · [简体中文](development.md)
|
|
4
|
-
|
|
5
|
-
## Local development
|
|
6
|
-
|
|
7
|
-
The CLI runtime requires Node.js ≥ 20.6. Source development and builds use Bun.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
git clone https://github.com/Gitruck/cli.git
|
|
11
|
-
cd cli
|
|
12
|
-
bun install
|
|
13
|
-
bun run src/index.ts --help
|
|
14
|
-
npm run typecheck
|
|
15
|
-
bun run build
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
The public repository supports reading, developing and building the CLI. `test/` and `openspec/` are private submodules requiring maintainer access. Public contributors do not need a recursive clone; authorized maintainers run the complete test suite.
|
|
19
|
-
|
|
20
|
-
## Repository layout
|
|
21
|
-
|
|
22
|
-
```text
|
|
23
|
-
src/index.ts Command entry point
|
|
24
|
-
src/commands/ CLI commands
|
|
25
|
-
src/lib/ Cloud calls, media processing, project assembly and rendering
|
|
26
|
-
skills/ Bundled Agent Skills
|
|
27
|
-
contracts/ Open project and motion graphics contracts
|
|
28
|
-
docs/ Workflow, configuration, command and development references
|
|
29
|
-
assets/ README artwork
|
|
30
|
-
AGENT.md Portable agent playbook
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Add commands through registration functions in `src/commands/` and wire them into `src/index.ts`. Toolbox additions should reuse existing descriptors and runners where applicable. `src/commands/skills.ts` owns the bundled Skill list; see the [reference](reference.en.md) for details.
|
|
34
|
-
|
|
35
|
-
## Documentation and checks
|
|
36
|
-
|
|
37
|
-
- README presents the product and onboarding. Maintain parameters, configuration and full explanations in `docs/reference.md` / `docs/reference.en.md`.
|
|
38
|
-
- Update both READMEs and corresponding bilingual documents together. Preserve command names, flags, fields and artifact filenames; keep example commands identical.
|
|
39
|
-
- Use publicly accessible images or files in `assets/`. Keep examples traceable and large videos out of the npm package.
|
|
40
|
-
- Maintainers run `npm test`, which builds and uses Node's test runner. Do not substitute `bun test`. Documentation-only changes should at least run the relevant guards and check links and rendering.
|
|
41
|
-
- Check `npm pack --dry-run` when moving bundled documentation so it remains in the package.
|
|
42
|
-
|
|
43
|
-
## Contributing
|
|
44
|
-
|
|
45
|
-
Use [Issues](https://github.com/Gitruck/cli/issues) to describe problems, use cases or behavior you would like improved. Explain changes and validation in your PR. Do not include API keys, personal configuration, media paths, generated outputs or private submodule contents.
|
|
46
|
-
|
|
47
|
-
See [contracts](../contracts/README.md) for interfaces and [AGENT.md](../AGENT.md) for agent usage.
|
|
1
|
+
# Development and contributions
|
|
2
|
+
|
|
3
|
+
[Back to README](../README.en.md) · [Command reference](reference.en.md) · [简体中文](development.md)
|
|
4
|
+
|
|
5
|
+
## Local development
|
|
6
|
+
|
|
7
|
+
The CLI runtime requires Node.js ≥ 20.6. Source development and builds use Bun.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
git clone https://github.com/Gitruck/cli.git
|
|
11
|
+
cd cli
|
|
12
|
+
bun install
|
|
13
|
+
bun run src/index.ts --help
|
|
14
|
+
npm run typecheck
|
|
15
|
+
bun run build
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The public repository supports reading, developing and building the CLI. `test/` and `openspec/` are private submodules requiring maintainer access. Public contributors do not need a recursive clone; authorized maintainers run the complete test suite.
|
|
19
|
+
|
|
20
|
+
## Repository layout
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
src/index.ts Command entry point
|
|
24
|
+
src/commands/ CLI commands
|
|
25
|
+
src/lib/ Cloud calls, media processing, project assembly and rendering
|
|
26
|
+
skills/ Bundled Agent Skills
|
|
27
|
+
contracts/ Open project and motion graphics contracts
|
|
28
|
+
docs/ Workflow, configuration, command and development references
|
|
29
|
+
assets/ README artwork
|
|
30
|
+
AGENT.md Portable agent playbook
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Add commands through registration functions in `src/commands/` and wire them into `src/index.ts`. Toolbox additions should reuse existing descriptors and runners where applicable. `src/commands/skills.ts` owns the bundled Skill list; see the [reference](reference.en.md) for details.
|
|
34
|
+
|
|
35
|
+
## Documentation and checks
|
|
36
|
+
|
|
37
|
+
- README presents the product and onboarding. Maintain parameters, configuration and full explanations in `docs/reference.md` / `docs/reference.en.md`.
|
|
38
|
+
- Update both READMEs and corresponding bilingual documents together. Preserve command names, flags, fields and artifact filenames; keep example commands identical.
|
|
39
|
+
- Use publicly accessible images or files in `assets/`. Keep examples traceable and large videos out of the npm package.
|
|
40
|
+
- Maintainers run `npm test`, which builds and uses Node's test runner. Do not substitute `bun test`. Documentation-only changes should at least run the relevant guards and check links and rendering.
|
|
41
|
+
- Check `npm pack --dry-run` when moving bundled documentation so it remains in the package.
|
|
42
|
+
|
|
43
|
+
## Contributing
|
|
44
|
+
|
|
45
|
+
Use [Issues](https://github.com/Gitruck/cli/issues) to describe problems, use cases or behavior you would like improved. Explain changes and validation in your PR. Do not include API keys, personal configuration, media paths, generated outputs or private submodule contents.
|
|
46
|
+
|
|
47
|
+
See [contracts](../contracts/README.md) for interfaces and [AGENT.md](../AGENT.md) for agent usage.
|
package/docs/development.md
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
# 开发与贡献
|
|
2
|
-
|
|
3
|
-
[返回首页](../README.md) · [命令参考](reference.md) · [English](development.en.md)
|
|
4
|
-
|
|
5
|
-
## 本地开发
|
|
6
|
-
|
|
7
|
-
CLI 运行时需要 Node.js ≥ 20.6;源码开发与构建使用 Bun。
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
git clone https://github.com/Gitruck/cli.git
|
|
11
|
-
cd cli
|
|
12
|
-
bun install
|
|
13
|
-
bun run src/index.ts --help
|
|
14
|
-
npm run typecheck
|
|
15
|
-
bun run build
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
公共仓库可用于阅读、开发和构建 CLI。`test/` 与 `openspec/` 是需要维护者权限的私有子模块,公开贡献者无需递归拉取它们;完整测试由有权限的维护者运行。
|
|
19
|
-
|
|
20
|
-
## 项目结构
|
|
21
|
-
|
|
22
|
-
```text
|
|
23
|
-
src/index.ts 命令入口
|
|
24
|
-
src/commands/ CLI 命令
|
|
25
|
-
src/lib/ 云端调用、素材处理、工程装配与渲染
|
|
26
|
-
skills/ 随包 Agent Skills
|
|
27
|
-
contracts/ 工程与动态图等开放契约
|
|
28
|
-
docs/ 工作流、配置、命令和开发参考
|
|
29
|
-
assets/ README 配图
|
|
30
|
-
AGENT.md 可移植 Agent 操作手册
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
新增命令在 `src/commands/` 中提供注册函数,并在 `src/index.ts` 接入;工具族优先复用已有描述器与执行器。随包 Skills 的权威清单在 `src/commands/skills.ts`,详细名单见[参考文档](reference.md)。
|
|
34
|
-
|
|
35
|
-
## 文档与校验
|
|
36
|
-
|
|
37
|
-
- README 负责产品展示和上手;参数、配置与完整操作解释维护在 `docs/reference.md` / `docs/reference.en.md`。
|
|
38
|
-
- 两份 README 和对应双语文档同步更新。命令名、参数、字段与产物文件名保持原样;示例命令保持一致。
|
|
39
|
-
- 配图使用公开可访问资源,或放入 `assets/`;案例保持可追溯,不将大视频打包进 npm。
|
|
40
|
-
- 维护者运行 `npm test`(构建后通过 Node 测试),不要用 `bun test` 代替。纯文档变更至少运行相关文档守卫、检查链接和展示效果。
|
|
41
|
-
- 修改公开随包文档时,检查 `npm pack --dry-run` 的文件清单,避免移动后漏包。
|
|
42
|
-
|
|
43
|
-
## 提交贡献
|
|
44
|
-
|
|
45
|
-
通过 [Issues](https://github.com/Gitruck/cli/issues)描述问题、使用场景或希望改进的行为。提交 PR 时说明变更与验证方式。不要提交 API Key、个人配置、素材路径、生成产物或私有子模块的内容。
|
|
46
|
-
|
|
47
|
-
接口约定见 [contracts](../contracts/README.md),Agent 使用方式见 [AGENT.md](../AGENT.md)。
|
|
1
|
+
# 开发与贡献
|
|
2
|
+
|
|
3
|
+
[返回首页](../README.md) · [命令参考](reference.md) · [English](development.en.md)
|
|
4
|
+
|
|
5
|
+
## 本地开发
|
|
6
|
+
|
|
7
|
+
CLI 运行时需要 Node.js ≥ 20.6;源码开发与构建使用 Bun。
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
git clone https://github.com/Gitruck/cli.git
|
|
11
|
+
cd cli
|
|
12
|
+
bun install
|
|
13
|
+
bun run src/index.ts --help
|
|
14
|
+
npm run typecheck
|
|
15
|
+
bun run build
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
公共仓库可用于阅读、开发和构建 CLI。`test/` 与 `openspec/` 是需要维护者权限的私有子模块,公开贡献者无需递归拉取它们;完整测试由有权限的维护者运行。
|
|
19
|
+
|
|
20
|
+
## 项目结构
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
src/index.ts 命令入口
|
|
24
|
+
src/commands/ CLI 命令
|
|
25
|
+
src/lib/ 云端调用、素材处理、工程装配与渲染
|
|
26
|
+
skills/ 随包 Agent Skills
|
|
27
|
+
contracts/ 工程与动态图等开放契约
|
|
28
|
+
docs/ 工作流、配置、命令和开发参考
|
|
29
|
+
assets/ README 配图
|
|
30
|
+
AGENT.md 可移植 Agent 操作手册
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
新增命令在 `src/commands/` 中提供注册函数,并在 `src/index.ts` 接入;工具族优先复用已有描述器与执行器。随包 Skills 的权威清单在 `src/commands/skills.ts`,详细名单见[参考文档](reference.md)。
|
|
34
|
+
|
|
35
|
+
## 文档与校验
|
|
36
|
+
|
|
37
|
+
- README 负责产品展示和上手;参数、配置与完整操作解释维护在 `docs/reference.md` / `docs/reference.en.md`。
|
|
38
|
+
- 两份 README 和对应双语文档同步更新。命令名、参数、字段与产物文件名保持原样;示例命令保持一致。
|
|
39
|
+
- 配图使用公开可访问资源,或放入 `assets/`;案例保持可追溯,不将大视频打包进 npm。
|
|
40
|
+
- 维护者运行 `npm test`(构建后通过 Node 测试),不要用 `bun test` 代替。纯文档变更至少运行相关文档守卫、检查链接和展示效果。
|
|
41
|
+
- 修改公开随包文档时,检查 `npm pack --dry-run` 的文件清单,避免移动后漏包。
|
|
42
|
+
|
|
43
|
+
## 提交贡献
|
|
44
|
+
|
|
45
|
+
通过 [Issues](https://github.com/Gitruck/cli/issues)描述问题、使用场景或希望改进的行为。提交 PR 时说明变更与验证方式。不要提交 API Key、个人配置、素材路径、生成产物或私有子模块的内容。
|
|
46
|
+
|
|
47
|
+
接口约定见 [contracts](../contracts/README.md),Agent 使用方式见 [AGENT.md](../AGENT.md)。
|
package/docs/reference.en.md
CHANGED
|
@@ -180,6 +180,36 @@ Or set `"crashReport": false` directly in `~/.gitruck/config.json`.
|
|
|
180
180
|
|
|
181
181
|
You can check the current state any time: the “崩溃自动上报” row in `gtrk doctor` shows on / off, and which of the two turned it off. With reporting off, the crash presentation and exit code are **exactly the same** as with it on — the switch only controls whether that one report is sent.
|
|
182
182
|
|
|
183
|
+
### Usage statistics, and how to turn them off
|
|
184
|
+
|
|
185
|
+
gtrk sends anonymous usage statistics so we know which commands get used, how often they fail, and how fast new versions roll out. **On by default; you are told once, when you first configure the CLI** (right after the crash-report line).
|
|
186
|
+
|
|
187
|
+
**What is sent per command, in full**: the command name (its registered name, e.g. `matrix.search`, never any argument), success or failure, on failure an error code or category (e.g. `ENOENT`, never the error message), the elapsed-time range, the caller type (a terminal, or an agent name such as `claude-code`), the CLI version, OS and architecture, Node major version, and whether an API key is configured (yes / no only).
|
|
188
|
+
|
|
189
|
+
**What is never sent**: command arguments and option values, file names and paths, media and project contents, your scripts, your API key, error messages, device identifiers, hostname, account information. The statistics service sees your IP address like any network request; it is used only to tell the country or region and is not stored.
|
|
190
|
+
|
|
191
|
+
**It never slows a command down**: when a command finishes, gtrk only appends one line to `~/.gitruck/usage-queue.jsonl`; a background process sends it and the command exits immediately as usual. Anything that can't be sent stays on your machine (up to 200 entries, 7 days) and goes out next time.
|
|
192
|
+
|
|
193
|
+
**Never sent when**: running from source, running unit tests, or the `CI` environment variable is set.
|
|
194
|
+
|
|
195
|
+
Four ways to turn it off (any one of them, effective immediately):
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
gtrk init --no-usage-stats # persisted in config, off for good (also deletes anything not yet sent)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
GITRUCK_USAGE_STATS=0 gtrk patch move … # environment variable, off for one run (takes precedence over config)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
DO_NOT_TRACK=1 gtrk … # the common “do not track” convention works too
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Or set `"usageAnalytics": false` directly in `~/.gitruck/config.json`.
|
|
210
|
+
|
|
211
|
+
You can check the current state any time: the “使用统计” row in `gtrk doctor` shows on / off, which setting turned it off, and whether the current environment sends at all. With statistics off, command output and exit codes are **exactly the same** as with them on.
|
|
212
|
+
|
|
183
213
|
---
|
|
184
214
|
|
|
185
215
|
## Command reference
|
|
@@ -695,7 +725,7 @@ A QC pass runs automatically afterwards and writes `.qc.json` (`--no-qc` skips i
|
|
|
695
725
|
- The distributed ffmpeg is a GPLv3 build, and the corresponding source is provided alongside the binaries (see `SOURCE.md` at the distribution point); **downloads carry no additional usage restrictions**.
|
|
696
726
|
- `gtrk upgrade [--check]` — upgrade the CLI to the latest version + refresh skills (config preserved); `--check` only reports.
|
|
697
727
|
- `gtrk skills install [--agents codex,workbuddy,comate,…] [--all] [--copy] [--dir <skills dir>]` — install/refresh agent skills on their own; by default the generic adapter and the gtrk supplement layer detect hosts automatically.
|
|
698
|
-
- `gtrk skills recommend [--scene <id>] [--json]` — third-party skill catalog: without `--scene` lists the ten scenes (hook / mg-explainer / kinetic-text / data-viz / map / ai-drama / collage / caption / principles / technique); with a scene prints entries by tier (purpose / install command / license and dependencies / register command). **Recommend, never bundle**: the catalog ships with the package with a snapshot date
|
|
728
|
+
- `gtrk skills recommend [--scene <id>] [--json]` — third-party skill catalog: without `--scene` lists the ten scenes (hook / mg-explainer / kinetic-text / data-viz / map / ai-drama / collage / caption / principles / technique); with a scene prints entries by tier (purpose / install command / license and dependencies / register command). **Recommend, never bundle**: the catalog ships with the package with a snapshot date; the command itself makes no network requests and keeps no state (usage statistics aside, see “Usage statistics, and how to turn them off”); stars and licenses are as of the snapshot, installing is your call. GPL / AGPL / non-commercial / unlicensed / MCP-SaaS-only skills are excluded. The catalog also lists Gitruck's own first-party MG layout-technique family (`--scene technique`, entries marked `origin: first-party`): techniques are not lane producers; the agent picks them per slot at the MG step.
|
|
699
729
|
- `gtrk skills add <owner/repo> [--skill <name>]... [--produces MG|AI_DRAMA|FILM_BROLL|script|none] [--column <id>] [--agents ...] [--all] [--copy]` — installs a third-party skill through the generic `skills` adapter and, on success, **appends** `{id, ref: "<owner/repo>#<skill>", produces, status: "third-party"}` (`"first-party"` for first-party entries) to the show config `style.skills` (idempotent per ref, nothing is registered on failure; `--produces` defaults to the catalog value, repos outside the catalog register with `routing:"none"`), after which `gtrk mg` / `/gtrk-ai-drama` resolve it by `produces`.
|
|
700
730
|
|
|
701
731
|
### Highlight discovery (internal preview)
|
package/docs/reference.md
CHANGED
|
@@ -183,6 +183,36 @@ GITRUCK_CRASH_REPORT=0 gtrk oralcut a.mp4 # 环境变量,临时关一次(
|
|
|
183
183
|
|
|
184
184
|
当前状态随时可查:`gtrk doctor` 的「崩溃自动上报」一行会写明开 / 关,以及关是被谁关的。关闭后崩溃的呈现与退出码**与开启时完全一致**——它只影响发不发那条报告。
|
|
185
185
|
|
|
186
|
+
### 使用统计与关闭方式
|
|
187
|
+
|
|
188
|
+
gtrk 会发送匿名的使用统计,帮我们知道哪些命令有人用、失败率多少、新版本多久铺开。**默认开启,首次配置时会告知一次**(紧跟崩溃报告那一行)。
|
|
189
|
+
|
|
190
|
+
**每条命令发送的内容只有这些**:命令名(注册名,如 `matrix.search`,不含任何参数)、成功或失败、失败时的错误码或分类(如 `ENOENT`,不含错误消息原文)、耗时所在的区间、调用方类型(终端,或 agent 名称,如 `claude-code`)、CLI 版本、系统与架构、Node 主版本、是否配置了 API Key(只记是 / 否)。
|
|
191
|
+
|
|
192
|
+
**明确不发送**:命令参数与选项值、文件名与路径、素材与工程内容、你的文稿、API Key、错误消息原文、设备标识、主机名、账号信息。统计服务会接触到你的 IP 地址,只用来判断国家或地区,不保存 IP 本身。
|
|
193
|
+
|
|
194
|
+
**不拖慢命令**:命令结束时只往本机 `~/.gitruck/usage-queue.jsonl` 追加一行,由一个后台进程去发,命令照常立即退出。发不出去的留在本机(最多 200 条、7 天),下次再发。
|
|
195
|
+
|
|
196
|
+
**这些情况不发**:从源码运行、跑单元测试、设置了 `CI` 环境变量。
|
|
197
|
+
|
|
198
|
+
四种关法(任选其一,都是即时生效):
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
gtrk init --no-usage-stats # 写进配置,永久关(同时删掉本机还没发出去的)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
GITRUCK_USAGE_STATS=0 gtrk patch move … # 环境变量,临时关一次(优先级高于配置)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
DO_NOT_TRACK=1 gtrk … # 业界通用的「不追踪」约定,同样生效
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
或直接在 `~/.gitruck/config.json` 里写 `"usageAnalytics": false`。
|
|
213
|
+
|
|
214
|
+
当前状态随时可查:`gtrk doctor` 的「使用统计」一行会写明开 / 关、关是被谁关的,以及当前环境发不发。关闭后命令的输出与退出码**与开启时完全一致**。
|
|
215
|
+
|
|
186
216
|
---
|
|
187
217
|
|
|
188
218
|
## 命令参考
|
|
@@ -738,7 +768,7 @@ gtrk render <gtrk> [-o <out.mp4>] [--crf <n>] [--codec <c>] [--ffmpeg-path <dir>
|
|
|
738
768
|
- 分发的 ffmpeg 为 GPLv3 构建,对应源码与二进制同处提供(见分发点 `SOURCE.md`);**下载不附加任何使用限制**。
|
|
739
769
|
- `gtrk upgrade [--check]` — 升级 CLI 到最新版 + 刷新 skill(配置保留);`--check` 只查不装。
|
|
740
770
|
- `gtrk skills install [--agents codex,workbuddy,comate,…] [--all] [--copy] [--dir <skills 目录>]` — 单独安装/刷新 Agent Skills;缺省由通用适配器与 gtrk 补充层自动检测。
|
|
741
|
-
- `gtrk skills recommend [--scene <id>] [--json]` — 第三方 skill 推荐目录:不带 `--scene` 列十个场景(hook / mg-explainer / kinetic-text / data-viz / map / ai-drama / collage / caption / principles / technique),带场景按 tier 给条目(用途 / 安装命令 / 许可与依赖 /
|
|
771
|
+
- `gtrk skills recommend [--scene <id>] [--json]` — 第三方 skill 推荐目录:不带 `--scene` 列十个场景(hook / mg-explainer / kinetic-text / data-viz / map / ai-drama / collage / caption / principles / technique),带场景按 tier 给条目(用途 / 安装命令 / 许可与依赖 / 登记命令)。**只推荐不打包**:目录随包分发、带快照日期,命令本身不联网不留痕(使用统计除外,见「使用统计与关闭方式」);star 与许可以仓库页为准,装不装是你的选择。GPL / AGPL / 非商用 / 无许可证 / 只能经 MCP-SaaS 运行的不入目录。目录也收同合云一方的 MG 排版技法族(`--scene technique`,条目 `origin: first-party`):技法不当车道生产者,由 agent 在 MG 步按槽位取用。
|
|
742
772
|
- `gtrk skills add <owner/repo> [--skill <name>]... [--produces MG|AI_DRAMA|FILM_BROLL|script|none] [--column <id>] [--agents ...] [--all] [--copy]` — 透传通用 `skills` 适配器安装第三方 skill,成功后把 `{id, ref: "<owner/repo>#<skill>", produces, status: "third-party"}`(一方条目 `status: "first-party"`)**追加**进栏目配置 `style.skills`(同 ref 幂等、失败不登记;`--produces` 缺省取目录值,目录外仓登记为 `routing:"none"`),之后 `gtrk mg` / `/gtrk-ai-drama` 按 `produces` 即可解析到它。
|
|
743
773
|
|
|
744
774
|
### 视频高光发现(内部验收)
|
package/package.json
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@gitruck/cli",
|
|
3
|
-
"version": "1.3.
|
|
4
|
-
"description": "同合云成片流水线 CLI —— agent 驱动云端任务、产物拉回本地、三方工程文件(客户端/剪映/PR)互通。",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"author": "Gitruck (同合云)",
|
|
7
|
-
"repository": {
|
|
8
|
-
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/Gitruck/cli.git"
|
|
10
|
-
},
|
|
11
|
-
"homepage": "https://github.com/Gitruck/cli#readme",
|
|
12
|
-
"bugs": {
|
|
13
|
-
"url": "https://github.com/Gitruck/cli/issues"
|
|
14
|
-
},
|
|
15
|
-
"type": "module",
|
|
16
|
-
"bin": {
|
|
17
|
-
"gtrk": "dist/index.js"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
"dist",
|
|
21
|
-
"assets",
|
|
22
|
-
"skills",
|
|
23
|
-
"contracts",
|
|
24
|
-
"AGENT.md",
|
|
25
|
-
"README.md",
|
|
26
|
-
"README.en.md",
|
|
27
|
-
"docs/reference.md",
|
|
28
|
-
"docs/reference.en.md",
|
|
29
|
-
"docs/workflow.md",
|
|
30
|
-
"docs/workflow.en.md",
|
|
31
|
-
"docs/development.md",
|
|
32
|
-
"docs/development.en.md",
|
|
33
|
-
"LICENSE",
|
|
34
|
-
"CHANGELOG.md"
|
|
35
|
-
],
|
|
36
|
-
"engines": {
|
|
37
|
-
"node": ">=20.6"
|
|
38
|
-
},
|
|
39
|
-
"publishConfig": {
|
|
40
|
-
"access": "public",
|
|
41
|
-
"registry": "https://registry.npmjs.org/"
|
|
42
|
-
},
|
|
43
|
-
"keywords": [
|
|
44
|
-
"gitruck",
|
|
45
|
-
"同合云",
|
|
46
|
-
"video",
|
|
47
|
-
"oral-cut",
|
|
48
|
-
"口播剪辑",
|
|
49
|
-
"cli",
|
|
50
|
-
"jianying",
|
|
51
|
-
"剪映",
|
|
52
|
-
"agent"
|
|
53
|
-
],
|
|
54
|
-
"scripts": {
|
|
55
|
-
"gtrk": "bun run src/index.ts",
|
|
56
|
-
"test:purify": "esbuild src/commands/purify.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/purify-cmd.mjs && node --test test/purify-cmd.test.mjs",
|
|
57
|
-
"build": "bun build ./src/index.ts --target=node --minify --outfile dist/index.js",
|
|
58
|
-
"typecheck": "tsc --noEmit",
|
|
59
|
-
"prepublishOnly": "npm run typecheck && npm test && bun run build",
|
|
60
|
-
"test": "node scripts/workspace-pollution-gate.mjs --snapshot && esbuild src/lib/compliance-notice.ts src/lib/config.ts src/lib/crash-report.ts src/lib/log.ts src/lib/read-json.ts src/lib/sidecar-write.ts src/lib/user-config.ts src/lib/enum-catalog.ts src/lib/first-run-tutorial.ts src/lib/desktop-client-hint.ts src/lib/command-path.ts src/lib/user-path.ts src/lib/runtime-channel.ts src/lib/self-install.ts src/lib/chunk-upload.ts src/lib/upload-cache.ts src/lib/upload-submit.ts src/lib/render.ts src/lib/cloud.ts src/lib/materialize.ts src/lib/jianying.ts src/lib/clip-brief.ts src/lib/media.ts src/lib/projection.ts src/lib/reproject.ts src/lib/splitdoc.ts src/lib/gtrk-writeback.ts src/lib/project-background.ts src/lib/client-only-state.ts src/lib/gtrk-patch.ts src/lib/frame-domain.ts src/lib/clock-adapter.ts src/lib/gtrk-invariants.ts src/lib/clip-speed.ts src/lib/clip-keyframes.ts src/lib/column-config.ts src/lib/third-party-catalog.ts src/lib/mg-adopt.ts src/lib/mg-registry.ts src/lib/matrix.ts src/lib/online-broll-client.ts src/lib/online-search-journal.ts src/lib/matrix-material.ts src/lib/matrix-fetch.ts src/lib/matrix-lay.ts src/lib/arrange-metering.ts src/lib/arrange-wire.ts src/lib/arrange-apply.ts src/lib/arrange-client.ts src/lib/arrange-gate.ts src/lib/arrange-decision-pin.ts src/lib/arrange-qc.ts src/lib/arrange-qc-bind.ts src/lib/rate-limit-wait.ts src/lib/embed-client.ts src/lib/describe.ts src/lib/highlight-rubric.ts src/lib/highlight-input.ts src/lib/local-index.ts src/lib/character-input.ts src/lib/index-decode.ts src/lib/local-search.ts src/lib/qc.ts src/lib/alignment-qc.ts src/lib/bgm-history.ts src/lib/image-move.ts src/lib/cloud-render-guard.ts src/lib/outdir-guard.ts src/lib/landing-wait.ts src/lib/material-integrity.ts src/lib/project-health.ts src/lib/contact-sheet.ts src/lib/solid-png.ts src/lib/mask-raster.ts src/lib/mg-lint.ts src/lib/mg-visual-job.ts src/lib/mg-track-identity.ts src/lib/particle-identity.ts src/lib/text-ir/compile.ts src/lib/text-ir/validate.ts src/lib/text-ir/compile-local.ts src/lib/text-templates.ts src/lib/text-ir-client.ts src/lib/mg-lay.ts src/lib/mg-render.ts src/lib/particle-qtrle.ts src/lib/composite-particle.ts src/lib/composite-lay.ts src/lib/composite-lint.ts src/lib/composite-browser.ts src/lib/composite-plan.ts src/lib/composite-shots.ts src/lib/composite-resolve.ts src/lib/composite-profile.ts src/lib/composite-scene.ts src/lib/composite-bake-plan.ts src/lib/composite-bake.ts src/lib/composite-export.ts src/lib/tool-descriptors.ts src/lib/tool-runner.ts src/lib/tool-batch.ts src/lib/tool-pricing.ts src/lib/transcript.ts src/lib/runtime-assets.ts src/lib/subtitle-lay.ts src/lib/caption-align.ts src/lib/subtitle-line-split-client.ts src/lib/audio-align.ts src/lib/audio-tighten.ts src/lib/cut-snap.ts src/lib/mg-coverage.ts src/lib/ai-drama-lay.ts src/lib/ai-drama-pack.ts src/lib/desk-locate.ts src/lib/pip-lay.ts --bundle --platform=node --format=esm --external:bun:sqlite --outdir=.test-build --out-extension:.js=.mjs && esbuild src/lib/text-ir/compile.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/text-ir-compile.mjs && esbuild src/commands/split.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build --out-extension:.js=.mjs && esbuild src/commands/patch.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/patch-cmd.mjs && esbuild src/commands/matrix.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/matrix-cmd.mjs && esbuild src/commands/mg.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/mg-cmd.mjs && esbuild src/commands/mg-text.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/mg-text-cmd.mjs && esbuild src/commands/tool.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/tool-cmd.mjs && esbuild src/commands/transcript.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/transcript-cmd.mjs && esbuild src/commands/project.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/project-cmd.mjs && esbuild src/commands/audio.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/audio-cmd.mjs && esbuild src/commands/subtitle.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/subtitle-cmd.mjs && esbuild src/commands/ai-drama.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/ai-drama-cmd.mjs && esbuild src/commands/feedback.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/feedback-cmd.mjs && esbuild src/commands/music-visualizer.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/music-visualizer-cmd.mjs && esbuild src/commands/long2short.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/long2short-cmd.mjs && esbuild src/commands/oralcut.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/oralcut-cmd.mjs && esbuild src/commands/oralcut-result.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/oralcut-result-cmd.mjs && esbuild src/commands/skills.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/skills-cmd.mjs && esbuild src/commands/qc.ts --bundle --platform=node --format=esm --external:commander --external:bun:sqlite --outfile=.test-build/qc-cmd.mjs && esbuild src/commands/doctor.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/doctor-cmd.mjs && esbuild src/lib/convert/ir_to_jsx.ts src/lib/convert/ir_to_am.ts src/lib/convert/ir_to_nv.ts src/lib/convert/am_parse.ts src/lib/convert/nv_parse.ts src/lib/convert/parse.ts src/lib/convert/download.ts src/lib/convert/bake_ops.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build/convert --out-extension:.js=.mjs && esbuild src/lib/mad/selector.ts src/lib/mad/techniques.ts src/lib/mad/beat.ts src/lib/mad/scan.ts src/lib/mad/data.ts src/lib/mad/pool.ts src/lib/mad/cloud-beat.ts src/lib/mad/mad.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build/mad --out-extension:.js=.mjs && esbuild src/commands/composite.ts --bundle --platform=node --format=esm --external:bun:sqlite --external:commander --outfile=.test-build/composite-cmd.mjs && esbuild src/commands/purify.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/purify-cmd.mjs && node --import ./test/helpers/test-home.mjs --test \"test/*.test.mjs\" && node scripts/workspace-pollution-gate.mjs --verify",
|
|
61
|
-
"test:linux": "node scripts/test-linux.mjs",
|
|
62
|
-
"openspec:gate": "node openspec/gate.mjs",
|
|
63
|
-
"mg-registry:snapshot": "node scripts/mg-registry-snapshot.mjs",
|
|
64
|
-
"text-template:snapshot": "node scripts/text-template-snapshot.mjs",
|
|
65
|
-
"text-ir:parity": "node scripts/text-ir-parity.mjs",
|
|
66
|
-
"text-ir:sync": "node scripts/text-ir-sync.mjs"
|
|
67
|
-
},
|
|
68
|
-
"devDependencies": {
|
|
69
|
-
"@xmldom/xmldom": "^0.9.6",
|
|
70
|
-
"bun-types": "^1.1.0",
|
|
71
|
-
"commander": "^12.1.0",
|
|
72
|
-
"esbuild": "^0.28.1",
|
|
73
|
-
"typescript": "^5.6.0"
|
|
74
|
-
},
|
|
75
|
-
"dependencies": {
|
|
76
|
-
"hash-wasm": "^4.12.0",
|
|
77
|
-
"jszip": "^3.10.1"
|
|
78
|
-
}
|
|
79
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@gitruck/cli",
|
|
3
|
+
"version": "1.3.7",
|
|
4
|
+
"description": "同合云成片流水线 CLI —— agent 驱动云端任务、产物拉回本地、三方工程文件(客户端/剪映/PR)互通。",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Gitruck (同合云)",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Gitruck/cli.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/Gitruck/cli#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/Gitruck/cli/issues"
|
|
14
|
+
},
|
|
15
|
+
"type": "module",
|
|
16
|
+
"bin": {
|
|
17
|
+
"gtrk": "dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"assets",
|
|
22
|
+
"skills",
|
|
23
|
+
"contracts",
|
|
24
|
+
"AGENT.md",
|
|
25
|
+
"README.md",
|
|
26
|
+
"README.en.md",
|
|
27
|
+
"docs/reference.md",
|
|
28
|
+
"docs/reference.en.md",
|
|
29
|
+
"docs/workflow.md",
|
|
30
|
+
"docs/workflow.en.md",
|
|
31
|
+
"docs/development.md",
|
|
32
|
+
"docs/development.en.md",
|
|
33
|
+
"LICENSE",
|
|
34
|
+
"CHANGELOG.md"
|
|
35
|
+
],
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=20.6"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public",
|
|
41
|
+
"registry": "https://registry.npmjs.org/"
|
|
42
|
+
},
|
|
43
|
+
"keywords": [
|
|
44
|
+
"gitruck",
|
|
45
|
+
"同合云",
|
|
46
|
+
"video",
|
|
47
|
+
"oral-cut",
|
|
48
|
+
"口播剪辑",
|
|
49
|
+
"cli",
|
|
50
|
+
"jianying",
|
|
51
|
+
"剪映",
|
|
52
|
+
"agent"
|
|
53
|
+
],
|
|
54
|
+
"scripts": {
|
|
55
|
+
"gtrk": "bun run src/index.ts",
|
|
56
|
+
"test:purify": "esbuild src/commands/purify.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/purify-cmd.mjs && node --test test/purify-cmd.test.mjs",
|
|
57
|
+
"build": "bun build ./src/index.ts --target=node --minify --outfile dist/index.js",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"prepublishOnly": "npm run typecheck && npm test && bun run build",
|
|
60
|
+
"test": "node scripts/workspace-pollution-gate.mjs --snapshot && esbuild src/lib/compliance-notice.ts src/lib/config.ts src/lib/crash-report.ts src/lib/usage-analytics.ts src/lib/log.ts src/lib/read-json.ts src/lib/sidecar-write.ts src/lib/user-config.ts src/lib/enum-catalog.ts src/lib/first-run-tutorial.ts src/lib/desktop-client-hint.ts src/lib/command-path.ts src/lib/user-path.ts src/lib/runtime-channel.ts src/lib/self-install.ts src/lib/chunk-upload.ts src/lib/upload-cache.ts src/lib/upload-submit.ts src/lib/render.ts src/lib/cloud.ts src/lib/materialize.ts src/lib/jianying.ts src/lib/clip-brief.ts src/lib/media.ts src/lib/projection.ts src/lib/reproject.ts src/lib/splitdoc.ts src/lib/gtrk-writeback.ts src/lib/project-background.ts src/lib/client-only-state.ts src/lib/gtrk-patch.ts src/lib/frame-domain.ts src/lib/clock-adapter.ts src/lib/gtrk-invariants.ts src/lib/clip-speed.ts src/lib/clip-keyframes.ts src/lib/column-config.ts src/lib/third-party-catalog.ts src/lib/mg-adopt.ts src/lib/mg-registry.ts src/lib/matrix.ts src/lib/online-broll-client.ts src/lib/online-search-journal.ts src/lib/matrix-material.ts src/lib/matrix-fetch.ts src/lib/matrix-lay.ts src/lib/arrange-metering.ts src/lib/arrange-wire.ts src/lib/arrange-apply.ts src/lib/arrange-client.ts src/lib/arrange-gate.ts src/lib/arrange-decision-pin.ts src/lib/arrange-qc.ts src/lib/arrange-qc-bind.ts src/lib/rate-limit-wait.ts src/lib/embed-client.ts src/lib/describe.ts src/lib/highlight-rubric.ts src/lib/highlight-input.ts src/lib/local-index.ts src/lib/character-input.ts src/lib/index-decode.ts src/lib/local-search.ts src/lib/qc.ts src/lib/alignment-qc.ts src/lib/bgm-history.ts src/lib/image-move.ts src/lib/cloud-render-guard.ts src/lib/outdir-guard.ts src/lib/landing-wait.ts src/lib/material-integrity.ts src/lib/project-health.ts src/lib/contact-sheet.ts src/lib/solid-png.ts src/lib/mask-raster.ts src/lib/mg-lint.ts src/lib/mg-visual-job.ts src/lib/mg-track-identity.ts src/lib/particle-identity.ts src/lib/text-ir/compile.ts src/lib/text-ir/validate.ts src/lib/text-ir/compile-local.ts src/lib/text-templates.ts src/lib/text-ir-client.ts src/lib/mg-lay.ts src/lib/mg-render.ts src/lib/particle-qtrle.ts src/lib/composite-particle.ts src/lib/composite-lay.ts src/lib/composite-lint.ts src/lib/composite-browser.ts src/lib/composite-plan.ts src/lib/composite-shots.ts src/lib/composite-resolve.ts src/lib/composite-profile.ts src/lib/composite-scene.ts src/lib/composite-bake-plan.ts src/lib/composite-bake.ts src/lib/composite-export.ts src/lib/tool-descriptors.ts src/lib/tool-runner.ts src/lib/tool-batch.ts src/lib/tool-pricing.ts src/lib/transcript.ts src/lib/runtime-assets.ts src/lib/subtitle-lay.ts src/lib/caption-align.ts src/lib/subtitle-line-split-client.ts src/lib/audio-align.ts src/lib/audio-tighten.ts src/lib/cut-snap.ts src/lib/mg-coverage.ts src/lib/ai-drama-lay.ts src/lib/ai-drama-pack.ts src/lib/desk-locate.ts src/lib/pip-lay.ts --bundle --platform=node --format=esm --external:bun:sqlite --outdir=.test-build --out-extension:.js=.mjs && esbuild src/lib/text-ir/compile.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/text-ir-compile.mjs && esbuild src/commands/split.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build --out-extension:.js=.mjs && esbuild src/commands/patch.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/patch-cmd.mjs && esbuild src/commands/matrix.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/matrix-cmd.mjs && esbuild src/commands/mg.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/mg-cmd.mjs && esbuild src/commands/mg-text.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/mg-text-cmd.mjs && esbuild src/commands/tool.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/tool-cmd.mjs && esbuild src/commands/transcript.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/transcript-cmd.mjs && esbuild src/commands/project.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/project-cmd.mjs && esbuild src/commands/audio.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/audio-cmd.mjs && esbuild src/commands/subtitle.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/subtitle-cmd.mjs && esbuild src/commands/ai-drama.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/ai-drama-cmd.mjs && esbuild src/commands/feedback.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/feedback-cmd.mjs && esbuild src/commands/music-visualizer.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/music-visualizer-cmd.mjs && esbuild src/commands/long2short.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/long2short-cmd.mjs && esbuild src/commands/oralcut.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/oralcut-cmd.mjs && esbuild src/commands/oralcut-result.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/oralcut-result-cmd.mjs && esbuild src/commands/skills.ts --bundle --platform=node --external:bun:sqlite --format=esm --outfile=.test-build/skills-cmd.mjs && esbuild src/commands/qc.ts --bundle --platform=node --format=esm --external:commander --external:bun:sqlite --outfile=.test-build/qc-cmd.mjs && esbuild src/commands/doctor.ts --bundle --platform=node --external:bun:sqlite --format=esm --external:commander --outfile=.test-build/doctor-cmd.mjs && esbuild src/lib/convert/ir_to_jsx.ts src/lib/convert/ir_to_am.ts src/lib/convert/ir_to_nv.ts src/lib/convert/am_parse.ts src/lib/convert/nv_parse.ts src/lib/convert/parse.ts src/lib/convert/download.ts src/lib/convert/bake_ops.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build/convert --out-extension:.js=.mjs && esbuild src/lib/mad/selector.ts src/lib/mad/techniques.ts src/lib/mad/beat.ts src/lib/mad/scan.ts src/lib/mad/data.ts src/lib/mad/pool.ts src/lib/mad/cloud-beat.ts src/lib/mad/mad.ts --bundle --platform=node --external:bun:sqlite --format=esm --outdir=.test-build/mad --out-extension:.js=.mjs && esbuild src/commands/composite.ts --bundle --platform=node --format=esm --external:bun:sqlite --external:commander --outfile=.test-build/composite-cmd.mjs && esbuild src/commands/purify.ts --bundle --platform=node --format=esm --external:bun:sqlite --outfile=.test-build/purify-cmd.mjs && node --import ./test/helpers/test-home.mjs --test \"test/*.test.mjs\" && node scripts/workspace-pollution-gate.mjs --verify",
|
|
61
|
+
"test:linux": "node scripts/test-linux.mjs",
|
|
62
|
+
"openspec:gate": "node openspec/gate.mjs",
|
|
63
|
+
"mg-registry:snapshot": "node scripts/mg-registry-snapshot.mjs",
|
|
64
|
+
"text-template:snapshot": "node scripts/text-template-snapshot.mjs",
|
|
65
|
+
"text-ir:parity": "node scripts/text-ir-parity.mjs",
|
|
66
|
+
"text-ir:sync": "node scripts/text-ir-sync.mjs"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@xmldom/xmldom": "^0.9.6",
|
|
70
|
+
"bun-types": "^1.1.0",
|
|
71
|
+
"commander": "^12.1.0",
|
|
72
|
+
"esbuild": "^0.28.1",
|
|
73
|
+
"typescript": "^5.6.0"
|
|
74
|
+
},
|
|
75
|
+
"dependencies": {
|
|
76
|
+
"hash-wasm": "^4.12.0",
|
|
77
|
+
"jszip": "^3.10.1"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -3,9 +3,9 @@ name: gtrk-ai-drama
|
|
|
3
3
|
description: AI 情景动画分镜稿生成器——把成片 SOP 第③步(B-roll 底轨阶段)分到 AI_DRAMA 车道的 beat,逐个产**四段朴素描述(故事背景 / 角色 / 分镜 / 原文文稿)+ 独立视觉基调段 + 时长预算**,中英双版;Markdown 外壳默认严格兼容 gitruck-ai-drama-desk 解析器,可直接导入工作台,也可拿去任意外部 AI 漫剧管线(可灵 / 即梦 / Vidu / Veo / Runway / LTX / 本地开源,或 LibTV / OiiOii / TapNow 这类成片 agent 平台)上手用。创作与出片仍在 skill / 外部工作台;工作台导出的 return-v1 包用 `gtrk ai-drama lay` 确定性回填独立 AI 轨。当用户想「上 AI 情景动画 / 做 AI 分镜 / AI 动画描述 / 把这段做成 AI 视频 / 给这段配 AI 情景动画 / 弗洛伊德这段怎么做视频」时使用本 skill。通用拆镜 craft(蒙太奇段分层 / 四段描述结构 / 中英双语 / 时长预算)由本 skill 自持;栏目视觉 DNA(Style Lock)从栏目配置 style.skills 里 produces==AI_DRAMA 的条目解析注入,绝不硬编某栏目风格。凡把口播派单里 AI_DRAMA 段落转成可出片的描述稿,优先用本 skill,别手搓。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# AI 情景动画分镜稿生成器(gtrk-ai-drama)
|
|
7
|
-
|
|
8
|
-
用户要求间隔取关键镜头、剩余由实况补齐时,先读 [稀疏关键场景与角色参考](references/sparse-key-scenes.md)。其短 beat 窗口、时基、逐镜参考和留空规则优先于下文针对连续 AI 段落的时长预算;不转入通篇 AI 图纸。
|
|
6
|
+
# AI 情景动画分镜稿生成器(gtrk-ai-drama)
|
|
7
|
+
|
|
8
|
+
用户要求间隔取关键镜头、剩余由实况补齐时,先读 [稀疏关键场景与角色参考](references/sparse-key-scenes.md)。其短 beat 窗口、时基、逐镜参考和留空规则优先于下文针对连续 AI 段落的时长预算;不转入通篇 AI 图纸。
|
|
9
9
|
|
|
10
10
|
把口播派单里分到 **`AI_DRAMA` 车道**的 beat,逐个拆成分镜、为每个 beat 产 **四段朴素描述 + 独立视觉基调 + 时长预算**(中英双版),落到 `<project>/ai-drama/<beat_id>.md`,再交棒 AI Drama Desk 或任意外部平台出片;标准工作台导出包由 CLI 自动回填时间线。
|
|
11
11
|
|
|
@@ -24,7 +24,7 @@ return-v1 标准包由 `gtrk ai-drama lay` 确定性回填;其他平台没有
|
|
|
24
24
|
|
|
25
25
|
**你与 `matrix` 同属第 ③ 步,MUST 在 MG 之前落位。** 理由:**AI 情景片段属于底轨 B-roll 画面家族,不是叠加层**——整条管线里唯一的叠加层是 MG(含 ov)。MG 的排版决策是「因势象形避主体」、**依赖底轨的最终画面构图**;若你的片段在 MG 之后才回铺,底轨构图就变了,先产的 MG 是对着「还没有 AI 画面的底轨」做的避让,你的片段落位后必然被避让错位、甚至被 MG 盖住画面主体。
|
|
26
26
|
|
|
27
|
-
> ⚠️ **工序顺序**:AI 情景片段必须先落位;它属于底轨 B-roll,不是最后叠加的图层。之后再做全局构图检查与 MG。
|
|
27
|
+
> ⚠️ **工序顺序**:AI 情景片段必须先落位;它属于底轨 B-roll,不是最后叠加的图层。之后再做全局构图检查与 MG。
|
|
28
28
|
|
|
29
29
|
**异步等待的口子(你造成的那个)**:你产完描述后,用户要去外部平台出片、抽卡可能数天。严格串行会把 ④⑤ 无限期卡住,故约定:进 ⑤ 的硬门是「**AI 片段已回铺 ∨ 用户明示先跳过**」。走「明示跳过」时,下游 `/gtrk-mg` MUST 把与你的 beat 相邻/重叠区间的 MG 颗粒标记为「AI 回铺后待复查构图」并在收口时复述——**你在交代进度时也要把这个代价说清**,让用户知道跳过意味着将来可能返工那几颗。
|
|
30
30
|
|
|
@@ -37,11 +37,11 @@ return-v1 标准包由 `gtrk ai-drama lay` 确定性回填;其他平台没有
|
|
|
37
37
|
3. **中英双版地位平等,不是主辅。** ①视觉基调、②故事背景、③角色、④分镜四段每一段都给完整的中文版 + 英文版(不是把中文翻一句了事)。中文喂可灵 / 即梦 / Vidu / 通义,英文喂 Veo / Runway / LTX / Luma,用户按目标平台选。**唯独 ⑤ 原文文稿是中文口播原文、不翻译**(它是源真相 + 手动拼接的对位锚,翻译反而失真)。
|
|
38
38
|
4. **内容可移植,Markdown 外壳不可自由改写。** 默认产物 MUST 通过 `gitruck-ai-drama-desk` 的 Markdown 解析契约:标题必须含 `(beat BXX)`;两大块必须叫 `## 一、中文稿…` / `## 二、English Storyboard…`;角色必须用 `#### 角色名(备注)` 标题;中文镜头必须用 `#### 分镜 01 · …`,英文镜头必须用 `#### Shot 01 · …`;元信息必须含 `区间总时长:track_st … → track_ed … ≈ … 秒`。`镜头`、粗体行、项目符号角色、`## 中文` / `## English`、`工程时间位` 都不是等价写法。**人读友好不能牺牲机读契约。**
|
|
39
39
|
|
|
40
|
-
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
|
|
41
|
-
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
40
|
+
> **产物落点纪律(MUST · 全文见随包 `AGENT.md` 同名一节)**:
|
|
41
|
+
> 交付物 MUST NOT 先写 agent 自有目录再拷进工程;中转本身即违规,体积不是豁免理由。
|
|
42
42
|
> 分镜稿只落**工程目录**(`<project>/ai-drama/<beat_id>.md`)或**用户显式指定处**;
|
|
43
43
|
> **MUST NOT** 把用户媒体(毛片 / 成片 / 预览 / 外部平台出的片段)或任何大媒体文件复制到 agent 自有工作目录(如用户文档目录下 agent 产品自建的目录、agent 家目录缓存、会话工作区)——需要引用媒体时**用原路径引用**,不做副本;
|
|
44
|
-
> 临时文件一律放系统 temp 且**用完即删**。交付物直接写入工程目录或用户显式指定的路径;引用媒体用原路径。
|
|
44
|
+
> 临时文件一律放系统 temp 且**用完即删**。交付物直接写入工程目录或用户显式指定的路径;引用媒体用原路径。
|
|
45
45
|
|
|
46
46
|
## 业务分离:栏目 Style Lock 从哪来(关键)
|
|
47
47
|
|
|
@@ -114,7 +114,7 @@ return-v1 标准包由 `gtrk ai-drama lay` 确定性回填;其他平台没有
|
|
|
114
114
|
|
|
115
115
|
**Step 4 · 写四段描述(中英分块)**:先出**中文稿**(② 故事背景末句锁调 → ③ 角色结构化 + 禁变项 + 质感落点,复现理论家 pin 复用同段文字 → ④ 分镜每镜前缀复述基调 + 建议秒数 + 对应原文句 + 蒙太奇级意图 → ⑤ 原文文稿中文逐句不翻译),再整块出 **English Storyboard**(① Style Lock + ②③④ 英文原生化,不含 ⑤)。中英**分两大块、不逐段交错**(craft C)。
|
|
116
116
|
|
|
117
|
-
**Step 5 · 校验后落盘**:先把每个 beat 的候选稿写到系统 temp,运行随 skill 分发的 `scripts/validate-storyboard.mjs <候选稿.md>`;退出码为 0 才写到 `<project>/ai-drama/<beat_id>.md`。失败就按输出逐项修正,MUST NOT 把未通过稿件落进工程。校验器不可用时,至少逐项执行下面「解析器硬契约」与交付前自检。用户直投单段时同样先校验,再落到用户指定的工程路径。临时稿无论成功失败都删掉。
|
|
117
|
+
**Step 5 · 校验后落盘**:先把每个 beat 的候选稿写到系统 temp,运行随 skill 分发的 `scripts/validate-storyboard.mjs <候选稿.md>`;退出码为 0 才写到 `<project>/ai-drama/<beat_id>.md`。失败就按输出逐项修正,MUST NOT 把未通过稿件落进工程。校验器不可用时,至少逐项执行下面「解析器硬契约」与交付前自检。用户直投单段时同样先校验,再落到用户指定的工程路径。临时稿无论成功失败都删掉。
|
|
118
118
|
|
|
119
119
|
## 输出契约(落盘 Markdown 结构 · 中英分块)
|
|
120
120
|
|
|
@@ -250,7 +250,7 @@ face / hair / eyes / wardrobe / signature prop + do-not-change + one line on how
|
|
|
250
250
|
|
|
251
251
|
命令自己解析 id → 导出包目录,走两条**确定性**路径:① 工作台服务可达就问它;② 服务没起就读 `~/.gitruck/ai-drama-desk.json` 的落脚点。两条都不通会报错并给出路。
|
|
252
252
|
|
|
253
|
-
> ⚠️ **拿到 id 之后 MUST NOT 去磁盘上找导出包**(`find` / `ls -R` / 通配一律禁止)。解析不出来就如实报,请用户启动工作台或直接给路径。
|
|
253
|
+
> ⚠️ **拿到 id 之后 MUST NOT 去磁盘上找导出包**(`find` / `ls -R` / 通配一律禁止)。解析不出来就如实报,请用户启动工作台或直接给路径。
|
|
254
254
|
> 零命中时命令会列出「已查过哪些数据根」:源码部署与打包部署的数据根不同,项目找不到多半是**它在另一个部署里**,不是丢了。
|
|
255
255
|
|
|
256
256
|
已经手上就有目录路径(或用的是非标准平台)时,仍可用 `--package "<exports/aidrama>"`,两者可混用、按路径去重。
|
|
@@ -258,7 +258,7 @@ face / hair / eyes / wardrobe / signature prop + do-not-change + one line on how
|
|
|
258
258
|
命令会先按当刻口播工程重投影 beat 窗口,再把所有镜头复制到 `<gtrk目录>/assets/ai-drama/<slug>/`,共用一条新的 `video_track`;每个 beat 从起点顺排,最后一镜吸收到 beat 终点。既有 A-roll、BGM 与 B-roll 轨零改动。若已铺 AI 轨被用户手调过,缺省拒绝覆盖;只有用户明确同意丢弃手调时才加 `--replace-all`。
|
|
259
259
|
3. **非标准平台才手动回铺**:外部平台没有 return-v1 清单时,才由用户把片段拖回 opencut 的 **AI_DRAMA 车道**,对齐该 beat 的 `track_st→track_ed`。AI 出片仍是外部异步、用户驱动;未拿到完整片段前要停下等用户,别替他假装出片 / 回轨完成。
|
|
260
260
|
4. **回铺齐 ≠ 收口,还有两步**:你的片段回铺齐只意味着 **③ B-roll 底轨阶段**完成。接着 MUST 走 **④ 全局抽帧检查画面构图**(对三源合并后的最终底轨抽帧,看主体位置 / 安全区 / 画面朝向 / 明暗,**停下等用户确认**)→ 过了才交棒 **⑤ `/gtrk-mg`** 把 MG(含 ov)叠上 → 最后才 `gtrk render` 收口。
|
|
261
|
-
⚠️ **MUST NOT 从你这里直接跳到 `render`**;先完成全局构图检查与 MG,再进入字幕和渲染。
|
|
261
|
+
⚠️ **MUST NOT 从你这里直接跳到 `render`**;先完成全局构图检查与 MG,再进入字幕和渲染。
|
|
262
262
|
|
|
263
263
|
> 原则:**agent 替用户跑 CLI / 接力 skill,用户只对话**。但 AI_DRAMA 车道天然有「用户去外部平台出片 + 手动拼回」的手工环节——那部分是外部的手,无法替跑;除此之外的解析、生成、落盘、交代,全由你(脑)一次做完,别让用户自己去拼描述。
|
|
264
264
|
|