@oh-story/dsh 0.1.9 → 0.1.10
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/README.md +12 -12
- package/lib/client.js +204 -72
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +84 -74
- package/lib/drama/skills/short-drama/SKILL.md +2 -2
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +14 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +10 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-edit/SKILL.md +27 -29
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +24 -67
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +27 -56
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +37 -79
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +39 -92
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +12 -16
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +126 -11
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +64 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +5 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -3
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +9 -35
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +10 -6
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +58 -21
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -9
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +17 -0
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +12 -38
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +4 -7
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -22
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +6 -19
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +2 -2
- package/lib/drama/skills/short-drama-write/SKILL.md +2 -4
- package/lib/index.js +289 -91
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
- package/lib/oh-story/manifest.json +230 -185
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/consistency-checker.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +24 -25
- package/lib/oh-story/roles/story-architect.md +5 -5
- package/lib/oh-story/roles/story-explorer.md +11 -11
- package/lib/oh-story/skills/story/SKILL.md +13 -7
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +40 -53
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +1 -1
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-import/SKILL.md +77 -81
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +10 -8
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +8 -6
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +34 -16
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +91 -258
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +245 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +2 -2
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +113 -105
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +169 -125
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +172 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +42 -132
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +5 -5
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1106 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +4 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +38 -29
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +25 -20
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +4 -13
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/project-files.md +9 -7
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +12 -4
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +1 -2
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +8 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +86 -115
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +55 -120
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +66 -68
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +4 -12
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +139 -18
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +34 -16
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +5 -3
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +58 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-review/SKILL.md +68 -85
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-review/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-review/references/review-quality.md +4 -10
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +8 -6
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +50 -42
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +4 -12
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +22 -3
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +5 -1
- package/lib/oh-story/skills/story-short-scan/SKILL.md +5 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +6 -147
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +2 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +3 -2
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +126 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +32 -0
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +16 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +52 -0
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/package.json +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
|
@@ -1,173 +1,108 @@
|
|
|
1
1
|
# workflow-daily.md:日更续写工作流
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
SKILL.md 路由到「日更续写」后按本文件控制批次;每章正文走 [workflow-chapter.md](workflow-chapter.md)。写前资料、对标路径与缺失处理按 [project-files.md](project-files.md) 与 [benchmark-recall.md](benchmark-recall.md),本文件不另立一套。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
>
|
|
7
|
-
> 写前资料清单、对标书路径查找、题材正文提示卡、自定义文风模式、文风缺失 fail-fast、模块/节奏缺失停止、权威冲突规则、无对标项目处理,一律按 [project-files.md](project-files.md) 的「缺失文件处理」「对标分析权威优先级」和 [benchmark-recall.md](benchmark-recall.md) 的写前准备 (a)-(g) 执行;本文件不另立一套。读者契约、主角代理权、期待债、终局储备参 `reader-contract-and-progression.md`。
|
|
8
|
-
>
|
|
9
|
-
> **多本对标书**:从 `设定/题材定位.md` 读 `主对标书` 字段;字段指向当前作品时按缺失处理(老项目可能把本书自身登记成了主对标)。缺失时用 `对标/` 下字典序第一本并提示用户补字段——先按当前项目目录名、`.active-book` 和 `设定/题材定位.md` 中的本书信息识别当前作品,排除同名或来源指向当前正文的 `对标/{当前书}/`;排除后为空则按无对标处理。
|
|
5
|
+
**多本对标书**:主对标取 `设定/题材定位.md` 的 `主对标书` 字段;字段指向本书自身或缺失时,用 `对标/` 下字典序第一本(排除本书同名目录)并提示用户补字段,排除后为空按无对标处理。
|
|
10
6
|
|
|
11
7
|
---
|
|
12
8
|
|
|
13
9
|
## 适用条件
|
|
14
10
|
|
|
15
|
-
- 项目已有 `正文/` 和
|
|
16
|
-
-
|
|
17
|
-
- 目标:每次会话写 2-3 章(4000-9000 字)
|
|
18
|
-
|
|
19
|
-
> **裸调用不进日更**:如果用户只是触发 `/story-long-write` / `$story-long-write`,没有说"日更/续写/继续写/写第N章/只写1章/逐章确认",不得进入本 workflow。回到 `SKILL.md` 的"裸调用与停靠点",只展示当前进度与可选命令,避免重启会话后自动写 3 章。
|
|
11
|
+
- 项目已有 `正文/` 和 `追踪/`;用户明确说"日更""续写""继续写/接着写"或指定"写第 N-M 章";上一轮在规划时,"继续写"先按 SKILL.md「规划续接」一句话确认
|
|
12
|
+
- 每次会话写 2-3 章。裸调用、只规划或只改细纲不进本流程
|
|
20
13
|
|
|
21
14
|
---
|
|
22
15
|
|
|
23
16
|
## Step 1:快速上下文加载
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
手动加载(默认方式):
|
|
28
|
-
|
|
29
|
-
| 序号 | 文件 | 用途 | 如果不存在 |
|
|
30
|
-
|------|------|------|-----------|
|
|
31
|
-
| 1 | `tracking_commit.py check` | 校验唯一结构化 state 与全部派生视图,并取得最后提交章和修订号;不把完整 state 加入 prompt | state 缺失且新书尚无正文时执行初始化;已有正文则停止并要求由 `story-import` 重新导入为标准项目 |
|
|
32
|
-
| 2 | `追踪/上下文.md` | 续写状态卡(≤12KB,固定 7 栏,每章整份读) | 不手写;由初始化/逐章事务生成 |
|
|
33
|
-
| 3 | `大纲/细纲_第{N}章.md` | 本章写作计划 | **必须先补建**,不允许跳过 |
|
|
34
|
-
| 4 | 卷纲(**取段器读,不整读**:`outline_view.py --unit {单元ID} --stage write`,见 SKILL.md「卷纲不整读」) | 卷契约、全卷常任裁定、当前剧情单元、终局储备与未来揭示计划 | 缺必需字段时先补齐;锁定卷纲绝不自动修改;脚本 exit 1 不得改用整读绕过 |
|
|
35
|
-
| 5 | `设定/角色/{角色名}.md` | 本章涉及角色的静态原始人设 | 只为核心复用角色按 Phase 3 规则补建 |
|
|
36
|
-
| 6 | `追踪/角色状态/{角色名}.md` | 久别核心角色的派生当前快照;只按细纲涉及角色加载 | 缺失即视为派生视图损坏:先运行 `tracking_commit.py check`,再重跑产生当前状态的完整事务;已有正文却无 state 时重新 `story-import` |
|
|
37
|
-
|
|
38
|
-
`追踪/伏笔.md`、`追踪/时间线/`、`追踪/逐章记录/` 默认不整份读取。续写状态卡没有某个旧信息时,才按「旧信息查找步骤」定点查询。
|
|
39
|
-
|
|
40
|
-
**按需加载**:需要期待感、爽点或信息差约束时,加载 `references/plot-emotion-system.md`、`references/plot-core-methods.md` 或当前 `references/genre-prose-cards/` 题材卡。默认不全量加载。
|
|
18
|
+
运行 `tracking_commit.py check`,取 `last_committed_chapter + 1` 作本批首章 N、`state_revision` 作修订号,并核对 `追踪/上下文.md` 的当前位置;章号不一致先修,不扫描正文猜编号。每章要读的上下文按 workflow-chapter 步骤 2;`追踪/伏笔.md`、`时间线/`、`逐章记录/` 默认不整读,缺旧信息按下方「旧信息查找步骤」定点查。
|
|
41
19
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
`追踪/上下文.md` 不是历史档案,而是当前语义检查点中的续写状态卡;顶层只能有以下 7 个栏目:`当前位置 / 长期约束 / 核心角色状态 / 活跃伏笔 / 近三章速记 / 下一章承诺 / 连贯性风险`。目标 8192 字节,硬上限 12288 字节。文风每章从 `设定/文风.md` / 对标文风读取;质量计数、普通待办、文件行数索引、参照章使用记录、去 AI 味统计都不进入续写状态卡。
|
|
45
|
-
|
|
46
|
-
所有追踪文件的 schema、事务 JSON、初始化和失败修复统一见 [tracking-transaction.md](tracking-transaction.md)。每章只向工具提交一次结构化事务,由 `scripts/tracking_commit.py` 确定性生成逐章增量、角色快照、伏笔当前视图、作者/读者时间线和续写状态卡;主会话和子 agent 都不得分别直接改这些最终文件。
|
|
20
|
+
`追踪/上下文.md` 是续写状态卡(7 栏,由 `tracking_commit.py` 派生,禁止手改);schema、修订与修复见 [tracking-transaction.md](tracking-transaction.md),出错时才读。
|
|
47
21
|
|
|
48
22
|
**首次初始化**:
|
|
49
23
|
|
|
50
|
-
1. `_tracking-state.json`
|
|
51
|
-
2.
|
|
52
|
-
3. `
|
|
24
|
+
1. `_tracking-state.json` 不存在且尚无正文:完整读取 [tracking-initialization.md](tracking-initialization.md),构造 `last_chapter=0` 的初始化事务存 `.story/work/init.json`,执行 `tracking_commit.py init`,`check` 过后删掉。
|
|
25
|
+
2. 不存在但已有正文:停止日更,走 `/story-import` 的「旧追踪项目迁移」重建 `追踪/`(不用重跑全书拆解);`init` 会把旧结构整体移入 `追踪/_旧追踪存档/`。
|
|
26
|
+
3. `check` 报派生视图与 state 不一致:为该章提交 `mode=revision` 事务整份重建(`expected_state_revision` 取 state 文件的 `state_revision`),不手改 Markdown、不继续下一章。
|
|
53
27
|
|
|
54
|
-
|
|
28
|
+
**长期约束**最多 6 条,出现第 7 条先合并语义重叠项或请作者取舍,不自动删旧约束。永久生效的设定裁定进 `long_term_constraints`,短期强承诺进 `next_chapter_commitments`,过程决策不进续写状态卡。
|
|
55
29
|
|
|
56
|
-
|
|
30
|
+
确定范围后直接进 Step 2,不做"是否继续"确认。K 默认 2-3 章,用户说"只写1章"/"日更3章"/"逐章确认"按用户;给出 N>3 时本轮只写前 3 章并在批末提示剩余下轮继续。只在章号冲突、细纲缺失、范围超出已有细纲、要改大纲/追踪等会写错的情况暂停确认。
|
|
57
31
|
|
|
58
|
-
|
|
32
|
+
---
|
|
59
33
|
|
|
60
|
-
|
|
34
|
+
## Step 2:串行批量写作
|
|
61
35
|
|
|
62
|
-
|
|
36
|
+
多章细纲可一次加载,但**必须在主会话内串行逐章写**,不把多章并发交给多个子代理(上下文断裂、追踪覆盖、标题去重失效)。
|
|
63
37
|
|
|
64
|
-
|
|
38
|
+
**批量 continuation 规则**:未改变任务时,"继续/续写/日更"仍走完整批量流程,不逐章重复确认(用户要求或阻塞除外);用户转为只规划/改细纲时退出批量。到达本轮 K(最多 3 章)后必须进入 Step 3/4 收尾并停止,不因还有细纲续写下一批。
|
|
65
39
|
|
|
66
|
-
|
|
40
|
+
1. **读取写作计划**:按 卷契约 → 当前剧情单元 → 章节细纲 确定;`outline_view.py --unit {单元ID}` 取一次卷级与单元级内容,本批复用,不整读卷纲。写前明确本批推进目标、可释放与严禁提前释放的信息、章尾钩子不能越过的边界,别动用本阶段还不该解锁的终局底牌。批写完检查是否超前、拖慢或偏离阶段节奏(细节适配不算;已改变卷契约、单元承诺、推进线或兑现归属的,修正文或重规划后续细纲):下一章要补偿的进 `next_chapter_commitments`,跨章风险进 `continuity_risks`,不靠提前泄露后期信息提速。
|
|
41
|
+
2. **逐章执行**:每章按 workflow-chapter「单章写作流程」步骤 1-13 走完,叠加:
|
|
42
|
+
- **上一章欠账**:写本章前上一章不得有未清 blocking 毒句式(写前 hook 会拦;hook 不可用时对上一章跑一次 `chapter check`),标了 `<!-- 去味:跳过 -->` 的除外。
|
|
43
|
+
- **状态来源**:不把完整 `_tracking-state.json` 读进上下文,缺的信息定点查,不用来源不明的聊天记忆替代。久别核心角色读 `追踪/角色状态/{名}.md`,重新活跃后放进本章事务的 `context.active_character_names`。
|
|
44
|
+
- **用 story-explorer 召回时**:`gaps` 按 [benchmark-recall.md](benchmark-recall.md)「快捷路径」分流。
|
|
45
|
+
- **写后清零不拖到批末**:hook 推回的命中当轮清零。
|
|
46
|
+
- **每章写完立即提交追踪**:按 workflow-chapter 步骤 12,提交成功才进下一章;只记会影响后续章节的变化,过程日志、质检计数、去味统计不进事务。narrative-writer 不写 `追踪/`。
|
|
47
|
+
3. **不中断但不并发**:追踪已提交即进下一章;`under` 或一次压缩后仍带外,按 workflow-chapter 的字数问法请作者选,不静默推进。
|
|
67
48
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
**批量 continuation 规则**:进入本 Step 后,"继续"/"续写"/"日更"只表示继续当前日更批量流程。不得把这些词解释为跳过「状态筛选」或「对标模块/节奏/题材卡/文风召回」的直接正文续写;也不得在每章之间重复询问是否继续,除非用户明确要求逐章确认或出现阻塞。到达本轮 K(最多 3 章)后必须进入 Step 3/4 收尾并停止,不能因为仍有后续细纲就继续写下一批。
|
|
71
|
-
|
|
72
|
-
1. **读取写作计划**:写作计划按 **卷契约 → 当前剧情单元 → 章节细纲** 的顺序确定;已写内容仍以正文与 `追踪/` 文件为准。先按 SKILL.md「卷纲不整读」跑 `outline_view.py --unit {单元ID} --stage write {卷纲路径}` 取卷契约、全卷常任裁定、当前剧情单元(单元ID/位置)、单元情绪引擎、本卷主推线/战果与终局底牌边界(单元ID 从本批首章细纲「单元ID/位置」取),再加载本次要写的 2-3 章细纲。卷纲或细纲缺少当前协议的必需字段时按既有流程先补齐,未知字段写 `[待补充]`;已锁定卷纲不得自动改动。细纲读取阶段位置、结构公式、禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化的语义义务/执行边界及结尾钩子,不读取或心算逐点字数预算。只有真正影响后续连续性的结果才进入本章事务。
|
|
73
|
-
- **批次定位与阶段约束**:写本批前先从 `大纲/大纲.md`、上一步取段器的卷纲输出(不再重读卷纲)和本批细纲提取:当前章节区间属于哪个阶段、本批推进目标、本批可释放的信息、本批严禁提前释放的信息、章尾钩子不能越过的边界。必须按终局储备确认本批主推线与战果,别动用本阶段还不该解锁的终局底牌(多线齐涨的战果允许);行动成本可无,不硬造代价。未来揭示计划留在大纲,不写入时间线事实;只有下一章必须消费的边界才进 `## 下一章承诺`。
|
|
74
|
-
- **阶段进度自检**:每批写完或补完细纲后检查是否超前、拖慢或偏离阶段节奏;若偏离,把下一章必须执行的补偿动作放入事务 `next_chapter_commitments`,跨多章风险放入 `continuity_risks`;不得通过提前泄露后期信息强行提速。
|
|
75
|
-
2. **逐章执行**:每章按 [workflow-chapter.md](workflow-chapter.md) 的「单章写作流程」步骤 1-13 完整走一遍(写前准备、正文执行、字数验证、钩子/爽点检查、元信息与禁用词扫描、追踪事务)。批量模式下再叠加下列日更专属动作:
|
|
76
|
-
- **上一章欠账检查**:写本章正文前,确认上一章正文无未清 blocking 毒句式欠账(写前 hook 会自动拦;hook 不可用时对上一章跑 `node scripts/check-ai-patterns.js --check --fail-on=blocking`);有欠账先清完再写本章,除非上一章标了 `<!-- 去味:跳过 -->`(用户显式豁免)
|
|
77
|
-
- **状态来源纪律**:不要为取状态/章号把完整 `_tracking-state.json` 加载进 prompt;缺失内容按下方「旧信息查找步骤」定点查询,不得用未标明来源的聊天记忆替代,也不得为了方便通读所有逐章记录。
|
|
78
|
-
- **久别角色交叉检查**:本章细纲列出的核心复用角色若不在 `## 核心角色状态`,直接读取小文件 `追踪/角色状态/{名}.md`;不存在即视为当前检查点损坏,运行 `tracking_commit.py check` 并通过完整事务修复,不能临时扫描增量后手写替代。`设定/角色/{名}.md` 只有静态原始人设,不能替代动态快照。角色重新活跃后,把名字放进本章事务 `context.active_character_names`,由工具更新续写状态卡。
|
|
79
|
-
- **story-explorer 召回的 gaps 分支**(用 `benchmark_style_load` query_type 一次拿到 `{style_profile_path, style_profile_summary, selected_emotion_module, rhythm_reference, module_source_path, rhythm_source_path, matched_chapter_K, matched_chapter_techniques, anchor_excerpts, gaps}` 后按此分流):
|
|
80
|
-
- 若 `gaps.no_benchmark: true` → `custom_style` 为真则进入「自定义文风模式」(用 `设定/文风.md` 写作;无对标可召回,情绪 / 节奏目标改从本书细纲「目标情绪」、卷纲、`设定/题材定位.md` 等内部材料取,`selected_emotion_module` / `rhythm_reference` 记为「无」,不声称从对标召回);否则跳过文风召回,在「意图确认」标记"无对标参考"
|
|
81
|
-
- 若 `gaps.missing_primary_contract: true` → 停止本章准备,按 `repair_action` 提示重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`;不得进入 narrative-writer(情绪 / 节奏轴独立于文风轴,**自定义文风模式不豁免此停止**——补 `剧情/情绪模块.md` / `剧情/节奏.md`,而非写 `设定/文风.md`)
|
|
82
|
-
- 若 `gaps.benchmark_book_missing: true` → 停止,核对 `expected_path` 与 题材定位.md 登记名(逐字一致)后重查;不得换书
|
|
83
|
-
- 若 `gaps.conflict` 或 `gaps.module_rhythm_conflict: true` → 意图确认必须说明冲突并按 `剧情/情绪模块.md` / `剧情/节奏.md` 的权威优先级执行;不得让 `文风.md` 覆盖情绪/节奏目标
|
|
84
|
-
- 若 `gaps.profile_missing: true` → `custom_style` 为真则进入自定义文风模式继续;否则按上文 fail-fast 流程停止
|
|
85
|
-
- 若 `gaps.profile_degenerate: true`(对标文风不可用) → `custom_style` 为真则用 `设定/文风.md` 写作;否则跳过文风、回到默认 Gates 写作
|
|
86
|
-
- 若 `gaps.tone_match_failed: true` → 仅用整书文风写作,不喂 matched_chapter
|
|
87
|
-
- 否则原样传给 `style_profile_path`、`style_profile_summary`、`selected_emotion_module`、`rhythm_reference`、`module_source_path`、`rhythm_source_path`、`matched_chapter_K`、`matched_chapter_techniques`、`anchor_excerpts` 和 `genre_prose_card` 给 Step 2 末尾的 narrative-writer spawn prompt;其中 `selected_emotion_module` 必须进入情绪目标,`rhythm_reference` 必须进入节奏/爆发安排,`genre_prose_card` 必须进入题材取舍,`matched_chapter_techniques` 必须进入「文风召回指令」。写前准备记录必须保留 `gaps` 原值,尤其 `gaps.module_missing`、`gaps.rhythm_missing`、`gaps.conflict`、`gaps.matched_deep_dive_missing`;若 `matched_deep_dive_missing` 为 true,文风召回指令中明确写“同章深度拆解缺失,已回退黄金三章/文风技巧”,不得在后续报告中反转为 false
|
|
88
|
-
- **无 story-explorer 时直接执行**:主会话按 workflow-chapter.md 写前准备 (a)-(f) 手动依次召回情绪模块、节奏、题材卡、文风与匹配章 K;模块或节奏文件缺失时设置 `missing_primary_contract` 并停止修复
|
|
89
|
-
- **写后清零不拖到批末**:写后 hook 推回的毒句式命中当轮清零,不得攒到 Step 3。
|
|
90
|
-
- 每章写完后**立即提交一次追踪事务**:
|
|
91
|
-
1. 从刚落盘的正文、细纲和上一版续写状态卡提取 `result / character_changes / foreshadow_changes / timeline_events / constraints / next_chapter_commitments`。只记录会影响未来章节的变化;过程日志、质检计数、参照章和去 AI 味统计全部排除。
|
|
92
|
-
2. 需要长期复用的核心角色,把完整动态快照放进 `character_snapshots`,并在 `character_changes` 写对应变化;一次性路人只写变化、不交快照。已有动态快照的核心角色再次变化时必须提交新快照。静态人设继续以 `设定/角色/{名}.md` 为准。
|
|
93
|
-
3. `context.long_term_constraints`、当前卷/故事时间/场景、活跃核心角色名、连贯性风险提交当前完整值;活跃伏笔、近三章速记和下一章承诺由工具从当前视图/本章增量派生,不重复手填。
|
|
94
|
-
4. 运行 `storyctl.py chapter check`,取 `state_revision` 写入无 `wordcount` 的事务。带内 + quality pass → `chapter commit`;`under` 不补,`over` 按 workflow-chapter 步骤 8 净删一次并复检;仍带外走该步骤三动作。提交会重读、重数、重跑 quality;成功后删临时 JSON,tracking 提交后才继续。
|
|
95
|
-
5. 失败时 `_tracking-state.json` 尚未推进;保留临时 JSON,修正写入环境后重跑同一 `commit`。不得另写下一章、不得手工补派生视图、不得忽略返回码。
|
|
96
|
-
|
|
97
|
-
`追踪/逐章记录/第NNN章.md` 由工具按 5 类变化生成,目标 ≤1536 字节、硬上限 3072 字节。它不是正文摘要大全,更不保存写作过程。`伏笔.md` 每个 ID 只有一行当前状态;角色状态按核心角色拆文件;时间线的客观事实和读者认知只在同一事件登记中维护,再派生作者/读者两个视图。
|
|
98
|
-
|
|
99
|
-
状态更新仍由主会话负责。narrative-writer 只写正文并回报必要的写作结果,不直接写 `追踪/`;主会话也不绕过事务工具直接修改最终追踪文件。
|
|
100
|
-
- **质检提示**(可选):本章写作完成。如需一致性检查,运行 `/story-review lean`。批量写作模式跳过此步骤,全部写完后再统一审查。
|
|
101
|
-
3. **不中断但不并发**:tracking 已提交即进下一章(除非用户要求确认);`under` 或一次压缩后仍带外则展示证据/动作,不静默推进。下一章先读上一章正文与追踪更新。
|
|
102
|
-
|
|
103
|
-
**资料研究(按需)**:如果写作中遇到需要查证的外部事实(历史年代、地理方位、职业细节等),暂停写作,spawn `story-researcher` agent 搜索并输出到 `参考资料/` 目录。研究完成后再继续写作。
|
|
49
|
+
**资料研究**(按需):需查证外部事实时暂停,spawn `story-researcher` 输出到 `参考资料/`,完成后继续。
|
|
104
50
|
|
|
105
51
|
### 旧信息查找步骤
|
|
106
52
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
| 级别 | 手段 | 成本 |
|
|
110
|
-
|------|------|------|
|
|
111
|
-
| 1 | 续写状态卡已有 → 直接用 | 0 |
|
|
112
|
-
| 2 | 伏笔 ID 查 `grep -n "F007" 追踪/伏笔.md`;角色查 `追踪/角色状态/{名}.md`;读者认知查 `时间线/读者已知.md`,作者真相查 `时间线/作者真相.md` | 一个当前行或一个有界小文件 |
|
|
113
|
-
| 3 | 需要变化原因/历史时,调用 story-explorer 的 `foreshadow_status / character_status / timeline`;各 adapter 按自身 agent 调用方式,agent 不可用就直接 Grep/Read | 子代理/主会话只返回相关条目 |
|
|
114
|
-
| 4 | explorer 不可用 → `grep -R -n --include='第*.md' "F007" 追踪/逐章记录/ 2>/dev/null \| tail -5`,只取最近 5 条匹配增量 | 只读取匹配行 |
|
|
115
|
-
| 5 | 仍不够 → `Read` 对应增量或埋设章正文 | 1 个紧凑增量或单章正文 |
|
|
116
|
-
| 6 | 全量读取所有逐章增量/正文 | **日更禁止**。只在 `/story-review` 或用户明确要求全面审计时 |
|
|
53
|
+
续写状态卡没有、但本章确实需要的旧信息,由近到远查,查到就停:
|
|
117
54
|
|
|
118
|
-
|
|
55
|
+
1. **定点读追踪**:伏笔 `grep -n "F007" 追踪/伏笔.md`;角色读 `追踪/角色状态/{名}.md`;读者认知读 `时间线/读者已知.md`,作者真相读 `时间线/作者真相.md`。
|
|
56
|
+
2. **查变化原因或历史**:调 story-explorer 的 `foreshadow_status / character_status / timeline`(不可用则 `grep -R -n --include='第*.md' "F007" 追踪/逐章记录/ | tail -5`,只取最近 5 条)。
|
|
57
|
+
3. **读一个原文件**:对应逐章记录或埋设章正文,只读 1 个。全量读逐章记录或正文属于 `/story-review` 或作者要求的全面审计,日更不做。
|
|
119
58
|
|
|
120
|
-
|
|
59
|
+
单章第 2 级超过 3 次,说明细纲没写清要消费哪些旧信息:一次性让 story-explorer 查多项,并在批末提示细纲需补清回收项。
|
|
121
60
|
|
|
122
61
|
---
|
|
123
62
|
|
|
124
63
|
## Step 3:质量检查
|
|
125
64
|
|
|
126
|
-
|
|
65
|
+
逐章检查已在 Step 2 完成,批末只做**跨章**核对:
|
|
127
66
|
|
|
128
|
-
1.
|
|
129
|
-
2.
|
|
130
|
-
3.
|
|
67
|
+
1. **标题去重**:本轮新写章与既有标题同名或明显重复时,统一改细纲与正文文件名。
|
|
68
|
+
2. **契约与细纲双向核对**:按 `reader-contract-and-progression.md`「契约四问」过一遍本批(答不上来的那问再读对应小节);正文是否消费了细纲的内容概括、情节安排、人物关系变化与收益归属;爽点前有可指认的铺垫、打脸/揭露章写了在场配角差异反应、详略按目的分配而非均匀注水。不达标回 Step 2 修批准内容。
|
|
69
|
+
3. **伏笔盘点(仅本轮增量)**:本批新增/推进/回收的每个 ID 在 `追踪/伏笔.md` 恰好一行当前状态,并能在对应逐章记录找到本次变化;不做全量伏笔审计。
|
|
70
|
+
4. **一致性检查(整批一次)**:本批各章没有按需调用过 consistency-checker 的,在这里 spawn 一次,检查范围写本批全部章节,prompt 同 workflow-chapter「Agent 调用:consistency-checker」(申报栏写各章申报汇总);各章都已单独查过就跳过。冲突照该节处置表处理。
|
|
131
71
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
> 若本步修文改变了会影响后续的事实、角色状态、伏笔、时间线或下一章承诺,必须在进入 Step 4 前为受影响章节提交 `mode=revision` 事务并通过 `check`;其中 `delta` 要重算修订后该章仍成立的完整当前记录,不能只传本次改动;纯措辞调整不重复提交。
|
|
72
|
+
只对本步改过的章重跑 `chapter check --fix-punctuation`,没改过的不再整批复扫。本步修文若改变了会影响后续的事实、状态、伏笔或承诺,进入 Step 4 前为受影响章节提交 `mode=revision` 事务并通过 `check`(`delta` 重算修订后该章仍成立的完整记录);纯措辞调整不重复提交。
|
|
135
73
|
|
|
136
74
|
---
|
|
137
75
|
|
|
138
76
|
## Step 4:批末收尾
|
|
139
77
|
|
|
140
|
-
|
|
78
|
+
**本步不再写追踪内容**,只做:
|
|
141
79
|
|
|
142
|
-
1.
|
|
143
|
-
2.
|
|
144
|
-
3. **「本章没写成的」汇集**:把本批各章申报表末行按**挡住它的原因**分流处置——「细纲没有这个点」进下一批补纲供给自查(workflow-setup「按剧情批出细纲」步骤 3)作扩产候选;「分辨率是疏/镜头准入没给位」进下一批同类拍的分辨率与准入参考;「拿不准会不会跟别处撞」当章就查设定,有既定值的补进下一章 prompt、查无既定值的即写手可自定,不再往下传;「属三档不能写」并入三档处置。连同本批细纲「本章新增物处置」里状态仍为 `待裁定` 的行,一并随批末汇报给出;全部为 `0` 则记「无」。
|
|
80
|
+
1. `tracking_commit.py check` 通过(state、逐章记录连续与体积、7 栏、派生视图一致);本批每章都有 `追踪/逐章记录/第NNN章.md`。缺失或超限回到该章事务修正重跑,不手补文件。
|
|
81
|
+
2. **「本章没写成的」汇集**:各章申报表末行只分两路——「细纲没给」进下一批排纲的供给自查(workflow-setup「排纲自查与细纲」步骤 3)作扩产候选,涉及既有设定的先查设定、有既定值补进下一章 prompt;「要先问作者」并入 workflow-chapter「写了要报」处置表的「先问作者」一行。连同细纲里状态仍为 `待裁定` 的新增物,一并随批末汇报给出;全部为 `0` 记「无」。
|
|
145
82
|
|
|
146
|
-
|
|
83
|
+
然后按 SKILL.md「面向作者的汇报」口头汇报,不另存文件;内部核对翻成故事话再说:
|
|
147
84
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
85
|
+
<!-- author-report -->
|
|
86
|
+
```md
|
|
87
|
+
这次写了 {K} 章,共约 {总字数} 字:
|
|
88
|
+
- 第{N}章《{章名}》:{一句发生了什么}
|
|
89
|
+
- 第{N+1}章《{章名}》:{一句发生了什么}
|
|
90
|
+
{偏离原计划的就一句话说偏在哪、打算怎么接,如「阿福比计划早露面一章,后面照常」;没有就删掉此行}
|
|
91
|
+
{要作者定的事:一句问题+白话选项+推荐,如「沈栀要不要在下一章就知道信的下落?1. 先瞒着(推荐)2. 这章就告诉她」;没有就删掉此行}
|
|
92
|
+
下一批:第{M}到第{M+2}章,{细纲已备好 / 需要先补细纲}。接着写吗?
|
|
93
|
+
```
|
|
151
94
|
|
|
152
95
|
## 细纲缺失补建流程
|
|
153
96
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
2. 加载本章涉及的 `设定/角色/{角色名}.md`(角色状态)
|
|
158
|
-
3. 读取最新一章正文(情节衔接)
|
|
159
|
-
4. 按 SKILL.md Phase 3 的新版细纲模板补建本章细纲,补齐阶段位置、本章结构公式、本章禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定;无法从卷纲/正文/设定确认的字段写 `[待补充]`,不杜撰
|
|
160
|
-
5. 补建完成后继续 Step 2 写作
|
|
161
|
-
|
|
162
|
-
---
|
|
97
|
+
1. `outline_view.py --unit {单元ID}` 取本章剧情单元卡与卷级常任;单元卡有「对标剧情参照」时加读其指向的 1 个剧情单元文件作功能参照。整个剧情单元都没细纲时,按 outline-structure-theory.md「按剧情批出细纲」整批补建。
|
|
98
|
+
2. 读本章涉及角色的设定与最新一章正文。
|
|
99
|
+
3. 按 workflow-setup.md「Phase 3:大纲搭建」的细纲模板补齐必需字段,无法确认的写 `[待补充]`,不杜撰;补完继续 Step 2。
|
|
163
100
|
|
|
164
101
|
## 常见问题
|
|
165
102
|
|
|
166
103
|
| 问题 | 处理 |
|
|
167
104
|
|------|------|
|
|
168
|
-
|
|
|
169
|
-
|
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
| 写到卷末 | 提示用户"当前卷已完成,是否开新卷?" |
|
|
173
|
-
| 用户中断批量写作 | 保存当前章节,已更新追踪文件,下次从断点继续 |
|
|
105
|
+
| 细纲不存在或缺当前蓝图字段 | 执行上方补建流程,补齐前不写正文 |
|
|
106
|
+
| 用户要求改大纲 | 提醒会影响后续细纲,确认后修改并标记受影响的细纲 |
|
|
107
|
+
| 写到卷末 | 提示「当前卷已完成,是否开新卷?」 |
|
|
108
|
+
| 用户中断批量写作 | 已提交的章保留,下次从断点继续 |
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
|
|
42
42
|
## Step 3:修改
|
|
43
43
|
|
|
44
|
-
1.
|
|
44
|
+
1. **阅读原文**:读完整章,用 `{PYTHON} {skill 根}/scripts/storyctl.py wordcount check` 记下原始字数
|
|
45
45
|
2. **备份原文**:将原文复制为 `正文/第{X}章_章名_原稿_{YYYYMMDD}.md`,确保可回退
|
|
46
46
|
3. **确认修改范围**:问用户是"全文重写"还是"修改特定段落"
|
|
47
47
|
- 全文重写:基于细纲重新写,保留备份
|
|
48
48
|
- 局部修改:只改指定段落(按场景序号或关键词定位),保持其他部分不变
|
|
49
49
|
4. **执行修改**:改写文件
|
|
50
|
-
5.
|
|
50
|
+
5. **一次检测**:修改后运行 `{PYTHON} {skill 根}/scripts/storyctl.py chapter check --project {项目根} --chapter {X} --fix-punctuation`(含禁用词与字数);blocking 改到净再重跑。字数与原文差异 >30% 或 >800 字时提醒用户(取较大值),用白话说「改后约 X 字,比原来多/少 Y 字,比目标多/少 Z 字」,不报状态码;字数不触发静默二次改写
|
|
51
51
|
|
|
52
52
|
**资料研究(按需)**:如果修改涉及需要验证的外部事实(历史年代、地理方位、职业细节等),spawn `story-researcher` agent 搜索验证。
|
|
53
53
|
|
|
@@ -63,16 +63,10 @@
|
|
|
63
63
|
4. **角色当前快照**:对受影响核心角色从 X 检查到 M,按身份、位置、目标、能力资源、关系对象、已知信息、未结事项分别重算,提交一份截至 M 的完整快照;不得用最后一条单维度变化覆盖其它维度。
|
|
64
64
|
5. **导入截止范围**:若 X ≤ `_tracking-state.json.imported_through_chapter`,事务为第 X 章新增覆盖记录;导入截止章不变,当前结构化状态按修订结果更新。
|
|
65
65
|
6. **提交与重试**:把修订开始时 `tracking_commit.py check` 返回的 `state_revision` 写入 `expected_state_revision`,再执行 `tracking_commit.py commit`;若期间状态已变化,重新读取当前状态并重构事务。任一步骤失败时保留原事务 JSON,修正写入环境后重跑同一 `commit`;成功并通过 `check` 前禁止继续修下一章或写新章。
|
|
66
|
-
7.
|
|
66
|
+
7. **后续影响**:如果修改改变了角色状态/关系/世界观设定,扫描后续章节正文标记受影响项,放进下方汇报。
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- 第{X+1}章:{原因}(建议检查)
|
|
71
|
-
- 第{X+3}章:{原因}(建议检查)
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
8. **正文元信息扫描**:检查标题行以外是否混入 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类写作工程词,命中即改成角色当下可感知的事件锚点或相对时间;故事内真实阅读/讨论“第X章”或真实读者身份语境除外
|
|
75
|
-
9. **禁用词扫描**:对照 `references/banned-words.md` 检查修改后的内容,并运行 `tracking_commit.py check` 验证 state 与全部派生视图一致
|
|
68
|
+
8. **正文元信息扫描**:按 [workflow-chapter.md](workflow-chapter.md) 步骤 6「正文元信息隔离」扫描标题行以外的正文,沿用其中的改写方式与故事内真实阅读/读者身份例外。
|
|
69
|
+
9. **收口**:运行 `tracking_commit.py check` 验证 state 与全部派生视图一致
|
|
76
70
|
|
|
77
71
|
---
|
|
78
72
|
|
|
@@ -87,6 +81,16 @@
|
|
|
87
81
|
|
|
88
82
|
> 完整检查清单见 [workflow-chapter.md 的「质量检查」节](workflow-chapter.md)。
|
|
89
83
|
|
|
84
|
+
**改完向作者汇报**(按 SKILL.md「面向作者的汇报」;追踪修订与各项扫描只作内部核对):
|
|
85
|
+
|
|
86
|
+
<!-- author-report -->
|
|
87
|
+
```md
|
|
88
|
+
第{X}章《{章名}》改好了(原稿留在 {备份文件名}):
|
|
89
|
+
- {改了什么,用故事话:原来怎样 → 现在怎样}
|
|
90
|
+
- 篇幅:{约 X 字,比原来多/少约 Y 字}
|
|
91
|
+
{后面受影响的章:「第{X+1}章《{章名}》里{谁/什么}还按旧说法写,要一起改吗?1. 一起改(推荐)2. 先不动」;没有就写「后面的章不受影响」}
|
|
92
|
+
```
|
|
93
|
+
|
|
90
94
|
---
|
|
91
95
|
|
|
92
96
|
## 常见问题
|