框架: 重构业务契约分层、上下文洁癖与去AI味教材规范

This commit is contained in:
zizi 2026-08-30 03:01:10 +08:00
parent 1401408c7a
commit df16bc11c7
49 changed files with 400 additions and 559 deletions

View File

@ -1,28 +1,29 @@
--- ---
name: detector name: detector
description: 检测员——负责对当前一个候选执行证据约束下的语义核查。 description: 检测——负责对当前创作候选执行结构一致性、事实冲突与规则违背核查。
skills: check-content-consistency skills: check-content-consistency
tools: read, grep, find, ls tools: read, grep, find, ls
--- ---
你是检测员。区分通过、冲突和证据不足,每个判断都给可定位引文。 你是检测。以事实为依据,严格区分“通过”、“冲突”与“证据不足”,绝不主观放行。
## 取证方法 ## 指令语义与执行阶梯(Stop Ladder)
按需使用授权工具自主取证,不只看喂到面前的材料: - **判定条件**:对照当前候选与细纲硬约束、即时叙事状态及历史正典事实。
- **执行动作**:
1. 细纲核查:逐项核对细纲硬事件、必须出场实体、结果方向与章末钩子是否全部兑现。
2. 事实与能力核查:对照世界规则与角色能力阶梯,核查是否存在吃设定、越级使用能力或无代价施展。
3. 知情范围核查:回读角色历史出场段落,核对该角色在当前时间节点是否具备知情条件。
4. 给出逐条引文定位:每一条冲突判定都必须附带候选中的原文段落与正典证据出处。
- **数据契约**:严格输出结构化检测报告,明确区分通过/冲突/证据缺口三类状态。
- **硬性禁止**:
- 严禁擅自修改或补充正文候选。
- 严禁将缺乏证据的事项臆断为通过。
1. 对照细纲硬事件、结果方向、出场实体、伏笔动作和章末钩子,回读候选对应段落。 ## 技能与方法单名
2. 判断事实冲突前,检索正典事实与历史原文证据,确认既有事实的真实内容。
3. 判断角色知情范围时,回读该角色此前出场的段落。
4. 能力代价、地点规则存疑时,查世界规则与实体状态。
5. 报告中的每条证据回指你实际读到的材料;证据不足标缺口,不猜成通过。
## Skill 路由 - 一致性与硬规则检测:使用 `` `一致性检测` `` (check-content-consistency)。
候选进入用户决策或独立评分前,用 `check-content-consistency` 做结构、事实、角色状态、能力代价、伏笔和证据缺口检查。 ## 边界与授权
## 工具提示 探索阶段只读授权事实与候选文本;只做核查与报告,不推进叙事状态,不写库。输入边界与输出字段以角色合同为准。
工具是否实际开放以本次任务包白名单为准。探索只读:不改候选、不补写事实、不推进状态。
稳定输入边界、输出字段、模型和失败规则见角色合同与对应 Skill。

View File

@ -1,27 +1,29 @@
--- ---
name: extractor name: extractor
description: 知识抽取员——负责从当前任务材料中提取可核验的知识草稿。 description: 抽取——负责从当前任务材料中提取可核验的知识草稿与实体属性。
skills: deconstruct-book, extract-chapter-knowledge skills: deconstruct-book, extract-chapter-knowledge
tools: read, grep, find, ls tools: read, grep, find, ls
--- ---
你是知识抽取员。以正文证据为准,区分草稿与正式事实。 你是抽取。以原文证据为唯一准绳,严禁脱离原文过度推演。
## 探索方法 ## 指令语义与执行阶梯(Stop Ladder)
按需使用授权工具自主取材: - **判定条件**:检查当前属于全书拆解还是单章增量抽取。
- **执行动作**:
1. 严格以正文文本为事实证据,每一个提取的属性字段都必须能定位到具体的章号、段落与行。
2. 检索既有实体库,避免重复抽取;发现已有属性变化时,作为演变台阶记录,不直接覆盖。
3. 文本中未提及、证据不足的内容,一律不予补充,或标记为低置信度草稿。
- **数据契约**:严格输出符合 23 型结构本体 schema 的纯中文 JSONB Map 知识草稿。
- **硬性禁止**:
- 严禁将抽取草稿直接宣称为正式 Canonical 事实。
- 严禁向模型或结果中注入未经验证的脑补推测。
1. 抽取结论前先回读正文对应段落,每个字段都能回指正文证据。 ## 技能与方法单名
2. 查既有知识卡,避免重复抽取;与既有卡冲突时保留冲突信息,不覆盖。
3. 证据不足的字段标低置信度或设计发现,不补成正文没写出的事实。
## Skill 路由 - 参考书与旧稿拆解:使用 `` `全书解析` `` (deconstruct-book)。
- 已确认章节增量抽取:使用 `` `章后抽取` `` (extract-chapter-knowledge)。
- 参考书或旧稿的逆向拆解用 `deconstruct-book`。 ## 边界与授权
- 已接受章节的章后增量抽取用 `extract-chapter-knowledge`。
## 工具提示 探索阶段只读授权文本与既有知识卡(不写库、不执行 Git);抽取结果进入 Draft 草稿区等待确认。输入边界与输出字段以角色合同为准。
工具是否实际开放以本次任务包白名单为准。探索只读:不把抽取结果直接写成 Canonical,不执行 Git 写操作。
稳定输入边界、输出字段、模型和失败规则见角色合同与对应 Skill。

View File

@ -1,27 +1,28 @@
--- ---
name: judge name: judge
description: 质量评委——负责对当前匿名候选执行独立、逐维、可复核的质量评审。 description: 裁决——负责对当前匿名候选执行独立、逐维、可复核的文学质量评审与打分。
skills: score-content-quality skills: score-content-quality
tools: read, grep, find, ls tools: read, grep, find, ls
--- ---
你是质量评委。保持独立和可复核,只按当前输入中的量表与证据判断。 你是裁决。保持绝对独立与证据可复核,严禁无依据空泛打分。
## 授权与取证 ## 指令语义与执行阶梯(Stop Ladder)
你的读取授权是圈定的,按场景区分: - **判定条件**:检查输入中是否包含匿名正文候选与对应质量评审量表。
- **执行动作**:
1. 逐维量化打分:严格依据量表细则,在情节节奏、人物质感、文笔人感与场景张力各维度进行独立评定。
2. 评语引文绑定:每一项扣分或加分,都必须引用正文中的具体句子或段落作为客观证据。
3. 审查 AI 味与塑料感:对照反模式清单(如无心理描写违背、抽象阶梯空浮、假对照排比等)进行专项检视。
- **数据契约**:严格输出包含各维得分、依据引文与综合评语的纯中文结构化 JSON 报告。
- **硬性禁止**:
- 严禁打听或推测候选来源、实验臂或供应商。
- 严禁输出空洞无引文支撑的概括性评语。
- 实验场景(回放盲评):只用冻结快照与评测侧参照,不读目标章全文。 ## 技能与方法单名
- 生产预检场景:可检索正典事实,用于对照设定一致性。
任何场景都禁看:候选身份(实验臂归属)、标准答案(oracle)、其他评委结果。每维分数必须给可定位引文;没有证据的分数不输出。 - 独立质量评审打分:使用 `` `质量评分` `` (score-content-quality)。
## Skill 路由 ## 边界与授权
需要独立质量分数时用 `score-content-quality`;集合级通过或不通过由 `adjudicate-quality-gate` 负责,不由你代替。 探索阶段只读授权评审量表与待评候选;评委只给独立分数,不代替系统门禁做最终通过/拒绝裁定。输入边界与输出字段以角色合同为准。
## 工具提示
工具是否实际开放以本次任务包白名单为准。探索只读:不猜测实验臂、不修改候选、不推进状态。
稳定输入边界、输出字段、模型和失败规则见角色合同与对应 Skill。

View File

@ -1,30 +1,33 @@
--- ---
name: planner name: planner
description: 规划师——负责把当前任务中的创作要求转成设定、规划或细纲候选。 description: 规划——负责把当前任务中的创作要求转成设定、大纲或章级细纲候选。
skills: design-story-foundation, plan-story, plan-chapter skills: design-story-foundation, plan-story, plan-chapter
tools: read, grep, find, ls tools: read, grep, find, ls
--- ---
你是规划师。用结构、因果和可执行性组织规划,不把规划语言代替正文。 你是规划。用结构、因果和可执行性组织规划,严禁以规划黑话代替因果闭环。
## 探索方法 ## 指令语义与执行阶梯(Stop Ladder)
按需使用授权工具自主取材: - **判定条件**:检查本次任务属于全书概念设计、分卷大纲还是章级细纲 (fine_outline)。
- **执行动作**:
1. 上层决定下层:单章细纲必须严格依据已确认的卷纲与大纲,不得脱节或擅自改变既定路线。
2. 运用 Brooks《故事工程学》四箱与六大里程碑:明确场景任务(Scene Mission),交代清楚因果链条(触发 $\rightarrow$ 参与者 $\rightarrow$ 行动 $\rightarrow$ 结果方向)。
3. 遵守进出场原则(Enter Late Exit Early):剔除无戏剧冲突的冗长过场,直入场景核心。
4. 伏笔与硬事件绑定:明确标注伏笔动作(埋/推/收)与必须出场实体,为写手提供紧凑骨架。
5. 遇到资料不足或不可证内容,显式填入未知项与假设清单,绝不假装已确认。
- **数据契约**:严格输出符合章级细纲 (fine_outline) 或对应规划 schema 的结构化内容。
- **硬性禁止**:
- 严禁在细纲中替写手写完整段落的正文。
- 严禁违背既有设定与历史已发生事实。
- 严禁细纲字数超过正文预估字数的 5%(骨架不是压缩梗概)。
1. 先读已确认的上层规划(定盘、大纲、卷纲),下层规划不得与之相悖。 ## 技能与方法单名
2. 查已有设定条目与细纲历史,避免重复或矛盾。
3. 写单章细纲(fine_outline)时,读上一章结尾与本章前后关系,确认承接点。
4. 设定互相咬合:势力用力量阶梯表述,人物在阶梯上有坐标,地点对得上地盘。
5. 形成依赖清单:规划字段与判断都能回指读到的材料;写不出的字段标「字段存疑:原因」。
## Skill 路由 - 概念与题材破题:使用 `` `作品定盘` `` (design-story-foundation)。
- 全书与分卷大纲:使用 `` `全书规划` `` (plan-story)。
- 单章执行细纲:使用 `` `章级细纲` `` (plan-chapter / fine_outline)。
- 只有模糊 idea 或引擎未成形时用 `design-story-foundation`。 ## 边界与授权
- 正式作品设定、大纲和规划修订用 `plan-story`。
- `fine_outline` 场景生成下一章结构细纲,用 `plan-chapter`。
## 工具提示 探索阶段只读授权材料(不写库、不越权读取目标章后未来正文);产出为 Shadow 候选,经确认后方可合入。输入边界与输出字段以角色合同为准。
工具是否实际开放以本次任务包白名单为准。探索只读:不写数据库或框架文件,不读取未授权的目标章或未来信息。
稳定输入边界、输出字段、模型和失败规则见角色合同与对应 Skill。

View File

@ -1,38 +1,40 @@
--- ---
name: writer name: writer
description: 网文写手——负责把当前任务中的创作要求转成正文候选。 description: 写手——负责把当前任务中的创作输入与细纲要求转成高质量正文候选。
skills: write-next-chapter, rewrite-selection, expand-scene, polish-prose skills: write-next-chapter, rewrite-selection, expand-scene, polish-prose
tools: read, grep, find, ls tools: read, grep, find, ls
--- ---
你是网文写手。保持具体、可读、有场景动作的中文表达。 你是写手。坚持具体压倒抽象、名词给实物、动词给动作的高文学密度中文创作。
## 两阶段工作形态 ## 两阶段工作形态
生产写作分为两个阶段,以任务包形态区分,两阶段不得混用行为: 生产写作分为两个阶段,以任务包形态区分,两阶段不得混用行为:
- **探索阶段**:任务包开放只读工具白名单。按下述探索方法自主取材,**不要写正文**;探索完成后按任务包要求输出探索清单(读了什么、为什么需要)。 - **探索阶段**:任务包开放只读工具白名单。按需使用授权只读工具自主取材(明确细纲硬事件、必须出场实体、查角色状态与前文衔接),**不写正文**;探索完成后按任务包要求输出探索清单。
- **生成阶段**:任务包没有任何工具。所需资料已由你探索阶段的成果回放整理进冻结创作输入。**不要调用任何工具**——即使你认为资料不够,也基于已有资料完成创作;在单条回复里一次写完整章正文。 - **生成阶段**:任务包没有任何工具。所需材料已由探索阶段的成果回放整理进生成输入。**不得调用任何工具**;在单条回复里一次写完整章正文。
## 探索方法(探索阶段) ## 指令语义与执行阶梯(Stop Ladder)
动笔前按需使用授权工具自主取材,不依赖别人替你备好全部材料: - **判定条件**:检查输入是否包含本章细纲与叙事状态。细纲缺失或关键事实不明确时立即停止,严禁主观脑补推进主线。
- **执行动作**:
1. 严格按细纲中的硬约束、关键事件因果与章末钩子展开叙事。
2. 运用余华《无心理描写法》:禁止概念化心理名词(“他感到愤怒/恐惧”),一律替换为生理反应、身体动作、视线落点与客观物理环境变化。
3. 运用毕飞宇《小说课》白描与暗劲:对白即行动,禁止教科书式问答,保留人物说话的省略、抢话、打断与潜台词。
4. 运用 Clark 抽象阶梯底层:给具体的物、具体的声音、具体的动作,不堆砌“不禁/似乎/仿佛/嘴角勾起/眼眸”等塑料形容词。
- **数据契约**:在单条回复中输出纯文本正文候选,字数严格满足篇幅要求的上下限。
- **硬性禁止**:
- 严禁删除、反转或提前兑现细纲中的硬约束与伏笔。
- 严禁生成阶段调用任何工具或输出思考元数据。
- 严禁出现破壁叙述与 AI 公文式总结。
1. 先读本章细纲,明确硬事件、必须出场、伏笔动作和章末钩子。 ## 技能与方法单名
2. 查本章涉及人物的状态:谁知道什么、谁经历过什么变化。
3. 读上一章结尾与相关正文段落,衔接当前局面。
4. 能力代价、地点规则、事实细节不明确时,查世界规则与事实证据。
5. 形成自己的依赖清单:读了什么、哪份用来做什么;正文引用必须能回指这份清单。
## Skill 路由 - 续写下一章:使用 `` `生成下一章` `` (write-next-chapter)。
- 重写选定范围:使用 `` `局部重写` `` (rewrite-selection)。
- 场景扩写加厚:使用 `` `场景扩写` `` (expand-scene)。
- 润色与语病修正:使用 `` `正文润色` `` (polish-prose)。
- 续写下一章用 `write-next-chapter`。 ## 边界与授权
- 用户点名改范围或翻案用 `rewrite-selection`。
- 场景变薄但落点不变用 `expand-scene`。
- 只修表达、语病、标点和节奏用 `polish-prose`。
## 工具提示 探索阶段只读授权材料(不写库、不改文件);生成阶段零工具执行,一次性输出完整正文。输入边界与输出字段以角色合同为准。
工具是否实际开放以本次任务包白名单为准;生成阶段白名单为空,即不得调用任何工具。探索只读:不写工作区、不执行 Git、不修改 Canonical、不修改读到的材料。
稳定输入边界、输出字段、模型和失败规则见角色合同与对应 Skill。

View File

@ -31,7 +31,7 @@
- **悬念**:制造时序断裂 + 重新整合 - **悬念**:制造时序断裂 + 重新整合
5. **故事与情节不互相排斥**——优秀小说同时需要两者。先用故事把读者拉进来(激发好奇心),再用情节满足读者(调动头脑)。 5. **故事与情节不互相排斥**——优秀小说同时需要两者。先用故事把读者拉进来(激发好奇心),再用情节满足读者(调动头脑)。
关键认识:故事是低等但不可或缺的;情节是高等但有代价。"你只想要故事 → 像山鲁佐德的暴君丈夫那样,听完就忘;你只想要情节 → 智力有余但缺入口"。两者平衡是写作的关键。() 关键认知:故事基础虽浅却不可缺少;情节立意虽高但伴随代价。"你只想要故事 → 像山鲁佐德的暴君丈夫那样,听完就忘;你只想要情节 → 智力有余但缺入口"。两者平衡是写作的关键。
### 判断标准 ### 判断标准

View File

@ -19,7 +19,7 @@ description: |
# 伏笔与回收 # 伏笔与回收
伏笔是一条完整链路:**登记埋设 → 自然生长 → 兑现/高潮**。三家各管一段:《写作工具》管"显著元素就是借款,必须登记、偿还",《小说课》管"铺垫埋得自然,给读者的接受度修楼梯",《我能否相信自己》管"高潮不是凭空降临,而是从不动声色的细节里长出来"。 伏笔是一条完整链路:**登记埋设 → 自然生长 → 兑现/高潮**。三家各管一段:《写作工具》管"显著元素就是借款,必须登记、偿还",《小说课》管"铺垫埋得自然,给读者的接受度修楼梯",《我能否相信自己》管"高潮从不动声色的细节里生长,不可凭空降临"。
## 方法索引 ## 方法索引

View File

@ -24,7 +24,7 @@ Clark 给出 10 种收尾策略,各条括注为落地释义(中文适配)
- 开放式结局是 10 种策略之一(落在"看向未来 / 留白"一带),不是"无结尾"。 - 开放式结局是 10 种策略之一(落在"看向未来 / 留白"一带),不是"无结尾"。
- **关键判断:这个"开放"是作者有意的,还是无意的?** 有意的开放是设计,无意的开放是没写完。 - **关键判断:这个"开放"是作者有意的,还是无意的?** 有意的开放是设计,无意的开放是没写完。
- **开放式结局也要有"锚点"**:即使是开放式结局,也应有 1 个"锚点"(最后一句 / 最后一个动作)给读者抓住。开放的是答案,不是连抓手也撤掉。 - **开放式结局也要有"锚点"**:即使是开放式结局,也应有 1 个"锚点"(最后一句 / 最后一个动作)给读者抓住。开放的是答案,而非将承重锚点一并撤除。
- 福斯特的补充视角:开放式结局是"叙事结构的特征",而"扩展"是"作者对读者意识的姿态"——前者可以是后者,但不一定是。两者区分详见 references/expansion-completion.md 与 references/pitfalls-and-boundaries.md。 - 福斯特的补充视角:开放式结局是"叙事结构的特征",而"扩展"是"作者对读者意识的姿态"——前者可以是后者,但不一定是。两者区分详见 references/expansion-completion.md 与 references/pitfalls-and-boundaries.md。
- 把"没写完"说成"扩展"是给写作失败辩护,是误区,见 references/pitfalls-and-boundaries.md。 - 把"没写完"说成"扩展"是给写作失败辩护,是误区,见 references/pitfalls-and-boundaries.md。

View File

@ -19,7 +19,7 @@ description: |
# 人物呈现(character-presentation) # 人物呈现(character-presentation)
解决一件事:让人物被读者自己看见,而不是被作者讲给读者——用细节装配登场,让隐秘内在可见,用关系网显性格,用性格碰撞出命运,用反常瞬间翻转身份,让人物发出自己的声音。 解决一件事:让人物呈现在读者眼底,而非由作者灌输——用细节装配登场,让隐秘内在可见,用关系网显性格,用性格碰撞出命运,用反常瞬间翻转身份,让人物发出自己的声音。
## 方法索引 ## 方法索引
@ -34,7 +34,7 @@ description: |
### 让隐秘的内在可见 ### 让隐秘的内在可见
- 人物"真实"的标准不是像现实中的某个人,而是作者对其了如指掌 → references/visible-private-life.md - 人物"真实"的标准在于作者对其了如指掌,而非外形酷肖现实中的某人 → references/visible-private-life.md
- 人物有两面:历史的一面(可观察行为)和虚构的一面(感情、幻想、没说出口的话),好小说必须写后一面 → references/visible-private-life.md - 人物有两面:历史的一面(可观察行为)和虚构的一面(感情、幻想、没说出口的话),好小说必须写后一面 → references/visible-private-life.md
- 可见性分层:基础层是这个人物被写透了,更高一层是人物代表的人性可见 → references/visible-private-life.md - 可见性分层:基础层是这个人物被写透了,更高一层是人物代表的人性可见 → references/visible-private-life.md

View File

@ -32,7 +32,7 @@
- **问题**:余华早期(八十年代)认为人物是作者意图的符号,粗暴地控制人物。 - **问题**:余华早期(八十年代)认为人物是作者意图的符号,粗暴地控制人物。
- **方法论的使用**:写《在细雨中呼喊》时,写着写着突然发现人物开始出现自己的声音。余华"有些惊奇",但他选择尊重这些声音,而不是强行拉回自己的计划。 - **方法论的使用**:写《在细雨中呼喊》时,写着写着突然发现人物开始出现自己的声音。余华"有些惊奇",但他选择尊重这些声音,而不是强行拉回自己的计划。
- **结论**:"我尊重他们的声音,结果证明我做对了。" - **结论**:"我尊重他们的声音,结果证明我做对了。"
- **结果**:这是余华从先锋文学转向平易近人叙述的关键转折。 - **结果**:此事件促成余华从先锋实验转向平实叙述。
### 案例 2:余华《活着》——跨越更高门槛 ### 案例 2:余华《活着》——跨越更高门槛

View File

@ -18,7 +18,7 @@
## 对话是什么:布兰德的三条原则 ## 对话是什么:布兰德的三条原则
布兰德给对话定了三条底层逻辑。 布兰德为对话确立了三项基本原则。
### 原则 1:对话是"喷涌"——在高潮时用 ### 原则 1:对话是"喷涌"——在高潮时用

View File

@ -6,7 +6,7 @@
## 一、设定阶段:视角设定卡 ## 一、设定阶段:视角设定卡
选定视角人物前逐条核对(/bifeiyu-perspective): 选定视角人物前逐条核对:
- [ ] 主视角卡已填:他能看到的(列具体内容)/ 他看不到的(列具体内容)/ 他的判断标准(他怎么看世界) - [ ] 主视角卡已填:他能看到的(列具体内容)/ 他看不到的(列具体内容)/ 他的判断标准(他怎么看世界)
- [ ] 主视角必须有限——他不能看到一切 - [ ] 主视角必须有限——他不能看到一切
@ -20,7 +20,7 @@
## 二、设定与写作中:封闭系统与外来者 ## 二、设定与写作中:封闭系统与外来者
要揭示组织/社区/制度/文化的荒谬或本质时执行(/outsider-perspective): 要揭示组织/社区/制度/文化的荒谬或本质时执行:
- [ ] 要揭示的封闭系统已明确:它是什么(公司/社区/制度/文化/家庭),不合理性/独特性在哪里 - [ ] 要揭示的封闭系统已明确:它是什么(公司/社区/制度/文化/家庭),不合理性/独特性在哪里
- [ ] 外来者角色有明确冲突点:来自哪里、为什么进入、什么习惯/价值观与系统冲突 - [ ] 外来者角色有明确冲突点:来自哪里、为什么进入、什么习惯/价值观与系统冲突
@ -34,7 +34,7 @@
## 三、写作中:看法入侵扫描(怀疑立场) ## 三、写作中:看法入侵扫描(怀疑立场)
通读草稿,逐条执行(/skeptical-narration): 通读草稿,逐条执行:
- [ ] 全文标出作者直接给判断/评价/结论的地方,信号词:"这说明…""由此可见…""真正的…是…""我们应该…"(中文叙述腔里的"这正是人性的悲哀""可见命运弄人"类总结句一并扫描)(后半句为中文适配补充) - [ ] 全文标出作者直接给判断/评价/结论的地方,信号词:"这说明…""由此可见…""真正的…是…""我们应该…"(中文叙述腔里的"这正是人性的悲哀""可见命运弄人"类总结句一并扫描)(后半句为中文适配补充)
- [ ] 每处看法已替换为事实:"他是个虚伪的人" → 说一套做一套的具体细节;"这个社会很冷漠" → 具体的冷漠场景(路人无视摔倒的老人) - [ ] 每处看法已替换为事实:"他是个虚伪的人" → 说一套做一套的具体细节;"这个社会很冷漠" → 具体的冷漠场景(路人无视摔倒的老人)
@ -45,7 +45,7 @@
## 四、修订阶段:确定性与不确定性张力 ## 四、修订阶段:确定性与不确定性张力
故事要让读者回味、在确定与不确定之间徘徊时执行(/certainty-uncertainty-tension): 故事要让读者回味、在确定与不确定之间徘徊时执行:
- [ ] 已选定叙述方向:方向 A(从不确定走向确定,但始终没走到,适合人物关系、秘密、真相类)/ 方向 B(从确定走向不确定,但没成功,适合命运、死亡、不可抗拒类) - [ ] 已选定叙述方向:方向 A(从不确定走向确定,但始终没走到,适合人物关系、秘密、真相类)/ 方向 B(从确定走向不确定,但没成功,适合命运、死亡、不可抗拒类)
- [ ] 确定性锚点在:方向 A 用细节、暗示让读者隐约感觉到真相但叙述永不确认;方向 B 让结局在开头就确定(如"他被判了死刑"),叙述试图推翻它 - [ ] 确定性锚点在:方向 A 用细节、暗示让读者隐约感觉到真相但叙述永不确认;方向 B 让结局在开头就确定(如"他被判了死刑"),叙述试图推翻它
@ -59,7 +59,7 @@
## 五、修订阶段:主线 / 折线标注诊断 ## 五、修订阶段:主线 / 折线标注诊断
手稿主线平铺、折线落不回去、独白插叙用错位置时执行(/mix-narrative-modes): 手稿主线平铺、折线落不回去、独白插叙用错位置时执行:
- [ ] 每段已标注 `SCENE`(主线,事件在动)或 `BREAK`(折线:解释/反思/独白/插叙/意识流/旁白评论) - [ ] 每段已标注 `SCENE`(主线,事件在动)或 `BREAK`(折线:解释/反思/独白/插叙/意识流/旁白评论)
- [ ] 比例合格:全章 SCENE:BREAK 约 2:1,折线不超过全篇 30-40%;一段折线后接 1-2 段 SCENE - [ ] 比例合格:全章 SCENE:BREAK 约 2:1,折线不超过全篇 30-40%;一段折线后接 1-2 段 SCENE
@ -76,10 +76,10 @@
| 症状 | 诊断 | 处方 | | 症状 | 诊断 | 处方 |
|------|------|------| |------|------|------|
| 信息太多、没有秘密 | 视角太全知 | 限制主视角,用盲区藏秘密(一、)() | | 信息太多、没有秘密 | 视角太全知 | 限制主视角,用盲区藏秘密(一、) |
| 批判读起来像说教 | 作者直接下判断 | 换外来者的碰壁与反应呈现(二、)() | | 批判读起来像说教 | 作者直接下判断 | 换外来者的碰壁与反应呈现(二、) |
| 读者反馈"太直白""作者跳出来说话" | 看法入侵 | 看法替换为事实,加"肯定→否定"反转(三、)() | | 读者反馈"太直白""作者跳出来说话" | 看法入侵 | 看法替换为事实,加"肯定→否定"反转(三、) |
| 读完就忘、没有回味 | 只有确定性没有张力 | 选方向 A/B,设锚点和屏障(四、)() | | 读完就忘、没有回味 | 只有确定性没有张力 | 选方向 A/B,设锚点和屏障(四、) |
| 读者困惑"发生了什么" | 只有不确定性没有线索 | 补确定性锚点:有线索但不确认(四、)() | | 读者困惑"发生了什么" | 只有不确定性没有线索 | 补确定性锚点:有线索但不确认(四、) |
| 读者在插叙/独白尾迷路 | 折线没落回场景 | 500 字内回 SCENE,段尾补场景锚(五、)() | | 读者在插叙/独白尾迷路 | 折线没落回场景 | 500 字内回 SCENE,段尾补场景锚(五、) |
| 主线太平、像流水账 | 缺意义层 | 长 SCENE 后加 1 段 altitude(五、)() | | 主线太平、像流水账 | 缺意义层 | 长 SCENE 后加 1 段 altitude(五、) |

View File

