scriptnow-cli 0.3.94__py3-none-any.whl
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.
- cli_anything/__init__.py +0 -0
- cli_anything/scriptnow/README.md +345 -0
- cli_anything/scriptnow/__init__.py +3 -0
- cli_anything/scriptnow/__main__.py +6 -0
- cli_anything/scriptnow/scriptnow_cli.py +10354 -0
- cli_anything/scriptnow/skills/SKILL.md +305 -0
- cli_anything/scriptnow/ui.py +124 -0
- cli_anything/scriptnow/utils/__init__.py +1 -0
- cli_anything/scriptnow/utils/diag.py +163 -0
- cli_anything/scriptnow/utils/session.py +548 -0
- cli_anything/scriptnow/utils/upgrade.py +331 -0
- scriptnow_cli-0.3.94.dist-info/METADATA +88 -0
- scriptnow_cli-0.3.94.dist-info/RECORD +17 -0
- scriptnow_cli-0.3.94.dist-info/WHEEL +5 -0
- scriptnow_cli-0.3.94.dist-info/entry_points.txt +2 -0
- scriptnow_cli-0.3.94.dist-info/licenses/LICENSE +21 -0
- scriptnow_cli-0.3.94.dist-info/top_level.txt +1 -0
cli_anything/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# scriptnow-cli
|
|
2
|
+
|
|
3
|
+
**从灵感到成书 —— agent-native 创作 CLI**
|
|
4
|
+
|
|
5
|
+
[English](README.en.md) · [中文](README.md)
|
|
6
|
+
|
|
7
|
+
> 面向**命令行用户与 AI Agent**:建项目、一书一 Skill 解读、小说/剧本创作、Skill 进化、
|
|
8
|
+
> 封面生成、导出交付,全部可用命令行完成。非命令行创作者请使用网页端。
|
|
9
|
+
|
|
10
|
+
基于 [CLI-Anything](https://github.com/HKUDS/CLI-Anything) 模式的一站式命令行,覆盖**小说与剧本
|
|
11
|
+
两条创作域(dual-domain)**。所有命令支持 `--json` 结构化输出,供 AI Agent 直接编排。
|
|
12
|
+
|
|
13
|
+
## 特性
|
|
14
|
+
|
|
15
|
+
- **双域创作链**:小说(卷×章)与剧本(剧集×场次)共享「项目 → 方向 → 规划 → 创作 → 交付」,
|
|
16
|
+
但规划结构与创作循环按域细化,Agent 按域编排。
|
|
17
|
+
- **样本不传平台**:一书一 Skill 用 `interpret local` 在 Agent 本地解读作品、产出方法论后回传,
|
|
18
|
+
平台只接收最终 Skill,不接触作品原文;改编稿用 `chapter propose` / `script scene-propose` 本地回传。
|
|
19
|
+
- **Skill 能力与版本进化**:`skill growth` 从创作实绩提炼方法论、评估后发布新版本;
|
|
20
|
+
`skill canary` 对新版本做灰度决策(retain / limit / need_evidence / rollback)。
|
|
21
|
+
- **管理员支线**:`admin` 命令组仅 `is_admin` 可用(非管理员 403);token 消费、额度与财务命令
|
|
22
|
+
一律不纳入 CLI。
|
|
23
|
+
- **Token 预算控制**:本地导入(propose / scene-propose / interpret local)带 `--budget` 预估拦截。
|
|
24
|
+
- **会话自动续期**:一次 login 后 access 过期自动 refresh 续期(30 天),Agent 长会话无需反复登录。
|
|
25
|
+
- **Agent 操作契约**:`scriptnow agent-guide`(--json)输出连接平台唯一准则——平台是事实源、规划回填优先(cores/blueprint/storymap 默认本地生成后 propose 回填)、正文默认由平台内 AgentScope 主笔、固定创作顺序(故事核心与蓝图→梗概→粗纲→StoryMap 与集纲/章纲一体→正文)、集纲/章纲质量门禁、生成后台轮询(含持久化 stage/progress 与分批 checkpoint)、StoryMap 修订需用户明确授权。
|
|
26
|
+
- **双域阶段语义**:叙事阶段不决定小说卷边界;剧本 `volume_two` 表示每集场数,阶段比例据此按每集场数解释。
|
|
27
|
+
- **新增卷章 = 纯追加(服务端硬门禁)**:`storymap append-volume` / `append-chapters` / `append-phase` 只尾部新增,已有卷章完全不动;纯追加形状(含任意位置纯新增)的全量提案会被服务端拒绝并指引追加通道;**全置换(retained=0、不保留任何现有单元)的普通全量提案同样被服务端拒绝**——恢复旧结构唯一合法通道是 `novel/script storymap-restore`(服务端按归档镜像校验放行),全新结构仅限首次创建(空结构)或 storymap-rebuild-* 隔离链;旧结构自动归档,`novel/script storymap-restore` 可导出恢复候选。
|
|
28
|
+
- **审读是 Agent 自身能力**:平台不提供固定 rubric,Agent 读正文、自行判断、用 `--feedback` 驱动修正。
|
|
29
|
+
|
|
30
|
+
## 安装
|
|
31
|
+
|
|
32
|
+
PyPI 首次发布正在准备,可用版本以 https://pypi.org/project/scriptnow-cli/ 为准;发布完成前使用下列生产源。
|
|
33
|
+
|
|
34
|
+
要求 Python 3.10+。macOS/Linux 系统 Python(Homebrew、python.org)受 PEP 668 保护时,
|
|
35
|
+
请先在虚拟环境中安装:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 从源码(editable,推荐开发使用)
|
|
39
|
+
git clone https://github.com/quchenchen/scriptnow-cli.git
|
|
40
|
+
cd scriptnow-cli && pip install -e .
|
|
41
|
+
|
|
42
|
+
# 优先生产源直装 wheel(sn.igeewa.com,最稳,不依赖 git)
|
|
43
|
+
version=$(curl -fsS https://sn.igeewa.com/downloads/scriptnow-cli/version.txt)
|
|
44
|
+
python3 -m pip install "https://sn.igeewa.com/downloads/scriptnow-cli/scriptnow_cli-${version}-py3-none-any.whl"
|
|
45
|
+
# 固定版本源码包(zip)
|
|
46
|
+
curl -sL -o /tmp/scriptnow-cli.zip https://sn.igeewa.com/downloads/scriptnow-cli/scriptnow-cli-v0.3.80.zip
|
|
47
|
+
|
|
48
|
+
# 或从 GitHub 最新代码直接安装(codeload 直连,无需 clone)
|
|
49
|
+
curl -sL -o /tmp/scriptnow-cli-latest.tar.gz https://codeload.github.com/quchenchen/scriptnow-cli/tar.gz/refs/heads/main
|
|
50
|
+
pip install --force-reinstall /tmp/scriptnow-cli-latest.tar.gz
|
|
51
|
+
|
|
52
|
+
# GitHub 固定 tag 版本
|
|
53
|
+
python3 -m pip install "https://codeload.github.com/quchenchen/scriptnow-cli/zip/refs/tags/v${version}"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Windows PowerShell 使用 `py -3 -m venv .venv` 创建 Python 3.10+ 环境,通过
|
|
57
|
+
`.\.venv\Scripts\Activate.ps1` 激活,再用同一生产 wheel URL 安装。如禁止激活脚本,
|
|
58
|
+
直接调用 `.\.venv\Scripts\python.exe` 和 `.\.venv\Scripts\scriptnow.exe`,无需修改系统执行策略。
|
|
59
|
+
仓库 `install.ps1` 可自动检测 Python、创建 `%LOCALAPPDATA%\ScriptNow\cli`、安装最新 wheel 并
|
|
60
|
+
登记用户 PATH。`self-upgrade` 始终定位当前 CLI 解释器;Windows 不传
|
|
61
|
+
`--break-system-packages`,虚拟环境不传 `--user`,无 pip 的 uv 环境改用 `uv pip --python`。
|
|
62
|
+
|
|
63
|
+
## 登录
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
scriptnow login --host https://sn.igeewa.com --email 你的账号 # 交互式隐藏输入密码(或 --password-stdin / SCRIPTNOW_PASSWORD)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
会话保存到 `~/.config/scriptnow-cli/session.json`(仅 Cookie,不含密码,权限 0600)。
|
|
70
|
+
macOS/Linux 上 CLI 会用跨进程锁协调共享会话的自动续期:不同项目可并发,避免 refresh token
|
|
71
|
+
轮换互相覆盖;同一项目的创作写操作仍需串行,以免产生候选或版本冲突。
|
|
72
|
+
|
|
73
|
+
**Agent 排查入口:先跑 `scriptnow doctor`** —— 输出 CLI 版本、会话文件实际路径、
|
|
74
|
+
是否登录、账号、平台地址与连通性。任何「登录失败 / 找不到配置 / 409 / No such option」
|
|
75
|
+
先 `scriptnow doctor` 定位,不要猜配置位置。`SCRIPTNOW_CLI_CONFIG` 可覆盖会话路径;
|
|
76
|
+
多环境共用同一会话文件时登录一次全部生效。
|
|
77
|
+
也可用 `SCRIPTNOW_BASE_URL` / `SCRIPTNOW_EMAIL` / `SCRIPTNOW_PASSWORD` 环境变量。
|
|
78
|
+
|
|
79
|
+
## 快速开始(双域)
|
|
80
|
+
|
|
81
|
+
**前置:Skill 是逐章/逐场创作前的必然门禁(须健壮性完善)**——创作意图明确且项目落地后:
|
|
82
|
+
|
|
83
|
+
1. 与用户规划专属方法论(可多轮,直到代表作品意图);
|
|
84
|
+
2. **健壮性完善**:试写样本章节/场次检验 Skill 约束力,诊断规则缺口与歧义,迭代加固;
|
|
85
|
+
3. 在平台创建并挂载到项目,`skill mounts <pid>` 核实后,才能启动正文逐章/逐场创作。
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
scriptnow skill mounts <pid> # 项目已挂载哪些 Skill?无 → 走下方创建流程
|
|
89
|
+
# 默认共建:skill setup <pid> --json → 与作者点选推荐预设(风格/节奏/禁词;剧本域含 Method DNA)→ --answers @answers.json --confirm --json(服务端编译挂载)
|
|
90
|
+
# 一书一 Skill 蒸馏(样本不传平台):interpret local 手稿.docx --spec → 本地解读+多轮完善 → --submit @skill.json --project-id <pid>
|
|
91
|
+
# 或 个人 Skill:skill create --domain novel|script ... → skill mount <pid> <skill_id> <version_id>
|
|
92
|
+
# 错误挂载仅在用户明确授权后:skill unmount <pid> <skill_id> --confirm --json(不归档全局 Skill,自动回读)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**小说(卷 × 章)**
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
scriptnow project create --name 新作 --medium novel --volume-one 1 --volume-two 15 --chapter-target-words 1200
|
|
99
|
+
scriptnow project direction <pid> --apply @direction.json --review-token <方向审阅凭证>
|
|
100
|
+
# 规划(候选提交与采纳分开;采纳前用 candidate-preview 展示平台事实)
|
|
101
|
+
scriptnow novel propose <pid> cores @cores.json --review-token <提交审阅凭证>
|
|
102
|
+
scriptnow review candidate-preview novel <pid> story_core_candidate <candidate_id>
|
|
103
|
+
scriptnow novel adopt-core <pid> <candidate_id> --review-token <采纳审阅凭证>
|
|
104
|
+
scriptnow novel propose <pid> blueprint @blueprint.json --review-token <提交审阅凭证>
|
|
105
|
+
scriptnow novel outline <pid> --text "一句梗概" --review-token <提交审阅凭证>
|
|
106
|
+
scriptnow novel outline-adopt <pid> <candidate_id> --review-token <采纳审阅凭证>
|
|
107
|
+
scriptnow novel rough-outline-example <pid> # 取结构建议
|
|
108
|
+
scriptnow novel rough-outline-check <pid> @rough_outline.json # 自查
|
|
109
|
+
scriptnow novel rough-outline <pid> @rough_outline.json --review-token <提交审阅凭证>
|
|
110
|
+
scriptnow novel rough-outline-adopt <pid> <candidate_id> --review-token <采纳审阅凭证>
|
|
111
|
+
scriptnow novel propose <pid> storymap @storymap.json --review-token <提交审阅凭证>
|
|
112
|
+
scriptnow novel orchestrate <pid> --skip-adopt # 只读编排
|
|
113
|
+
# 创作循环(Agent 审读驱动)
|
|
114
|
+
scriptnow book <pid> # 编排原语:各章已采纳/待生成/候选待审
|
|
115
|
+
scriptnow chapter show <pid> chapter-1-1 --plain
|
|
116
|
+
scriptnow chapter generate <pid> chapter-1-1 --feedback "你的意见" # 后台,run status 轮询
|
|
117
|
+
scriptnow chapter adopt <pid> chapter-1-1 <rev> --human --review-token <定稿审阅凭证>
|
|
118
|
+
# 改编稿本地回传:chapter propose <pid> chapter-1-1 --file @blocks.json --review-token <提交审阅凭证>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**剧本(剧集 × 场次)**
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
scriptnow project create --name 新剧 --medium script --point-of-view "限知跟随主角" --volume-one 10 --volume-two 2-4 --volume-three 3
|
|
125
|
+
scriptnow project direction <pid> --apply @direction.json --review-token <方向审阅凭证>
|
|
126
|
+
# 规划
|
|
127
|
+
scriptnow script propose <pid> cores @cores.json --review-token <提交审阅凭证>
|
|
128
|
+
scriptnow review candidate-preview script <pid> story_core_candidate <candidate_id>
|
|
129
|
+
scriptnow script adopt-core <pid> <candidate_id> --review-token <采纳审阅凭证>
|
|
130
|
+
scriptnow script propose <pid> blueprint @blueprint.json --review-token <提交审阅凭证>
|
|
131
|
+
scriptnow script outline <pid> --text "一句梗概" --review-token <提交审阅凭证>
|
|
132
|
+
scriptnow script outline-adopt <pid> <candidate_id> --review-token <采纳审阅凭证>
|
|
133
|
+
scriptnow script rough-outline-example <pid> # 取结构建议
|
|
134
|
+
scriptnow script rough-outline-start <pid> # 长篇开隔离链
|
|
135
|
+
scriptnow script rough-outline-progress <pid> # 回读阶段进度
|
|
136
|
+
scriptnow script rough-outline-propose <pid> --review-token <提交审阅凭证>
|
|
137
|
+
scriptnow script propose <pid> storymap @storymap.json --review-token <提交审阅凭证>
|
|
138
|
+
# 创作循环
|
|
139
|
+
scriptnow script scene-list <pid>
|
|
140
|
+
scriptnow script scene-show <pid> scene-1-1 --plain
|
|
141
|
+
scriptnow script scene <pid> scene-1-1 --feedback "你的意见" # 后台,run status 轮询
|
|
142
|
+
scriptnow script adopt-scene <pid> scene-1-1 <rev> --human --review-token <定稿审阅凭证>
|
|
143
|
+
# 改编稿本地回传:script scene-propose <pid> scene-1-1 --file @blocks.json --review-token <提交审阅凭证>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
`chapter list`/`book` 与 `scene list`/`scene show` 将 `adopted_human` 和旧版
|
|
147
|
+
`adopted` 都视为已定稿;人工定稿优先作为 `adopted_revision`,候选清单只含
|
|
148
|
+
`candidate`/`active`。需要阅读较新的候选时显式传 `--revision`。
|
|
149
|
+
|
|
150
|
+
**交付**:`cover generate` 封面 → `export create --units chapter-1-1|scene-1-1 --sections synopsis,characters,rough_outline,story_map,manuscript`(梗概→人物小传→粗纲→章纲/集纲→正文)→ `export download -o 书.docx`。
|
|
151
|
+
剧本 `--form working` 输出每场制作信息;内部制作契约暂不作为编剧交付文件导出。
|
|
152
|
+
|
|
153
|
+
## 命令组
|
|
154
|
+
|
|
155
|
+
| 组 | 用途 |
|
|
156
|
+
|----|------|
|
|
157
|
+
| guide | 聚焦式新手创作(固定创作顺序 1..12:登录→创建→方向→故事核心与蓝图→梗概→粗纲→StoryMap 与集纲/章纲一体→Skill→正文→审读→导出→完成):--step 1..12 / --medium novel\|script / --pulse / --resume / --steps / --complete / --status |
|
|
158
|
+
| review | 人类审阅:`propose-preview` 为 outline/cores/blueprint/storymap 自动绑定平台作用域,`preview` 为高级通用预览,`candidate-preview` 展示平台候选;用户明确决定后,Agent 用 confirm 原样登记,再 status / claim;不得推断或伪造 |
|
|
159
|
+
| authorize | **【已弃用】**签发一次性「人工决策授权令牌」(对话内文字授权通道,复用登录会话不要求重新登录):`--chapter/--scene` 限定目标,`--digest` 绑定用户已读内容;token 供 `chapter adopt --human --token` / `scene adopt --human --token` 完成人工定稿。新流程统一走 `review confirm → claim → --review-token`,不再引导 authorize |
|
|
160
|
+
| project | 项目管理:创建 / 列表 / **files(项目文件)** / 上传素材 / **use(设为默认项目)** / 删除 / 方向(--apply 客户端梳理回填 / --inspire 平台灵感) |
|
|
161
|
+
| interpret | 一书一 Skill:go(一键解读)/ local(Agent 本地解读,样本不传平台)/ create / read / status / decide |
|
|
162
|
+
| book | 全书托管创作规划(Agent 编排原语,含 Skill 支撑侦测) |
|
|
163
|
+
| chapter | 小说章节:**outline(单章补纲)/ outline-batch(批量补纲)/ outline-check(章纲自查)/ outline-example(章纲结构示范)/ bible-example(人物圣经范例)** / list / show / generate / quality(--standard 内容/备案/千部)/ adopt / propose(本地回传) |
|
|
164
|
+
| scene | 剧本场次(chapter 的剧本侧对称):list / show / generate / adopt(alias of script adopt-scene)/ propose(本地回传)/ batch(批量串行)/ quality / diff |
|
|
165
|
+
| storymap | 跨域共享结构命令(novel+script 通用):state / generate / **append-volume(新增卷,纯追加)** / **append-chapters(新增章,纯追加)** / **append-phase(按叙事阶段提交下一未完成阶段,Novel 按全书章区间)** / **phases(按叙事结构推导的阶段计划预览)** / adopt(**高危,需 --confirm**) / **structures(内置 + 结构库已存模板)** / **structure-save(命名结构存库,--description/--medium 元数据)** / **structure-delete**;归档导出/恢复候选走分域命令 `novel storymap-restore` / `script storymap-restore`;隔离重建走各域 storymap-rebuild-* 链 |
|
|
166
|
+
| novel | 小说创作链:story-cores / blueprint / adopt-core / adopt-blueprint / outline / outline-adopt / outline-status / graph(叙事图谱对账)/ planning-quality / planning-status / ready-check / propose(本地 JSON 导入)/ orchestrate / **rough-outline 平铺链:rough-outline / adopt / check / example** / **storymap-rebuild 隔离重建链:start / rebuild / rebuild-phase / rebuild-phase-preview / rebuild-check / rebuild-propose** / **storymap-archives / storymap-archive(旧结构归档读取)/ storymap-restore(归档导出恢复候选)**;重建须先采纳小说粗纲,阶段按全书章区间且不强制一阶段一卷 |
|
|
167
|
+
| script | 剧本创作链:story-cores / blueprint / adopt-blueprint / adopt-core / outline / outline-adopt / outline-status / **rough-outline 分阶段链:-start / -phase / -progress / -propose / -phase-preview / -check** / episode-outline / **episode-outline-check / episode-outline-example** / **bible-example** / state / storymap / **storymap-phases / storymap-append-phase** / adopt-storymap(高危)/ planning-quality / **ready-check** / propose(本地 JSON 导入)/ adopt-scene / scene / scene-list / scene-show / scene-propose(--help-format/--example;--auto-adopt 已停用)/ scene-batch / scene-quality / scene-diff / quality-report / **storymap-rebuild 隔离重建链:start / rebuild / rebuild-phase / rebuild-phase-preview / rebuild-check / rebuild-propose** / **storymap-archives / storymap-archive(旧结构归档读取)/ storymap-restore(归档导出恢复候选)** |
|
|
168
|
+
| storyboard | 分镜回填链:state / source-preflight / source-import / source-range / source-revoke / propose / **candidate-preview / adopt(内容绑定审阅凭证)** / assets / asset-add / continuity / **scene-board upload|generate|list|inspect|delete** / readiness / export;规划板是显式单场操作,不写 shot.frame_refs |
|
|
169
|
+
| translate | 故事归化:create / analyze-source / target-contract / strategies / mappings |
|
|
170
|
+
| cover | 封面:package(平台生成包装包)/ package-propose(Agent 自主提交包装文案)/ package-show / models / specs / generate(默认 1 张 1024×1600)/ list / delete |
|
|
171
|
+
| export | 导出交付:options / create / **preview(交付范围审阅,返回一键审阅地址)** / download / zip;剧本 working DOCX 含每场制作信息 |
|
|
172
|
+
| skill | Skill 工坊:**setup(按推荐预设与作者点选共建,服务端编译并挂载;剧本域含 Method DNA)** / craft(六问深度共创、预检、确认、挂载回读)/ list / create / **detail(个人 Skill 摘要)** / update / versions / archive / mount / **unmount(仅本项目,需 --confirm)** / mounts / upload;**method-current / method-compile / method-compare / method-bind / method-resolve**(服务端 Method DNA 核心密码版本与 scope 解析);**growth**(方法论进化);**canary**(版本灰度) |
|
|
173
|
+
| admin | 管理员专用(仅 is_admin,非管理员 403):status / tenant-status / skills / skill-show / skill-update / supply / provider-connect / model-add / image-model-add |
|
|
174
|
+
| run | 运行排查:status / events |
|
|
175
|
+
| feedback | 严格无内容 v2 质量事件;默认关闭,先用 `doctor --enable-diagnostics MINUTES` 限时开启,发送前再次确认;不含参数、详情、备注、路径、ID 或正文 |
|
|
176
|
+
| version / self-upgrade / config | 版本查看与强制检查(--check)/ 自动升级(确认后执行)/ `config on|off` 开启或关闭「有新版本时后台自动升级 + 通知」(默认关闭) |
|
|
177
|
+
|
|
178
|
+
**StoryMap 隔离重建(novel/script 的 storymap-rebuild-* 链)**:必须先采纳该域粗纲;
|
|
179
|
+
`storymap-rebuild-start` 冻结阶段计划与现有 StoryMap,逐阶段(小说按全书章区间、不强制分卷;剧本按集区间)
|
|
180
|
+
先 `rebuild-check` 确定性预检再 `rebuild-phase` 累积;全部完成后 `rebuild-propose` 合并为
|
|
181
|
+
完整替换候选,不自动采纳;用户明确确认后才经 `storymap adopt --confirm` 替换,旧结构与正文
|
|
182
|
+
快照自动归档可回溯:novel 用 `storymap-archives <pid>` 列出、`storymap-archive <pid> <归档ID>`
|
|
183
|
+
查看单份;script 镜像 `script storymap-archives <pid>` / `script storymap-archive <pid> <归档ID>`,
|
|
184
|
+
均含被替换的完整集场/卷章结构与各章/场正文快照。
|
|
185
|
+
|
|
186
|
+
场次规划板的视觉代理参数显式传递给平台:`--layout auto|2x2|2x3|3x3|3x4|4x4` 与
|
|
187
|
+
`--mode annotated|seedance_sequence`。上传使用 multipart,服务端返回最终 layout/pages/shot_ids/digest/source。
|
|
188
|
+
图片代理拒绝资产参考图时,平台会保留失败 Attempt,并以无参考图的新 Attempt 安全重试;
|
|
189
|
+
`reference_validation` 会返回 accepted/rejected 及原因。存在 rejected 时应补传资产参考图,不能把无参考生成误认为已保持一致性。
|
|
190
|
+
平台生成的资产参考图与规划板先持久化到项目工作区;后续多参考生图从本地媒体编码 base64,
|
|
191
|
+
不依赖供应商临时 URL。CLI 只消费平台返回的稳定媒体地址。
|
|
192
|
+
|
|
193
|
+
## Skill 能力与版本进化
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# 能力进化(方法论成长):从创作实绩提炼 → 评估 → 发布新版
|
|
197
|
+
scriptnow skill growth start <pid> --domain novel # 启动分析(后台)
|
|
198
|
+
scriptnow skill growth workspace <pid> # 查看候选与历史 runs
|
|
199
|
+
scriptnow skill growth decide <candidate_id> --action accept|edit|reject ...
|
|
200
|
+
scriptnow skill growth evaluate <candidate_id> # 评估回放(后台)
|
|
201
|
+
scriptnow skill growth preview <candidate_id> --evaluation-result <id>
|
|
202
|
+
scriptnow skill growth publish <candidate_id> --evaluation-result <id> \
|
|
203
|
+
--description "..." --instructions "..." --mount <pid> # 发布新版(--mount 触发 canary 灰度)
|
|
204
|
+
|
|
205
|
+
# 版本进化(金丝雀灰度)
|
|
206
|
+
scriptnow skill canary list
|
|
207
|
+
scriptnow skill canary decide <canary_id> --action retain|limit|need_evidence|rollback
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 管理员 CLI
|
|
211
|
+
|
|
212
|
+
`admin` 组仅 `is_admin` 用户可用(后端校验,非管理员 403):平台系统状态、租户启停、
|
|
213
|
+
主站 Skill 治理与能力进化(`skill-update` 需 `--expected-digest` 防并发覆盖)。
|
|
214
|
+
**token 消费、额度与财务命令一律不纳入 CLI**——这些走管理后台。
|
|
215
|
+
|
|
216
|
+
## 已知缺口(后端已具备、CLI 未覆盖)
|
|
217
|
+
|
|
218
|
+
onboarding、commerce(Paddle 订阅)、review-agent(审读工作台)、
|
|
219
|
+
evaluation v9(深度评估)、work-completion(完结)、invitations(邀请码)——按需补齐。
|
|
220
|
+
|
|
221
|
+
## AI Agent 安装(SKILL 体系)
|
|
222
|
+
|
|
223
|
+
Agent(Claude Code / npx skills 兼容)可通过 SKILL.md 发现能力:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npx skills add quchenchen/scriptnow-cli --skill scriptnow-cli -g -y
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
SKILL.md 位于 [`cli_anything/scriptnow/skills/SKILL.md`](cli_anything/scriptnow/skills/SKILL.md)。
|
|
230
|
+
|
|
231
|
+
安装入口是短运行契约;Agent 的第一个动作必须是 `scriptnow agent-guide --json`。
|
|
232
|
+
需要人工完整说明时才运行 `scriptnow agent-guide --full`,不得把手册当作创作提示词。
|
|
233
|
+
审阅凭证绑定用户实际阅读的可读 JSON;解析器默认值不得被当作内容变化。
|
|
234
|
+
|
|
235
|
+
- **聚焦式新手创作(固定 12 步顺序)**:从 `scriptnow guide --step 1 --medium novel|script --json`
|
|
236
|
+
开始,只跟随当前返回的 `next_step`。每轮只问一个主问题;用户卡住时从 `lenses`
|
|
237
|
+
中只选一个启发。先复述创作意图,再提供一个具体候选,请用户决定保留、调整或换方向。
|
|
238
|
+
命令、JSON、ID 与评分术语默认留在幕后;完整路线仅在用户主动询问时用 `guide --steps` 展示。
|
|
239
|
+
- **柔性回归**:多轮发散后由 Agent 把轻量摘要传给
|
|
240
|
+
`guide --step <当前幕> --pulse @pulse.json --json`。`useful_detour` 先保留素材并允许继续;
|
|
241
|
+
只有 `drifting/conflict` 才按 `recovery` 先收拢、再邀请回归。`--resume` 可直接生成温和接续。
|
|
242
|
+
两者均不写平台状态、不阻断创作命令。
|
|
243
|
+
- **一次明确表达即可定稿**:用户在 Agent 对话中说“定稿”“采用这版”或“可以继续”,
|
|
244
|
+
Agent 在后台登记原话、领取绑定当前版本 digest 的一次性凭证,再执行
|
|
245
|
+
`chapter adopt --human` / `scene adopt --human` 并记录 `adopted_human`。
|
|
246
|
+
用户不操作终端、不复制凭证;语义不明确时只追问一次。
|
|
247
|
+
- **剧本 Skill 质量锚点**:`skill craft --domain script` 自动叠加场次功能与转折、
|
|
248
|
+
可见可听可表演、对白/VO/OS 时序、台词量与目标时长四类系统锚点;不增加用户问卷,
|
|
249
|
+
直接创建的 script Skill 也必须通过 robustness v2。
|
|
250
|
+
- **格式契约先于个人 Skill**:项目创建时锁定的竖屏短剧分镜式、中国剧本或好莱坞格式,
|
|
251
|
+
由 Agent 生成、前端显示与 DOCX 导出全链路共同遵守;个人 Skill 只叠加题材方法,不能混用格式。
|
|
252
|
+
|
|
253
|
+
## 人类审阅协议(对话优先)
|
|
254
|
+
|
|
255
|
+
Agent 负责执行,作者/编辑负责观察和决定。方向、故事核心、蓝图、人物圣经、粗纲、StoryMap
|
|
256
|
+
集纲/章纲、正文修订、采纳和导出都经过同一条回路:Agent 从平台读取事实,完整呈现候选;用户
|
|
257
|
+
在对话中只表达一次「保留 / 调整 / 换方向」;Agent 后台登记原话、读取意见,并在保留时领取绑定
|
|
258
|
+
候选 digest 的一次性凭证,写入后回读平台结果。用户无需复制 token、重复命令或打开页面。
|
|
259
|
+
|
|
260
|
+
内容变化会使旧 digest/凭证失效,必须重新展示新版本。长内容才附带 `review_url` 作为可选阅读
|
|
261
|
+
入口;页面不是额外审批关卡。用户直接在前端编辑并保存,本身就是一次人类决定并纳入审计。
|
|
262
|
+
|
|
263
|
+
长篇剧本粗纲先统筹全剧,再按项目叙事结构逐宏观阶段回填;阶段内使用平台返回的
|
|
264
|
+
`generation_batches` 深化。“约 5 集”只是默认建议,Agent 不得猜测项目总集数或批次边界。
|
|
265
|
+
`rough-outline-start/progress/phase` 必须持续显示「阶段 X / 共 N 阶段」、当前阶段与已完成阶段,
|
|
266
|
+
不得只在后台推进 JSON。
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
scriptnow review preview <pid> <resource-kind> <resource-id> @candidate.json
|
|
270
|
+
# 用户在对话或平台页明确决定后,由 Agent 原样登记:
|
|
271
|
+
scriptnow review confirm <packet-id> --decision retain --evidence "采用这一版,继续下一阶段。"
|
|
272
|
+
scriptnow review status <packet-id> --json
|
|
273
|
+
scriptnow review claim <packet-id> --json
|
|
274
|
+
# 调整时由 Agent 读取原话,修订后重新 preview;不复用旧凭证
|
|
275
|
+
scriptnow review status <packet-id> --json
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
`review preview` 会在终端展示完整内容并登记 digest;`review status` 让 Agent 直接读取用户反馈;
|
|
279
|
+
`--json` 只服务于 Agent 编排,不能替代可读预览。
|
|
280
|
+
|
|
281
|
+
## Agent 使用提示
|
|
282
|
+
|
|
283
|
+
- **编排前置:Skill 支撑检查(MANDATORY)**:创作前 `skill mounts <pid>`;无方法论 Skill 时
|
|
284
|
+
默认用 `skill setup <pid>` 与作者预设点选共建——Agent 先以 `skill setup <pid> --json` 读取
|
|
285
|
+
服务端按格式/题材推荐的 presets(对白风格/节奏/禁词;剧本域含 Method DNA 四维),在对话中
|
|
286
|
+
按编辑语言逐项请作者选择并接受自定义补充,再以 `--answers @answers.json --confirm --json`
|
|
287
|
+
提交服务端编译挂载并回读回执。深度共创可用 `skill craft`(六问:先以 `--json` 获取问题协议,
|
|
288
|
+
再以 `--answers @answers.json` 一次回填;向用户展示草案并获明确认可后才加 `--confirm`)。
|
|
289
|
+
创建回执、挂载门禁与运行时都解析同一完整方法论 reference;通过后自动挂载并回读验证。
|
|
290
|
+
也可用 interpret local 蒸馏或 skill create。`book` 也会在缺 Skill 时提示。
|
|
291
|
+
- **必须主动填充完整 direction**:用 `project direction <pid> --apply @direction.json` 回填
|
|
292
|
+
premise/tone/world_setting/genre/structure/卷章数/字数等;不要依赖 `--inspire`,也不要建裸项目。
|
|
293
|
+
- **正文创作双模式(用户明确选择,平台侧不阻塞)**:默认由平台主笔完成——`chapter/scene generate`
|
|
294
|
+
生成候选 → `review preview` 审读 → `adopt`;仅当用户**明确选择本地创作**时,Agent 才在本地写好
|
|
295
|
+
正文后经 `chapter propose` / `script scene-propose` 回填候选 → `review preview` 审读 →
|
|
296
|
+
`adopt --human`。未明确选择时一律按平台主笔执行;本规则只约束正文(章节/场次)创作,
|
|
297
|
+
「规划回填优先」(story_cores / blueprint / storymap 规划三件套)保持不变、不受影响。
|
|
298
|
+
- 优先 `--json`;生成命令默认后台,`--wait` 阻塞等待。平台拒绝操作时,CLI 优先透出
|
|
299
|
+
经脱敏的原始领域 detail;失败统一返回 `{ok:false,error:{type,status,detail}}`,不输出 traceback。
|
|
300
|
+
运行失败按 `run status` 的 `error/detail` 修正,再用 `run events <run_id> --json` 读取事件;无事件固定为
|
|
301
|
+
`events=[]`。Agent 按可行动提示修正,不把中文通用兜底当作修复指令。
|
|
302
|
+
- 版本管理:创作基准 = 最新「已采纳 + 人工修订(未采纳也算)」,未采纳的 Agent 候选不进入基准。
|
|
303
|
+
- 审读是 Agent 自身能力:读正文 → 判断 → `--feedback` 驱动修正。
|
|
304
|
+
|
|
305
|
+
## 安全说明
|
|
306
|
+
|
|
307
|
+
- 会话只存 Cookie 不存密码;文件权限 0600。
|
|
308
|
+
- 所有写操作走平台同一套鉴权(Cookie + CSRF + tenant 隔离),无法越权访问其他用户数据。
|
|
309
|
+
- 平台核心能力(内置 Skill、管理端点、工具目录)不通过 CLI 暴露——admin 命令组仅 is_admin 可用。
|
|
310
|
+
|
|
311
|
+
## 创作纪律(批量 vs 逐章)
|
|
312
|
+
|
|
313
|
+
- **批量生成(scene-batch)务必谨慎**:批量可能造成情节/设定不一致、伏笔失误——每次批量前 CLI 会提示风险,
|
|
314
|
+
请逐场审读后再采纳。
|
|
315
|
+
- **最佳实践:逐章/逐场创作完善**——generate → show 审读(--plain)→ 带意见 feedback 修正 → adopt。
|
|
316
|
+
- **Agent 请勿用 subagent 并发批量**:上下文割裂会造成设定漂移;同一项目的创作应串行且共享上下文。
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
## 质量评估标准
|
|
320
|
+
|
|
321
|
+
- `chapter quality --standard` 评估**默认使用内容质量偏好**(人物能动性/场景因果/关系推进/叙述声音/连贯性/源边界/章节推进/文本质感);
|
|
322
|
+
仅当用户明确提出 **真人剧备案口径**(`--standard drama-filing`)或 **千部计划/批量网文标准**(`--standard thousand-plan`)时才附加对应标准。
|
|
323
|
+
- 评估 = **Agent 系统评估 + 平台建议维度**:CLI 提供平台维度与场次原文,Agent 按维度逐项系统评估、引用证据。
|
|
324
|
+
|
|
325
|
+
## 规格示例
|
|
326
|
+
|
|
327
|
+
`chapter propose --help-format / --example`、`script scene-propose --help-format / --example` 展示**格式规格示例**
|
|
328
|
+
(blocks JSON 结构/正文分段),仅保证格式合规,**不代表质量水准**——质量由 Agent 按上述评估维度判断。
|
|
329
|
+
|
|
330
|
+
## Agent 创作角色与流程纪律(必读)
|
|
331
|
+
|
|
332
|
+
- **角色分工(默认:平台=主笔)**:Agent = 项目经理 + 质量审查;平台(scene/chapter 生成)
|
|
333
|
+
默认完成正文——准备好 direction/feedback,驱动生成、审查、要求重生成、采纳达标版本。
|
|
334
|
+
仅当用户**明确选择本地创作**时,Agent 才在本地写好正文并经 `chapter propose` /
|
|
335
|
+
`script scene-propose` 回填——除此之外绝不自己写正文(不在本地堆样本/配置草稿)。
|
|
336
|
+
- **阶段 1(立即)**:收到需求后立刻 `project create` → 立刻用 propose 回填结构
|
|
337
|
+
(cores/blueprint/storymap,前 5-10 集/卷)——不要攒本地文件。
|
|
338
|
+
- **阶段 2(逐场循环)**:每场/每章 = 准备详细 feedback → 生成 → 审查
|
|
339
|
+
(scene-show --plain 读原文 + scene-quality 快检)→ 不达标立即带 feedback 重生成 → 达标才采纳。
|
|
340
|
+
- **质量门槛**:9-10 优秀 · 8-9 良好 · **<8 分立即重生成**,绝不采纳不达标内容。
|
|
341
|
+
- **进度控制**:每集/卷完成后汇报质量统计,询问用户是否继续。
|
|
342
|
+
|
|
343
|
+
## 统一创作 Skill 方案
|
|
344
|
+
|
|
345
|
+
CLI、Creator 与创作运行共用服务端 creative-skill-plan。逐章/逐场前使用 ready-check --unit-id <单元ID> 查看已采纳叙事阶段、本单元功能、个人与内置方法及执行准备;缺少阶段不按集数比例推定。阶段 narrative_stage 与功能 unit_function 随集纲/章纲候选提交,采纳后生效。节奏建议不构成一票否决;已选中、已读取、已应用分别留证。
|