GH·440 霜砚人格系统仓库准备推送 · 小说创作系统更新

This commit is contained in:
冰朔 2026-07-09 15:17:34 +08:00
parent 8e4e148ea9
commit 4e684e130f
5 changed files with 308 additions and 4 deletions

View File

@ -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
⊢ 并发写作踩坑记录 · 永久有效

View File

@ -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 项)
- 中文全角 · 引号 `""` · 省略号六点 `......` · 破折号 `——` · 系统提示【】

View File

@ -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 分钟可跑完

View File

@ -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 人类化(必看)

View File

@ -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 · 换算"