@ -4,19 +4,19 @@
## 不适用场景汇总 ## 不适用场景汇总
**scene-mission-driven(/scene-mission-driven)** **scene-mission-driven**
- 场景的进入退出技巧(用 scene-enter-late-exit-early,即本包 [scene-entry-exit.md](scene-entry-exit.md)) - 场景的进入退出技巧(用 scene-enter-late-exit-early,即本包 [scene-entry-exit.md](scene-entry-exit.md))
- 整体结构(用 structure-* 系列,现归 story-structure) - 整体结构(用 structure-* 系列,现归 story-structure)
- 中短篇/单场景——不适用,整个故事 1 个 mission - 中短篇/单场景——不适用,整个故事 1 个 mission
**scene-enter-late-exit-early(/scene-enter-late-exit-early)** **scene-enter-late-exit-early**
- 场景的功能诊断(用 scene-mission-driven,即本包 [scene-mission.md](scene-mission.md)) - 场景的功能诊断(用 scene-mission-driven,即本包 [scene-mission.md](scene-mission.md))
- 文学/意识流(这些场景故意慢,节奏不是快就好) - 文学/意识流(这些场景故意慢,节奏不是快就好)
- 中短篇单场景(没"进入/退出"问题) - 中短篇单场景(没"进入/退出"问题)
**fiction-scene-craft(/fiction-scene-craft)** **fiction-scene-craft**
- 用户不知道怎么写故事——那是整体写作流程问题(原书路由 story-draft-flow,现归 story-planning) - 用户不知道怎么写故事——那是整体写作流程问题(原书路由 story-draft-flow,现归 story-planning)
- 写非虚构/技术文档——没有"场景"概念 - 写非虚构/技术文档——没有"场景"概念
@ -24,14 +24,14 @@
- 写剧本——剧本是按场景写,每一个都是"详写",不需要"详略" - 写剧本——剧本是按场景写,每一个都是"详写",不需要"详略"
- 写长篇(> 30000 字)——短篇的"详略"在长篇里要重新设计(每章有自己的"详略") - 写长篇(> 30000 字)——短篇的"详略"在长篇里要重新设计(每章有自己的"详略")
**cinematic-distances(/cinematic-distances)** **cinematic-distances**
- 纯抒情独白 / 内心独白为主体的章节——这种章节本身就是"全程极端特写",不需要再切距离,切了反而稀释情绪 - 纯抒情独白 / 内心独白为主体的章节——这种章节本身就是"全程极端特写",不需要再切距离,切了反而稀释情绪
- 极短篇(3000 字以下)——篇幅不够切 5 档,强切会显得凌乱;用句子节奏(sentence-rhythm,现归 prose-craft)即可 - 极短篇(3000 字以下)——篇幅不够切 5 档,强切会显得凌乱;用句子节奏(sentence-rhythm,现归 prose-craft)即可
- 学术论文 / 说明文 / 新闻消息——cinematic-distances 是叙事场景的杠杆,非虚构的应用面窄(只在叙事特写、报告文学中适用) - 学术论文 / 说明文 / 新闻消息——cinematic-distances 是叙事场景的杠杆,非虚构的应用面窄(只在叙事特写、报告文学中适用)
- 剧本(用舞台指示)而非小说——剧本已经有"舞台提示"的距离感,文字部分聚焦对话;cinematic-distances 适用于剧本的"场景说明"而非对话本身 - 剧本(用舞台指示)而非小说——剧本已经有"舞台提示"的距离感,文字部分聚焦对话;cinematic-distances 适用于剧本的"场景说明"而非对话本身
**mystification(/mystification)** **mystification**
- 透明性优先的场景——如科学报告、新闻报道、合同;蒙蔽在这里是反价值 - 透明性优先的场景——如科学报告、新闻报道、合同;蒙蔽在这里是反价值
- 刻意展示"思考过程"的场景——如辩论、咨询、教育;让学生/用户看到你的思考是合法目标 - 刻意展示"思考过程"的场景——如辩论、咨询、教育;让学生/用户看到你的思考是合法目标

View File

@ -12,11 +12,9 @@
> >
> — Roy Peter Clark, *Writing Tools* (Tool 34) > — Roy Peter Clark, *Writing Tools* (Tool 34)
(/cinematic-distances)
## 方法核心:五种标准距离 ## 方法核心:五种标准距离
Clark 把"笔"当摄影机,把"叙事段落"当"镜头"。他给出 **5 种标准距离**,每种对应一种叙事功能:(/cinematic-distances) Clark 把"笔"当摄影机,把"叙事段落"当"镜头"。他给出 **5 种标准距离**,每种对应一种叙事功能:
- **鸟瞰(Aerial view)**——"as if standing atop a skyscraper"——交代**位置、整体格局、世界的尺度**。读者需要"知道我们在哪里、事情多大规模"。 - **鸟瞰(Aerial view)**——"as if standing atop a skyscraper"——交代**位置、整体格局、世界的尺度**。读者需要"知道我们在哪里、事情多大规模"。
- **建立镜头(Establishing shot)**——退后一步,带出**场所、氛围、时间感**。读者需要"看见这个房间 / 这条街 / 这一刻"。 - **建立镜头(Establishing shot)**——退后一步,带出**场所、氛围、时间感**。读者需要"看见这个房间 / 这条街 / 这一刻"。
@ -24,11 +22,11 @@ Clark 把"笔"当摄影机,把"叙事段落"当"镜头"。他给出 **5 种标
- **特写(Close-up)**——"close enough to detect anger, fear, dread, sorrow, irony"——推到**情绪/心理层**。读者需要"看见人物此刻的状态"。 - **特写(Close-up)**——"close enough to detect anger, fear, dread, sorrow, irony"——推到**情绪/心理层**。读者需要"看见人物此刻的状态"。
- **极端特写(Extreme close-up)**——"focuses on an important detail that would be invisible from a distance"——聚焦**一个若不从极近看就看不见的细节**(流氓小指上的戒指、杯沿的唇印、鞋底的泥土)。读者需要"抓住这个物件/这个符号"。 - **极端特写(Extreme close-up)**——"focuses on an important detail that would be invisible from a distance"——聚焦**一个若不从极近看就看不见的细节**(流氓小指上的戒指、杯沿的唇印、鞋底的泥土)。读者需要"抓住这个物件/这个符号"。
Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记本变成摄影机,5 档焦距随时切换。(/cinematic-distances) Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记本变成摄影机,5 档焦距随时切换。
**判定方法**:每写完一段,问"**我现在用的是哪一档**"。Clark 自己的标准示范是:**一段之内出现 4 种距离**——这是高水平叙事的常规,不是炫技。(/cinematic-distances) **判定方法**:每写完一段,问"**我现在用的是哪一档**"。Clark 自己的标准示范是:**一段之内出现 4 种距离**——这是高水平叙事的常规,不是炫技。
**为什么大多数人只敢写中景?** 因为中景是"安全的叙述者距离",作者躲在这里不用冒险;但场景扁平、读者视觉疲劳、远无交代近无情绪。(/cinematic-distances) **为什么大多数人只敢写中景?** 因为中景是"安全的叙述者距离",作者躲在这里不用冒险;但场景扁平、读者视觉疲劳、远无交代近无情绪。
**与叙事模式开关的关系**:Tool 36 的"折线 / 不断线"是这一工具的延伸——什么时候"拉远做解释/反思"(折线),什么时候"推回场景中"(不断线),本质也是"距离切换",只是从"远-近"扩展到"内-外"。(叙述模式本身归 narration-pov 域,见/cinematic-distances) **与叙事模式开关的关系**:Tool 36 的"折线 / 不断线"是这一工具的延伸——什么时候"拉远做解释/反思"(折线),什么时候"推回场景中"(不断线),本质也是"距离切换",只是从"远-近"扩展到"内-外"。(叙述模式本身归 narration-pov 域,见/cinematic-distances)
@ -41,8 +39,6 @@ Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记
- **结论**:一个场景的"画面感"不靠形容词,靠**焦距调度**——读者在不同尺度上**重新看见**同一场景,获得空间感、情绪感、象征感。 - **结论**:一个场景的"画面感"不靠形容词,靠**焦距调度**——读者在不同尺度上**重新看见**同一场景,获得空间感、情绪感、象征感。
- **结果**:成为了"5 距离切换"的金标准示范;说明场景的"调度感"是**可数、可练**的工艺,不是天赋。 - **结果**:成为了"5 距离切换"的金标准示范;说明场景的"调度感"是**可数、可练**的工艺,不是天赋。
(/cinematic-distances)
### 案例 2:莎士比亚《哈姆雷特》"生存还是毁灭"独白 ### 案例 2:莎士比亚《哈姆雷特》"生存还是毁灭"独白
- **问题**:主角在动作进行中需要"内心独白"——但独白会**打断动作链**;若直接插入独白,叙事节奏断裂。 - **问题**:主角在动作进行中需要"内心独白"——但独白会**打断动作链**;若直接插入独白,叙事节奏断裂。
@ -50,8 +46,6 @@ Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记
- **结论**:极端特写是混合叙事模式(折线 / 不断线)的**视觉表现**——什么时候拉远(交代)、什么时候推近(情绪),由"读者此刻需要什么"决定。 - **结论**:极端特写是混合叙事模式(折线 / 不断线)的**视觉表现**——什么时候拉远(交代)、什么时候推近(情绪),由"读者此刻需要什么"决定。
- **结果**:成为了 cinematic-distances 与 mix-narrative-modes 的**共同金标准**;说明两种工具(空间距离 / 叙事模式)在高手笔下是**同一种调度的两个面**。 - **结果**:成为了 cinematic-distances 与 mix-narrative-modes 的**共同金标准**;说明两种工具(空间距离 / 叙事模式)在高手笔下是**同一种调度的两个面**。
(/cinematic-distances)
## 可执行步骤 ## 可执行步骤
1. **诊断当前距离分布** 1. **诊断当前距离分布**
@ -72,11 +66,9 @@ Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记
- 判停条件:把鸟瞰当"省力"——一段不写的"空"段不叫鸟瞰,鸟瞰仍要**有具体内容**(晨光、街景、季节变化)。 - 判停条件:把鸟瞰当"省力"——一段不写的"空"段不叫鸟瞰,鸟瞰仍要**有具体内容**(晨光、街景、季节变化)。
- 这一条同时是全书节奏手段,见 [scene-rhythm.md](scene-rhythm.md)。 - 这一条同时是全书节奏手段,见 [scene-rhythm.md](scene-rhythm.md)。
(/cinematic-distances)
## 激活场景与语言信号 ## 激活场景与语言信号
适用范围(源单元 frontmatter「适用于」清单原样承接):小说场景戏、动作戏、对质戏、人物登场段、群像、回忆与现实切换、长篇中段的节奏"换气"段。(/cinematic-distances) 适用范围(源单元 frontmatter「适用于」清单原样承接):小说场景戏、动作戏、对质戏、人物登场段、群像、回忆与现实切换、长篇中段的节奏"换气"段。
用户会在这些情境下需要这条方法: 用户会在这些情境下需要这条方法:
@ -86,7 +78,7 @@ Clark 的核心命令:**"Turn your notebook into a camera."**——把笔记
4. 长篇中段读者弃读,作者想"换气"——一个"鸟瞰 / 建立镜头"段落能制造**节奏的窗口**,让读者重新定位。 4. 长篇中段读者弃读,作者想"换气"——一个"鸟瞰 / 建立镜头"段落能制造**节奏的窗口**,让读者重新定位。
5. 写动作戏 / 战斗 / 追逐,作者发现"画面乱"——可能是 5 档切得太快,失去空间锚点,需要**先建立中景再换档**。 5. 写动作戏 / 战斗 / 追逐,作者发现"画面乱"——可能是 5 档切得太快,失去空间锚点,需要**先建立中景再换档**。
语言信号:"场景扁平 / 没画面感 / 像监控录像"、"全程中景 / 不会换距离 / 焦距不会切"、"镜头距离 / 摄影机距离 / cinematic angles / cinematic distances"、"拉远推近 / 远景中景特写 / 鸟瞰 / 建立镜头"、"读者看不到空间 / 读者走神"、"写场景像流水账 / 调度感不够"、"Turn your notebook into a camera / 把笔记本变成摄影机"、"show, don't tell 但 show 不出来"。(/cinematic-distances) 语言信号:"场景扁平 / 没画面感 / 像监控录像"、"全程中景 / 不会换距离 / 焦距不会切"、"镜头距离 / 摄影机距离 / cinematic angles / cinematic distances"、"拉远推近 / 远景中景特写 / 鸟瞰 / 建立镜头"、"读者看不到空间 / 读者走神"、"写场景像流水账 / 调度感不够"、"Turn your notebook into a camera / 把笔记本变成摄影机"、"show, don't tell 但 show 不出来"。
## 中文落地(中文适配) ## 中文落地(中文适配)

View File

@ -18,13 +18,11 @@
> >
> — 多萝西娅·布兰德,《成为作家》第十章 > — 多萝西娅·布兰德,《成为作家》第十章
(/fiction-scene-craft)
这段原文同时给出了本文件的四个技术:数他几字(一百五十字)、不重要的过渡("第二天康拉德如此这般")、惯性场景("你也许需要六百字, 只是因为你没法停下来不写他")、动作词间接描写("表达动作的词")。 这段原文同时给出了本文件的四个技术:数他几字(一百五十字)、不重要的过渡("第二天康拉德如此这般")、惯性场景("你也许需要六百字, 只是因为你没法停下来不写他")、动作词间接描写("表达动作的词")。
## 核心判断:这个场景,该详写还是略写? ## 核心判断:这个场景,该详写还是略写?
这是场景写作的中心问题。(/fiction-scene-craft) 这是场景写作的中心问题。
- **详写**:给"读者**必须**知道/感受"的内容 - **详写**:给"读者**必须**知道/感受"的内容
- **略写**:给"读者**不需要**知道/感受"的内容(但你**自己**要懂) - **略写**:给"读者**不需要**知道/感受"的内容(但你**自己**要懂)
@ -33,8 +31,6 @@
- 核心 = 推进 / 过渡 / 背景 — 略写 - 核心 = 推进 / 过渡 / 背景 — 略写
- 核心 = 节奏 / 呼吸 / 对比 — 看情况 - 核心 = 节奏 / 呼吸 / 对比 — 看情况
(/fiction-scene-craft)
注意:这把"读者必须知道/不需要知道"的尺子,和晚进入早退出的进出判断是同一把尺子——进入问"读者还不知道什么",退出问"读者已经知道什么",见 [scene-entry-exit.md](scene-entry-exit.md)。 注意:这把"读者必须知道/不需要知道"的尺子,和晚进入早退出的进出判断是同一把尺子——进入问"读者还不知道什么",退出问"读者已经知道什么",见 [scene-entry-exit.md](scene-entry-exit.md)。
## 四个具体技术(怎么决定详写/略写) ## 四个具体技术(怎么决定详写/略写)
@ -47,8 +43,6 @@
- **关键**:不是"模仿他的字数",是"用他的字数来校准自己的判断" - **关键**:不是"模仿他的字数",是"用他的字数来校准自己的判断"
- 布兰德的洞察:**好的作家能"感觉到"一个场景需要多少字**——你在练习中校准 - 布兰德的洞察:**好的作家能"感觉到"一个场景需要多少字**——你在练习中校准
(/fiction-scene-craft)
### 技术 2:"不重要的场景用 3 个字" ### 技术 2:"不重要的场景用 3 个字"
- 不重要的过渡,**3 个字**就够:"第二天。" - 不重要的过渡,**3 个字**就够:"第二天。"
@ -56,8 +50,6 @@
- 为什么:**读者的注意力是有限的**,不重要的场景详写 = 失重 - 为什么:**读者的注意力是有限的**,不重要的场景详写 = 失重
- 例外:如果"不重要场景"本身有**隐喻功能**(如"三天三夜的雨"),详写 - 例外:如果"不重要场景"本身有**隐喻功能**(如"三天三夜的雨"),详写
(/fiction-scene-craft)
### 技术 3:"必须停下来写"(惯性) ### 技术 3:"必须停下来写"(惯性)
- 有时,**一旦开始写一个场景,就停不下来** - 有时,**一旦开始写一个场景,就停不下来**
@ -67,8 +59,6 @@
- 影响 → 留下(即使看起来不重要) - 影响 → 留下(即使看起来不重要)
- 不影响 → 删到 3 个字 - 不影响 → 删到 3 个字
(/fiction-scene-craft)
### 技术 4:"动作词代替叙述" ### 技术 4:"动作词代替叙述"
- 略写的场景,不是"略去",是"用动作/感官词概括" - 略写的场景,不是"略去",是"用动作/感官词概括"
@ -77,8 +67,6 @@
- 动作词 = 1-3 个字,暗示了"想了很久 + 决定 + 行动" - 动作词 = 1-3 个字,暗示了"想了很久 + 决定 + 行动"
- **怎么练**:每个略写场景,找 1-2 个**动作/感官**词概括 - **怎么练**:每个略写场景,找 1-2 个**动作/感官**词概括
(/fiction-scene-craft)
## 五个常见错误(场景写作的陷阱) ## 五个常见错误(场景写作的陷阱)
1. **"过渡场景写太多"**——"不重要"的过渡场景详写,浪费字数,失重,读者疲倦。**修**:减到 3 个字,或"动作词概括"。 1. **"过渡场景写太多"**——"不重要"的过渡场景详写,浪费字数,失重,读者疲倦。**修**:减到 3 个字,或"动作词概括"。
@ -87,8 +75,6 @@
4. **"不知道详写哪些"**——写什么都想"完整描述",没有取舍。**修**:每次只详写**当前冲突的核心**,其他略过。 4. **"不知道详写哪些"**——写什么都想"完整描述",没有取舍。**修**:每次只详写**当前冲突的核心**,其他略过。
5. **"模仿别人的字数但不知道判断"**——数了海明威 150 字,但不知道**为什么**是 150,不是 50 或 500。**修**:把"数"当作**校准**,不是"模仿";问自己"这个场景,150 字够吗?" 5. **"模仿别人的字数但不知道判断"**——数了海明威 150 字,但不知道**为什么**是 150,不是 50 或 500。**修**:把"数"当作**校准**,不是"模仿";问自己"这个场景,150 字够吗?"
(/fiction-scene-craft)
## 案例 ## 案例
### 案例 1:布兰德的"数他几字"——校准判断 ### 案例 1:布兰德的"数他几字"——校准判断
@ -98,8 +84,6 @@
- **结论**:用**他的字数**作为校准,不是模仿 - **结论**:用**他的字数**作为校准,不是模仿
- **结果**:学会"感觉"一个场景该用多少字 - **结果**:学会"感觉"一个场景该用多少字
(/fiction-scene-craft)
### 案例 2:布兰德的"不重要 = 3 个字"——简略过渡 ### 案例 2:布兰德的"不重要 = 3 个字"——简略过渡
- **问题**:过渡场景写太多,失重 - **问题**:过渡场景写太多,失重
@ -107,8 +91,6 @@
- **结论**:过渡是节奏的"屏息",不是另一个场景 - **结论**:过渡是节奏的"屏息",不是另一个场景
- **结果**:故事节奏紧凑,详略得当 - **结果**:故事节奏紧凑,详略得当
(/fiction-scene-craft)
### 案例 3:福特的方法——知道一切 ### 案例 3:福特的方法——知道一切
- **问题**:不知道详写哪些细节 - **问题**:不知道详写哪些细节
@ -116,8 +98,6 @@
- **结论**:你**知道**得越多,你的**判断**越准——该详写哪些,你知道 - **结论**:你**知道**得越多,你的**判断**越准——该详写哪些,你知道
- **结果**:写出来的人物动作**可信**,因为作者知道每个细节 - **结果**:写出来的人物动作**可信**,因为作者知道每个细节
(/fiction-scene-craft)
## 可执行步骤(单篇详略安排) ## 可执行步骤(单篇详略安排)
1. **诊断:用户的场景问题在哪** 1. **诊断:用户的场景问题在哪**
@ -144,8 +124,6 @@
- 完成标准:写完后立刻放一边,至少隔一夜再看 - 完成标准:写完后立刻放一边,至少隔一夜再看
- 这条纪律原挂 set-aside-the-manuscript(作者状态管理,已按合并计划裁剪,不入 skill 库),纪律本身保留 - 这条纪律原挂 set-aside-the-manuscript(作者状态管理,已按合并计划裁剪,不入 skill 库),纪律本身保留
(/fiction-scene-craft)
配表使用:场景逐场登记见 [../references/scene-ledger-template.md](../references/scene-ledger-template.md)。 配表使用:场景逐场登记见 [../references/scene-ledger-template.md](../references/scene-ledger-template.md)。
## 激活场景与语言信号 ## 激活场景与语言信号
@ -161,7 +139,7 @@
7. "我描写太多/对话太多"——比例问题 7. "我描写太多/对话太多"——比例问题
8. "我过渡生硬"——衔接问题 8. "我过渡生硬"——衔接问题
语言信号:"场景切换"、"节奏拖沓"、"详写略写"、"字数安排"、"描写太多"、"过渡生硬"、"我故事太平"、"我场景写太多"。(/fiction-scene-craft) 语言信号:"场景切换"、"节奏拖沓"、"详写略写"、"字数安排"、"描写太多"、"过渡生硬"、"我故事太平"、"我场景写太多"。
## 中文落地(中文适配) ## 中文落地(中文适配)

View File

@ -9,11 +9,9 @@
> >
> — Larry Brooks, *Story Engineering* (2011), Part 6 > — Larry Brooks, *Story Engineering* (2011), Part 6
(/scene-enter-late-exit-early)
## 方法核心 ## 方法核心
进入场景时跳过所有铺垫到戏剧爆发的瞬间;退出场景时在戏剧张力释放完的瞬间立刻离开。看似太简单,却是"你放不下这本书"的最强工具之一。(/scene-enter-late-exit-early) 进入场景时跳过所有铺垫到戏剧爆发的瞬间;退出场景时在戏剧张力释放完的瞬间立刻离开。看似太简单,却是"你放不下这本书"的最强工具之一。
**晚进入(Enter Late)**: **晚进入(Enter Late)**:
@ -27,23 +25,17 @@
- 跳到:戏剧张力释放完的瞬间(角色做出决定 / 真相浮出) - 跳到:戏剧张力释放完的瞬间(角色做出决定 / 真相浮出)
- 例:不用写"主角说: '我决定这么做', 朋友说: '好的', 两人离开";跳到主角做出决定, 立刻切下一场景 - 例:不用写"主角说: '我决定这么做', 朋友说: '好的', 两人离开";跳到主角做出决定, 立刻切下一场景
(/scene-enter-late-exit-early)
**为什么有效**: **为什么有效**:
- 读者时间宝贵,不能浪费 - 读者时间宝贵,不能浪费
- 戏剧张力 = 读者"想知道下一步",早退场 = 把这个想知道带到下一场景 - 戏剧张力 = 读者"想知道下一步",早退场 = 把这个想知道带到下一场景
- 进入晚 = 不浪费"读者已经知道的事" - 进入晚 = 不浪费"读者已经知道的事"
(/scene-enter-late-exit-early)
**判断标准**: **判断标准**:
- 进入:"读者还不知道什么?" = 跳到那 - 进入:"读者还不知道什么?" = 跳到那
- 退出:"读者已经知道什么?" = 立刻退出 - 退出:"读者已经知道什么?" = 立刻退出
(/scene-enter-late-exit-early)
这把"读者知道/不知道"的尺子和详略判断是同一把,见 [scene-detail.md](scene-detail.md)。 这把"读者知道/不知道"的尺子和详略判断是同一把,见 [scene-detail.md](scene-detail.md)。
**风险**: **风险**:
@ -52,8 +44,6 @@
- 太早退出 = 戏剧没爆发 = 场景没 mission - 太早退出 = 戏剧没爆发 = 场景没 mission
- 需要配合 scene-mission-driven 使用:先确认场景有东西可爆(使命),再谈从哪里剪(见 [scene-mission.md](scene-mission.md)) - 需要配合 scene-mission-driven 使用:先确认场景有东西可爆(使命),再谈从哪里剪(见 [scene-mission.md](scene-mission.md))
(/scene-enter-late-exit-early)
## 案例 ## 案例
### 案例 1:书中直接对比——去前妻家 ### 案例 1:书中直接对比——去前妻家
@ -63,8 +53,6 @@
- **方式 B(晚入早出)**:跳到"前妻的车在车道, 主角心沉, 决定不停下" - **方式 B(晚入早出)**:跳到"前妻的车在车道, 主角心沉, 决定不停下"
- **结论**:方式 B 更紧凑,戏剧更强 - **结论**:方式 B 更紧凑,戏剧更强
(/scene-enter-late-exit-early)
### 案例 2:反例——进入太早 ### 案例 2:反例——进入太早
- **问题**:写作者 3 页写主角"开车去公司, 停车, 电梯, 跟同事打招呼, 坐下" - **问题**:写作者 3 页写主角"开车去公司, 停车, 电梯, 跟同事打招呼, 坐下"
@ -72,8 +60,6 @@
- **方法**:跳到"主角到公司, 接到关键电话" - **方法**:跳到"主角到公司, 接到关键电话"
- **结果**:3 页变 0.5 页,节奏紧凑 - **结果**:3 页变 0.5 页,节奏紧凑
(/scene-enter-late-exit-early)
### 案例 3:反例——退出太晚 ### 案例 3:反例——退出太晚
- **问题**:戏剧决策已做,但写作者继续写 2 页"角色思考决定, 跟助手讨论, 跟家人打电话" - **问题**:戏剧决策已做,但写作者继续写 2 页"角色思考决定, 跟助手讨论, 跟家人打电话"
@ -81,8 +67,6 @@
- **方法**:跳到"决定已做, 切下一场景" - **方法**:跳到"决定已做, 切下一场景"
- **结果**:2 页变 0.5 页,节奏紧凑 - **结果**:2 页变 0.5 页,节奏紧凑
(/scene-enter-late-exit-early)
## 可执行步骤(单场景剪切) ## 可执行步骤(单场景剪切)
1. **选 1 个场景** 1. **选 1 个场景**
@ -101,8 +85,6 @@
- 完成标准:列出"删多少字/段" - 完成标准:列出"删多少字/段"
- 注意:删不是粗暴,是用"白空间/换行"暗示场景切换 - 注意:删不是粗暴,是用"白空间/换行"暗示场景切换
(/scene-enter-late-exit-early)
## 激活场景与语言信号 ## 激活场景与语言信号
用户会在这些情境下需要这条方法: 用户会在这些情境下需要这条方法:
@ -112,15 +94,13 @@
3. **新场景建**:"场景怎么进入/退出?" 3. **新场景建**:"场景怎么进入/退出?"
4. **教学**:"教学生写紧凑场景" 4. **教学**:"教学生写紧凑场景"
语言信号:"晚进入 / 早退出 / enter late leave early"、"场景紧凑 / 场景节奏 / 场景不拖"、"场景开头 / 场景结尾"、"怎么进入场景 / 怎么退出场景"。(/scene-enter-late-exit-early) 语言信号:"晚进入 / 早退出 / enter late leave early"、"场景紧凑 / 场景节奏 / 场景不拖"、"场景开头 / 场景结尾"、"怎么进入场景 / 怎么退出场景"。
## 与相邻方法的分工 ## 与相邻方法的分工
- **scene-mission-driven**(同包 [scene-mission.md](scene-mission.md)):管"场景功能"(做什么);本方法管"场景节奏"(快慢、剪切点)。 - **scene-mission-driven**(同包 [scene-mission.md](scene-mission.md)):管"场景功能"(做什么);本方法管"场景节奏"(快慢、剪切点)。
- **structure-\***(现归 story-structure):管"整体结构",不管单场景剪切。 - **structure-\***(现归 story-structure):管"整体结构",不管单场景剪切。
(/scene-enter-late-exit-early)
## 中文落地(中文适配) ## 中文落地(中文适配)
原文说的"白空间/换行"暗示场景切换,在中文小说里对应空一行、分节符、或直接一句独立成段的时空跳转(如"三个月后。",见 [scene-rhythm.md](scene-rhythm.md) 的过渡条)。中文传统里的留白与分节天然承接晚入早出:删掉的路上工夫不写,读者自会补上。(中文适配;依据 story-engineering/scene-enter-late-exit-early 与 becoming-a-writer/fiction-scene-craft) 原文说的"白空间/换行"暗示场景切换,在中文小说里对应空一行、分节符、或直接一句独立成段的时空跳转(如"三个月后。",见 [scene-rhythm.md](scene-rhythm.md) 的过渡条)。中文传统里的留白与分节天然承接晚入早出:删掉的路上工夫不写,读者自会补上。(中文适配;依据 story-engineering/scene-enter-late-exit-early 与 becoming-a-writer/fiction-scene-craft)

View File

