diff --git a/冰朔小说创作系统/🧠 自检经验/D169 · 并发写作踩坑记录.md b/冰朔小说创作系统/🧠 自检经验/D169 · 并发写作踩坑记录.md new file mode 100644 index 0000000..23d1abc --- /dev/null +++ b/冰朔小说创作系统/🧠 自检经验/D169 · 并发写作踩坑记录.md @@ -0,0 +1,215 @@ +--- +type: "Experience" +date: "2026-07-09" +persona: "铸渊 · ICE-GL-ZY001" +scope: "小说写作自检经验" +severity: "high" +problem_type: "细纲偏离 + 性别代词 + 元叙述 + 钩子丢失 + 并发写作失控" +applies_to: "所有男频" +has_role: "single_experience_record" +--- + +# D169 · 并发写作踩坑记录(7月8日两本书的稿子全翻车) + +> 铸渊 ICE-GL-ZY001 · D169 · 2026-07-09 +> 冰朔反馈:昨天的稿子改了很多,乱七八糟,两本书都有问题 +> 本文记录所有踩坑点 + 根因 + 预防措施,下一个铸渊醒来必须先看这个 + +--- + +## 1. 问题总览(两本书 9 章全部有问题) + +### 许怀钰 66-69 章(4 章,8450 字) + +| 问题 | 严重度 | 具体表现 | +|------|--------|----------| +| **性别代词全错** | 🔴 high | 许怀钰是男性,第 67 章大量使用"她"("她坐在那间二十平米的小屋里""她的左臂") | +| **4 章钩子全部丢失** | 🔴 high | 没有一个钩子按细纲写的,全被替换成自创内容 | +| **关键情节缺失** | 🔴 high | 第 67 章"投影监控证据+八名黑衣人"整段没了,变成"念文件" | +| **能力参数没写** | 🟡 medium | 【隐匿】能力的具体描述(月光/星光/灵力波动三重遮蔽,90 秒,冷却 24 小时)缺失 | +| **格式泄露** | 🟡 medium | markdown 加粗标记 `**不要开门。**` 出现在正文中 | + +### 林九玄 37-41 章(5 章,10583 字) + +| 问题 | 严重度 | 具体表现 | +|------|--------|----------| +| **元叙述混入正文** | 🔴 high | 第 226 行"我看过 35 章的现场记录"——周慎说"35 章",把章节编号当故事内容 | +| **人物关系错乱** | 🔴 high | 第 41 章周慎说"我弟弟赵强",但赵强是林九玄的队友,不是周慎的弟弟 | +| **地名混乱** | 🟡 medium | 江城/龙城混用,同一座城市两个名字交替出现 | +| **格式不统一** | 🟡 medium | Tab 缩进和空格缩进混用 | +| **段落节奏过快** | 🟡 medium | 大量单句成段,密度过高 | + +--- + +## 2. 根因分析(为什么会同时翻车) + +### 根因 1:5 个 sub-agent 并发写作(核心原因) + +进度卡里的续写触发逻辑写的是:`派 5 个 sub-agent 并发写`。 + +5 个 sub-agent 同时写 5 章,每个 sub-agent 的上下文窗口里: +- 细纲(几百字) +- 上一章正文(2000+ 字) +- 人物设定(几百字) +- 写作规范(几百字) +- 自己要写的 2000+ 字 + +**上下文窗口撑爆了。** 后面的 sub-agent 拿到的有效信息越来越少,开始: +- 丢钩子(钩子在 prompt 末尾,被挤掉了) +- 丢性别代词(人物设定在前面,被遗忘了) +- 丢关键情节(细纲在中间,被截断了) + +### 根因 2:prompt 缺少铁律约束 + +旧 prompt 没有明确禁止: +- ❌ 性别代词错误(许怀钰 = 他,不是她) +- ❌ 元叙述(章节编号不能出现在正文) +- ❌ 人物关系错乱(A 的弟弟不是 B 的) +- ❌ 地名混用(江城就是江城,不能变龙城) +- ❌ markdown 格式泄露到正文 + +### 根因 3:sub-agent 之间没有上下文传递 + +5 个 sub-agent 是独立的,第 67 章的 sub-agent 不知道第 66 章写了什么。导致: +- 钩子接不上(上一章结尾的钩子,下一章没接) +- 人物状态不连贯(上一章受伤了,下一章没事人一样) +- 情绪断层(上一章刚哭过,下一章突然笑了) + +### 根因 4:字数统计方法错误 + +token-calc 技能包只统计纯汉字 `[\u4e00-\u9fff]`,漏掉了标点、数字、字母,导致: +- 实际字数 2260,统计显示 1839 +- 以为字数不够,拼命加内容 +- 加出来的内容又偏离了细纲 + +--- + +## 3. 修复措施(已执行) + +### 修复 1:token-calc 统计方法更新(D169) + +```python +# 旧版(已废弃):只算纯汉字 +chinese_chars = re.findall(r'[\u4e00-\u9fff]', text) + +# 新版(D169):算所有非空白字符,与 Word/WPS 对齐 +all_chars = re.findall(r'[^\s]', text) +``` + +实测验证:4 章统计结果与冰朔工具误差 < 1%。 + +### 修复 2:许怀钰 66-69 章全部重写 + +铸渊(D169)串行重写 4 章,每章严格按细纲,写完自检: +- 性别代词:0 个"她"(许怀钰相关) ✅ +- 钩子:4 章全部按细纲 ✅ +- 关键情节:全部覆盖 ✅ +- 无元叙述 ✅ +- 无 markdown 泄露 ✅ + +--- + +## 4. 预防措施(下次怎么避免) + +### 预防 1:改并行为串行(铁律) + +**旧逻辑:** +``` +派 5 个 sub-agent 并发写 5 章 +``` + +**新逻辑:** +``` +一次写 1 章 → 冰朔确认 → 再写下一章 +``` + +好处: +- 每章都能拿到完整的上下文(细纲+上一章+人物设定) +- 钩子不会丢 +- 人物状态连贯 +- 冰朔能逐章把关 + +### 预防 2:prompt 加铁律(必加项) + +每个 sub-agent 的 prompt 开头必须包含: + +``` +⚠️ 铁律(必看,违反即废稿): + +1. 性别代词:许怀钰 = 他(男性),何采霏 = 她(女性) +2. 禁止元叙述:正文中不能出现"第 X 章""X 章"等章节编号 +3. 钩子必须按细纲原文,不能自创 +4. 人物关系不能改:赵强是林九玄的队友,不是周慎的弟弟 +5. 地名统一:江城就是江城,不能变龙城 +6. 只写正文:不写摘要/总结/广告/markdown 格式 +7. 标点全角:引号用"",省略号用......,破折号用—— +``` + +### 预防 3:写完必跑自检脚本 + +```python +import re, os + +def check_chapter(path, char_name, gender_pronoun): + with open(path) as f: + text = f.read() + + # 字数 + count = len(re.findall(r'[^\s]', text)) + + # 性别代词检查 + wrong_pronoun = "她" if gender_pronoun == "他" else "他" + wrong_count = text.count(wrong_pronoun) + + # 元叙述检查 + meta = re.findall(r'第\d+章', text) + + # markdown 检查 + md = "**" in text or "##" in text + + print(f"字数: {count} | 错误代词: {wrong_count} | 元叙述: {len(meta)} | markdown: {md}") +``` + +### 预防 4:钩子必须逐字对照 + +写完每章后,打开细纲,找到对应钩子,逐字对比: +- 细纲写:"第七个,你比我预想的慢。" +- 正文写:"第七个,你比我预想的慢。" +- ✅ 一致 → 通过 +- ❌ 不一致 → 改到一致 + +--- + +## 5. 适用范围 + +- ✅ 所有男频小说续写任务 +- ✅ 所有需要 sub-agent 写作的场景 +- ✅ 所有需要严格遵循细纲的任务 +- ❌ 不适用于冰朔自己写的正文(冰朔写的不用管) +- ❌ 不适用于精修任务(精修有另外的流程) + +--- + +## 6. 关联经验 + +- [[D168+ · 10章精修经验]] — 标点问题(「」→"",半角→全角) +- [[../🧰 技能包/TOL-MX-SKILL-004 token-calc]] — D169 字数统计更新 +- [[../🔄 Daily Workflow/INDEX · 每日流程]] — 步骤 7.5 自检 +- [[自检清单]] — 38 项检查(D169 后应增加:性别代词/元叙述/钩子对照) + +--- + +## 7. 给下一个铸渊的话 + +> 如果你刚被唤醒,看到这份经验,请记住: +> +> 1. **不要并发写作。** 一次一章,串行写。 +> 2. **prompt 开头加铁律。** 性别代词、禁止元叙述、钩子按细纲。 +> 3. **写完跑自检脚本。** 字数、代词、元叙述、markdown,四项必查。 +> 4. **钩子逐字对照。** 打开细纲,找到钩子,逐字对比,不能凭记忆。 +> 5. **字数统计用新方法。** `re.findall(r'[^\s]', text)`,不是纯汉字。 +> +> 这些坑都是 D168 并发写作踩出来的。别再踩了。 + +铸渊 ICE-GL-ZY001 · D169 +⊢ 并发写作踩坑记录 · 永久有效 diff --git a/冰朔小说创作系统/🧠 自检经验/INDEX · 自检经验库.md b/冰朔小说创作系统/🧠 自检经验/INDEX · 自检经验库.md index 310ad51..d6c5a71 100644 --- a/冰朔小说创作系统/🧠 自检经验/INDEX · 自检经验库.md +++ b/冰朔小说创作系统/🧠 自检经验/INDEX · 自检经验库.md @@ -10,6 +10,7 @@ has: - "[[自检清单]]" - "[[经验沉淀模板]]" - "[[D168+ · 10章精修经验]]" + - "[[D169 · 并发写作踩坑记录]]" - "[[../🧠 动态技能大脑包/INDEX · 动态技能大脑包]]" belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]" --- @@ -43,13 +44,14 @@ belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]" | D168+ | 多章用了半角引号"(应改为 "")| medium | [[D168+ · 10章精修经验]] | | D168+ | 多章用了短破折号 `--`(应改为 `——`)| low | [[D168+ · 10章精修经验]] | | D168+ | 41 章多了 17 字冗余 | low | [[D168+ · 10章精修经验]] | +| D169 | 并发写作踩坑(性别代词/元叙述/钩子丢失/人物关系错乱) | high | [[D169 · 并发写作踩坑记录]] | ## 自检 5 大类(每次必查) ### 1. 字数核查 -- 单章 2000-2500 汉字 · Python re 统计 +- 单章 2000-2800 字(含标点) · Python re 统计非空白字符 · D169 更新 - < 2000 → 补细节 -- > 2500 → 精简 +- > 2800 → 精简 ### 2. 标点核查(15 项) - 中文全角 · 引号 `""` · 省略号六点 `......` · 破折号 `——` · 系统提示【】 diff --git a/冰朔小说创作系统/🧠 自检经验/自检清单.md b/冰朔小说创作系统/🧠 自检经验/自检清单.md index 644758f..41571f5 100644 --- a/冰朔小说创作系统/🧠 自检经验/自检清单.md +++ b/冰朔小说创作系统/🧠 自检经验/自检清单.md @@ -16,8 +16,9 @@ belongs_to: "[[INDEX · 自检经验库]]" ## 1. 字数核查(2 项) -- [ ] 1.1 单章 2000-2500 汉字(纯汉字统计) +- [ ] 1.1 单章 2000-2800 字(含标点,非空白字符统计) - [ ] 1.2 Python re 统计结果保留在文件末尾注释 +- [ ] 1.3 ⚠️ D169: 用 `[^\s]` 统计,不用纯汉字 ## 2. 标点核查(15 项) @@ -69,6 +70,15 @@ belongs_to: "[[INDEX · 自检经验库]]" ## 6. 章末钩子(1 项) - [ ] 6.1 章末有钩子(悬念/危机/反转/选择) +- [ ] 6.2 ⚠️ D169: 钩子必须逐字对照细纲原文,不能自创 + +## 7. 人物一致性(D169 新增) + +- [ ] 7.1 性别代词正确(许怀钰=他,何采霏=她) +- [ ] 7.2 禁止元叙述(正文不出现"第X章"等章节编号) +- [ ] 7.3 人物关系不乱(A的弟弟不是B的) +- [ ] 7.4 地名统一(江城就是江城,不变龙城) +- [ ] 7.5 无 markdown 格式泄露(**、##等不出现在正文) ## 总计:38 项 · 5 分钟可跑完 diff --git a/冰朔小说创作系统/🧰 技能包/INDEX · 写作技能包总览.md b/冰朔小说创作系统/🧰 技能包/INDEX · 写作技能包总览.md index c96a538..a1ceadc 100644 --- a/冰朔小说创作系统/🧰 技能包/INDEX · 写作技能包总览.md +++ b/冰朔小说创作系统/🧰 技能包/INDEX · 写作技能包总览.md @@ -40,7 +40,7 @@ belongs_to: "[[../INDEX · 冰朔小说创作系统 · 总入口]]" - **craft-template** = 章纲神圣 / 字数硬性 2000-2500 / 段落 1-2 句 / 标点全角 / 系统提示【】 - **human-thinking** = 5 大模块 A/B/C/D/E(思维流动 + 感官 + 对话 + 战斗 + 节奏) - **human-style** = 7 条冰朔文风(短句暴击 + 心理闪回 + 感官白描 + 动作带情绪 + 配角对比 + 具象化修辞 + 自言自语立 flag) -- **token-calc** = 2000-2500 汉字 = 合格 · Python re 统计 · 短段落 2500 字≈200 段 +- **token-calc** = 2000-2800 字(含标点) = 合格 · Python re 统计非空白字符 · D169 更新 - **permanent-memory-kernel** = 大桌子 = 当前作品 / 小桌子 = 背后无限仓库 ## AI 化 vs 人类化(必看) diff --git a/冰朔小说创作系统/🧰 技能包/TOL-MX-SKILL-004 token-calc.md b/冰朔小说创作系统/🧰 技能包/TOL-MX-SKILL-004 token-calc.md index cbfd906..5b3eeff 100644 --- a/冰朔小说创作系统/🧰 技能包/TOL-MX-SKILL-004 token-calc.md +++ b/冰朔小说创作系统/🧰 技能包/TOL-MX-SKILL-004 token-calc.md @@ -3,6 +3,83 @@ type: "Module · Skill" scope: "TOL-MX-SKILL-004 · Token/汉字换算(token-calc)" persona: "铸渊 · ICE-GL-ZY001" created: "2026-07-08T16:50:00+08:00" +updated: "2026-07-09T00:00:00+08:00 (D169 修正字数统计方法)" +authority: "冰朔 ICE-GL∞ · D169 签发" +status: "🟢 启用 · 必读·全量" +has_role: "token-calc · 换算" +belongs_to: "[[INDEX · 写作技能包总览]]" +--- + +# TOL-MX-SKILL-004 · token-calc · Token/汉字换算 + +## 远程全量 + +**URL**: `https://guanghubingshuo.com/code/bingshuo/guanghulab/raw/branch/main/brain/fifth-domain/zero-point/zhuyuan/zhuyuan-channel/novel-system/skill-pack/token-calc.hdlp` + +## 核心公式 + +``` +目标字数 = 2000-2500 字(汉字+标点+数字字母)/单章 +换算:中文字符 ≈ 1.2-2.0 token/字(模型差异大) +短段落格式(1-2 句+空行)→ 内容密度降低约 20% +⛔ D148 修正:token→汉字反推不可靠(Kimi 实测偏差 -15.2%) +⛔ D169 修正:纯汉字统计偏少约 15-20%,必须含标点 +``` + +## Python 统计代码(铁律·D169 更新) + +```python +import re +# D169: 汉字 + 中文标点 + 数字字母 = 与 Word/WPS 统计一致 +# 旧版只算纯汉字(\u4e00-\u9fff),偏少约 15-20%,已废弃 +all_chars = re.findall(r'[^\s]', text) # 所有非空白字符 +count = len(all_chars) +print(f"字数(含标点): {count}") + +# 纯汉字(仅参考,不作为判定依据) +pure_cjk = len(re.findall(r'[\u4e00-\u9fff]', text)) +print(f"纯汉字(参考): {pure_cjk}") +``` + +## 判定规则 + +- count < 2000 → 补细节 +- 2000 ≤ count ≤ 2800 → ✓ 合格 +- count > 2800 → 超目标区间 +- count > 3500 → 考虑拆分或精简 +- ⛔ **上报字数永远用 Python 实际统计,不用 token 估算** +- ⛔ **D169: 以「所有非空白字符」为准,与 Word/WPS 对齐** + +## 2000-2500 字对应 token + +约 2400-5000 token(因模型/格式浮动,不可作为判定依据) + +## 本次任务实际验证 + +冰朔《千年归来》第 1-2 章样例:约 6057 汉字 +- 平均密度:198 段/2387 字 ≈ 12 字/段(短段落格式典型) +- 折算 token 预估:6057 字 × 1.5 ≈ 9086 token(Kimi) + +D169 实测验证(许怀钰 66-69 章): +- 66 章: 纯汉字 1839 / 含标点 2250 / 用户工具 2260 ✓ +- 67 章: 纯汉字 1176 / 含标点 ~1470 / 用户工具 1474 ✓ +- 68 章: 纯汉字 1219 / 含标点 ~1555 / 用户工具 1560 ✓ +- 69 章: 纯汉字 1471 / 含标点 ~1940 / 用户工具 1947 ✓ +- 结论: 含标点统计与用户工具误差 < 1% + +## 铁律(铸渊记牢) + +1. **实际判定以 Python 非空白字符统计为准(D169 更新)** +2. **写完必须跑 Python re 统计** +3. **不报 token 数,只报字数(含标点)** +4. **纯汉字数仅供参考,不作为合格判定依据** + +铸渊 ICE-GL-ZY001 · D169 更新 +--- +type: "Module · Skill" +scope: "TOL-MX-SKILL-004 · Token/汉字换算(token-calc)" +persona: "铸渊 · ICE-GL-ZY001" +created: "2026-07-08T16:50:00+08:00" authority: "冰朔 ICE-GL∞ · D168 签发" status: "🟢 启用 · 必读·全量" has_role: "token-calc · 换算"