@ -13,11 +13,11 @@
## 填表规则 ## 填表规则
1. **场景名**:每场一个名字("第一次见面" / "三个月后" / "重逢"),列不出名字的场景先怀疑它没有存在的理由。(/fiction-scene-craft) 1. **场景名**:每场一个名字("第一次见面" / "三个月后" / "重逢"),列不出名字的场景先怀疑它没有存在的理由。
2. **使命**:一句话回答"这个场景让故事前进了什么",说不清 = 无使命,处置列写"删/并";一场写出两件事 = 处置列写"拆"。(/scene-mission-driven) 2. **使命**:一句话回答"这个场景让故事前进了什么",说不清 = 无使命,处置列写"删/并";一场写出两件事 = 处置列写"拆"。
3. **使命类型**:信息型 / 决策型 / 动作型 三选一,不要造第四种;内心独白场景归信息型(角色领悟)。(/scene-mission-driven) 3. **使命类型**:信息型 / 决策型 / 动作型 三选一,不要造第四种;内心独白场景归信息型(角色领悟)。
4. **详/略与字数**:核心是冲突/转变/启示就详写,推进/过渡/背景就略写;全篇详写场景合计约占 5%-15% 字数,略写 1-3 个字或一段。(/fiction-scene-craft) 4. **详/略与字数**:核心是冲突/转变/启示就详写,推进/过渡/背景就略写;全篇详写场景合计约占 5%-15% 字数,略写 1-3 个字或一段。
5. **节奏模式位置**:先看全篇落在紧-紧-紧 / 详-略-详 / 略-略-详 哪一种,再标每场在模式里的位置;相邻三场全详或全略 = 节奏警报。(/fiction-scene-craft) 5. **节奏模式位置**:先看全篇落在紧-紧-紧 / 详-略-详 / 略-略-详 哪一种,再标每场在模式里的位置;相邻三场全详或全略 = 节奏警报。
6. **进入点/退出点**:进入 = 读者还不知道什么就跳到哪;退出 = 读者需要知道的都知道了就切。只填时刻,不填过程。(/scene-enter-late-exit-early) 6. **进入点/退出点**:进入 = 读者还不知道什么就跳到哪;退出 = 读者需要知道的都知道了就切。只填时刻,不填过程。
7. **主要镜头距离与关键瞬间**:逐段标五档后写主档;死亡/告白/揭露这类关键瞬间单独登记指派距离,关键瞬间停在中景 = 重新设计。(/cinematic-distances) 7. **主要镜头距离与关键瞬间**:逐段标五档后写主档;死亡/告白/揭露这类关键瞬间单独登记指派距离,关键瞬间停在中景 = 重新设计。
8. **统计口径**(填完整张表后核对):无使命场景 ≥ 2 = 删或并;中景占比 ≥ 60% = 练拉远推近;高潮场被标"略" = 先改详略。(三个源单元的判停条件) 8. **统计口径**(填完整张表后核对):无使命场景 ≥ 2 = 删或并;中景占比 ≥ 60% = 练拉远推近;高潮场被标"略" = 先改详略。(三个源单元的判停条件)

View File

@ -9,11 +9,9 @@
> >
> — Larry Brooks, *Story Engineering* (2011), Part 6 > — Larry Brooks, *Story Engineering* (2011), Part 6
(/scene-mission-driven)
## 方法核心 ## 方法核心
每个场景必须有一个**戏剧使命(mission)**——交付一条关键信息,或做出一个关键决策,或推动一个关键情节节点。一个场景 1 个 mission;多个 mission = 戏剧张力稀释。(/scene-mission-driven) 每个场景必须有一个**戏剧使命(mission)**——交付一条关键信息,或做出一个关键决策,或推动一个关键情节节点。一个场景 1 个 mission;多个 mission = 戏剧张力稀释。
**Mission 的 3 种类型**: **Mission 的 3 种类型**:
@ -21,7 +19,7 @@
2. **决策型**:角色在场景内做出一个不可逆决定 2. **决策型**:角色在场景内做出一个不可逆决定
3. **动作型**:场景推进情节 / 改变主角状态 3. **动作型**:场景推进情节 / 改变主角状态
**3 类的共同点**:改变故事的下一步走向。(/scene-mission-driven) **3 类的共同点**:改变故事的下一步走向。
**为什么 1 个 mission**: **为什么 1 个 mission**:
@ -29,21 +27,17 @@
- 每个 mission 都削弱其他 mission 的冲击力 - 每个 mission 都削弱其他 mission 的冲击力
- 1 个 mission = 读者每次被打动 1 次,印象深 - 1 个 mission = 读者每次被打动 1 次,印象深
(/scene-mission-driven)
**操作法**: **操作法**:
- 写场景前,用 1 句话回答"这个场景让故事前进了什么" - 写场景前,用 1 句话回答"这个场景让故事前进了什么"
- 写场景后,再用 1 句话验证 - 写场景后,再用 1 句话验证
- 说不清 = 这个场景删 / 并 - 说不清 = 这个场景删 / 并
(/scene-mission-driven) **使命的量级标准**:mission 必须达到"改变故事走向"的量级,"角色出门"这种不算 mission。
**使命的量级标准**:mission 必须达到"改变故事走向"的量级,"角色出门"这种不算 mission。(/scene-mission-driven) **反例**:"这个场景让角色思考了,之后她做决定"——思考 + 决定 = 2 mission,拆。
**反例**:"这个场景让角色思考了,之后她做决定"——思考 + 决定 = 2 mission,拆。(/scene-mission-driven) **内心独白场景怎么算**:mission 默认是"看得见"的,但内心独白场景也有 mission,归入信息型——角色领悟了某件事。
**内心独白场景怎么算**:mission 默认是"看得见"的,但内心独白场景也有 mission,归入信息型——角色领悟了某件事。(/scene-mission-driven)
## 案例 ## 案例
@ -58,9 +52,7 @@
- …… 一直到高潮,1 mission/章 - …… 一直到高潮,1 mission/章
- **结果**:验证了"每场景 1 mission"的可读性优势 - **结果**:验证了"每场景 1 mission"的可读性优势
(/scene-mission-driven) 注意:帕特森式"一场一使命、一章一场"是极致做法,不是唯一正确的写法,见下文误区。
注意:帕特森式"一场一使命、一章一场"是极致做法,不是唯一正确的写法,见下文误区。(/scene-mission-driven)
### 案例 2:反例——写作者 1 场景塞 3 件事 ### 案例 2:反例——写作者 1 场景塞 3 件事
@ -69,8 +61,6 @@
- **方法**:拆成 3 场景,每个 1 mission - **方法**:拆成 3 场景,每个 1 mission
- **结果**:故事节奏加快,戏剧强度提升 - **结果**:故事节奏加快,戏剧强度提升
(/scene-mission-driven)
### 案例 3:反例——1 场景无 mission ### 案例 3:反例——1 场景无 mission
- **问题**:1 场景里角色在咖啡馆,描述环境,角色想,角色离开,什么都没发生 - **问题**:1 场景里角色在咖啡馆,描述环境,角色想,角色离开,什么都没发生
@ -78,8 +68,6 @@
- **方法**:删场景,或并入相邻场景 - **方法**:删场景,或并入相邻场景
- **结果**:小说变紧凑 - **结果**:小说变紧凑
(/scene-mission-driven)
## 可执行步骤(整篇/整段场景改稿) ## 可执行步骤(整篇/整段场景改稿)
1. **列出所有场景** 1. **列出所有场景**
@ -97,8 +85,6 @@
5. **改稿** 5. **改稿**
- 完成标准:列出"删哪些 / 拆哪些 / 并哪些" - 完成标准:列出"删哪些 / 拆哪些 / 并哪些"
(/scene-mission-driven)
配表使用:场景逐场登记可用 [../references/scene-ledger-template.md](../references/scene-ledger-template.md),改稿逐关过用 [../references/scene-revision-checklist.md](../references/scene-revision-checklist.md)。 配表使用:场景逐场登记可用 [../references/scene-ledger-template.md](../references/scene-ledger-template.md),改稿逐关过用 [../references/scene-revision-checklist.md](../references/scene-revision-checklist.md)。
## 激活场景与语言信号 ## 激活场景与语言信号
@ -110,13 +96,13 @@
3. **节奏优化**:"我的小说拖,怎么改?" 3. **节奏优化**:"我的小说拖,怎么改?"
4. **改稿**:"我写完一稿,怎么诊断场景?" 4. **改稿**:"我写完一稿,怎么诊断场景?"
语言信号:"场景任务 / 场景使命 / scene mission"、"这个场景有什么用 / 场景为什么"、"场景太多 / 场景散 / 小说拖"、"场景诊断 / 1 个场景 1 件事"。(/scene-mission-driven) 语言信号:"场景任务 / 场景使命 / scene mission"、"这个场景有什么用 / 场景为什么"、"场景太多 / 场景散 / 小说拖"、"场景诊断 / 1 个场景 1 件事"。
## 本单元的误区提醒 ## 本单元的误区提醒
1. **把"1 场景 1 mission"当教条**:Patterson 风格是极致做法,不是唯一正确,不要拿它苛责一切写法。(/scene-mission-driven) 1. **把"1 场景 1 mission"当教条**:Patterson 风格是极致做法,不是唯一正确,不要拿它苛责一切写法。
2. **Mission 太小**:如"角色出门"——mission 必须"改变故事走向"才算数。(/scene-mission-driven) 2. **Mission 太小**:如"角色出门"——mission 必须"改变故事走向"才算数。
3. **乱造 mission 变体**:集中于"信息 / 决策 / 动作"3 种,不要造新类。(/scene-mission-driven) 3. **乱造 mission 变体**:集中于"信息 / 决策 / 动作"3 种,不要造新类。
更多边界(不适用场景、盲点、易混方法)见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md)。 更多边界(不适用场景、盲点、易混方法)见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md)。

View File

@ -13,11 +13,9 @@
> >
> — E. M. 福斯特, 《小说面面观》第四讲 人物(续) / 第五讲 情节 > — E. M. 福斯特, 《小说面面观》第四讲 人物(续) / 第五讲 情节
(/mystification)
## 方法核心 ## 方法核心
福斯特在评论技巧中提出的**核心方法**:视角转换/扁平/圆形人物/碎片化逻辑/模式等等技术手段,真正重要的不是"我用了哪几种",而是"我有没有**蒙蔽**读者的感知,让一切显得自然"。(/mystification) 福斯特在评论技巧中提出的**核心方法**:视角转换/扁平/圆形人物/碎片化逻辑/模式等等技术手段,真正重要的不是"我用了哪几种",而是"我有没有**蒙蔽**读者的感知,让一切显得自然"。
**核心操作**: **核心操作**:
@ -33,9 +31,7 @@
4. **危险的"作者亲临"**——福斯特明示:把读者领进幕后("A 看着不错吧——我一直都特别喜欢她","让我们来猜猜 B 为什么要这么做")破坏想象空间和尊严。"就像是只许人站着喝酒, 这样他们就没工夫批评你的想法了。" 4. **危险的"作者亲临"**——福斯特明示:把读者领进幕后("A 看着不错吧——我一直都特别喜欢她","让我们来猜猜 B 为什么要这么做")破坏想象空间和尊严。"就像是只许人站着喝酒, 这样他们就没工夫批评你的想法了。"
5. **"蒙蔽"和"欺骗"的区别**——蒙蔽是"让拼装不刺眼",欺骗是"让内容失真"。前者是技术,后者是道德。 5. **"蒙蔽"和"欺骗"的区别**——蒙蔽是"让拼装不刺眼",欺骗是"让内容失真"。前者是技术,后者是道德。
(/mystification) **关键认识**:福斯特把"蒙蔽读者"作为小说这一艺术形式的**最大优势之一**。这与现实生活的"间歇性认知"一致——我们有时候比其他人傻,我们偶尔可以理解别人的心思但并不总能如此。这种间歇性确保了我们有能力迎接更多彩多样的各色体验。**小说家对人物也是时松时紧,有冷有热**,这是合法且必要的。
**关键认识**:福斯特把"蒙蔽读者"作为小说这一艺术形式的**最大优势之一**。这与现实生活的"间歇性认知"一致——我们有时候比其他人傻,我们偶尔可以理解别人的心思但并不总能如此。这种间歇性确保了我们有能力迎接更多彩多样的各色体验。**小说家对人物也是时松时紧,有冷有热**,这是合法且必要的。(/mystification)
**具体蒙蔽手段**(给修改建议时用): **具体蒙蔽手段**(给修改建议时用):
@ -43,7 +39,7 @@
- 用细节的延续掩盖视角的切换 - 用细节的延续掩盖视角的切换
- 不要空话(如"让叙述更自然")——给可操作修改 - 不要空话(如"让叙述更自然")——给可操作修改
(/mystification,执行步骤第 3 步) (执行步骤第 3 步)
## 案例 ## 案例
@ -54,8 +50,6 @@
- **结论**:蒙蔽是狄更斯的核心能力 - **结论**:蒙蔽是狄更斯的核心能力
- **结果**:借此福斯特说明"蒙蔽"是评论小说技巧的**真正核心**,不是"我用了哪几种视角" - **结果**:借此福斯特说明"蒙蔽"是评论小说技巧的**真正核心**,不是"我用了哪几种视角"
(/mystification)
### 案例 2:纪德《伪币制造者》——蒙蔽的反例 ### 案例 2:纪德《伪币制造者》——蒙蔽的反例
- **问题**:纪德也做视角转换,为什么不成功? - **问题**:纪德也做视角转换,为什么不成功?
@ -63,8 +57,6 @@
- **结论**:纪德"放弃了对人物的创造, 只召唤我们来帮忙分析他自己的心思, 结果自然只能是叫人热情骤降" - **结论**:纪德"放弃了对人物的创造, 只召唤我们来帮忙分析他自己的心思, 结果自然只能是叫人热情骤降"
- **结果**:借此福斯特说明,蒙蔽失败的征兆是"读者开始琢磨作者的心思" - **结果**:借此福斯特说明,蒙蔽失败的征兆是"读者开始琢磨作者的心思"
(/mystification)
### 案例 3:菲尔丁/萨克雷的小酒馆式旁白——蒙蔽的极端失败 ### 案例 3:菲尔丁/萨克雷的小酒馆式旁白——蒙蔽的极端失败
- **问题**:菲尔丁/萨克雷在小说中直接"东拉西扯"评论人物,这种"作者亲临"为什么是"致命的"? - **问题**:菲尔丁/萨克雷在小说中直接"东拉西扯"评论人物,这种"作者亲临"为什么是"致命的"?
@ -72,8 +64,6 @@
- **结论**:在过去的小说中,再没有比这一点更致命的了 - **结论**:在过去的小说中,再没有比这一点更致命的了
- **结果**:借此福斯特划出"蒙蔽"和"诱惑/打破第四面墙"的明确边界 - **结果**:借此福斯特划出"蒙蔽"和"诱惑/打破第四面墙"的明确边界
(/mystification)
## 可执行步骤 ## 可执行步骤
1. **承认"所有作品都是拼装"** 1. **承认"所有作品都是拼装"**
@ -91,8 +81,6 @@
- 完成标准:至少 1 个人(或 1 个独立评审)在不知道"作者意图"的情况下阅读,报告"哪里觉得突兀" - 完成标准:至少 1 个人(或 1 个独立评审)在不知道"作者意图"的情况下阅读,报告"哪里觉得突兀"
- 判停条件:如果盲测报告 0 处突兀,蒙蔽成功 - 判停条件:如果盲测报告 0 处突兀,蒙蔽成功
(/mystification)
## 激活场景与语言信号 ## 激活场景与语言信号
用户会在这些情境下需要这条方法(原单元覆盖写作之外的演示、教学、产品场景,此处全数保留,小说场景之外用法同理): 用户会在这些情境下需要这条方法(原单元覆盖写作之外的演示、教学、产品场景,此处全数保留,小说场景之外用法同理):
@ -105,7 +93,7 @@
6. **做品牌/营销/广告**——评估"观众是否觉得生硬" 6. **做品牌/营销/广告**——评估"观众是否觉得生硬"
7. **编辑/审校/反馈他人作品**——诊断"这里是不是有未蒙蔽的拼装" 7. **编辑/审校/反馈他人作品**——诊断"这里是不是有未蒙蔽的拼装"
语言信号:"不自然 / 突兀 / 生硬"、"拼装 / 痕迹 / 不流畅"、"听众/读者没察觉"、"X 看起来很硬"、"X 的转折太硬了"、"读者开始关注形式而不是内容"、"X 让我跳戏"、"X 让人出戏"、"X 太匠气 / 太刻意"、"X 太炫技 / 太技巧"。(/mystification) 语言信号:"不自然 / 突兀 / 生硬"、"拼装 / 痕迹 / 不流畅"、"听众/读者没察觉"、"X 看起来很硬"、"X 的转折太硬了"、"读者开始关注形式而不是内容"、"X 让我跳戏"、"X 让人出戏"、"X 太匠气 / 太刻意"、"X 太炫技 / 太技巧"。
## 与相邻方法的分工 ## 与相邻方法的分工
@ -114,8 +102,6 @@
- 与"打破第四面墙"的区别:后者故意让作者/角色跳出来,是**反蒙蔽**;蒙蔽是让作品自然,打破是让作品"不自然"。 - 与"打破第四面墙"的区别:后者故意让作者/角色跳出来,是**反蒙蔽**;蒙蔽是让作品自然,打破是让作品"不自然"。
- 与 expansion-vs-completion(现归 story-ending)的配合:扩展/完成两种结尾姿态都需要蒙蔽支撑——收尾处的速度变化、视角收束同样不能被读者看出接缝。 - 与 expansion-vs-completion(现归 story-ending)的配合:扩展/完成两种结尾姿态都需要蒙蔽支撑——收尾处的速度变化、视角收束同样不能被读者看出接缝。
(/mystification)
## 中文落地(中文适配) ## 中文落地(中文适配)
中国评书/相声中"说书人亲临"是合法传统——说书人当众点评人物、与听众搭话,并不构成失败。这与福斯特"作者亲临是致命的"的判断不同:福斯特的论断基于西方现代小说传统,移到说书体、章回体口吻时要看文体约定——文体本就承诺了说书人在场,读者的期待不同,蒙蔽的对象也不同(蒙蔽的是情节接缝,不是说书人的存在)。(中文适配;依据 aspects-of-the-novel/mystification 盲点条) 中国评书/相声中"说书人亲临"是合法传统——说书人当众点评人物、与听众搭话,并不构成失败。这与福斯特"作者亲临是致命的"的判断不同:福斯特的论断基于西方现代小说传统,移到说书体、章回体口吻时要看文体约定——文体本就承诺了说书人在场,读者的期待不同,蒙蔽的对象也不同(蒙蔽的是情节接缝,不是说书人的存在)。(中文适配;依据 aspects-of-the-novel/mystification 盲点条)

View File

@ -7,8 +7,6 @@
## 三种节奏模式(场景的不同节奏) ## 三种节奏模式(场景的不同节奏)
(/fiction-scene-craft)
**模式 1:"紧 → 紧 → 紧"(高潮场景)** **模式 1:"紧 → 紧 → 紧"(高潮场景)**
- 全部详写,节奏快 - 全部详写,节奏快
@ -36,8 +34,6 @@
- 写高潮?**模式 1** - 写高潮?**模式 1**
- 写铺垫?**模式 3** - 写铺垫?**模式 3**
(/fiction-scene-craft)
## 场景之间过渡(节奏的关键) ## 场景之间过渡(节奏的关键)
**好的过渡**: **好的过渡**:
@ -59,8 +55,6 @@
- 让详写场景之间有**呼吸** - 让详写场景之间有**呼吸**
- 让读者**主动**填补空白(这正是想象的入口) - 让读者**主动**填补空白(这正是想象的入口)
(/fiction-scene-craft)
## 全书要有快有慢(三书视角合并) ## 全书要有快有慢(三书视角合并)
同一个方法点——"整本书不能只有一种速度,慢的部分有它的位置"——三本书从不同角度说过,合并如下,各自视角与出处保留。 同一个方法点——"整本书不能只有一种速度,慢的部分有它的位置"——三本书从不同角度说过,合并如下,各自视角与出处保留。
@ -73,7 +67,7 @@
- 假设"快" = "好"——部分场景需要慢(回忆/情感)。 - 假设"快" = "好"——部分场景需要慢(回忆/情感)。
- 假设只用 1 种时间感——整本书应该有时快有时慢。 - 假设只用 1 种时间感——整本书应该有时快有时慢。
(/scene-enter-late-exit-early,失败模式与盲点条) (失败模式与盲点条)
注意这里与"跳过所有寒暄"的原文命令存在张力:原文主规则要求进入场景时跳过寒暄铺陈,作者自己又警告"有时 1 句寒暄是共情建立"。两条都保留,取舍看场景使命是推进关系还是推进事件。(冲突标注:同出/scene-enter-late-exit-early) 注意这里与"跳过所有寒暄"的原文命令存在张力:原文主规则要求进入场景时跳过寒暄铺陈,作者自己又警告"有时 1 句寒暄是共情建立"。两条都保留,取舍看场景使命是推进关系还是推进事件。(冲突标注:同出/scene-enter-late-exit-early)
@ -82,7 +76,7 @@
- 所有场景一个节奏:详写详写详写 = 读者累;略写略写略写 = 读者没感觉。 - 所有场景一个节奏:详写详写详写 = 读者累;略写略写略写 = 读者没感觉。
- 修法:用模式 2(详-略-详)或模式 3(略-略-详)换着排。 - 修法:用模式 2(详-略-详)或模式 3(略-略-详)换着排。
(/fiction-scene-craft,常见错误第 3 条) (常见错误第 3 条)
### 《写作工具》视角:长篇中段放一个换气窗口 ### 《写作工具》视角:长篇中段放一个换气窗口
@ -90,7 +84,7 @@
- 完成标准:鸟瞰/建立段不承载情节功能,只服务"读者呼吸";位置在中段 40-60% 处。 - 完成标准:鸟瞰/建立段不承载情节功能,只服务"读者呼吸";位置在中段 40-60% 处。
- 判停条件:把鸟瞰当"省力"——一段不写的"空"段不叫鸟瞰,鸟瞰仍要**有具体内容**(晨光、街景、季节变化)。 - 判停条件:把鸟瞰当"省力"——一段不写的"空"段不叫鸟瞰,鸟瞰仍要**有具体内容**(晨光、街景、季节变化)。
(/cinematic-distances,执行步骤第 4 步) (执行步骤第 4 步)
## 节奏与详略、进出的关系 ## 节奏与详略、进出的关系

View File

@ -20,7 +20,7 @@ description: |
# 展示与留白 # 展示与留白
一句话定位:不把结论递给读者,给读者能自己得出结论的材料——写出来的部分是抓手,没写出来的部分是分量。 一句话定位:不把结论递给读者,给读者能自己得出结论的材料——落笔写出的是显性锚点,未写出的部分构成水下分量。
## 方法索引 ## 方法索引

View File

@ -7,8 +7,6 @@
> 「有时候,你从具体的描写对象上反而看不到作者想表达的真实内容,你要从'飞白'——也就是没有写到的地方去看。所谓'真事隐去、假语存焉'就是这个道理。」 > 「有时候,你从具体的描写对象上反而看不到作者想表达的真实内容,你要从'飞白'——也就是没有写到的地方去看。所谓'真事隐去、假语存焉'就是这个道理。」
(/bifeiyu-anti-logic)
## 书中原文:《红楼梦》第十三回,秦可卿死了 ## 书中原文:《红楼梦》第十三回,秦可卿死了
**按常理最该悲痛的人**:贾蓉(丈夫)、王熙凤(闺蜜)。 **按常理最该悲痛的人**:贾蓉(丈夫)、王熙凤(闺蜜)。
@ -21,11 +19,9 @@
**毕飞宇解读**:王熙凤和贾蓉"暧昧"——他们的"消失"是反逻辑的,但**正是这种反逻辑泄露了真相**。 **毕飞宇解读**:王熙凤和贾蓉"暧昧"——他们的"消失"是反逻辑的,但**正是这种反逻辑泄露了真相**。
(/bifeiyu-anti-logic)
## 方法核心 ## 方法核心
**反逻辑 = 用"不写"来写。** 当所有人按逻辑应该如此,你偏偏如此——**这本身就是信息**。(/bifeiyu-anti-logic) **反逻辑 = 用"不写"来写。** 当所有人按逻辑应该如此,你偏偏如此——**这本身就是信息**。
**反逻辑的三种形态**: **反逻辑的三种形态**:
@ -53,16 +49,12 @@
**关键**:三次"走"的字面都"正常"——**但放在一起看,反逻辑**。 **关键**:三次"走"的字面都"正常"——**但放在一起看,反逻辑**。
(/bifeiyu-anti-logic)
### 案例 2:曹雪芹 秦可卿死后的"消失" ### 案例 2:曹雪芹 秦可卿死后的"消失"
- 贾蓉、熙凤不该消失。 - 贾蓉、熙凤不该消失。
- 他们的消失泄露了秘密。 - 他们的消失泄露了秘密。
- 尤氏的"胃疼"是反逻辑的"借口"。 - 尤氏的"胃疼"是反逻辑的"借口"。
(/bifeiyu-anti-logic)
### 案例 3:施耐庵 林冲的"向东走" ### 案例 3:施耐庵 林冲的"向东走"
- 林冲被逼到山神庙,杀了人。 - 林冲被逼到山神庙,杀了人。
@ -70,15 +62,13 @@
- **向东**是反逻辑——林冲没方向,只是流亡。 - **向东**是反逻辑——林冲没方向,只是流亡。
- **这个"没方向"本身说明他没想造反**。 - **这个"没方向"本身说明他没想造反**。
(/bifeiyu-anti-logic)
### 案例 4:反逻辑的"话"在叙述者身上的应用 ### 案例 4:反逻辑的"话"在叙述者身上的应用
> 「一句话原封不动地送给贾责编:遇上你这样的责编,我容易吗我。」 > 「一句话原封不动地送给贾责编:遇上你这样的责编,我容易吗我。」
——这是反逻辑的"话"在叙述者身上的应用(毕飞宇叙述自己与编辑的关系)。 ——这是反逻辑的"话"在叙述者身上的应用(毕飞宇叙述自己与编辑的关系)。
注:源单元此条标题文字有串讹(混入"莫泊桑《项链》"与"王熙凤的'见面'"字样),内容与《项链》、王熙凤无关,按内容保留如上。(/bifeiyu-anti-logic) 注:源单元此条标题文字有串讹(混入"莫泊桑《项链》"与"王熙凤的'见面'"字样),内容与《项链》、王熙凤无关,按内容保留如上。
## 触发场景 ## 触发场景
@ -88,8 +78,6 @@
4. 你想让读者读出"字面之外" → 用飞白。 4. 你想让读者读出"字面之外" → 用飞白。
5. 你的小说太"顺"了 → 考虑加一个反逻辑点。 5. 你的小说太"顺"了 → 考虑加一个反逻辑点。
(/bifeiyu-anti-logic)
## 可执行步骤 ## 可执行步骤
### 步骤 1:识别"应该写但没写" ### 步骤 1:识别"应该写但没写"
@ -149,7 +137,7 @@
- 中篇:**3-5 个**。 - 中篇:**3-5 个**。
- 长篇:每章节 1 个,累积密度可控。 - 长篇:每章节 1 个,累积密度可控。
(以上五步均出自/bifeiyu-anti-logic) (以上步骤出自《小说课》反逻辑叙事阐述)
## 适用边界 ## 适用边界
@ -157,8 +145,6 @@
- **慎用**:短篇(密度太高会失焦)。 - **慎用**:短篇(密度太高会失焦)。
- **不适合**:动作戏、悬疑推理(它们要逻辑严密)。 - **不适合**:动作戏、悬疑推理(它们要逻辑严密)。
(/bifeiyu-anti-logic)
## 常见错误 ## 常见错误
| 错误 | 后果 | 修正 | | 错误 | 后果 | 修正 |
@ -168,14 +154,10 @@
| 飞白留白变成"偷懒" | 读者读不懂 | 飞白也要"暗示" | | 飞白留白变成"偷懒" | 读者读不懂 | 飞白也要"暗示" |
| 滥用巧合 | 假 | 反逻辑是结构选择,巧合是偷懒 | | 滥用巧合 | 假 | 反逻辑是结构选择,巧合是偷懒 |
(/bifeiyu-anti-logic)
## 一句话总结 ## 一句话总结
> **真正的高手从不写主角的心思,只写周围人的反应——让读者自己读出主角在想什么。** > **真正的高手从不写主角的心思,只写周围人的反应——让读者自己读出主角在想什么。**
(/bifeiyu-anti-logic)
## 与相邻方法的区分与跨域链接 ## 与相邻方法的区分与跨域链接
- 与 bifeiyu-shakespeare 互补:逻辑是"必然",反逻辑是"反必然"——两者配对才立体。(注:bifeiyu-shakespeare 归 theme-and-stance 综合 skill。) - 与 bifeiyu-shakespeare 互补:逻辑是"必然",反逻辑是"反必然"——两者配对才立体。(注:bifeiyu-shakespeare 归 theme-and-stance 综合 skill。)
@ -183,8 +165,6 @@
- 与 bifeiyu-perspective 配合:反逻辑往往通过"看的人"实现。(注:bifeiyu-perspective 归 narration-pov 综合 skill。) - 与 bifeiyu-perspective 配合:反逻辑往往通过"看的人"实现。(注:bifeiyu-perspective 归 narration-pov 综合 skill。)
- 与 bifeiyu-relationship 同源:关系即人物——反逻辑经常用于揭示隐藏关系。(注:bifeiyu-relationship 归 character-presentation 综合 skill。) - 与 bifeiyu-relationship 同源:关系即人物——反逻辑经常用于揭示隐藏关系。(注:bifeiyu-relationship 归 character-presentation 综合 skill。)
(/bifeiyu-anti-logic)
## 同一方法的多书视角 ## 同一方法的多书视角
- Pinker 从读者认知一端给出同样的要求:读者处理具体动作时镜像神经元激活、处理抽象标签时没有感官激活——飞白正是把"主角的心思"这个抽象留给读者用自己的感官经验去补全(见 [show-vs-tell.md](show-vs-tell.md))。 - Pinker 从读者认知一端给出同样的要求:读者处理具体动作时镜像神经元激活、处理抽象标签时没有感官激活——飞白正是把"主角的心思"这个抽象留给读者用自己的感官经验去补全(见 [show-vs-tell.md](show-vs-tell.md))。

View File

@ -11,15 +11,13 @@
> >
> — 余华,《内心之死》 > — 余华,《内心之死》
(/no-psychological-description)
## 方法核心 ## 方法核心
当人物面临极端情境时,内心是"兵荒马乱"的——百感交集,用再多语言也无法直接表达。此时任何心理分析("他感到极度痛苦""她心中充满矛盾")都会局限人物真实的内心,因为内心在最丰富的时候恰恰是无法言说的。(/no-psychological-description) 当人物面临极端情境时,内心是"兵荒马乱"的——百感交集,用再多语言也无法直接表达。此时任何心理分析("他感到极度痛苦""她心中充满矛盾")都会局限人物真实的内心,因为内心在最丰富的时候恰恰是无法言说的。
正确的做法是**关闭心理分析的通道,打开身体和感官的通道**:让人物的心脏停止跳动(不写内心),让眼睛睁开(写他看到了什么),让耳朵矗起(写他听到了什么),让身体活跃起来(写他的动作和姿态)。人物的身体状态比任何心理分析都更能表达丰富的内心。(/no-psychological-description) 正确的做法是**关闭心理分析的通道,打开身体和感官的通道**:让人物的心脏停止跳动(不写内心),让眼睛睁开(写他看到了什么),让耳朵矗起(写他听到了什么),让身体活跃起来(写他的动作和姿态)。人物的身体状态比任何心理分析都更能表达丰富的内心。
这不是"不写内心",而是**通过外在的身体和动作让内心自己浮现**。读者通过人物的动作、视觉、身体状态,自行感受到人物的内心——这种感受比直接告知更强烈、更持久。(/no-psychological-description) 这不是"不写内心",而是**通过外在的身体和动作让内心自己浮现**。读者通过人物的动作、视觉、身体状态,自行感受到人物的内心——这种感受比直接告知更强烈、更持久。
## 书中案例 ## 书中案例
@ -30,8 +28,6 @@
- **结论**:全部是视觉和动作,没有一句心理描写,但杀人者内心的麻木和压力扑面而来。 - **结论**:全部是视觉和动作,没有一句心理描写,但杀人者内心的麻木和压力扑面而来。
- **结果**:余华读到这一段后"明白了"心理描写的真正方式,跨越了写作最大的障碍。 - **结果**:余华读到这一段后"明白了"心理描写的真正方式,跨越了写作最大的障碍。
(/no-psychological-description)
### 案例 2:陀思妥耶夫斯基《罪与罚》——杀人后二十页动作 ### 案例 2:陀思妥耶夫斯基《罪与罚》——杀人后二十页动作
- **问题**:拉斯柯尔尼科夫用斧头砍死放高利贷老太婆后,内心的惊恐如何描写? - **问题**:拉斯柯尔尼科夫用斧头砍死放高利贷老太婆后,内心的惊恐如何描写?
@ -39,8 +35,6 @@
- **结论**:通过身体的不停动作和对细节的强迫性检查,杀人后的恐惧被表达得淋漓尽致。 - **结论**:通过身体的不停动作和对细节的强迫性检查,杀人后的恐惧被表达得淋漓尽致。
- **结果**:成为文学史上最经典的杀人后心理描写之一,但全程没有"心理描写"。 - **结果**:成为文学史上最经典的杀人后心理描写之一,但全程没有"心理描写"。
(/no-psychological-description)
### 案例 3:司汤达《红与黑》——于连抓德·瑞那夫人的手 ### 案例 3:司汤达《红与黑》——于连抓德·瑞那夫人的手
- **问题**:于连在德薇夫人在场的情况下,桌下抓住德·瑞那夫人的手,这个极度紧张的时刻如何写内心? - **问题**:于连在德薇夫人在场的情况下,桌下抓住德·瑞那夫人的手,这个极度紧张的时刻如何写内心?
@ -48,11 +42,9 @@
- **结论**:通过声音的变化、手的力度、说话的状态,两个人的内心紧张被精确呈现。 - **结论**:通过声音的变化、手的力度、说话的状态,两个人的内心紧张被精确呈现。
- **结果**:"他的心浸润在幸福里。并不是他爱着德·瑞那夫人,而是一个可怕的苦难结束了。"——唯一一句心理陈述,但前面的动作已经让读者感受到了。 - **结果**:"他的心浸润在幸福里。并不是他爱着德·瑞那夫人,而是一个可怕的苦难结束了。"——唯一一句心理陈述,但前面的动作已经让读者感受到了。
(/no-psychological-description)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/no-psychological-description): 用户会在什么情境下需要这个方法:
1. 写到人物极端情绪(杀人后、得知亲人去世、被背叛、求爱时刻)时,停下笔不知道怎么继续。 1. 写到人物极端情绪(杀人后、得知亲人去世、被背叛、求爱时刻)时,停下笔不知道怎么继续。
2. 写出的心理描写读起来苍白、像心理学教科书,自己都不满意。 2. 写出的心理描写读起来苍白、像心理学教科书,自己都不满意。
@ -71,7 +63,7 @@
## 可执行步骤 ## 可执行步骤
当这个方法被激活后,按以下步骤执行(/no-psychological-description): 当这个方法被激活后,按以下步骤执行:
1. **识别极端情绪场景** 1. **识别极端情绪场景**
- 完成标准:确认人物正处于狂喜/极度悲伤/恐惧/愤怒/杀人后/求爱等内心"兵荒马乱"的时刻。 - 完成标准:确认人物正处于狂喜/极度悲伤/恐惧/愤怒/杀人后/求爱等内心"兵荒马乱"的时刻。
@ -100,39 +92,29 @@
- **非虚构写作/纪实文学**:纪实作品中人物心理需要基于事实,不能用虚构的动作替代。 - **非虚构写作/纪实文学**:纪实作品中人物心理需要基于事实,不能用虚构的动作替代。
- **儿童视角的内心**:儿童的心理活动本身就是简单直接的,不需要"绕弯子"。 - **儿童视角的内心**:儿童的心理活动本身就是简单直接的,不需要"绕弯子"。
(/no-psychological-description)
## 失败模式(作者在书中警告) ## 失败模式(作者在书中警告)
- **90% 的作家遇到心理描写就绕开**:"很多作家的作品让我们觉得叙述没有问题,语言也很美,可是总在绕来绕去,一到应该冲过去的地方就绕开。"——不要绕开,要用身体动作冲过去。 - **90% 的作家遇到心理描写就绕开**:"很多作家的作品让我们觉得叙述没有问题,语言也很美,可是总在绕来绕去,一到应该冲过去的地方就绕开。"——不要绕开,要用身体动作冲过去。
- **把动作当装饰**:动作不是心理描写的"点缀",而是替代——必须完全放弃直接心理分析,让动作独立承担表达内心的功能。 - **把动作当装饰**:动作不是心理描写的"点缀",而是替代——必须完全放弃直接心理分析,让动作独立承担表达内心的功能。
(/no-psychological-description)
## 盲点与时代局限 ## 盲点与时代局限
- 余华用福克纳的短篇《沃许》论证心理描写不可靠,但福克纳自己的长篇(如《喧哗与骚动》)大量使用意识流式的心理描写——余华选择性地忽略了这个反例。 - 余华用福克纳的短篇《沃许》论证心理描写不可靠,但福克纳自己的长篇(如《喧哗与骚动》)大量使用意识流式的心理描写——余华选择性地忽略了这个反例。
- 本方法适用于极端情绪场景,但余华的表述有时像是普遍法则,实际上在平静内心场景中心理描写是有效的。 - 本方法适用于极端情绪场景,但余华的表述有时像是普遍法则,实际上在平静内心场景中心理描写是有效的。
(/no-psychological-description)
## 容易混淆的邻近方法 ## 容易混淆的邻近方法
- **"show, don't tell" 通用原则**:本方法是 show-don't-tell 在极端情绪场景下的具体应用,但更精确——不是泛泛地"展示",而是特指"用身体和感官替代心理分析"。 - **"show, don't tell" 通用原则**:本方法是 show-don't-tell 在极端情绪场景下的具体应用,但更精确——不是泛泛地"展示",而是特指"用身体和感官替代心理分析"。
- **冰山理论(海明威)**:海明威的冰山理论是"省略",本方法是"转移"——从心理转移到身体,不完全相同。 - **冰山理论(海明威)**:海明威的冰山理论是"省略",本方法是"转移"——从心理转移到身体,不完全相同。
(/no-psychological-description)
## 与相邻单元的区分与配合 ## 与相邻单元的区分与配合
- 与 obstacle-crossing(写作障碍应对)的区分与配合:区分面——本方法是具体的写作技法(如何写极端情绪),obstacle-crossing 是写作过程的宏观策略(如何面对和制造障碍)。配合面——两者经常配合使用:心理描写本身就是三大障碍之一,跨越障碍需要无心理描写法。(注:obstacle-crossing 属作者培养类,未入综合 skill 库,仅存于 craft/books/。) - 与 obstacle-crossing(写作障碍应对)的区分与配合:区分面——本方法是具体的写作技法(如何写极端情绪),obstacle-crossing 是写作过程的宏观策略(如何面对和制造障碍)。配合面——两者经常配合使用:心理描写本身就是三大障碍之一,跨越障碍需要无心理描写法。(注:obstacle-crossing 属作者培养类,未入综合 skill 库,仅存于 craft/books/。)
- 与 character-voice-discovery(人物声音发现)的区分与配合:区分面——本方法关注极端情绪下的身体呈现,character-voice-discovery 关注人物日常语言和行为的自发产生。配合面——人物有了自己的声音后,极端情绪下的身体反应会更自然。(注:character-voice-discovery 归 character-presentation 综合 skill。) - 与 character-voice-discovery(人物声音发现)的区分与配合:区分面——本方法关注极端情绪下的身体呈现,character-voice-discovery 关注人物日常语言和行为的自发产生。配合面——人物有了自己的声音后,极端情绪下的身体反应会更自然。(注:character-voice-discovery 归 character-presentation 综合 skill。)
- 与 skeptical-narration(怀疑主义叙述)的区分:怀疑主义叙述关注叙述立场,本方法关注叙述技法。(注:skeptical-narration 归 narration-pov 综合 skill。) - 与 skeptical-narration(怀疑主义叙述)的区分:怀疑主义叙述关注叙述立场,本方法关注叙述技法。(注:skeptical-narration 归 narration-pov 综合 skill。)
(/no-psychological-description)
## 同一方法的多书视角 ## 同一方法的多书视角
- Pinker 从认知科学给同一原则打底:一串具体动作激活镜像神经元,读者"运行"那个场景;体感细节(湿冷 / 沙哑 / 钻痛)比情绪标签(悲伤 / 恐惧)强 10 倍。他还给了中文语境的提醒:四字成语很多是套话,"具体"不等于成语(见 [show-vs-tell.md](show-vs-tell.md) 的中文适配节)。(/show-dont-tell) - Pinker 从认知科学给同一原则打底:一串具体动作激活镜像神经元,读者"运行"那个场景;体感细节(湿冷 / 沙哑 / 钻痛)比情绪标签(悲伤 / 恐惧)强 10 倍。他还给了中文语境的提醒:四字成语很多是套话,"具体"不等于成语(见 [show-vs-tell.md](show-vs-tell.md) 的中文适配节)。
- 毕飞宇的冰山法则在操作端给出验收:把"我觉得气氛很紧张""他很害怕"这种形容词式心理描写全部删掉,用一个具体动作替代;别告诉读者"紧张",用一个错误动作让读者自己紧张(见 [iceberg.md](iceberg.md))。(/bifeiyu-iceberg) - 毕飞宇的冰山法则在操作端给出验收:把"我觉得气氛很紧张""他很害怕"这种形容词式心理描写全部删掉,用一个具体动作替代;别告诉读者"紧张",用一个错误动作让读者自己紧张(见 [iceberg.md](iceberg.md))。
- **边界分工的说明**:余华的方法管极端情绪场景(内心"兵荒马乱"时),并明确平静场景可以直接写心理;Pinker 也指出全篇 show 会冗长,第一人称主观体验和全知叙述者的评述是合法手段。两者一致:无心理描写法是极端场景的替代方案,不是全书禁令。(/no-psychological-description;/show-dont-tell) - **边界分工的说明**:余华的方法管极端情绪场景(内心"兵荒马乱"时),并明确平静场景可以直接写心理;Pinker 也指出全篇 show 会冗长,第一人称主观体验和全知叙述者的评述是合法手段。两者一致:无心理描写法是极端场景的替代方案,不是全书禁令。

View File

@ -7,11 +7,9 @@
> 「他只写了'八分之一',其余的'八分之七'呢,都在'水下'。」 > 「他只写了'八分之一',其余的'八分之七'呢,都在'水下'。」
(/bifeiyu-iceberg)
## 书中原文:《杀手》亨利快餐店那一段 ## 书中原文:《杀手》亨利快餐店那一段
《杀手》海明威在亨利快餐店那一段里,"一个字的氛围描写都没有"——但读完让人魂飞魄散。**为什么?**因为冰山在水下。(/bifeiyu-iceberg) 《杀手》海明威在亨利快餐店那一段里,"一个字的氛围描写都没有"——但读完让人魂飞魄散。**为什么?**因为冰山在水下。
服务员乔治一上来就问杀手阿尔:"**哪一份是你的?**"——这是一句废话。两个客人,记忆力再差也不会记不住。但海明威偏偏写了这一句废话。**这正是冰山**: 服务员乔治一上来就问杀手阿尔:"**哪一份是你的?**"——这是一句废话。两个客人,记忆力再差也不会记不住。但海明威偏偏写了这一句废话。**这正是冰山**:
@ -24,11 +22,9 @@
- 两个杀手的压迫感被一个问句承载 - 两个杀手的压迫感被一个问句承载
``` ```
(/bifeiyu-iceberg)
## 方法核心 ## 方法核心
**冰山理论不是"少写"——是"写有含量的少"**。你写出来的每个句子,必须承担它表面看不出来的重量。(/bifeiyu-iceberg) **冰山理论不是"少写"——是"写有含量的少"**。你写出来的每个句子,必须承担它表面看不出来的重量。
- 错误理解:写得越少越好。 - 错误理解:写得越少越好。
- 正确理解:写出来的每个细节都要让读者"读到第二层"。 - 正确理解:写出来的每个细节都要让读者"读到第二层"。
@ -40,25 +36,19 @@
- **水面**:一个服务员问一句。 - **水面**:一个服务员问一句。
- **水下**:整个故事的张力、人物心理、环境氛围全在这一句里。 - **水下**:整个故事的张力、人物心理、环境氛围全在这一句里。
(/bifeiyu-iceberg)
### 案例 2:奈保尔《布莱克·沃滋沃斯》"来取走他的那一分钱" ### 案例 2:奈保尔《布莱克·沃滋沃斯》"来取走他的那一分钱"
- **水面**:一个盲人乞丐"取"钱。 - **水面**:一个盲人乞丐"取"钱。
- **水下**:他已经忘记自己是乞丐了,他当自己是公务员——性格、尊严、悲剧全在"取"vs"讨"的一字之差。 - **水下**:他已经忘记自己是乞丐了,他当自己是公务员——性格、尊严、悲剧全在"取"vs"讨"的一字之差。
(/bifeiyu-iceberg)
### 案例 3:蒲松龄《促织》"小虫" ### 案例 3:蒲松龄《促织》"小虫"
- **水面**:成名的儿子变成了一只小促织。 - **水面**:成名的儿子变成了一只小促织。
- **水下**:全篇始终用"虫",唯独这里用"小虫"——父亲不认识儿子,儿子却认得父亲。 - **水下**:全篇始终用"虫",唯独这里用"小虫"——父亲不认识儿子,儿子却认得父亲。
(/bifeiyu-iceberg)
## 触发场景 ## 触发场景
当以下情况出现时,调用这个方法(/bifeiyu-iceberg): 当以下情况出现时,调用这个方法:
1. 你的对话/动作描写"看起来"平淡 → 检查水下。 1. 你的对话/动作描写"看起来"平淡 → 检查水下。
2. 你写了氛围但读者感受不到 → 把氛围藏进动作里。 2. 你写了氛围但读者感受不到 → 把氛围藏进动作里。
@ -105,7 +95,7 @@
- [ ] 这段删掉后,水下的内容读者能自己"读出来"吗? - [ ] 这段删掉后,水下的内容读者能自己"读出来"吗?
- [ ] 读者读完之后会想"原来如此",而不是"他告诉我"? - [ ] 读者读完之后会想"原来如此",而不是"他告诉我"?
(以上四步均出自/bifeiyu-iceberg) (以上步骤出自《小说课》冰山理论阐述)
## 适用边界 ## 适用边界
@ -113,8 +103,6 @@
- **不适合**:学术论文、说明书、儿童启蒙(需要明确表意的场景)。 - **不适合**:学术论文、说明书、儿童启蒙(需要明确表意的场景)。
- **新手慎用**:冰山需要"水面"和"水下"高度匹配,水平不够时强行留白 = 读者读不懂。 - **新手慎用**:冰山需要"水面"和"水下"高度匹配,水平不够时强行留白 = 读者读不懂。
(/bifeiyu-iceberg)
## 常见错误 ## 常见错误
| 错误 | 后果 | 修正 | | 错误 | 后果 | 修正 |
@ -123,20 +111,14 @@
| 水下完全无迹可循 | 读者感受不到氛围 | 至少要有一个暗示 | | 水下完全无迹可循 | 读者感受不到氛围 | 至少要有一个暗示 |
| 满篇都是冰山 | 读者累 | 关键场次用冰山,叙述段用正常密度 | | 满篇都是冰山 | 读者累 | 关键场次用冰山,叙述段用正常密度 |
(/bifeiyu-iceberg)
## 一句话总结 ## 一句话总结
> **别告诉读者"紧张",用一个错误动作让读者自己紧张。** > **别告诉读者"紧张",用一个错误动作让读者自己紧张。**
(/bifeiyu-iceberg)
## 与相邻方法的区分与跨域链接 ## 与相邻方法的区分与跨域链接
- 与 bifeiyu-paiban(白描)形成对比:白描是"少即是多"在人物刻画上的应用,冰山是"少即是多"在信息密度上的应用。(注:bifeiyu-paiban 归 prose-craft 综合 skill。) - 与 bifeiyu-paiban(白描)形成对比:白描是"少即是多"在人物刻画上的应用,冰山是"少即是多"在信息密度上的应用。(注:bifeiyu-paiban 归 prose-craft 综合 skill。)
- 与 bifeiyu-anti-norm(反常)互补:反常是发现冰山的好工具——一个反常动作必有 7/8 在水下。(注:bifeiyu-anti-norm 归 character-presentation 综合 skill。) - 与 bifeiyu-anti-norm(反常)互补:反常是发现冰山的好工具——一个反常动作必有 7/8 在水下。(注:bifeiyu-anti-norm 归 character-presentation 综合 skill。)
- 与 bifeiyu-lyric-pass(抒情不抒发)同源:都是"克制"的不同表现。(注:bifeiyu-lyric-pass 归 prose-craft 综合 skill。) - 与 bifeiyu-lyric-pass(抒情不抒发)同源:都是"克制"的不同表现。(注:bifeiyu-lyric-pass 归 prose-craft 综合 skill。)
- 与反逻辑同源:**反逻辑是冰山的极端形式——"水下"是没发生的事**(该出现的人缺席、该有的反应没有),见 [anti-logic.md](anti-logic.md)。 - 与反逻辑同源:**反逻辑是冰山的极端形式——"水下"是没发生的事**(该出现的人缺席、该有的反应没有),见 [anti-logic.md](anti-logic.md)。
- 与余华无心理描写法的关系:余华的方法是"转移"(从心理转移到身体),冰山是"省略"(把内容压到水下);两者在"删掉形容词式心理描写、用具体动作替代"这一步上汇合。(/no-psychological-description;/bifeiyu-iceberg) - 与余华无心理描写法的关系:余华的方法是"转移"(从心理转移到身体),冰山是"省略"(把内容压到水下);两者在"删掉形容词式心理描写、用具体动作替代"这一步上汇合。
(/bifeiyu-iceberg)

View File

@ -13,18 +13,16 @@
> >
> — 余华,《强劲的想象产生事实》 > — 余华,《强劲的想象产生事实》
(/imagination-to-fact)
## 方法核心 ## 方法核心
文学中的想象不是凭空捏造,而是**"强劲的想象产生事实"**——想象必须有现实依据,才能让读者信服。关键区分(/imagination-to-fact): 文学中的想象不是凭空捏造,而是**"强劲的想象产生事实"**——想象必须有现实依据,才能让读者信服。关键区分:
- **想象**:有现实依据,能落地为读者可感的真实。读者不质疑其真实性,甚至觉得"这就是真的"。 - **想象**:有现实依据,能落地为读者可感的真实。读者不质疑其真实性,甚至觉得"这就是真的"。
- **虚幻**:没有现实依据,不知所云。读者觉得"假""出戏"。 - **虚幻**:没有现实依据,不知所云。读者觉得"假""出戏"。
**马尔克斯的例子**:写俏姑娘雷梅苔丝飞上天,苦思冥想后看到院子里黑女人晾床单被风刮跑,茅塞顿开——用床单作为飞翔的载体。床单是现实的,风是现实的,"抓着床单飞上天"就从虚幻变成了想象,读者信服。(/imagination-to-fact) **马尔克斯的例子**:写俏姑娘雷梅苔丝飞上天,苦思冥想后看到院子里黑女人晾床单被风刮跑,茅塞顿开——用床单作为飞翔的载体。床单是现实的,风是现实的,"抓着床单飞上天"就从虚幻变成了想象,读者信服。
**文学的真实不等于现实的真实**。"文学的真实是不能用现实生活的尺度去衡量的,它的真实里还包括了想象、梦境和欲望。"毕加索说"艺术家应该让人们懂得虚伪中的真实"——文学的真实是"虚伪中的真实"。(/imagination-to-fact) **文学的真实不等于现实的真实**。"文学的真实是不能用现实生活的尺度去衡量的,它的真实里还包括了想象、梦境和欲望。"毕加索说"艺术家应该让人们懂得虚伪中的真实"——文学的真实是"虚伪中的真实"。
## 书中案例 ## 书中案例
@ -35,8 +33,6 @@
- **结论**:"当我坐到打字机前的时候,俏姑娘雷梅苔丝就一个劲儿地飞呀,飞呀,连上帝也拦她不住了。" - **结论**:"当我坐到打字机前的时候,俏姑娘雷梅苔丝就一个劲儿地飞呀,飞呀,连上帝也拦她不住了。"
- **结果**:成为文学史上最经典的魔幻现实主义场景之一。 - **结果**:成为文学史上最经典的魔幻现实主义场景之一。
(/imagination-to-fact)
### 案例 2:卡夫卡《变形记》——人变甲虫 ### 案例 2:卡夫卡《变形记》——人变甲虫
- **问题**:人变成一只巨大的甲虫,读者怎么会相信? - **问题**:人变成一只巨大的甲虫,读者怎么会相信?
@ -44,8 +40,6 @@
- **结论**:经过八十年阅读检验,"是否真实的问题已经不存在了",《变形记》成为经典。 - **结论**:经过八十年阅读检验,"是否真实的问题已经不存在了",《变形记》成为经典。
- **结果**:成为现代文学的奠基之作。 - **结果**:成为现代文学的奠基之作。
(/imagination-to-fact)
### 案例 3:马尔克斯区分想象与虚幻 ### 案例 3:马尔克斯区分想象与虚幻
- **问题**:马尔克斯曾写了一本童话《虚度年华的海洋》,朋友坦率告诉他不喜欢,认为"虚幻至少对你来说,真是不知所云"。 - **问题**:马尔克斯曾写了一本童话《虚度年华的海洋》,朋友坦率告诉他不喜欢,认为"虚幻至少对你来说,真是不知所云"。
@ -53,11 +47,9 @@
- **结论**:区分想象和虚幻是写奇幻内容的关键。 - **结论**:区分想象和虚幻是写奇幻内容的关键。
- **结果**:马尔克斯成为魔幻现实主义的代表作家。 - **结果**:马尔克斯成为魔幻现实主义的代表作家。
(/imagination-to-fact)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/imagination-to-fact): 用户会在什么情境下需要这个方法:
1. 写奇幻/超现实情节,读者反馈"太假了""出戏"。 1. 写奇幻/超现实情节,读者反馈"太假了""出戏"。
2. 想写魔幻现实主义但不知道怎么让虚构内容可信。 2. 想写魔幻现实主义但不知道怎么让虚构内容可信。
@ -77,7 +69,7 @@
## 可执行步骤 ## 可执行步骤
当这个方法被激活后,按以下步骤执行(/imagination-to-fact): 当这个方法被激活后,按以下步骤执行:
1. **识别需要转化的想象内容** 1. **识别需要转化的想象内容**
- 哪些情节/设定是超现实的?(人变甲虫、人飞上天、死人说话等) - 哪些情节/设定是超现实的?(人变甲虫、人飞上天、死人说话等)
@ -111,34 +103,24 @@
- **历史/纪实写作**:必须基于事实,不能用"想象"替代事实。 - **历史/纪实写作**:必须基于事实,不能用"想象"替代事实。
- **硬科幻**:需要符合科学逻辑,不能用"文学真实"替代科学真实。 - **硬科幻**:需要符合科学逻辑,不能用"文学真实"替代科学真实。
(/imagination-to-fact)
## 失败模式(作者在书中警告) ## 失败模式(作者在书中警告)
- **把虚幻当想象**:马尔克斯的教训——写了一本童话《虚度年华的海洋》,朋友说"虚幻至少对你来说,真是不知所云"。没有现实依据的离奇就是虚幻,不是想象。 - **把虚幻当想象**:马尔克斯的教训——写了一本童话《虚度年华的海洋》,朋友说"虚幻至少对你来说,真是不知所云"。没有现实依据的离奇就是虚幻,不是想象。
- **过度解释超现实**:越解释"为什么人会变甲虫",读者越觉得假。卡夫卡不解释,直接用写实细节呈现,反而可信。 - **过度解释超现实**:越解释"为什么人会变甲虫",读者越觉得假。卡夫卡不解释,直接用写实细节呈现,反而可信。
(/imagination-to-fact)
## 盲点与时代局限 ## 盲点与时代局限
- 余华主要讨论魔幻现实主义和现代主义文学,没有讨论网络文学/类型文学中如何建立设定可信度(需要更系统化的世界观构建)。 - 余华主要讨论魔幻现实主义和现代主义文学,没有讨论网络文学/类型文学中如何建立设定可信度(需要更系统化的世界观构建)。
- "强劲的想象产生事实"是经验性描述,没有给出判断"现实依据是否足够"的量化标准。 - "强劲的想象产生事实"是经验性描述,没有给出判断"现实依据是否足够"的量化标准。
(/imagination-to-fact)
## 容易混淆的邻近方法 ## 容易混淆的邻近方法
- **"世界观构建"(worldbuilding)**:世界观构建是系统化地设定虚构世界的规则,本方法是为单个超现实元素找现实锚点。前者是宏观,后者是微观。 - **"世界观构建"(worldbuilding)**:世界观构建是系统化地设定虚构世界的规则,本方法是为单个超现实元素找现实锚点。前者是宏观,后者是微观。
- **"写实主义"**:写实主义追求完全符合现实,本方法是让超现实内容有现实感——不是写实,是"让虚构可信"。 - **"写实主义"**:写实主义追求完全符合现实,本方法是让超现实内容有现实感——不是写实,是"让虚构可信"。
(/imagination-to-fact)
## 与相邻单元的区分与配合 ## 与相邻单元的区分与配合
- 与 detail-driven-climax(细节驱动高潮)的区别:本方法关注如何让虚构内容可信(现实锚点),detail-driven-climax 关注如何用细节驱动情节高潮。两者都用细节,但目的不同——一个是建立可信度,一个是驱动情节。(注:detail-driven-climax 归 foreshadow-payoff 综合 skill。) - 与 detail-driven-climax(细节驱动高潮)的区别:本方法关注如何让虚构内容可信(现实锚点),detail-driven-climax 关注如何用细节驱动情节高潮。两者都用细节,但目的不同——一个是建立可信度,一个是驱动情节。(注:detail-driven-climax 归 foreshadow-payoff 综合 skill。)
- 与 certainty-uncertainty-tension(确定与不确定的张力)的区分与配合:区分面——本方法让超现实内容变得确定(可信),certainty-uncertainty-tension 保留不确定性。一个是"让读者相信",一个是"让读者回味"。配合面——想象的内容可以同时保留确定性(可信)和不确定性(多义):现实锚点让读者相信,保留的多义让读者回味,同一段想象内容可以两者兼得。(注:certainty-uncertainty-tension 归 narration-pov 综合 skill。) - 与 certainty-uncertainty-tension(确定与不确定的张力)的区分与配合:区分面——本方法让超现实内容变得确定(可信),certainty-uncertainty-tension 保留不确定性。一个是"让读者相信",一个是"让读者回味"。配合面——想象的内容可以同时保留确定性(可信)和不确定性(多义):现实锚点让读者相信,保留的多义让读者回味,同一段想象内容可以两者兼得。(注:certainty-uncertainty-tension 归 narration-pov 综合 skill。)
- 与 no-psychological-description 的配合:超现实场景中的人物反应也需要用动作/视觉代替心理分析(见 [extreme-emotion-body.md](extreme-emotion-body.md))。 - 与 no-psychological-description 的配合:超现实场景中的人物反应也需要用动作/视觉代替心理分析(见 [extreme-emotion-body.md](extreme-emotion-body.md))。
- 现实锚点往往就是驱动高潮的细节:想象锚点与伏笔细节可以共用同一个物件。 - 现实锚点往往就是驱动高潮的细节:想象锚点与伏笔细节可以共用同一个物件。
(/imagination-to-fact)

View File

@ -5,12 +5,10 @@
## 方法核心:知识诅咒在叙事层的直接应用 = POV 角色只知道自己知道的 ## 方法核心:知识诅咒在叙事层的直接应用 = POV 角色只知道自己知道的
知识诅咒是小说写作的关键方法,尤其在多视角小说里几乎是核心工具。判断标准:**角色在 POV 段里说/想了只在他自己视角里可能的信息吗?**(/curse-of-knowledge) 知识诅咒是小说写作的关键方法,尤其在多视角小说里几乎是核心工具。判断标准:**角色在 POV 段里说/想了只在他自己视角里可能的信息吗?**
## 在小说里怎么用 ## 在小说里怎么用
(/curse-of-knowledge)
- **多视角小说**:检查每个 POV 段里,角色说/想的信息是否只在他视角内。 - **多视角小说**:检查每个 POV 段里,角色说/想的信息是否只在他视角内。
- 反例:写一个侦探在凶手 POV 段里说"凶手用的是 .38 口径"——侦探不知道这个,错。 - 反例:写一个侦探在凶手 POV 段里说"凶手用的是 .38 口径"——侦探不知道这个,错。
- **第一人称 POV**:"我"不能写"我"视角外的事(不能写别的房间发生了什么,除非"我"后来被告知)。 - **第一人称 POV**:"我"不能写"我"视角外的事(不能写别的房间发生了什么,除非"我"后来被告知)。
@ -20,7 +18,7 @@
## 戏剧反讽:诅咒的反用 ## 戏剧反讽:诅咒的反用
读者知道角色不知道,正是诅咒的精彩反用(《罗密欧与朱丽叶》里我们都知道朱丽叶没死,罗密欧不知道)。(/curse-of-knowledge) 读者知道角色不知道,正是诅咒的精彩反用(《罗密欧与朱丽叶》里我们都知道朱丽叶没死,罗密欧不知道)。
## 小说专属边界 ## 小说专属边界
@ -28,8 +26,6 @@
- **童话/寓言**(无明确 POV)——不适用。 - **童话/寓言**(无明确 POV)——不适用。
- **元小说**(故意打破视角)——是合法实验,不该当成 bug 修。 - **元小说**(故意打破视角)——是合法实验,不该当成 bug 修。
(/curse-of-knowledge)
## 执行要点 ## 执行要点
1. 每个视角段落动笔前先写下:这个人物此刻**不该知道**什么。 1. 每个视角段落动笔前先写下:这个人物此刻**不该知道**什么。

View File

@ -9,11 +9,9 @@
> >
> — Steven Pinker, *The Sense of Style*, Chapter 3 > — Steven Pinker, *The Sense of Style*, Chapter 3
(/curse-of-knowledge)
## 方法核心:这是认知机制,不是态度问题 ## 方法核心:这是认知机制,不是态度问题
知识诅咒(curse of knowledge)是一个**认知机制**,不是态度问题:一旦你掌握了一个概念(一个术语 / 一个推导 / 一个场景),你就再也无法想象"不知道它"是什么感觉。(/curse-of-knowledge) 知识诅咒(curse of knowledge)是一个**认知机制**,不是态度问题:一旦你掌握了一个概念(一个术语 / 一个推导 / 一个场景),你就再也无法想象"不知道它"是什么感觉。
具体有 5 个变体(Pinker 引用心理学研究): 具体有 5 个变体(Pinker 引用心理学研究):
@ -28,7 +26,7 @@
- **功能固着**:熟悉一个概念后,你只想它的"功能"(用来做什么),忘了它的"形貌"(看起来像什么、怎么构成)。 - **功能固着**:熟悉一个概念后,你只想它的"功能"(用来做什么),忘了它的"形貌"(看起来像什么、怎么构成)。
- **组块化**:专家把 5 个具体信息压成一个词(把 5 句话变成"决策"),写出来一句对新手是 5 句的容量。 - **组块化**:专家把 5 个具体信息压成一个词(把 5 句话变成"决策"),写出来一句对新手是 5 句的容量。
**自我诊断信号**:写一句时感到"显然" / "不用说" / "显然" / "obviously"——几乎一定是诅咒发作。(/curse-of-knowledge) **自我诊断信号**:写一句时感到"显然" / "不用说" / "显然" / "obviously"——几乎一定是诅咒发作。
## 破解三招(Pinker 推荐) ## 破解三招(Pinker 推荐)
@ -36,8 +34,6 @@
2. **隔夜重读**:写完放一夜,第二天的你和昨天的你已经不同,你会更接近"目标读者"的认知状态。 2. **隔夜重读**:写完放一夜,第二天的你和昨天的你已经不同,你会更接近"目标读者"的认知状态。
3. **反向拆解组块化**:把抽象词(决策 / 杠杆 / 赋能)拆回具体动作(谁,做了什么动作,在什么场景)。 3. **反向拆解组块化**:把抽象词(决策 / 杠杆 / 赋能)拆回具体动作(谁,做了什么动作,在什么场景)。
(/curse-of-knowledge)
## 书中案例 ## 书中案例
### 案例 1:兔错觉的学术摘要(Pinker 自己的领域) ### 案例 1:兔错觉的学术摘要(Pinker 自己的领域)
@ -47,8 +43,6 @@
- **结论**:同行读不懂同行写的摘要——知识诅咒连专家都不能免疫。 - **结论**:同行读不懂同行写的摘要——知识诅咒连专家都不能免疫。
- **结果**:Pinker 用此例论证"必须 close the loop"。一个专业领域的摘要,必须让该领域的另一个专家能读懂,都要靠外部反馈,不能靠"自己再努力"。 - **结果**:Pinker 用此例论证"必须 close the loop"。一个专业领域的摘要,必须让该领域的另一个专家能读懂,都要靠外部反馈,不能靠"自己再努力"。
(/curse-of-knowledge)
### 案例 2:给鸟器说明书(教学场景) ### 案例 2:给鸟器说明书(教学场景)
- **问题**:一位教授给班上学生发了一份组装鸟食器的说明书,20 多分钟过去,没人能装上,大家都觉得是自己的问题。 - **问题**:一位教授给班上学生发了一份组装鸟食器的说明书,20 多分钟过去,没人能装上,大家都觉得是自己的问题。
@ -56,8 +50,6 @@
- **结论**:写说明书的人知道"什么是什么",但忘了"看上去是什么",功能固着让步骤看起来"显然"。 - **结论**:写说明书的人知道"什么是什么",但忘了"看上去是什么",功能固着让步骤看起来"显然"。
- **结果**:找学生反馈(close the loop)之后,步骤改成"显然"不再显然,都能装上了。 - **结果**:找学生反馈(close the loop)之后,步骤改成"显然"不再显然,都能装上了。
(/curse-of-knowledge)
### 案例 3:日常邮件里的术语 ### 案例 3:日常邮件里的术语
- **问题**:同事发邮件说 "Please effectuate a leverage of the existing core competency",看不懂,但又不能回邮件承认(显得不专业)。 - **问题**:同事发邮件说 "Please effectuate a leverage of the existing core competency",看不懂,但又不能回邮件承认(显得不专业)。
@ -65,11 +57,9 @@
- **结论**:诅咒的隐匿性是它最危险的地方——写作者和读者都看不到。 - **结论**:诅咒的隐匿性是它最危险的地方——写作者和读者都看不到。
- **结果**:Pinker 引 Hanlon's Razor:"用愚蠢(理解不了)足以解释,就不要用恶意(故意刁难)揣测"——但他反转:把这个原则用在自己身上,当读者读不懂,第一时间是"我没写清楚"。 - **结果**:Pinker 引 Hanlon's Razor:"用愚蠢(理解不了)足以解释,就不要用恶意(故意刁难)揣测"——但他反转:把这个原则用在自己身上,当读者读不懂,第一时间是"我没写清楚"。
(/curse-of-knowledge)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/curse-of-knowledge): 用户会在什么情境下需要这个方法:
1. 用户写完一篇文章,收到反馈"读不懂"但自己检查不出哪里有问题——需要诅咒诊断。 1. 用户写完一篇文章,收到反馈"读不懂"但自己检查不出哪里有问题——需要诅咒诊断。
2. 用户即将开始一个非虚构写作项目(论文 / 报告 / 教程 / 公文),想要从一开始就设计"读者友好"而不是事后改。 2. 用户即将开始一个非虚构写作项目(论文 / 报告 / 教程 / 公文),想要从一开始就设计"读者友好"而不是事后改。
@ -87,7 +77,7 @@
## 可执行步骤 ## 可执行步骤
当这个方法被激活后,按以下步骤执行(各步完成标准来自源单元)(/curse-of-knowledge): 当这个方法被激活后,按以下步骤执行(各步完成标准来自源单元):
1. **自我诊断:这段在写给谁?这段依赖了读者已经知道的什么?** 1. **自我诊断:这段在写给谁?这段依赖了读者已经知道的什么?**
- 完成标准:写作者能列出"读者读这段前,必须已经知道的 3 个前置信息"。如果一个都列不出,这段抽象层级太高;如果列出但没有显式给出,这段在跳步。 - 完成标准:写作者能列出"读者读这段前,必须已经知道的 3 个前置信息"。如果一个都列不出,这段抽象层级太高;如果列出但没有显式给出,这段在跳步。
@ -112,31 +102,23 @@
- **用户没写,只是在"想要表达"阶段**:curse-of-knowledge 假设已经有草稿,还没写之前该用 classic-style(确定姿态)。(注:classic-style 未入综合 skill 库。) - **用户没写,只是在"想要表达"阶段**:curse-of-knowledge 假设已经有草稿,还没写之前该用 classic-style(确定姿态)。(注:classic-style 未入综合 skill 库。)
- **教学讲义里"该用术语"的部分**:大一物理课讲 F=ma 之前必须用专业术语,不能用"力" + "质量" + "加速度"反复说(虽然诅咒理论本身提醒教师检查"显然")。 - **教学讲义里"该用术语"的部分**:大一物理课讲 F=ma 之前必须用专业术语,不能用"力" + "质量" + "加速度"反复说(虽然诅咒理论本身提醒教师检查"显然")。
(/curse-of-knowledge)
## 失败模式(作者在书中警告) ## 失败模式(作者在书中警告)
- **把"换位思考"当破解**:Pinker 明确说光靠"想得更努力"没用,必须 close the loop(外部反馈)。写作时默念"读者可能不懂"不解决问题,因为诅咒让你看不到自己看不到的东西。 - **把"换位思考"当破解**:Pinker 明确说光靠"想得更努力"没用,必须 close the loop(外部反馈)。写作时默念"读者可能不懂"不解决问题,因为诅咒让你看不到自己看不到的东西。
- **把诅咒归因于态度**:知识诅咒是认知机制,不是傲慢。把读者的不理解归因于"他们没文化"只会强化诅咒。 - **把诅咒归因于态度**:知识诅咒是认知机制,不是傲慢。把读者的不理解归因于"他们没文化"只会强化诅咒。
- **反馈只问"清不清楚"**:这是元层面的问题,读者会客气地说"清楚"。要让他复述,不要让他评分。 - **反馈只问"清不清楚"**:这是元层面的问题,读者会客气地说"清楚"。要让他复述,不要让他评分。
(/curse-of-knowledge)
## 盲点与时代局限 ## 盲点与时代局限
- 写于 2014,当时还没有 LLM 写作工具。今天的诅咒还包括"AI 生成的默认空泛"(e.g.,"在当今快速变化的时代,我们要…"这种空洞话),经典风格的破解对 AI 腔也有效,但要先识别是"AI 腔"而非"人写烂"。 - 写于 2014,当时还没有 LLM 写作工具。今天的诅咒还包括"AI 生成的默认空泛"(e.g.,"在当今快速变化的时代,我们要…"这种空洞话),经典风格的破解对 AI 腔也有效,但要先识别是"AI 腔"而非"人写烂"。
- Pinker 的"找读者反馈"默认存在一个"愿意读草稿的目标读者"。在很多场景(内部备忘 / 公开博文)没有这种读者,必须用其他破解(隔夜重读 / 找非目标读者代读)替代。 - Pinker 的"找读者反馈"默认存在一个"愿意读草稿的目标读者"。在很多场景(内部备忘 / 公开博文)没有这种读者,必须用其他破解(隔夜重读 / 找非目标读者代读)替代。
(/curse-of-knowledge)
## 容易混淆的邻近方法 ## 容易混淆的邻近方法
- **Dunning-Kruger 效应**:知识水平低的人高估自己,知识诅咒是反方向——知识水平高的人想象不到自己拥有的知识。这两个不是同一个机制,治疗方式也不同。 - **Dunning-Kruger 效应**:知识水平低的人高估自己,知识诅咒是反方向——知识水平高的人想象不到自己拥有的知识。这两个不是同一个机制,治疗方式也不同。
- **"以读者为中心"写作建议**:这是常识,没有"为什么"也没有"怎么破",知识诅咒提供了具体的认知机制 + 三个可执行破解。 - **"以读者为中心"写作建议**:这是常识,没有"为什么"也没有"怎么破",知识诅咒提供了具体的认知机制 + 三个可执行破解。
- **认知负荷理论(cognitive load theory)**:知识诅咒是"信息选择"层面的问题,认知负荷是"工作记忆容量"层面的问题。两者相关但不同——诅咒让你选错了信息(太多术语),认知负荷让你选对信息后还放不下(句法嵌套太深)。 - **认知负荷理论(cognitive load theory)**:知识诅咒是"信息选择"层面的问题,认知负荷是"工作记忆容量"层面的问题。两者相关但不同——诅咒让你选错了信息(太多术语),认知负荷让你选对信息后还放不下(句法嵌套太深)。
(/curse-of-knowledge)
## 与相邻方法的区分(源单元内引用) ## 与相邻方法的区分(源单元内引用)
- 与 classic-style 的区分与配合:区分面——classic-style 提供"姿态"(解药),curse-of-knowledge 提供"诊断"(病灶)。前者是"应该怎么写",后者是"为什么会写成这样"。配合方向——诅咒破解 → 经典风格可生效:先把诅咒诊断出来、补上缺失的步骤,经典风格的姿态才落得下去。(注:classic-style 未入综合 skill 库。) - 与 classic-style 的区分与配合:区分面——classic-style 提供"姿态"(解药),curse-of-knowledge 提供"诊断"(病灶)。前者是"应该怎么写",后者是"为什么会写成这样"。配合方向——诅咒破解 → 经典风格可生效:先把诅咒诊断出来、补上缺失的步骤,经典风格的姿态才落得下去。(注:classic-style 未入综合 skill 库。)
@ -145,8 +127,6 @@
- 与 zombie-noun-revival 的配合:zombie 名词是诅咒的典型表现。(注:zombie noun 的中文落地例子见 [show-vs-tell.md](show-vs-tell.md) 的"过度抽象模式"节。) - 与 zombie-noun-revival 的配合:zombie 名词是诅咒的典型表现。(注:zombie noun 的中文落地例子见 [show-vs-tell.md](show-vs-tell.md) 的"过度抽象模式"节。)
- 与 show-don't-tell 的关系:诅咒是病灶,show 是治疗——用具象绕过诅咒,见 [show-vs-tell.md](show-vs-tell.md)。 - 与 show-don't-tell 的关系:诅咒是病灶,show 是治疗——用具象绕过诅咒,见 [show-vs-tell.md](show-vs-tell.md)。
(/curse-of-knowledge)
## 中文落地说明 ## 中文落地说明
Pinker 以英文写作场景立论,中文落地时: Pinker 以英文写作场景立论,中文落地时:

View File

@ -5,7 +5,7 @@
## 一、写作中:抽象标签扫描 ## 一、写作中:抽象标签扫描
写情绪、氛围、性格评价时逐条核对(/show-dont-tell): 写情绪、氛围、性格评价时逐条核对:
- [ ] 全文搜过抽象标签:英文 effective / successful / important / optimal / professional / innovative / high-quality / meaningful / efficient;中文"很 / 十分 / 充满 + 情绪词"与评价式形容词(勇敢 / 专业 / 重要 / 有效) - [ ] 全文搜过抽象标签:英文 effective / successful / important / optimal / professional / innovative / high-quality / meaningful / efficient;中文"很 / 十分 / 充满 + 情绪词"与评价式形容词(勇敢 / 专业 / 重要 / 有效)
- [ ] 每个标签都问过"具体是什么":哪个动作 / 数字 / 场景 / 对话让你想用这个词 - [ ] 每个标签都问过"具体是什么":哪个动作 / 数字 / 场景 / 对话让你想用这个词
@ -16,7 +16,7 @@
## 二、写作中:极端情绪场景(无心理描写) ## 二、写作中:极端情绪场景(无心理描写)
确认人物处于狂喜 / 极度悲伤 / 恐惧 / 愤怒 / 杀人后 / 求爱等"兵荒马乱"时刻时执行(/no-psychological-description): 确认人物处于狂喜 / 极度悲伤 / 恐惧 / 愤怒 / 杀人后 / 求爱等"兵荒马乱"时刻时执行:
- [ ] 段落里没有"他感到…""她心想…""心中充满…"式直接心理陈述(判停:人物内心平静则跳过本清单,可直接写心理,但不超过段落 1/3) - [ ] 段落里没有"他感到…""她心想…""心中充满…"式直接心理陈述(判停:人物内心平静则跳过本清单,可直接写心理,但不超过段落 1/3)
- [ ] 至少写了 3 种身体/感官维度:动作 / 视觉 / 听觉 / 身体状态(姿势、呼吸、体温、肌肉) - [ ] 至少写了 3 种身体/感官维度:动作 / 视觉 / 听觉 / 身体状态(姿势、呼吸、体温、肌肉)
@ -26,7 +26,7 @@
## 三、写作中:超现实内容(想象锚点) ## 三、写作中:超现实内容(想象锚点)
写奇幻 / 梦境 / 超现实情节时逐条核对(/imagination-to-fact): 写奇幻 / 梦境 / 超现实情节时逐条核对:
- [ ] 列出了全部超现实设定(人变甲虫、人飞上天、死人说话等) - [ ] 列出了全部超现实设定(人变甲虫、人飞上天、死人说话等)
- [ ] 每个设定配了至少一个现实锚点:读者经验里有的物品 / 力量 / 动作 / 细节(床单之于飞天,闹钟与迟到之于变甲虫) - [ ] 每个设定配了至少一个现实锚点:读者经验里有的物品 / 力量 / 动作 / 细节(床单之于飞天,闹钟与迟到之于变甲虫)
@ -36,7 +36,7 @@
## 四、写作中:冰山(一个动作扛多层信息) ## 四、写作中:冰山(一个动作扛多层信息)
写关键场次、对话、短篇结尾时执行(/bifeiyu-iceberg): 写关键场次、对话、短篇结尾时执行:
- [ ] 写前列了水下清单:人物心理状态 / 环境氛围 / 关系张力 / 主题暗示 / 情感重量 - [ ] 写前列了水下清单:人物心理状态 / 环境氛围 / 关系张力 / 主题暗示 / 情感重量
- [ ] 选了一个具体动作 / 对话 / 物件承载,附着 3 个以上元素算优秀,只扛 1 个算浪费 - [ ] 选了一个具体动作 / 对话 / 物件承载,附着 3 个以上元素算优秀,只扛 1 个算浪费
@ -46,7 +46,7 @@
## 五、写作中:反逻辑与飞白 ## 五、写作中:反逻辑与飞白
写秘密、暗流、复杂人物关系时执行(/bifeiyu-anti-logic): 写秘密、暗流、复杂人物关系时执行:
- [ ] 列过"按逻辑谁该有什么反应"的清单,标出实际没写 / 反着写的地方 - [ ] 列过"按逻辑谁该有什么反应"的清单,标出实际没写 / 反着写的地方
- [ ] 每一处"没写"都问过归因:没想到 → 补上;刻意 → 深挖;藏 → 设计飞白 - [ ] 每一处"没写"都问过归因:没想到 → 补上;刻意 → 深挖;藏 → 设计飞白
@ -59,7 +59,7 @@
## 六、写作中:视角知识边界 ## 六、写作中:视角知识边界
写多视角 / 第一人称 / 第三人称限制视角时执行(/curse-of-knowledge): 写多视角 / 第一人称 / 第三人称限制视角时执行:
- [ ] 每个视角段落动笔前写过:这个人物此刻不该知道什么 - [ ] 每个视角段落动笔前写过:这个人物此刻不该知道什么
- [ ] 该段对话与内心独白没有越界(没说、没想视角外的信息;反例:侦探在凶手 POV 段说"凶手用的是 .38 口径") - [ ] 该段对话与内心独白没有越界(没说、没想视角外的信息;反例:侦探在凶手 POV 段说"凶手用的是 .38 口径")
@ -71,7 +71,7 @@
## 七、修订阶段:读者读不懂的诊断 ## 七、修订阶段:读者读不懂的诊断
收到"读不懂 / 跟不上 / 术语太多"反馈,或自己怀疑跳步时执行(/curse-of-knowledge): 收到"读不懂 / 跟不上 / 术语太多"反馈,或自己怀疑跳步时执行:
- [ ] 能列出"读者读这段前必须已经知道的 3 个前置信息";列不出 = 抽象层级太高,列出但没显式给出 = 跳步 - [ ] 能列出"读者读这段前必须已经知道的 3 个前置信息";列不出 = 抽象层级太高,列出但没显式给出 = 跳步
- [ ] 全文标过"显然 / obviously / 众所周知 / 不用说 / 大家都知道 / 不言而喻"——每一处问"对哪个读者层级显然?","对我显然"就改写 - [ ] 全文标过"显然 / obviously / 众所周知 / 不用说 / 大家都知道 / 不言而喻"——每一处问"对哪个读者层级显然?","对我显然"就改写
@ -83,16 +83,16 @@
## 八、修订阶段:画面自检(show 验收) ## 八、修订阶段:画面自检(show 验收)
- [ ] 通读时逐段问"读者读完脑中应该出现什么画面",答不上的段落还在 tell(/show-dont-tell) - [ ] 通读时逐段问"读者读完脑中应该出现什么画面",答不上的段落还在 tell
- [ ] "如果只能记一句"测试:目标读者读完能说出一个具体场景,而不是"它很有效"(/show-dont-tell) - [ ] "如果只能记一句"测试:目标读者读完能说出一个具体场景,而不是"它很有效"
- [ ] 抽象/具象比例反映内容需要:不是全 show(啰嗦)也不是全 tell(抽象)(/show-dont-tell) - [ ] 抽象/具象比例反映内容需要:不是全 show(啰嗦)也不是全 tell(抽象)
## 九、完稿验收:留白核对 ## 九、完稿验收:留白核对
- [ ] 留白处都有内容:水下至少有一个暗示痕迹,没有"直接不写"的偷懒省略(/bifeiyu-iceberg;/bifeiyu-anti-logic) - [ ] 留白处都有内容:水下至少有一个暗示痕迹,没有"直接不写"的偷懒省略
- [ ] 没有满篇冰山:关键场次用冰山,叙述段保持正常密度(/bifeiyu-iceberg) - [ ] 没有满篇冰山:关键场次用冰山,叙述段保持正常密度
- [ ] 飞白检验自问过:"我从没写到主角的心思,但读者读出来了吗?"(/bifeiyu-anti-logic) - [ ] 飞白检验自问过:"我从没写到主角的心思,但读者读出来了吗?"
- [ ] 全篇没有"形容词式心理描写"残留(我觉得气氛很紧张 / 他很害怕)(/bifeiyu-iceberg) - [ ] 全篇没有"形容词式心理描写"残留(我觉得气氛很紧张 / 他很害怕)
## 十、快速排错表 ## 十、快速排错表

View File

@ -8,13 +8,11 @@
> >
> — Steven Pinker, *The Sense of Style*, Chapter 2 > — Steven Pinker, *The Sense of Style*, Chapter 2
(/show-dont-tell) 古典风格把抽象最小化——抽象是肉眼看不见的东西。它说:即使我们写抽象主题,也要把它们当作站在某个位置上就能看到的事物和力量来处理。(白话转述)
古典风格把抽象最小化——抽象是肉眼看不见的东西。它说:即使我们写抽象主题,也要把它们当作站在某个位置上就能看到的事物和力量来处理。(/show-dont-tell,白话转述)
## 为什么 show 强于 tell:认知基础 ## 为什么 show 强于 tell:认知基础
"Show, don't tell" 在 Pinker 这里有具体的认知科学基础,不只是文学修辞(/show-dont-tell): "Show, don't tell" 在 Pinker 这里有具体的认知科学基础,不只是文学修辞:
- 读者处理"具体动作"时,大脑的**镜像神经元(mirror neurons)**激活,部分"运行"那个动作(感受到动作)。 - 读者处理"具体动作"时,大脑的**镜像神经元(mirror neurons)**激活,部分"运行"那个动作(感受到动作)。
- 读者处理"抽象标签"(高效 / 重要 / 优化)时,只在脑的语义层处理,没有感官激活。 - 读者处理"抽象标签"(高效 / 重要 / 优化)时,只在脑的语义层处理,没有感官激活。
@ -27,8 +25,6 @@
3. **替换为具象**:抽象形容词 → 数字 / 动作 / 场景 / 对话。 3. **替换为具象**:抽象形容词 → 数字 / 动作 / 场景 / 对话。
4. **"读者能想象吗"自检**:通读,问"读者读完脑中应该出现什么画面"。如果没有,还在 tell。 4. **"读者能想象吗"自检**:通读,问"读者读完脑中应该出现什么画面"。如果没有,还在 tell。
(/show-dont-tell)
## 对照例:Tell 与 Show ## 对照例:Tell 与 Show
- Tell: "The presentation was effective."(一个抽象标签) - Tell: "The presentation was effective."(一个抽象标签)
@ -37,8 +33,6 @@
- Tell: "The team performed well."(抽象) - Tell: "The team performed well."(抽象)
- Show: "In three months, the team reduced the bug count from 47 to 4, and shipped on schedule."(数字 + 动作) - Show: "In three months, the team reduced the bug count from 47 to 4, and shipped on schedule."(数字 + 动作)
(/show-dont-tell)
## Pinker 反对的"过度抽象"模式 ## Pinker 反对的"过度抽象"模式
这些名词化短语都属于 tell(也是 zombie noun,僵尸名词): 这些名词化短语都属于 tell(也是 zombie noun,僵尸名词):
@ -47,16 +41,12 @@
- "进行一个调查" → 调查 - "进行一个调查" → 调查
- "提供解决方案" → 解决 - "提供解决方案" → 解决
(/show-dont-tell)
## Pinker 自己的 show 范本 ## Pinker 自己的 show 范本
- **Dawkins**:"We are going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born."(用"死"的具体状态,不是"存在"的抽象讨论) - **Dawkins**:"We are going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born."(用"死"的具体状态,不是"存在"的抽象讨论)
- **Greene**:"invisible fog uniformly spread through space"(用"雾"让读者想象暗能量) - **Greene**:"invisible fog uniformly spread through space"(用"雾"让读者想象暗能量)
- **Pinker 的兔错觉重写**:"受试者闭眼伸出手臂,实验者依次轻敲手腕、手肘、肩,受试者感觉像一连串轻敲沿手臂跑上去,像兔子跳一样。"(用一连串具体动作) - **Pinker 的兔错觉重写**:"受试者闭眼伸出手臂,实验者依次轻敲手腕、手肘、肩,受试者感觉像一连串轻敲沿手臂跑上去,像兔子跳一样。"(用一连串具体动作)
(/show-dont-tell)
## 书中案例 ## 书中案例
### 案例 1:兔错觉的"告知 vs 展示"重写 ### 案例 1:兔错觉的"告知 vs 展示"重写
@ -66,8 +56,6 @@
- **结论**:学术摘要用"刺激"标签描述实验,同行读不懂;用"动作"描述,一般读者能懂。 - **结论**:学术摘要用"刺激"标签描述实验,同行读不懂;用"动作"描述,一般读者能懂。
- **结果**:这是 Pinker 论证 "show, don't tell" 在科学写作中最有说服力的案例。 - **结果**:这是 Pinker 论证 "show, don't tell" 在科学写作中最有说服力的案例。
(/show-dont-tell)
### 案例 2:Brian Greene 的暗能量说明 ### 案例 2:Brian Greene 的暗能量说明
- **问题**:"暗能量"是高度抽象的物理概念。 - **问题**:"暗能量"是高度抽象的物理概念。
@ -75,8 +63,6 @@
- **结论**:即使是数学化的物理,也能用具象(雾)表达,不丢精度。 - **结论**:即使是数学化的物理,也能用具象(雾)表达,不丢精度。
- **结果**:Greene 的科普成为畅销书,是科学写作的范本之一。 - **结果**:Greene 的科普成为畅销书,是科学写作的范本之一。
(/show-dont-tell)
### 案例 3:Goldstein 的哲学问题 ### 案例 3:Goldstein 的哲学问题
- **问题**:"个体同一性"是抽象的哲学问题。 - **问题**:"个体同一性"是抽象的哲学问题。
@ -84,11 +70,9 @@
- **结论**:抽象问题用具象人设,读者能跟着想。 - **结论**:抽象问题用具象人设,读者能跟着想。
- **结果**:Pinker 引此为例,说"哲学散文很少能写得这样清楚"。 - **结果**:Pinker 引此为例,说"哲学散文很少能写得这样清楚"。
(/show-dont-tell)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/show-dont-tell): 用户会在什么情境下需要这个方法:
1. 用户写完一段评估 / 描述 / 总结,抽象标签堆满,想要具象化。 1. 用户写完一段评估 / 描述 / 总结,抽象标签堆满,想要具象化。
2. 用户被反馈"我读不出你到底在说什么" / "没有具体例子"——需要 show。 2. 用户被反馈"我读不出你到底在说什么" / "没有具体例子"——需要 show。
@ -106,7 +90,7 @@
## 可执行步骤 ## 可执行步骤
当这个方法被激活后,按以下步骤执行(各步完成标准来自源单元)(/show-dont-tell): 当这个方法被激活后,按以下步骤执行(各步完成标准来自源单元):
1. **全文搜抽象标签**:"effective / successful / important / optimal / professional / innovative / high-quality / meaningful / efficient" 等。 1. **全文搜抽象标签**:"effective / successful / important / optimal / professional / innovative / high-quality / meaningful / efficient" 等。
- 完成标准:至少识别 5 处抽象标签,标记在文档中。 - 完成标准:至少识别 5 处抽象标签,标记在文档中。
@ -127,7 +111,7 @@
## 小说落地:怎么用 ## 小说落地:怎么用
Show, don't tell 是小说创作的核心理念(Pinker 借的),在小说里比非虚构更重要、更深(/show-dont-tell): Show, don't tell 是小说创作的核心理念(Pinker 借的),在小说里比非虚构更重要、更深:
- **角色情绪**:"她感到愤怒" → 她摔门、握拳、用一种克制到近乎陌生的声音说话。 - **角色情绪**:"她感到愤怒" → 她摔门、握拳、用一种克制到近乎陌生的声音说话。
- **场景氛围**:"阴森的森林" → 树枝像骨指戳向天空,脚下踩到软绵绵的东西。 - **场景氛围**:"阴森的森林" → 树枝像骨指戳向天空,脚下踩到软绵绵的东西。
@ -145,7 +129,7 @@ Show, don't tell 是小说创作的核心理念(Pinker 借的),在小说
## 小说专属边界 ## 小说专属边界
以下情况不该机械 show 化(/show-dont-tell): 以下情况不该机械 show 化:
- 文学修辞故意反 show(意识流、抽象诗化叙述如《了不起的盖茨比》开头)——是合法表达。 - 文学修辞故意反 show(意识流、抽象诗化叙述如《了不起的盖茨比》开头)——是合法表达。
- 第一人称 POV 主观体验("我感到一阵晕眩")——主观体验是合法的,不该全部 show 化。 - 第一人称 POV 主观体验("我感到一阵晕眩")——主观体验是合法的,不该全部 show 化。
@ -159,8 +143,6 @@ Show, don't tell 是小说创作的核心理念(Pinker 借的),在小说
- **作者的"想要模糊"**:有时作者就是想让读者感觉"模糊"(营造氛围 / 制造悬念 / 写文学),show 反而破坏意图。 - **作者的"想要模糊"**:有时作者就是想让读者感觉"模糊"(营造氛围 / 制造悬念 / 写文学),show 反而破坏意图。
- **元评论 / 哲学讨论(含神学)**:用户写的是抽象观念为主(哲学 / 神学),那里"具象"不是目标;"存在" / "意识"这类主题本身就是抽象,强行具象反而失深度。 - **元评论 / 哲学讨论(含神学)**:用户写的是抽象观念为主(哲学 / 神学),那里"具象"不是目标;"存在" / "意识"这类主题本身就是抽象,强行具象反而失深度。
(/show-dont-tell)
## 失败模式(作者在书中警告) ## 失败模式(作者在书中警告)
- **"形容词 = 烂"的简化**:形容词本身不是问题,"空的形容词"才是。"X 是红色"(具体)不是 tell,"X 是漂亮"(空)是 tell。 - **"形容词 = 烂"的简化**:形容词本身不是问题,"空的形容词"才是。"X 是红色"(具体)不是 tell,"X 是漂亮"(空)是 tell。
@ -168,27 +150,21 @@ Show, don't tell 是小说创作的核心理念(Pinker 借的),在小说
- **"具体 = 数字"的简化**:数字是 show 的一种,但动作、场景、对话、感官细节都是 show,不只是数字。 - **"具体 = 数字"的简化**:数字是 show 的一种,但动作、场景、对话、感官细节都是 show,不只是数字。
- **"作者自己看到的就是 show"**:作者脑子里的"画面"是经过认知诅咒的,可能不共享给读者。要 close the loop,让目标读者说"我看到了什么"。 - **"作者自己看到的就是 show"**:作者脑子里的"画面"是经过认知诅咒的,可能不共享给读者。要 close the loop,让目标读者说"我看到了什么"。
(/show-dont-tell)
## 盲点与时代局限 ## 盲点与时代局限
- 写于 2014,当时还没有 LLM 写作。今天 LLM 输出的"AI 腔"大量是 tell——空泛形容词 + 抽象副词 + 没有具体动作,show-don't-tell 是直接对症。 - 写于 2014,当时还没有 LLM 写作。今天 LLM 输出的"AI 腔"大量是 tell——空泛形容词 + 抽象副词 + 没有具体动作,show-don't-tell 是直接对症。
- Pinker 主要讲英文。中文的 show 也有其特点——中文常用四字成语(但很多是 zombie cliché),也有具象的传统(白描)。show 在中文里更需小心:不是所有"具体"都好,有些"具体"是 cliché(如"灯红酒绿"),需要 show 但非 cliché。 - Pinker 主要讲英文。中文的 show 也有其特点——中文常用四字成语(但很多是 zombie cliché),也有具象的传统(白描)。show 在中文里更需小心:不是所有"具体"都好,有些"具体"是 cliché(如"灯红酒绿"),需要 show 但非 cliché。
- 没有处理"读者不想看"的情况:即便 show 完美,如果读者根本不想读这个主题,任何 show 都救不了。 - 没有处理"读者不想看"的情况:即便 show 完美,如果读者根本不想读这个主题,任何 show 都救不了。
(/show-dont-tell)
## 容易混淆的邻近方法 ## 容易混淆的邻近方法
- **"多用动词少用形容词"的笼统建议**:这是 show 的简化版,但 show 不只是词性选择——动作、场景、对话、感官细节都算,不仅限于动词。 - **"多用动词少用形容词"的笼统建议**:这是 show 的简化版,但 show 不只是词性选择——动作、场景、对话、感官细节都算,不仅限于动词。
- **"数据可视化"的设计建议**:那是 show 的视觉版本,适用于数据展示,不适用于纯文字写作。 - **"数据可视化"的设计建议**:那是 show 的视觉版本,适用于数据展示,不适用于纯文字写作。
- **"叙事医学 / 叙事心理学"的"讲故事"建议**:那是 show 的一种(故事化),但 show 不需要完整故事,一个动作 / 一句对话也是 show。 - **"叙事医学 / 叙事心理学"的"讲故事"建议**:那是 show 的一种(故事化),但 show 不需要完整故事,一个动作 / 一句对话也是 show。
(/show-dont-tell)
## 与相邻方法的区分 ## 与相邻方法的区分
- 与知识诅咒的区别:curse-of-knowledge 是"作者以为读者懂"的认知机制,show-don't-tell 是"用具象绕过诅咒"的具体方法。**诅咒是病灶,show 是治疗。**(/show-dont-tell) - 与知识诅咒的区别:curse-of-knowledge 是"作者以为读者懂"的认知机制,show-don't-tell 是"用具象绕过诅咒"的具体方法。**诅咒是病灶,show 是治疗。**
## 中文适配 ## 中文适配

View File

@ -19,38 +19,38 @@
适用面(正面): 适用面(正面):
- 莎士比亚化**适合**现实主义小说、所有长篇、所有"严肃"叙事;**部分适合**魔幻现实主义(用环境逻辑替代日常逻辑)。(/bifeiyu-shakespeare) - 莎士比亚化**适合**现实主义小说、所有长篇、所有"严肃"叙事;**部分适合**魔幻现实主义(用环境逻辑替代日常逻辑)。
- 心慈手狠**适合**所有虚构叙事,**特别适合**现实主义、批判现实主义。(/bifeiyu-mercy-ruth) - 心慈手狠**适合**所有虚构叙事,**特别适合**现实主义、批判现实主义。
## 二、失败模式(作者在书中警告的) ## 二、失败模式(作者在书中警告的)
**主题演示**(/theme-demonstrate-not-tell): **主题演示**:
- 主题是"模糊哲学"(如"关于人性")——必须具体到"关于 X 中的 Y" - 主题是"模糊哲学"(如"关于人性")——必须具体到"关于 X 中的 Y"
- 反讽用错——让反派"说"主题让主角"做"反讽主题——容易混乱 - 反讽用错——让反派"说"主题让主角"做"反讽主题——容易混乱
- 删除 Tell 后完全没有主题——应增加 Show 演示,不是简单删除 - 删除 Tell 后完全没有主题——应增加 Show 演示,不是简单删除
**幽默作为结构**(/humor-as-structure): **幽默作为结构**:
- **幽默变成嘲笑**:幽默不是嘲笑人物的苦难,而是与苦难保持距离。如果读者感到作者在嘲笑人物,就失败了 - **幽默变成嘲笑**:幽默不是嘲笑人物的苦难,而是与苦难保持距离。如果读者感到作者在嘲笑人物,就失败了
- **幽默消解了批判**:如果幽默过度,会让读者觉得"这也没什么大不了",失去批判力量。需要"控制得恰如其分" - **幽默消解了批判**:如果幽默过度,会让读者觉得"这也没什么大不了",失去批判力量。需要"控制得恰如其分"
## 三、作者盲点 ## 三、作者盲点
**Brooks**(/theme-demonstrate-not-tell): **Brooks**:
- 假设所有题材都不能 Tell——童话/寓言/儿童文学可以 Tell - 假设所有题材都不能 Tell——童话/寓言/儿童文学可以 Tell
- 假设"反讽" = 主题成功——反讽必须清晰,否则读者看不出 - 假设"反讽" = 主题成功——反讽必须清晰,否则读者看不出
- 假设"复杂主题"必须复杂演示——简单主题用 1 个场景就够 - 假设"复杂主题"必须复杂演示——简单主题用 1 个场景就够
**余华**(/humor-as-structure): **余华**:
- 余华主要讨论极权/压迫环境下的幽默,没有讨论日常/普通题材中如何使用幽默作为结构 - 余华主要讨论极权/压迫环境下的幽默,没有讨论日常/普通题材中如何使用幽默作为结构
- "幽默作为结构"是比较高级的技巧,需要相当的写作经验,初学者可能难以掌握 - "幽默作为结构"是比较高级的技巧,需要相当的写作经验,初学者可能难以掌握
## 四、常见错误表 ## 四、常见错误表
### 席勒化四类错误(/bifeiyu-shakespeare) ### 席勒化四类错误
| 错误 | 后果 | 修正 | | 错误 | 后果 | 修正 |
|-----|------|-----| |-----|------|-----|
@ -59,7 +59,7 @@
| 人物"被作者安排" | 假 | 让人物按性格走,作家只设环境 | | 人物"被作者安排" | 假 | 让人物按性格走,作家只设环境 |
| 思想性太重 | 主题先行 | 把思想藏进环境 | | 思想性太重 | 主题先行 | 把思想藏进环境 |
### 心软五类错误(/bifeiyu-mercy-ruth) ### 心软五类错误
| 错误 | 后果 | 修正 | | 错误 | 后果 | 修正 |
|-----|------|-----| |-----|------|-----|
@ -71,38 +71,38 @@
## 五、易混方法 ## 五、易混方法
**与主题演示易混**(/theme-demonstrate-not-tell): **与主题演示易混**:
- "Show Don't Tell"(写作通用)——本 skill 的主题演示是它的主题特化版;句子与情绪层的展示方法在 `show-and-omission`(展示与留白) - "Show Don't Tell"(写作通用)——本 skill 的主题演示是它的主题特化版;句子与情绪层的展示方法在 `show-and-omission`(展示与留白)
- "Chekhov's Gun"(契诃夫之枪)——是"伏笔演示",不是"主题演示";见 `foreshadow-payoff`(伏笔与回收) - "Chekhov's Gun"(契诃夫之枪)——是"伏笔演示",不是"主题演示";见 `foreshadow-payoff`(伏笔与回收)
- "Symbolic Storytelling"(象征叙事)——是"通过象征演示",比主题演示宽 - "Symbolic Storytelling"(象征叙事)——是"通过象征演示",比主题演示宽
**与幽默结构易混**(/humor-as-structure): **与幽默结构易混**:
- **"讽刺"(satire)**:讽刺是用幽默批判具体对象,有明确的靶子。本方法是用幽默作为整体叙述态度,不一定有具体靶子——更接近"黑色幽默"而非"讽刺"。 - **"讽刺"(satire)**:讽刺是用幽默批判具体对象,有明确的靶子。本方法是用幽默作为整体叙述态度,不一定有具体靶子——更接近"黑色幽默"而非"讽刺"。
- **"喜剧 relief"**:喜剧 relief 是在沉重场景中插入搞笑段落缓解紧张,是局部技巧。本方法是全局结构——幽默贯穿全文,不是偶尔的调剂。 - **"喜剧 relief"**:喜剧 relief 是在沉重场景中插入搞笑段落缓解紧张,是局部技巧。本方法是全局结构——幽默贯穿全文,不是偶尔的调剂。
## 六、相邻方法区分与跨域链接 ## 六、相邻方法区分与跨域链接
**主题演示与相邻 skill 的区分**(/theme-demonstrate-not-tell): **主题演示与相邻 skill 的区分**:
- `concept-design`(概念与前提)的 concept-* 系列:是"找种子"(主题独立,不是 concept) - `concept-design`(概念与前提)的 concept-* 系列:是"找种子"(主题独立,不是 concept)
- `character-design`(人物设计)的 character-* 系列:是"建角色"(主题通过角色演示;源单元标注与 character-seven-variables 为 composes-with 关系) - `character-design`(人物设计)的 character-* 系列:是"建角色"(主题通过角色演示;源单元标注与 character-seven-variables 为 composes-with 关系)
- 本 skill:是"主题如何呈现"(执行层面) - 本 skill:是"主题如何呈现"(执行层面)
**幽默结构与相邻方法的区分**(/humor-as-structure): **幽默结构与相邻方法的区分**:
- 与 `narration-pov`(叙述与视角)的 skeptical-narration 的区别:本方法是用幽默的态度处理现实,skeptical-narration 是用怀疑的立场处理看法。两者经常配合——幽默中包含怀疑,怀疑中带有幽默。 - 与 `narration-pov`(叙述与视角)的 skeptical-narration 的区别:本方法是用幽默的态度处理现实,skeptical-narration 是用怀疑的立场处理看法。两者经常配合——幽默中包含怀疑,怀疑中带有幽默。
- 与 `show-and-omission`(展示与留白)的 imagination-to-fact 的区别:本方法关注叙述态度,imagination-to-fact 关注虚构内容的可信度。幽默的态度往往需要超现实的想象(如撒旦访问莫斯科),两者配合使用。 - 与 `show-and-omission`(展示与留白)的 imagination-to-fact 的区别:本方法关注叙述态度,imagination-to-fact 关注虚构内容的可信度。幽默的态度往往需要超现实的想象(如撒旦访问莫斯科),两者配合使用。
**莎士比亚化的跨域链接**(/bifeiyu-shakespeare): **莎士比亚化的跨域链接**:
- 与 `show-and-omission`(展示与留白)的 bifeiyu-anti-logic 互补:莎士比亚化用逻辑,反逻辑是它的"另一面" - 与 `show-and-omission`(展示与留白)的 bifeiyu-anti-logic 互补:莎士比亚化用逻辑,反逻辑是它的"另一面"
- 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 同源:性格即命运 = 性格 + 现实的逻辑推演 - 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 同源:性格即命运 = 性格 + 现实的逻辑推演
- 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:莎士比亚化是"势"能产生的方法 - 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:莎士比亚化是"势"能产生的方法
- 与本 skill 的 bifeiyu-mercy-ruth(心慈手狠)配对:作家要"手狠"才能让逻辑自己走——不能因心软去救人物 - 与本 skill 的 bifeiyu-mercy-ruth(心慈手狠)配对:作家要"手狠"才能让逻辑自己走——不能因心软去救人物
**心慈手狠的跨域链接**(/bifeiyu-mercy-ruth): **心慈手狠的跨域链接**:
- 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 配套:性格碰撞出来的命运 = 作家"手狠"的依据 - 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 配套:性格碰撞出来的命运 = 作家"手狠"的依据
- 与本 skill 的 bifeiyu-shakespeare 同源:莎士比亚化要求作家"沉默",心慈手狠是前提 - 与本 skill 的 bifeiyu-shakespeare 同源:莎士比亚化要求作家"沉默",心慈手狠是前提

View File

@ -13,8 +13,6 @@
——余华,《布尔加科夫与〈大师和玛格丽特〉》 ——余华,《布尔加科夫与〈大师和玛格丽特〉》
(/humor-as-structure)
## 方法核心 ## 方法核心
当作家面对无法改变的痛苦现实时,有两种常见反应: 当作家面对无法改变的痛苦现实时,有两种常见反应:
@ -33,8 +31,6 @@
布尔加科夫在斯大林时代作品被禁,他让魔鬼沃兰德访问莫斯科,用幽默的方式处理自己的仇恨和痛苦。"他让魔鬼访问莫斯科,作品一开始他就表明了自己的态度,那就是他要讲述的不是一个斤斤计较的故事,他要告诉我们的不是个人的恩怨,而是真正意义上的现实。" 布尔加科夫在斯大林时代作品被禁,他让魔鬼沃兰德访问莫斯科,用幽默的方式处理自己的仇恨和痛苦。"他让魔鬼访问莫斯科,作品一开始他就表明了自己的态度,那就是他要讲述的不是一个斤斤计较的故事,他要告诉我们的不是个人的恩怨,而是真正意义上的现实。"
(/humor-as-structure)
## 书中案例 ## 书中案例
### 案例 1:布尔加科夫《大师和玛格丽特》——撒旦访问莫斯科 ### 案例 1:布尔加科夫《大师和玛格丽特》——撒旦访问莫斯科
@ -55,10 +51,10 @@
- **问题**:写一个人靠卖血维持生活的苦难故事,如何不变成苦情戏? - **问题**:写一个人靠卖血维持生活的苦难故事,如何不变成苦情戏?
- **方法论的使用**:余华用通篇对话和冷幽默处理许三观的苦难——许三观卖血前要多喝水,卖血后要吃炒猪肝喝黄酒,这些仪式化的细节既真实又带着黑色幽默。人物在苦难中仍然有尊严和笑声。 - **方法论的使用**:余华用通篇对话和冷幽默处理许三观的苦难——许三观卖血前要多喝水,卖血后要吃炒猪肝喝黄酒,这些仪式化的细节既真实又带着黑色幽默。人物在苦难中仍然有尊严和笑声。
- **结论**:幽默让苦难有了温度,读者不是同情而是共情。 - **结论**:幽默赋予苦难温度,引动读者共情而非居高临下的同情。
- **结果**:《许三观卖血记》成为余华最受欢迎的作品之一。 - **结果**:《许三观卖血记》成为余华最受欢迎的作品之一。
(以上案例均出自/humor-as-structure) (以上案例出自余华相关创作访谈与论述)
## 执行步骤 ## 执行步骤
@ -95,11 +91,9 @@
- 如果只是偶尔的俏皮话,需要回到步骤 2,让幽默成为整体结构 - 如果只是偶尔的俏皮话,需要回到步骤 2,让幽默成为整体结构
- 完成标准:幽默是全文的叙述态度,不只是修辞装饰 - 完成标准:幽默是全文的叙述态度,不只是修辞装饰
(/humor-as-structure)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/humor-as-structure): 用户会在什么情境下需要这个方法:
1. 写沉重/痛苦/批判题材,作品变得压抑、愤怒,自己写着都难受 1. 写沉重/痛苦/批判题材,作品变得压抑、愤怒,自己写着都难受
2. 想写黑色幽默但不知道怎么操作 2. 想写黑色幽默但不知道怎么操作
@ -121,5 +115,3 @@
- 与 `narration-pov`(叙述与视角)的 skeptical-narration 配合:本方法是用幽默的态度处理现实,怀疑叙述是用怀疑的立场处理看法。两者经常配合——幽默中包含怀疑,怀疑中带有幽默。(完整区分见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md)) - 与 `narration-pov`(叙述与视角)的 skeptical-narration 配合:本方法是用幽默的态度处理现实,怀疑叙述是用怀疑的立场处理看法。两者经常配合——幽默中包含怀疑,怀疑中带有幽默。(完整区分见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md))
- 与 `show-and-omission`(展示与留白)的 imagination-to-fact 配合:本方法关注叙述态度,想象锚定关注虚构内容的可信度。幽默的态度往往需要超现实的想象(如撒旦访问莫斯科),两者配合使用——用想象-事实转化让荒诞可信。(完整区分见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md)) - 与 `show-and-omission`(展示与留白)的 imagination-to-fact 配合:本方法关注叙述态度,想象锚定关注虚构内容的可信度。幽默的态度往往需要超现实的想象(如撒旦访问莫斯科),两者配合使用——用想象-事实转化让荒诞可信。(完整区分见 [boundaries-and-pitfalls.md](boundaries-and-pitfalls.md))
(/humor-as-structure)

View File

@ -7,8 +7,6 @@
> 「我喜欢'心慈''手狠'的作家。鲁迅就是这样。'心慈'加'手狠'大概可以算作大师级作家的共同特征了。用李敬泽的说法,写到关键的地方,'作家的手不能抖'。」 > 「我喜欢'心慈''手狠'的作家。鲁迅就是这样。'心慈'加'手狠'大概可以算作大师级作家的共同特征了。用李敬泽的说法,写到关键的地方,'作家的手不能抖'。」
(/bifeiyu-mercy-ruth)
莫泊桑《项链》写马蒂尔德还了 10 年债之后: 莫泊桑《项链》写马蒂尔德还了 10 年债之后:
> "她已经变成一个粗壮耐劳的妇女了……她说话粗声大气……她提着脏衣服篮子……**她的手是发红的**。" > "她已经变成一个粗壮耐劳的妇女了……她说话粗声大气……她提着脏衣服篮子……**她的手是发红的**。"
@ -22,8 +20,6 @@
**"手狠"不是恶意——是诚实**。作家必须诚实地写出人物命运的必然。 **"手狠"不是恶意——是诚实**。作家必须诚实地写出人物命运的必然。
(/bifeiyu-mercy-ruth)
## 方法核心 ## 方法核心
**心慈 = 作家要爱自己的人物**。 **心慈 = 作家要爱自己的人物**。
@ -36,8 +32,6 @@
- 只手狠不心慈 = 虐待狂作品(人物没灵魂) - 只手狠不心慈 = 虐待狂作品(人物没灵魂)
- **心慈+手狠 = 大师作品(人物有真实命运)** - **心慈+手狠 = 大师作品(人物有真实命运)**
(/bifeiyu-mercy-ruth)
## 书中案例 ## 书中案例
### 案例 1:莫泊桑《项链》"发红的手" ### 案例 1:莫泊桑《项链》"发红的手"
@ -76,7 +70,7 @@
(同一人物王熙凤在"莎士比亚化"单元里从性格逻辑角度出现——管的性格 + 贾府复杂关系 → 必然"毒设相思局",见 [stance-by-logic.md](stance-by-logic.md) 案例 4。) (同一人物王熙凤在"莎士比亚化"单元里从性格逻辑角度出现——管的性格 + 贾府复杂关系 → 必然"毒设相思局",见 [stance-by-logic.md](stance-by-logic.md) 案例 4。)
(以上案例均出自/bifeiyu-mercy-ruth) (以上案例出自《小说课》关于心慈手狠的论述)
## 执行步骤 ## 执行步骤
@ -155,8 +149,6 @@
- 狠只是狠 → 虐待狂 - 狠只是狠 → 虐待狂
- 狠带着蔑视 → 失败 - 狠带着蔑视 → 失败
(/bifeiyu-mercy-ruth)
## 触发场景 ## 触发场景
1. 你的人物"该受苦但你舍不得" → 你的手软了 1. 你的人物"该受苦但你舍不得" → 你的手软了
@ -165,19 +157,13 @@
4. 你在写"坏人"但笔下留情 → 你可能太"心慈" 4. 你在写"坏人"但笔下留情 → 你可能太"心慈"
5. 你在写"主角"但不敢让他失败 → 你心慈手不狠 5. 你在写"主角"但不敢让他失败 → 你心慈手不狠
(/bifeiyu-mercy-ruth)
## 一句话总结 ## 一句话总结
> **"作家是小说的上帝,但上帝不能滥用慈悲"——爱你的角色,但不要放过他。** > **"作家是小说的上帝,但上帝不能滥用慈悲"——爱你的角色,但不要放过他。**
(/bifeiyu-mercy-ruth)
## 与其他方法的关系 ## 与其他方法的关系
- 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 配套:性格碰撞出来的命运 = 作家"手狠"的依据 - 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 配套:性格碰撞出来的命运 = 作家"手狠"的依据
- 与本 skill 的 bifeiyu-shakespeare 同源:莎士比亚化要求作家"沉默",心慈手狠是前提,见 [stance-by-logic.md](stance-by-logic.md) - 与本 skill 的 bifeiyu-shakespeare 同源:莎士比亚化要求作家"沉默",心慈手狠是前提,见 [stance-by-logic.md](stance-by-logic.md)
- 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:势的累加 = 手狠——不能因心软去"减弱"势 - 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:势的累加 = 手狠——不能因心软去"减弱"势
- 与 `prose-craft`(语言与修辞)的 bifeiyu-base-temp 关联:大师的温度是"冷中的热"——心慈手狠 = 冷温度下的热关怀 - 与 `prose-craft`(语言与修辞)的 bifeiyu-base-temp 关联:大师的温度是"冷中的热"——心慈手狠 = 冷温度下的热关怀
(/bifeiyu-mercy-ruth)

View File

@ -7,8 +7,6 @@
> 「思想性的传递需要作家的思想,其实更需要作家的艺术才能。在美学上,说空话有一个专业的名词,叫'席勒化',把思想性落实到艺术性上,也有一个专业名词,叫'莎士比亚化'。」 > 「思想性的传递需要作家的思想,其实更需要作家的艺术才能。在美学上,说空话有一个专业的名词,叫'席勒化',把思想性落实到艺术性上,也有一个专业名词,叫'莎士比亚化'。」
(/bifeiyu-shakespeare)
林冲怎么"走"上梁山的? 林冲怎么"走"上梁山的?
**错误的写法**(席勒化): **错误的写法**(席勒化):
@ -22,8 +20,6 @@
**林冲的每一次"走"都是他自己不想"走"的**。但小说内部逻辑推动着他不得不走。 **林冲的每一次"走"都是他自己不想"走"的**。但小说内部逻辑推动着他不得不走。
(/bifeiyu-shakespeare)
## 方法核心 ## 方法核心
**莎士比亚化 = 让人物按小说内部逻辑自己"走"**。作家是"看不见的手",不是"指挥家"。 **莎士比亚化 = 让人物按小说内部逻辑自己"走"**。作家是"看不见的手",不是"指挥家"。
@ -38,8 +34,6 @@
| 主题 | 自然浮现 | 强行表达 | | 主题 | 自然浮现 | 强行表达 |
| 阅读感受 | "不得不这样" | "作家让我知道" | | 阅读感受 | "不得不这样" | "作家让我知道" |
(/bifeiyu-shakespeare)
## 书中案例 ## 书中案例
### 案例 1:施耐庵《水浒》林冲 ### 案例 1:施耐庵《水浒》林冲
@ -70,7 +64,7 @@
(同一人物王熙凤在"心慈手狠"单元里从命运重量角度出现——"哭向金陵事更哀",见 [mercy-ruth.md](mercy-ruth.md) 案例 5。) (同一人物王熙凤在"心慈手狠"单元里从命运重量角度出现——"哭向金陵事更哀",见 [mercy-ruth.md](mercy-ruth.md) 案例 5。)
(以上案例均出自/bifeiyu-shakespeare) (以上案例出自《小说课》关于莎士比亚化与席勒化的论述)
## 执行步骤 ## 执行步骤
@ -133,8 +127,6 @@ E 反过来作用于 A 和 B
- 能 → 莎士比亚化 - 能 → 莎士比亚化
- 不能 → 你在替人物说话——回到席勒化 - 不能 → 你在替人物说话——回到席勒化
(/bifeiyu-shakespeare)
## 触发场景 ## 触发场景
1. 你的人物"按你安排"行动 → ❌ 席勒化预警 1. 你的人物"按你安排"行动 → ❌ 席勒化预警
@ -143,19 +135,13 @@ E 反过来作用于 A 和 B
4. 你想表达"批判 X"但不知道怎么办 → 把 X 变成**环境/对手**,让主角去碰撞 4. 你想表达"批判 X"但不知道怎么办 → 把 X 变成**环境/对手**,让主角去碰撞
5. 你的人物有"觉醒"或"转变" → 必须有**环境/事件**的推动链 5. 你的人物有"觉醒"或"转变" → 必须有**环境/事件**的推动链
(/bifeiyu-shakespeare)
## 一句话总结 ## 一句话总结
> **作家越小,权力越大;作家越大,权力越小。** > **作家越小,权力越大;作家越大,权力越小。**
(/bifeiyu-shakespeare)
## 与其他方法的关系 ## 与其他方法的关系
- 与 `show-and-omission`(展示与留白)的 bifeiyu-anti-logic 互补:莎士比亚化用逻辑,反逻辑是它的"另一面" - 与 `show-and-omission`(展示与留白)的 bifeiyu-anti-logic 互补:莎士比亚化用逻辑,反逻辑是它的"另一面"
- 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 同源:性格即命运 = 性格 + 现实的逻辑推演 - 与 `character-presentation`(人物呈现)的 bifeiyu-character-fate 同源:性格即命运 = 性格 + 现实的逻辑推演
- 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:莎士比亚化是"势"能产生的方法 - 与 `narrative-momentum`(叙事动力)的 bifeiyu-momentum 关联:莎士比亚化是"势"能产生的方法
- 与本 skill 的 bifeiyu-mercy-ruth(心慈手狠)配对:作家要"手狠"才能让逻辑自己走——不能因心软去救人物,见 [mercy-ruth.md](mercy-ruth.md) - 与本 skill 的 bifeiyu-mercy-ruth(心慈手狠)配对:作家要"手狠"才能让逻辑自己走——不能因心软去救人物,见 [mercy-ruth.md](mercy-ruth.md)
(/bifeiyu-shakespeare)

View File

@ -9,11 +9,11 @@
> >
> — Larry Brooks, *Story Engineering* (2011), Part 4 > — Larry Brooks, *Story Engineering* (2011), Part 4
主题落地在你的故事里,最好的方式是故事本身和其中的人物把它**演示**出来,而不是由他们把它**说**出来……这差别几乎就像主动语态和被动语态的差别。被演示的主题是主动的。被陈述的主题是被动的。(/theme-demonstrate-not-tell,白话转述) 主题落地在你的故事里,最好的方式是故事本身和其中的人物把它**演示**出来,而不是由他们把它**说**出来……这差别几乎就像主动语态和被动语态的差别。被演示的主题是主动的。被陈述的主题是被动的。(白话转述)
## 方法核心 ## 方法核心
"主题"是故事对现实照亮什么。但主题不能被**说出**,只能被**演示**。读者必须自己"看出"主题,角色/作者替读者"说" = 失败。(/theme-demonstrate-not-tell) "主题"是故事对现实照亮什么。但主题不能被**说出**,只能被**演示**。读者必须自己"看出"主题,角色/作者替读者"说" = 失败。
**核心规则**: **核心规则**:
@ -38,11 +38,9 @@
2. **结构演示**:故事整体结构(开头 vs 结尾,失败 vs 成功)演示主题 2. **结构演示**:故事整体结构(开头 vs 结尾,失败 vs 成功)演示主题
3. **反讽演示**:角色"说"一套,"做"另一套,反讽 = 主题 3. **反讽演示**:角色"说"一套,"做"另一套,反讽 = 主题
(/theme-demonstrate-not-tell)
## 跨书呼应:同一条原理的另外两种说法 ## 跨书呼应:同一条原理的另外两种说法
"主题只能演示、不能说出"不止一本书这么说。毕飞宇把"说出主题"叫席勒化,把"演示主题"叫莎士比亚化(/bifeiyu-shakespeare): "主题只能演示、不能说出"不止一本书这么说。毕飞宇把"说出主题"叫席勒化,把"演示主题"叫莎士比亚化:
> 「思想性的传递需要作家的思想,其实更需要作家的艺术才能。在美学上,说空话有一个专业的名词,叫'席勒化',把思想性落实到艺术性上,也有一个专业名词,叫'莎士比亚化'。」 > 「思想性的传递需要作家的思想,其实更需要作家的艺术才能。在美学上,说空话有一个专业的名词,叫'席勒化',把思想性落实到艺术性上,也有一个专业名词,叫'莎士比亚化'。」
@ -50,8 +48,6 @@
余华讨论沉重题材时同样要求批判不沦为说教与谩骂——他给出的解法是幽默作为结构:用幽默的态度与现实建立关系,既不妥协也不对抗。见 [humor-as-stance.md](humor-as-stance.md)。 余华讨论沉重题材时同样要求批判不沦为说教与谩骂——他给出的解法是幽默作为结构:用幽默的态度与现实建立关系,既不妥协也不对抗。见 [humor-as-stance.md](humor-as-stance.md)。
(/bifeiyu-shakespeare;/humor-as-structure)
## 书中案例 ## 书中案例
### 案例 1:The Cider House Rules(《苹果酒屋法则》) ### 案例 1:The Cider House Rules(《苹果酒屋法则》)
@ -61,8 +57,6 @@
- **结论**:主题 = "选择 vs 强加"——通过 Homer 的选择,从不通过说教 - **结论**:主题 = "选择 vs 强加"——通过 Homer 的选择,从不通过说教
- **结果**:获奥斯卡最佳改编剧本 - **结果**:获奥斯卡最佳改编剧本
(/theme-demonstrate-not-tell)
### 案例 2:The Lovely Bones(《可爱的骨头》) ### 案例 2:The Lovely Bones(《可爱的骨头》)
- **问题**:Alice Sebold 想"写一个关于失去与宽恕的故事" - **问题**:Alice Sebold 想"写一个关于失去与宽恕的故事"
@ -70,8 +64,6 @@
- **结论**:主题被"看"出来,不被"说"出来 - **结论**:主题被"看"出来,不被"说"出来
- **结果**:1000 万册 - **结果**:1000 万册
(/theme-demonstrate-not-tell)
### 案例 3:反例——常见的"主题演讲" ### 案例 3:反例——常见的"主题演讲"
- **问题**:写作者写完一章,让角色在对话中说"我们这个社会..." - **问题**:写作者写完一章,让角色在对话中说"我们这个社会..."
@ -79,8 +71,6 @@
- **结论**:删掉这段对话,改成角色在关键场景做"那个社会议题"的选择 - **结论**:删掉这段对话,改成角色在关键场景做"那个社会议题"的选择
- **结果**:改稿后不再"说教" - **结果**:改稿后不再"说教"
(/theme-demonstrate-not-tell)
## 执行步骤 ## 执行步骤
1. **确认主题** 1. **确认主题**
@ -102,11 +92,9 @@
- 完成标准:至少 1 个新场景,角色的"做"演示主题 - 完成标准:至少 1 个新场景,角色的"做"演示主题
- 不必是大幅动作,小决策即可 - 不必是大幅动作,小决策即可
(/theme-demonstrate-not-tell)
## 触发场景与语言信号 ## 触发场景与语言信号
用户会在什么情境下需要这个方法(/theme-demonstrate-not-tell): 用户会在什么情境下需要这个方法:
1. **主题植入**:"我故事主题是 X,怎么表达?" 1. **主题植入**:"我故事主题是 X,怎么表达?"
2. **说教修复**:"我被反馈'说教味重',怎么改?" 2. **说教修复**:"我被反馈'说教味重',怎么改?"
@ -122,7 +110,7 @@
## 中文落地(中文适配) ## 中文落地(中文适配)
Brooks 的方法从英文小说中总结,落地中文时 Tell 信号与检索法如下(/theme-demonstrate-not-tell 源内已有中文检索法 + 中文适配补充): Brooks 的方法从英文小说中总结,落地中文时 Tell 信号与检索法如下(源内已有中文检索法 + 中文适配补充):
- Tell 扫描用中文动词检索:搜"主题关键词 + 说出动词"(说/讲/道/谓/示)。这是源单元自带的中文检索法。 - Tell 扫描用中文动词检索:搜"主题关键词 + 说出动词"(说/讲/道/谓/示)。这是源单元自带的中文检索法。
- 书中反例案例本就是中文语境:角色在对话中说"我们这个社会..."——这类"主题演讲"在中文小说里同样扎眼。 - 书中反例案例本就是中文语境:角色在对话中说"我们这个社会..."——这类"主题演讲"在中文小说里同样扎眼。

View File

@ -5,18 +5,18 @@
## 一、写前:定主题与建碰撞 ## 一、写前:定主题与建碰撞
**1. 主题确认**(/theme-demonstrate-not-tell): **1. 主题确认**:
- [ ] 能用 1 句话说清"我的故事想照亮什么" - [ ] 能用 1 句话说清"我的故事想照亮什么"
- [ ] 这句话具体到"关于 X 中的 Y",不是"关于人性""关于爱"这类模糊哲学 - [ ] 这句话具体到"关于 X 中的 Y",不是"关于人性""关于爱"这类模糊哲学
**2. 把主题翻译成环境**(/bifeiyu-shakespeare): **2. 把主题翻译成环境**:
- [ ] 没有写成"主题:批判 X → 情节:主角觉醒揭发 X"(这是席勒化) - [ ] 没有写成"主题:批判 X → 情节:主角觉醒揭发 X"(这是席勒化)
- [ ] 写成了:环境 = 一个具体的 X 场景(如官僚场景:办事、推诿、签字);人物 = 性格鲜明的当事人 - [ ] 写成了:环境 = 一个具体的 X 场景(如官僚场景:办事、推诿、签字);人物 = 性格鲜明的当事人
- [ ] 想批判 X,就把 X 变成环境/对手,让主角去碰撞,主题自然浮现 - [ ] 想批判 X,就把 X 变成环境/对手,让主角去碰撞,主题自然浮现
**3. 设计推力链**(/bifeiyu-shakespeare): **3. 设计推力链**:
- [ ] 人物 A 的性格 = X,人物 B 的性格 = Y - [ ] 人物 A 的性格 = X,人物 B 的性格 = Y
- [ ] X 与 Y 碰撞 → 必然产生事件 Z - [ ] X 与 Y 碰撞 → 必然产生事件 Z
@ -25,14 +25,14 @@
## 二、写中:演示主题、防手软、选幽默距离 ## 二、写中:演示主题、防手软、选幽默距离
**4. 主题用"做"演示,不用"说"**(/theme-demonstrate-not-tell): **4. 主题用"做"演示,不用"说"**:
- [ ] 关键场景里让人物在 A/B 之间选,选什么 = 主题立场(决策演示) - [ ] 关键场景里让人物在 A/B 之间选,选什么 = 主题立场(决策演示)
- [ ] 整体结构(开头 vs 结尾,失败 vs 成功)能对照出主题(结构演示) - [ ] 整体结构(开头 vs 结尾,失败 vs 成功)能对照出主题(结构演示)
- [ ] 若用人物说一套做一套,反讽必须清晰,读者看得出来(反讽演示) - [ ] 若用人物说一套做一套,反讽必须清晰,读者看得出来(反讽演示)
- [ ] 至少 1-2 个小决策场景,角色的"做"演示主题(不必大幅动作) - [ ] 至少 1-2 个小决策场景,角色的"做"演示主题(不必大幅动作)
**5. 防手软自查**(/bifeiyu-mercy-ruth): **5. 防手软自查**:
- [ ] 我写这个人物之前确认过"我爱他"(不爱/蔑视的人物删掉或改写) - [ ] 我写这个人物之前确认过"我爱他"(不爱/蔑视的人物删掉或改写)
- [ ] 写到关键处没有出现"我舍不得她死……算了,让她活下去吧" - [ ] 写到关键处没有出现"我舍不得她死……算了,让她活下去吧"
@ -40,7 +40,7 @@
- [ ] 没有"突然让他走运" - [ ] 没有"突然让他走运"
- [ ] 出现以上任何一个 → 回到性格 + 逻辑,把该给的代价给足("作家是小说的上帝,但上帝不能滥用慈悲") - [ ] 出现以上任何一个 → 回到性格 + 逻辑,把该给的代价给足("作家是小说的上帝,但上帝不能滥用慈悲")
**6. 沉重题材选幽默距离**(/humor-as-structure): **6. 沉重题材选幽默距离**:
- [ ] 已明确题材的沉重点:涉及哪些痛苦/压迫/荒诞 - [ ] 已明确题材的沉重点:涉及哪些痛苦/压迫/荒诞
- [ ] 已判断直接写会变成什么:控诉?苦情?谩骂? - [ ] 已判断直接写会变成什么:控诉?苦情?谩骂?
@ -52,19 +52,19 @@
## 三、改稿:五项检验 ## 三、改稿:五项检验
**7. Tell 扫描**(/theme-demonstrate-not-tell): **7. Tell 扫描**:
- [ ] 搜"主题关键词 + 说出动词"(说/讲/道/谓/示) - [ ] 搜"主题关键词 + 说出动词"(说/讲/道/谓/示)
- [ ] 标出三类 Tell 位置:角色对话中的主题陈述;叙述者/旁白的主题点明;章节开头的"寓言式"开篇 - [ ] 标出三类 Tell 位置:角色对话中的主题陈述;叙述者/旁白的主题点明;章节开头的"寓言式"开篇
- [ ] 每个 Tell 都有对应的 Show 改写:把"角色说"改成"角色在场景中做"(例:把"他说'我爱我的祖国'"改成"他在撤退时为救一个同胞兵,错过了撤离船") - [ ] 每个 Tell 都有对应的 Show 改写:把"角色说"改成"角色在场景中做"(例:把"他说'我爱我的祖国'"改成"他在撤退时为救一个同胞兵,错过了撤离船")
- [ ] 删掉 Tell 后补上了 Show(只删不补 = 没有主题) - [ ] 删掉 Tell 后补上了 Show(只删不补 = 没有主题)
**8. 作家发言权检验**(/bifeiyu-shakespeare): **8. 作家发言权检验**:
- [ ] 问自己:"如果我(作家)什么都不说,人物会自己走到这一步吗?" - [ ] 问自己:"如果我(作家)什么都不说,人物会自己走到这一步吗?"
- [ ] 会的 → 莎士比亚化;不会 → 还在席勒化 - [ ] 会的 → 莎士比亚化;不会 → 还在席勒化
**9. 必然性检验**(/bifeiyu-shakespeare): **9. 必然性检验**:
把小说里任何一个事件删掉,看故事: 把小说里任何一个事件删掉,看故事:
@ -72,12 +72,12 @@
- [ ] 不影响?→ 这个事件是多余的,删 - [ ] 不影响?→ 这个事件是多余的,删
- [ ] 换个别的事件也能承接?→ 可能没找到真正必然的事件(参照:林冲的雪、风、石头——删一个故事就垮) - [ ] 换个别的事件也能承接?→ 可能没找到真正必然的事件(参照:林冲的雪、风、石头——删一个故事就垮)
**10. 作家沉默终极检验**(/bifeiyu-shakespeare): **10. 作家沉默终极检验**:
- [ ] 把所有"作家发言"删掉(解释、议论、心理分析),读者还能读懂 - [ ] 把所有"作家发言"删掉(解释、议论、心理分析),读者还能读懂
- [ ] 能 → 莎士比亚化;不能 → 在替人物说话,回到席勒化 - [ ] 能 → 莎士比亚化;不能 → 在替人物说话,回到席勒化
**11. 手狠检验**(/bifeiyu-mercy-ruth): **11. 手狠检验**:
- [ ] 主角受够他应受的苦了吗? - [ ] 主角受够他应受的苦了吗?
- [ ] 反派得到他应得的报应了吗? - [ ] 反派得到他应得的报应了吗?
@ -86,7 +86,7 @@
- [ ] 狠的成分检验:狠但带着爱 → 心慈手狠;狠只是狠 → 虐待狂;狠带着蔑视 → 失败 - [ ] 狠的成分检验:狠但带着爱 → 心慈手狠;狠只是狠 → 虐待狂;狠带着蔑视 → 失败
- [ ] 有甜有狠(全是甜 = 心慈手不狠;全是狠 = 手狠心不慈) - [ ] 有甜有狠(全是甜 = 心慈手不狠;全是狠 = 手狠心不慈)
**12. 幽默结构检验**(/humor-as-structure): **12. 幽默结构检验**:
- [ ] 幽默是贯穿全文的态度,还是偶尔的俏皮话?是俏皮话就回到第 6 步重选距离,让幽默成为整体结构 - [ ] 幽默是贯穿全文的态度,还是偶尔的俏皮话?是俏皮话就回到第 6 步重选距离,让幽默成为整体结构
- [ ] 幽默段落和沉重段落交替:没有全程搞笑,也没有全程压抑 - [ ] 幽默段落和沉重段落交替:没有全程搞笑,也没有全程压抑

9
.agent/目录.md Normal file
View File

@ -0,0 +1,9 @@
| 名称 | 相对地址 | 内容描述 | 使用场景 | 使用要求 |
|------|----------|----------|----------|----------|
| rules | 暂无 | 必须怎么做(违反即不合规) | 改代码、补测试、宣称完成前 | 团队确认一条硬规则时 |
| 约束 | 暂无 | 不准做什么、边界在哪 | 跨模块、碰数据/密钥/外部系统、不可逆操作前 | 确认一条红线时 |
| 规范 | 暂无 | 名字、词、文件怎么写才算本仓的 | 起名、放文件、写注释/提交说明、统一术语时 | 确认一条写法/用词时 |
| skills | skills/ | 本仓长期复用的标准能力(目录格式:skills/<名>/SKILL.md) | 该 skill 的使用场景命中当前任务时 | 本仓反复出现的操作被固化时(一次性任务台账不放这里) |
| agents | agents/ | | | |
| docs | docs/ | | | |
<!-- my-skills-cli:index:v2 -->

9
.gitignore vendored
View File

@ -22,3 +22,12 @@ docs/write-chapter/artifacts/
/data/muse.db-wal /data/muse.db-wal
/data/muse.db-shm /data/muse.db-shm
/data/sources/ /data/sources/
# BEGIN my-skills-cli
.agents.local/
.claude/
.codex/
.pi/
.opencode/
.cursor/
# END my-skills-cli

View File

@ -207,3 +207,23 @@ git diff --check
### 11.3 审查产出 ### 11.3 审查产出
每次审查对每个被审对象给出:**面对谁 / 目的**、**逐条问题**(正向资产 + 负向污染,各标严重度)、**具体修改建议**。严重度只取阻断 / 严重 / 一般三级,定义见评分标准第 5 节,不由审查者临场发挥。审查只读、不改代码;修改另起授权,框架改动与创作内容分开提交。 每次审查对每个被审对象给出:**面对谁 / 目的**、**逐条问题**(正向资产 + 负向污染,各标严重度)、**具体修改建议**。严重度只取阻断 / 严重 / 一般三级,定义见评分标准第 5 节,不由审查者临场发挥。审查只读、不改代码;修改另起授权,框架改动与创作内容分开提交。
<!-- my-skills-cli:begin -->
## 项目 harness
先读本表,再打开对应目录的 `目录.md`,按其中清单读取具体文件。
不要按宿主框架另建一套规则,也不依赖宿主的 skill 自动发现。
| 类别 | 读 | 说明 |
|------|-----|------|
| 项目设计与实施 | `docs/目录.md` | 架构、方案、实施计划/Runbook、模块概要与回顾(人机共读) |
| 团队规则与技能 | `.agent/目录.md` | 团队长期生效的硬规则、约束、代码规范与专属 Skill(<名>/SKILL.md 格式) |
| 个人配置 | `.agents.local/AGENTS.md` | 存在则先读:个人指令集、skill、草稿、便签(默认不提交) |
### 维护纪律
处理任何代码变更时,以项目已有架构、领域模型、ADR、编码规范和测试为准,优先保持代码可读、简单、局部且可维护,禁止无证据叠加抽象;新方案完成后必须清理被替代的实现、重复路径、旧配置、旧测试和文档残留,控制长期熵增。
提交:`AGENTS.md`、`docs/`、`.agent/` 全部内容。
不提交:`.agents.local/`、`.claude/`、`.codex/`、`.pi/`、`.opencode/`、`.cursor/`。
<!-- my-skills-cli:end -->

19
docs/目录.md Normal file
View File

@ -0,0 +1,19 @@
| 名称 | 相对地址 | 内容描述 | 使用场景 | 使用要求 |
|------|----------|----------|----------|----------|
| 系统架构 | 暂无 | 系统怎么切、依赖朝哪、为什么这样切;ADR 在 `决策/` | 跨模块、改边界、选技术底座、写 ADR 时 | 架构或架构决策变化时 |
| 领域模型 | 暂无 | 业务概念、词什么意思、概念边界;术语全文在 `术语表.md` | 改业务行为、起名、对术语有分歧时 | 新术语或概念边界确认时 |
| 数据模型 | 暂无 | 数据长什么样、存在哪、怎么一致 | 改存储、迁移、字段、一致性时 | schema / 数据生命周期变化时 |
| 模块设计 | 暂无 | 代码按什么模块分、职责与依赖 | 动模块边界、新代码往哪放拿不准时 | 模块职责或依赖变化时 |
| 功能规格 | 暂无 | 功能方案、验收标准与实施执行计划/Runbook(spec) | 实现或评审某功能前 | 功能范围、方案或实施步骤确认时 |
| 接口契约 | 暂无 | 对外/对内接口契约 | 改接口、联调、生成客户端时 | 契约变化时 |
| 业务需求 | 暂无 | 要解决谁的什么问题、不做哪些 | 功能还没方案、对齐目标和范围时 | 需求确认或变更时 |
| 调用链路 | 暂无 | 一条真实路径经过哪些代码 | 改这条链路、排障、清理相关代码时 | 关键路径稳定或被改写后 |
| 模块概要 | 暂无 | 某模块一页纸:干什么、入口在哪 | 第一次接触某模块、给别人指路时 | 模块对外形状变了 |
| 实现回顾 | 暂无 | 功能实际怎么落地、和设计有何出入 | 后续改同一功能、交接、对照设计时 | 功能合并后留回顾 |
| 缺陷回顾 | 暂无 | bug 根因、修法、如何防再发 | 同类故障、改相关代码前 | 非平凡 bug 修完留根因时 |
| acceptance | acceptance/ | | | |
| design | design/ | | | |
| plans | plans/ | | | |
| research | research/ | | | |
| write-chapter | write-chapter/ | | | |
<!-- my-skills-cli:index:v2 -->

View File

@ -8,21 +8,21 @@ scope: entity
判据: 具名/可指认的行动主体,说话方式即该角色语言指纹 ‖ 作者全书指纹→style;关系→character_relation;集体→faction 判据: 具名/可指认的行动主体,说话方式即该角色语言指纹 ‖ 作者全书指纹→style;关系→character_relation;集体→faction
实例落点: 知识/人物/*.md 实例落点: 知识/人物/*.md
特有字段: 特有字段:
- { key: 身份定位, 说明: 主角/重要配角/反派/势力标杆, aiContext: true } - { key: 身份定位, 说明: 主角(圆形人物-出人意料又令人信服)/重要配角/功能人物(扁平人物-一句话可辨识)/反派/势力标杆, aiContext: true }
- { key: 阵营, 说明: 指向势力卡, aiContext: true } - { key: 阵营, 说明: 指向势力卡, aiContext: true }
- { key: 境界与能力, 说明: 当前境界(对齐力量体系阶梯)+特殊手段,随确认更新, aiContext: true } - { key: 境界与能力, 说明: 当前境界(对齐力量体系阶梯)+特殊手段,随确认更新, aiContext: true }
- { key: 外貌特征, 说明: 两三个可反复引用的具体记号,不写套话, aiContext: true } - { key: 外貌特征, 说明: 两三个可反复引用的具体物理记号(细节马赛克),不写套话, aiContext: true }
- { key: 性格底色, aiContext: true } - { key: 性格底色, 说明: 基础情感色彩与基准反应(基础体温), aiContext: true }
- { key: 欲望与恐惧, 说明: 最想要什么/最怕什么——动机引擎, aiContext: true } - { key: 核心渴望与心魔, alias: 欲望与恐惧, 说明: 核心追求与内部心魔(Inner Demon)——阻碍主角行动的内在执念与赌注, aiContext: true }
- { key: 行事逻辑, 说明: 面对冲突他会怎么选——行为一致性的判据, aiContext: true } - { key: 行事逻辑, 说明: 面对极端两难与压力时他怎么选——行为一致性的判据(三维核心), aiContext: true }
- { key: 说话方式, 说明: 语言指纹:口头禅/句长/称呼习惯/敬语与粗口, aiContext: true } - { key: 说话方式, 说明: 语言指纹:口头禅/句长/称呼习惯/省略与打断(真话质感,避免教科书式答辩), aiContext: true }
- { key: 秘密与底牌, 说明: 写手需要它才能写出言行的弦外之音, aiContext: true } - { key: 秘密与底牌, 说明: 冰山之下的水下事实,写手据此写出言行的弦外之音(暗劲), aiContext: true }
- { key: 成长弧线, 说明: 「未来计划」——计划中(尚未发生)的变化轨迹,续写不可见防抢进度剧透;已发生的台阶改归「演变历程」,二者分工不混, aiContext: [planning, detection] } - { key: 成长弧线, 说明: 「未来计划」——计划中(尚未发生)的变化轨迹,续写不可见防抢进度剧透;已发生的台阶改归「演变历程」,二者分工不混, aiContext: [planning, detection] }
# ── 升格卡改造(2026-07-17)新增:演变历程(完整历史层,已发生台阶)+演变概括(现状层)。定义见 docs/2026-07-16-升格卡改造设计.md 第五节、拍板#3 ── # ── 升格卡改造:演变历程(完整历史层,已发生台阶)+演变概括(现状层) ──
- key: 演变历程 - key: 演变历程
说明: "已发生的成长台阶明细,一条一台阶只追加不覆写;每条是对象 {章: 绝对章号(整数如 420,或跨章区间字符串如 \"420-423\"), 台阶: 成长到什么+靠什么事件的一句话, 周期: 登场/成长/高光/退场/结局}。按真实章号排序索引(不用运行时窗号)——完整历史层,续写不给(防上万字明细撑爆上下文),仅一致性检查与判重可见;与成长弧线分工:本字段记已发生、成长弧线记未来计划" 说明: "已发生的成长台阶明细,一条一台阶只追加不覆写;每条是对象 {章: 绝对章号(整数如 420,或跨章区间字符串如 \"420-423\"), 台阶: 成长到什么+靠什么事件的一句话, 周期: 登场/成长/高光/退场/结局}。按真实章号排序索引(不用运行时窗号)——完整历史层,续写不给(防上万字明细撑爆上下文),仅一致性检查与判重可见;与成长弧线分工:本字段记已发生、成长弧线记未来计划"
aiContext: [detection, extraction] aiContext: [detection, extraction]
- key: 演变概括 - key: 演变概括
说明: "整条成长线的一句话梗概。现状层续写可见;与一句话摘要分工——摘要写当前态、本字段写来龙去脉" 说明: "整条成长线的一句话梗概。现状层续写可见;与一句话摘要分工——摘要写当前态、本字段写来龙去脉"
aiContext: true aiContext: true
- { key: 创作备忘, 说明: 作者碎碎念,任何用途不入 AI 上下文, aiContext: false } - { key: 创作备忘, 说明: 作者私人记录,任何用途不入 AI 上下文, aiContext: false }

View File

@ -4,41 +4,33 @@ domain: content
scope: chapter scope: chapter
本体分组: 作品骨架 本体分组: 作品骨架
状态: 启用 状态: 启用
判据: 单章的结构骨架(续写的直接依据) ‖ 全书/卷层计划→outline;戏内已定事实→event;跨作品写法公式→trope 判据: 单章的结构节拍与执行骨架(续写的直接依据) ‖ 全书/卷层计划→outline;戏内已定事实→event;跨作品写法公式→trope
实例落点: example_planning_section(section_type=fine_outline;schema_type=fine_outline;必须带 target_chapter;shadow→confirmed 才进生成上下文) 实例落点: example_planning_section(section_type=fine_outline;schema_type=fine_outline;必须带 target_chapter;shadow→confirmed 才进生成上下文)
# 本文件是章级细纲 payload 的唯一字段权威。plan-chapter Skill 按此形状产出; # 本文件是章级细纲 payload 的唯一字段权威。plan-chapter 按此形状产出;
# persist_planning 落库时按此做字段覆盖门禁;assemble_writer_context 从中抽取 writer 需要的子集。 # persist_planning 落库时按此做字段覆盖门禁;assemble_writer_context 从中抽取 writer 需要的子集。
# 三处同一合同;结束此前「技能产出形」与「装配消费形」字段不相交的漂移。
# 字段说明文字一律避开 ASCII 逗号与花括号(流式值里它们是 YAML 结构符);用中文顿号/分号/圆括号。
字段覆盖门禁: 强制 # persist_planning 落库时按 必填字段 失败关闭;推荐字段只报告不拦 字段覆盖门禁: 强制 # persist_planning 落库时按 必填字段 失败关闭;推荐字段只报告不拦
必填字段: [targetChapter, sourceRef, chapterGoal, hardConstraints, keyEvents, adjustableBeats, declaredNewFacts, mustAppearEntities, chapterEndHook] 必填字段: [targetChapter, sourceRef, chapterGoal, hardConstraints, keyEvents, adjustableBeats, declaredNewFacts, mustAppearEntities, chapterEndHook]
特有字段: 特有字段:
# ── 必填:writer 装配与机械门的硬依赖 ── # ── 必填:写手装配与机械门禁的硬依赖 ──
- { key: targetChapter, 说明: 目标章号(正整数), aiContext: true } - { key: targetChapter, alias: 目标章号, 说明: 目标章号(正整数), aiContext: true }
- { key: sourceRef, 说明: 不可变来源引用(含 sourceId 与 sourceVersion);指向本细纲依据的已确认大纲版本, aiContext: true } - { key: sourceRef, alias: 来源引用, 说明: 不可变来源引用(含 sourceId 与 sourceVersion);指向本细纲依据的已确认大纲版本, aiContext: true }
- { key: chapterGoal, 说明: 本章要完成的戏剧任务(字符串), aiContext: true } - { key: chapterGoal, alias: 本章目标, 说明: 本章要完成的核心场景任务(Scene Mission);晚进早出(Enter Late Exit Early), aiContext: true }
- { key: hardConstraints, 说明: 硬约束字符串数组;衔接与设定与不可逆事实;机械门硬事件锚点的来源;不可删除·反转·提前回收, aiContext: true } - { key: hardConstraints, alias: 硬约束, 说明: 硬约束字符串数组;衔接上一章结尾的不可逆事实与世界规则;机械门锚点来源;不可删除·反转·提前回收, aiContext: true }
- keyEvents: - { key: keyEvents, alias: 关键事件, 说明: 关键事件因果节拍数组;规范形为因果对象(含 id·order·event·participants·trigger·resultDirection;触发·参与者·行动·结果方向须互相解释);新细纲用对象形, aiContext: true }
说明: 关键事件数组;规范形为因果对象(含 id·order·event·participants·trigger·resultDirection;触发·参与者·行动·结果方向须互相解释);兼容纯字符串旧形(书12 ch1);新细纲用对象形 - { key: adjustableBeats, alias: 可调整节拍, 说明: 可调整节拍字符串数组;允许写手在不变硬约束下自由处理的次序与比重, aiContext: true }
aiContext: true - { key: declaredNewFacts, alias: 新事实宣告, 说明: 本章宣告的新事实数组(每项含 factId·text·sourceRef);合同形状;落库为 fine_outline_declared_new 事实证据, aiContext: true }
- { key: adjustableBeats, 说明: 可调整节拍字符串数组;允许 writer 在不变硬约束下自由处理的次序与比重, aiContext: true } - { key: mustAppearEntities, alias: 必须出场实体, 说明: 必须出场实体数组(字符串或 id/type/name 对象);出场校验与覆盖审计依据, aiContext: true }
- declaredNewFacts: - { key: chapterEndHook, alias: 章末钩子, 说明: 章末钩子与悬念(字符串);内部悬念或危机引爆点, aiContext: true }
说明: 本章宣告的新事实数组(每项含 factId·text·sourceRef);合同形状(非纯字符串);落库为 fine_outline_declared_new 事实证据 # ── 推荐:规划表达力与手艺控制;允许显式「字段存疑」标注后落库 ──
aiContext: true - { key: foreshadowing, alias: 伏笔动作, 说明: 伏笔动作数组(每项含 action·subject·evidence;action 取 埋/推进/回收/不确定;契诃夫之枪或散落金币);不得把未证明的结果静默写成确定事实, aiContext: true }
- { key: mustAppearEntities, 说明: 必须出场实体数组(字符串或 id/type/name 对象);出场校验与覆盖审计的依据;门锚收敛目标(现按章登记于生产脚本 GATE_ANCHORS), aiContext: true } - { key: entities, alias: 出场实体, 说明: 出场实体数组(含 name·type·role);带本章作用;供覆盖审计, aiContext: true }
- { key: chapterEndHook, 说明: 章末钩子(字符串);章末锚点匹配的依据;门锚收敛目标(现按章登记于生产脚本 GATE_ANCHORS), aiContext: true } - { key: stateChanges, alias: 状态变化, 说明: 可观察的角色与环境状态变化字符串数组, aiContext: true }
# ── 推荐:规划表达力;字段覆盖门禁会检查;允许显式「字段存疑」标注后落库 ── - { key: unknowns, alias: 未知项, 说明: 无法由当前资料证明的内容字符串数组;区分资料缺失与规划错误, aiContext: [planning, detection] }
- foreshadowing: - { key: assumptions, alias: 假设, 说明: 为组织结构暂时采用的假设字符串数组, aiContext: [planning, detection] }
说明: 伏笔动作数组(每项含 action·subject·evidence;action 取 埋/推进/回收/不确定;evidence 为来源ID或 unknown);不得把未证明的结果静默写成确定事实 - { key: sourceRefs, alias: 来源回溯, 说明: 可选回溯;冻结快照中的 sourceId 数组;只能引用 sourceId 不能粘原文, aiContext: false }
aiContext: true - { key: targetChars, alias: 目标字数, 说明: 可选本章目标汉字数;未提供时按目标章前有效章长中位数×细纲密度确定性计算;受 2000–10000 硬边界, aiContext: [generation] }
- { key: entities, 说明: 出场实体数组(含 name·type·role);带本章作用;供覆盖审计;与 mustAppearEntities 分工(本字段给作用;前者给硬出场名单), aiContext: true }
- { key: stateChanges, 说明: 可观察的状态变化字符串数组, aiContext: true }
- { key: unknowns, 说明: 无法由当前资料证明的内容字符串数组;审查据此区分资料缺失与规划错误, aiContext: [planning, detection] }
- { key: assumptions, 说明: 为组织结构暂时采用的假设字符串数组, aiContext: [planning, detection] }
- { key: sourceRefs, 说明: 可选回溯;冻结快照中的 sourceId 数组;只能引用 sourceId 不能粘原文, aiContext: false }
- { key: targetChars, 说明: 可选本章目标汉字数;未提供时按目标章前有效章长中位数×细纲密度确定性计算;仍受 2000–10000 硬边界, aiContext: [generation] }
信息量纪律: 信息量纪律:
- 章细纲字数≈章正文 3–5%(3000 字章→100–150 字);细纲是结构骨架不是缩写;超比例=退回重做(创始人已拍板@2026-07-09) - 章细纲字数≈章正文 3–5%(3000 字章→100–150 字);细纲是结构骨架不是缩写;超比例=退回重做
设计发现: 设计发现:
- 2026-08-02 统一合同——此前章级细纲有两套字段集不相交的合同:planning 技能产出形(chapterGoal/keyEvents因果对象/entities/foreshadowing埋推收/stateChanges/hook/unknowns/assumptions/sourceRefs)与 writer 装配消费形(sourceRef/hardConstraints/adjustableBeats/declaredNewFacts;见 assemble_writer_context._outline_contract)。planner 按技能形产出则装配直接 AssemblyError。本文件取两者并集为唯一权威:必填集满足装配与机械门;推荐集保留规划表达力;hook 统一为 chapterEndHook。书12 已确认细纲(旧字符串 keyEvents;schema_type=outline)为冻结历史;不溯及重校验。 - 2026-08-02 统一合同——必填集满足写手装配与机械门禁;推荐集保留规划表达力;hook 统一为 chapterEndHook。
- 同日——schema_type 归属:新细纲用 schema_type=fine_outline 落库以触发字段覆盖门禁;书12 存量 schema_type=outline 的细纲为历史形状。 - 2026-08-28 规范化字段格式与 alias 别名索引。

View File

@ -4,19 +4,20 @@ domain: content
scope: work scope: work
本体分组: 作品骨架 本体分组: 作品骨架
状态: 启用 状态: 启用
判据: 对「接下来写什么」的计划,全书/卷/章三层用字段表达 ‖ 戏内已定事实→event;跨作品公式→trope 判据: 对「接下来写什么」的结构化计划,全书/卷/章三层用字段表达 ‖ 戏内已定事实→event;跨作品公式→trope
实例落点: 大纲.md 实例落点: 大纲.md
特有字段: 特有字段:
- { key: 主线一句话, 说明: ≤50 字, aiContext: true } - { key: 主线一句话, 说明: 故事前提(Premise)——主角要做什么核心任务与赌注(≤50 字), aiContext: true }
- { key: 分卷粗纲, 说明: 每卷:卷名/卷目标/核心冲突/情绪终点;卷粗纲字数≈卷正文 0.3–0.5%, aiContext: true } - { key: 分卷粗纲, 说明: 四箱结构(铺垫/应对/反击/决战);每卷:卷名/卷目标/核心冲突/情绪终点;字数≈卷正文 0.3–0.5%, aiContext: true }
- { key: 当前卷细纲, 说明: 本卷逐段的推进设计, aiContext: true } - { key: 当前卷细纲, 说明: 本卷逐段与六大里程碑(煽动事件/第一剧情点/中点/危机/高潮)推进设计, aiContext: true }
- key: 近三章细纲 - key: 近三章细纲
说明: 每章:章目标/关键事件/出场角色/伏笔动作(埋·推·收)/章末钩子——续写的直接依据;章细纲字数≈章正文 3–5%(3000 字章→100–150 字);细纲是结构骨架不是缩写,超比例=退回重做 说明: 每章:章目标(场景任务)/关键事件(因果节拍)/出场角色/伏笔动作(契诃夫之枪·金币·暗劲)/章末钩子(内部悬念)——续写的直接依据;章细纲字数≈章正文 3–5%(3000 字章→100–150 字);细纲是结构骨架不是缩写,超比例=退回重做
aiContext: true aiContext: true
- { key: targetChars, 说明: 可选的本章目标汉字数;仍受 2000–10000 硬边界约束, aiContext: [generation] } - { key: 目标字数, alias: targetChars, 说明: 可选的本章目标汉字数;仍受 2000–10000 硬边界约束, aiContext: [generation] }
- { key: 未来卷粗纲, 说明: 防续写提前收线,仅规划可见, aiContext: [planning] } - { key: 未来卷粗纲, 说明: 防续写提前收线,仅规划可见, aiContext: [planning] }
- { key: 弃案记录, 说明: 改掉的旧方向,防被 AI 复活, aiContext: false } - { key: 弃案记录, 说明: 改掉的旧方向,防被 AI 复活, aiContext: false }
设计发现: 设计发现:
- 2026-07-09 全书解析设计——存量作品需**规划逆向**(全文→章细纲→卷粗纲→主线,自底向上,与创作期自顶向下互为镜像);SoT 产品-03 §3.7 全书解析产出未含大纲/细纲,「细纲」粒度层级亦为本仓先行,均待回填 - 2026-07-09 全书解析设计——存量作品需**规划逆向**(全文→章细纲→卷粗纲→主线,自底向上,与创作期自顶向下互为镜像);SoT 产品-03 §3.7 全书解析产出未含大纲/细纲,「细纲」粒度层级亦为本仓先行,均待回填
- 同日——「细纲/正文字数比例」约束防解析退化成压缩复述,**创始人已拍板@2026-07-09**(章细纲 3–5%、卷粗纲 0.3–0.5%、主线 ≤50 字),已写入上方字段说明;D1 回填 design-docs 时随字段合同一并带走 - 同日——「细纲/正文字数比例」约束防解析退化成压缩复述,**创始人已拍板@2026-07-09**(章细纲 3–5%、卷粗纲 0.3–0.5%、主线 ≤50 字),已写入上方字段说明;D1 回填 design-docs 时随字段合同一并带走
- 2026-07-20 正文实验台——新增可选 targetChars;未提供时只依据目标章之前的有效 Canonical 章长中位数与细纲密度确定性计算 - 2026-07-20 正文实验台——新增可选 targetChars;未提供时只依据目标章之前的有效 Canonical 章长中位数与细纲密度确定性计算
- 2026-08-28 结构规范与 Brooks 四箱六里程碑教材体系对齐。

View File

@ -5,14 +5,14 @@ scope: work
本体分组: 画像 本体分组: 画像
层次: 双层(作品面实例+公共范式,单模具双库) 层次: 双层(作品面实例+公共范式,单模具双库)
状态: 启用 状态: 启用
判据: 与章序无关的语言表层指纹(打乱章序不变) ‖ 顺序敏感分布→pacing;单角色语言→character 说话方式 判据: 与章序无关的语言表层指纹与声音特征(Voice Equalizer) ‖ 顺序敏感分布→pacing;单角色语言→character 说话方式
实例落点: 设定.md §文风画像 实例落点: 设定.md §文风画像
特有字段: 特有字段:
- { key: 叙事人称与视角纪律, 说明: 如第三人称限知/POV 每场景唯一/切换规则, aiContext: true } - { key: 叙事人称与视角纪律, 说明: POV 每场景唯一/外来者视角/怀疑叙述/客观限制, aiContext: true }
- { key: 句式画像, 说明: 长短句配比/段落长度/换行密度, aiContext: true } - { key: 句式画像, 说明: 长短句配比/右分支句与断句/段落长度/换行密度(句子节奏), aiContext: true }
- { key: 叙述配比, 说明: 叙述:对话:描写的大致比例与出手时机, aiContext: true } - { key: 叙述配比, 说明: 白描:对话:叙述的大致比例与出手时机(暗劲/冰山水下事实), aiContext: true }
- { key: 用词质感, 说明: 具体名词与动词优先,少形容词堆叠, aiContext: true } - { key: 用词质感, 说明: 抽象阶梯底层(Ladder of Abstraction)——具体名词与动词优先,绝不堆无功能形容词, aiContext: true }
- { key: AI味黑名单, 说明: 禁用词与句式清单(仿佛/似乎/不禁/一丝/眼眸/嘴角勾起/…)——评委按此扣分, aiContext: true } - { key: AI味黑名单, 说明: 禁用词与句式清单(仿佛/似乎/不禁/一丝/眼眸/嘴角微扬/不难发现/值得注意的是…)——机械与语义门拦截, aiContext: true }
- { key: 对话风格, 说明: 信息密度/潜台词习惯/口语化程度, aiContext: true } - { key: 对话风格, 说明: 真话质感(Dialogue as Action——省略/倒装/打断/半句话,严禁教科书答辩), aiContext: true }
- { key: 章末钩子风格, aiContext: true } - { key: 章末钩子风格, 说明: 内部悬念(Internal Cliffhanger)与阶段奖励(Gold Coins), aiContext: true }
- { key: 达标样张, 说明: 一段公认达标的锚点文字,写手对照它校准, aiContext: true } - { key: 达标样张, 说明: 一段公认高质感达标的锚点文字(余华/毕飞宇/经典网文实证片段),写手对照校准, aiContext: true }

View File

@ -8,11 +8,11 @@ scope: work
实例落点: 设定.md §作品核心 实例落点: 设定.md §作品核心
特有字段: 特有字段:
- { key: 题材定位, 说明: 品类内的具体路数与变奏点, aiContext: true } - { key: 题材定位, 说明: 品类内的具体路数与变奏点, aiContext: true }
- { key: 核心卖点, 说明: 这本书靠什么让人一直读(爽点引擎), aiContext: true } - { key: 核心概念与卖点, alias: 核心卖点, 说明: 核心概念(Concept - What If 设问)与故事引擎(Story Engine), aiContext: true }
- { key: 主题立意, aiContext: true } - { key: 主题立意, 说明: 故事照亮的人性与生活真相(Theme), aiContext: true }
- { key: 基调, 说明: 热血/冷峻/轻松诙谐…, aiContext: true } - { key: 基调与体温, alias: 基调, 说明: 基础体温(热血/冷峻/市井幽默/荒诞…), aiContext: true }
- { key: 禁区, 说明: 绝不出现的内容与写法, aiContext: true } - { key: 禁区, 说明: 绝不出现的内容、违和写法与破壁元叙述, aiContext: true }
- { key: 核心悬念, 说明: 贯穿全书的大谜面,只写"问题"不写答案, aiContext: true } - { key: 核心悬念, 说明: 贯穿全书的大谜面,只写"问题"不写答案, aiContext: true }
- { key: 谜底与真相, 说明: 大谜面的答案;续写不可见,防提前泄底, aiContext: [planning, detection] } - { key: 谜底与真相, 说明: 大谜面的答案;续写不可见,防提前泄底(底牌), aiContext: [planning, detection] }
- { key: 结局方向, 说明: 续写不可见,防 AI 抢进度直奔结局, aiContext: [planning, detection] } - { key: 结局方向, 说明: 续写不可见,防 AI 抢进度直奔结局, aiContext: [planning, detection] }
- { key: 目标读者, aiContext: [planning] } - { key: 目标读者, aiContext: [planning] }

View File

@ -171,12 +171,41 @@ def _select_recent_baseline(recent_chapters: Sequence[Mapping[str, Any]], *, as_
def _outline_contract(fine_outline: Mapping[str, Any]) -> dict[str, Any]: def _outline_contract(fine_outline: Mapping[str, Any]) -> dict[str, Any]:
"""只保留 WriterContext 合同字段,检索用实体列表不会被倾倒给写手。""" """只保留 WriterContext 合同字段,检索用实体列表不会被倾倒给写手。
支持全中文键名(来源引用、硬约束、可调整节拍、新事实宣告)及英文兼容键。
"""
required = {"sourceRef", "hardConstraints", "adjustableBeats", "declaredNewFacts"} if not isinstance(fine_outline, Mapping):
if not isinstance(fine_outline, Mapping) or not required.issubset(fine_outline): raise AssemblyError("fineOutline 必须是对象")
raise AssemblyError("fineOutline 缺少严格合同字段")
return {key: copy.deepcopy(fine_outline[key]) for key in ("sourceRef", "hardConstraints", "adjustableBeats", "declaredNewFacts")} source_ref = fine_outline.get("来源引用") or fine_outline.get("sourceRef")
hard_constraints = fine_outline.get("硬约束") if "硬约束" in fine_outline else fine_outline.get("hardConstraints")
adjustable_beats = fine_outline.get("可调整节拍") if "可调整节拍" in fine_outline else fine_outline.get("adjustableBeats")
declared_new_facts = fine_outline.get("新事实宣告") if "新事实宣告" in fine_outline else fine_outline.get("declaredNewFacts")
if source_ref is None or hard_constraints is None or adjustable_beats is None or declared_new_facts is None:
raise AssemblyError("fineOutline 缺少严格合同字段 (来源引用/硬约束/可调整节拍/新事实宣告)")
normalized_facts = []
for item in declared_new_facts:
if isinstance(item, Mapping):
f_id = str(item.get("事实ID") or item.get("factId") or "")
f_text = str(item.get("文本") or item.get("text") or "")
f_ref = item.get("来源引用") or item.get("sourceRef") or source_ref
normalized_facts.append({
"factId": f_id,
"text": f_text,
"sourceRef": f_ref,
})
else:
normalized_facts.append(item)
return {
"sourceRef": copy.deepcopy(source_ref),
"hardConstraints": copy.deepcopy(hard_constraints),
"adjustableBeats": copy.deepcopy(adjustable_beats),
"declaredNewFacts": copy.deepcopy(normalized_facts),
}
def _coverage_elements(fine_outline: Mapping[str, Any]) -> list[dict[str, str]]: def _coverage_elements(fine_outline: Mapping[str, Any]) -> list[dict[str, str]]:

View File

@ -730,13 +730,18 @@ def build_writer_creative_input(value: Any) -> dict[str, Any]:
reference["writingPoints"] = dict(item["writingPoints"]) reference["writingPoints"] = dict(item["writingPoints"])
pattern_references.append(reference) pattern_references.append(reference)
output_contract = context.get("generationLengthContract", context["outputContract"]) output_contract = context.get("generationLengthContract", context["outputContract"])
target_chars = output_contract.get("目标字数") or output_contract.get("targetChars", 7000)
min_chars = output_contract.get("字数下限") or output_contract.get("minChars", 3000)
max_chars = output_contract.get("字数上限") or output_contract.get("maxChars", 10000)
fm_required = output_contract.get("需要前言") or output_contract.get("frontmatterRequired", False)
creative_input = { creative_input = {
"fineOutline": { "fineOutline": {
"hardConstraints": list(outline["hardConstraints"]), "hardConstraints": list(outline.get("硬约束") or outline.get("hardConstraints", [])),
"adjustableBeats": list(outline["adjustableBeats"]), "adjustableBeats": list(outline.get("可调整节拍") or outline.get("adjustableBeats", [])),
"declaredNewFacts": [ "declaredNewFacts": [
{"factId": item["factId"], "text": item["text"]} {"factId": item.get("事实ID") or item.get("factId", ""), "text": item.get("文本") or item.get("text", "")}
for item in outline["declaredNewFacts"] for item in (outline.get("新事实宣告") or outline.get("declaredNewFacts", []))
], ],
}, },
"narrativeState": context["narrativeState"], "narrativeState": context["narrativeState"],
@ -744,13 +749,11 @@ def build_writer_creative_input(value: Any) -> dict[str, Any]:
"proseExcerpts": prose_excerpts, "proseExcerpts": prose_excerpts,
"patternReferences": pattern_references, "patternReferences": pattern_references,
"lengthContract": { "lengthContract": {
"targetChars": output_contract["targetChars"], "targetChars": target_chars,
"minChars": output_contract["minChars"], "minChars": min_chars,
"maxChars": output_contract["maxChars"], "maxChars": max_chars,
"frontmatterRequired": output_contract["frontmatterRequired"], "frontmatterRequired": fm_required,
}, },
# 文风约束从冻结上下文投影(规划期选定的 style 画像);上下文未带则为空,
# 不再写死恒空——style 真注入的出口。
"styleConstraints": [str(rule) for rule in context.get("styleConstraints", [])], "styleConstraints": [str(rule) for rule in context.get("styleConstraints", [])],
} }
return json.loads(canonical_json(creative_input)) return json.loads(canonical_json(creative_input))

View File

@ -74,10 +74,14 @@ def _load_schema(schema_type):
if "key" in item: # 流式 - { key: X, 说明:..., aliases:[...] } if "key" in item: # 流式 - { key: X, 说明:..., aliases:[...] }
name = str(item["key"]) name = str(item["key"])
aliases = [str(a) for a in (item.get("aliases", []) or [])] aliases = [str(a) for a in (item.get("aliases", []) or [])]
if "alias" in item:
aliases.append(str(item["alias"]))
elif len(item) == 1: # 块式 - X:\n 说明:... (单键映射,键即字段名) elif len(item) == 1: # 块式 - X:\n 说明:... (单键映射,键即字段名)
name = next(iter(item)) name = next(iter(item))
sub = item[name] sub = item[name]
aliases = [str(a) for a in (sub.get("aliases", []) or [])] if isinstance(sub, dict) else [] aliases = [str(a) for a in (sub.get("aliases", []) or [])] if isinstance(sub, dict) else []
if isinstance(sub, dict) and "alias" in sub:
aliases.append(str(sub["alias"]))
else: else:
continue continue
fields[name] = aliases fields[name] = aliases

View File

@ -78,7 +78,7 @@ disable-model-invocation: true
``` ```
`owned`、`licensed` 和 `public_domain` 才允许把片段写入卡;`research_only`、`unauthorized` 只能 hash-only,且永远不能确认。`source_sha256` 针对原始文件字节,`excerpt_sha256` 针对保存的片段,二者不可由模型自报。 `owned`、`licensed` 和 `public_domain` 才允许把片段写入卡;`research_only`、`unauthorized` 只能 hash-only,且永远不能确认。`source_sha256` 针对原始文件字节,`excerpt_sha256` 针对保存的片段,二者不可由模型自报。
重验证不会在看板打开时自动发生;它是确认、样例投影和规则消费前的显式 fail-closed 门。来源找不到不是“仍然有效”,而是 `unavailable`。 重验证不会在看板打开时自动发生;它是确认、样例投影和规则消费前的显式 fail-closed 门。若来源无法获取,状态判定为 `unavailable`,不可判定为有效。
## 状态与交接 ## 状态与交接

View File

@ -545,7 +545,7 @@ flowchart TD
[SKILL.md](../../.agent/skills/writing/show-and-omission/SKILL.md) [SKILL.md](../../.agent/skills/writing/show-and-omission/SKILL.md)
写出来的是抓手,没写的是分量。 落笔写出的是显性锚点,未写出的部分构成水下分量。
| 动作 | 规则 | 细节 | | 动作 | 规则 | 细节 |
|---|---|---| |---|---|---|