@cloud411716/fancy-webnovel 1.0.45 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client.js +183 -0
- package/cordis.patch.yml +0 -14
- package/index.js +21 -37
- package/lib/chinese-num.js +111 -0
- package/lib/deployed-state.js +141 -0
- package/lib/error-codes.js +104 -0
- package/lib/infra.js +569 -0
- package/lib/llm-wiki.js +109 -0
- package/lib/safe-rm.js +94 -0
- package/lib/scraper-utils.js +165 -0
- package/package.json +37 -5
- package/plugins/fancy-analyze/command-input.js +65 -0
- package/plugins/fancy-analyze/index.js +973 -0
- package/plugins/fancy-analyze/schema-analyze.md +379 -0
- package/plugins/fancy-analyze/schema-write.md +178 -0
- package/plugins/fancy-analyze/scripts/split_source.js +292 -0
- package/plugins/fancy-analyze/summary-progress.js +431 -0
- package/plugins/fancy-analyze/templates.js +881 -0
- package/plugins/fancy-bootstrap/index.js +168 -0
- package/plugins/fancy-bootstrap/scripts/init.js +143 -0
- package/plugins/fancy-bootstrap/scripts/path-utils.js +21 -0
- package/plugins/fancy-bootstrap/templates.js +54 -0
- package/plugins/fancy-import/import-core.js +1118 -0
- package/plugins/fancy-import/import-driver.js +581 -0
- package/plugins/fancy-import/index.js +730 -0
- package/plugins/fancy-import/prompts/01-import-prompt.md +106 -0
- package/plugins/fancy-import/templates.js +49 -0
- package/plugins/fancy-scan/index.js +319 -0
- package/plugins/fancy-scan/scripts/run-scan.js +520 -0
- package/plugins/fancy-scan/scripts/scrapers/fanqie-rank-scraper.js +794 -0
- package/plugins/fancy-scan/scripts/scrapers/jjwxc-rank-scraper.js +339 -0
- package/plugins/fancy-scan/scripts/scrapers/qimao-rank-scraper.js +611 -0
- package/plugins/fancy-scan/templates.js +295 -0
- package/plugins/fancy-story-builder/deploy-manifest.js +239 -0
- package/plugins/fancy-story-builder/deslop-driver.js +821 -0
- package/plugins/fancy-story-builder/flesh-output.js +155 -0
- package/plugins/fancy-story-builder/index.js +3152 -0
- package/plugins/fancy-story-builder/prompts/01-skeleton-prompt.md +553 -0
- package/plugins/fancy-story-builder/prompts/02-flesh-prompt.md +540 -0
- package/plugins/fancy-story-builder/prompts/03-rhythm-prompt.md +504 -0
- package/plugins/fancy-story-builder/prompts/04-writing-prompt.md +188 -0
- package/plugins/fancy-story-builder/prompts/05-deslop-prompt.md +96 -0
- package/plugins/fancy-story-builder/purpose-template.md +107 -0
- package/plugins/fancy-story-builder/references/formulas-rhythm.json +302 -0
- package/plugins/fancy-story-builder/references/formulas-skeleton.json +229 -0
- package/plugins/fancy-story-builder/references/glossary.md +585 -0
- package/plugins/fancy-story-builder/references/index.md +490 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/00-index.md +174 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/01-scene.md +150 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/02-chapter-workflow.md +99 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/03-opening-chapter.md +104 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/04-dialogue-mastery.md +274 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/05-genre-formulas.md +432 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/06-tone-ensemble.md +259 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/07-ledger-audit.md +222 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/08-diagnosis-revision.md +205 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/09-reading-power.md +135 -0
- package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/10-deslop.md +129 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/00-index.md +98 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/01-upgrade-rhythm.md +300 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/02-arc-rhythm.md +168 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/03-highpoint-hooks.md +189 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/04-satisfaction.md +226 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/05-foreshadow-density.md +195 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/06-chapter-outline.md +226 -0
- package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/07-audit.md +163 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/00-index.md +100 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/01-character.md +239 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/02-worldbuilding.md +245 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/03-relations.md +181 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/04-emotion-methods.md +286 -0
- package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/05-audit.md +177 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/00-index.md +91 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/01-positioning.md +208 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/02-packaging.md +135 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/03-entities.md +305 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/04-conflict.md +328 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/05-quota.md +187 -0
- package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/06-audit.md +142 -0
- package/plugins/fancy-story-builder/rhythm-output.js +140 -0
- package/plugins/fancy-story-builder/schema-setting.md +324 -0
- package/plugins/fancy-story-builder/scripts/ai-patterns.js +619 -0
- package/plugins/fancy-story-builder/scripts/check-guide-compliance.js +289 -0
- package/plugins/fancy-story-builder/scripts/content-quality.js +413 -0
- package/plugins/fancy-story-builder/scripts/deslop-validate.js +143 -0
- package/plugins/fancy-story-builder/scripts/error-classes.js +112 -0
- package/plugins/fancy-story-builder/scripts/flesh-validate.js +1189 -0
- package/plugins/fancy-story-builder/scripts/formula-engine.js +112 -0
- package/plugins/fancy-story-builder/scripts/graph-utils.js +1385 -0
- package/plugins/fancy-story-builder/scripts/label-coverage.js +171 -0
- package/plugins/fancy-story-builder/scripts/prompt-drift-check.js +441 -0
- package/plugins/fancy-story-builder/scripts/reading-power.js +298 -0
- package/plugins/fancy-story-builder/scripts/rhythm-validate.js +1216 -0
- package/plugins/fancy-story-builder/scripts/semantic-lint.js +377 -0
- package/plugins/fancy-story-builder/scripts/skeleton-quota.js +145 -0
- package/plugins/fancy-story-builder/scripts/skeleton-validate.js +1832 -0
- package/plugins/fancy-story-builder/scripts/stage-batches.js +1371 -0
- package/plugins/fancy-story-builder/scripts/stage-contract.js +417 -0
- package/plugins/fancy-story-builder/scripts/upstream-query.js +198 -0
- package/plugins/fancy-story-builder/scripts/writing-rules.js +167 -0
- package/plugins/fancy-story-builder/scripts/writing-validate.js +682 -0
- package/plugins/fancy-story-builder/skeleton-output.js +199 -0
- package/plugins/fancy-story-builder/stage-driver.js +1049 -0
- package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//346/227/266/345/272/217/346/230/240/345/260/204/346/250/241/346/235/277.json +204 -0
- package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//347/253/240/350/212/202/347/273/206/347/272/262/346/250/241/346/235/277.json +34 -0
- package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//347/253/240/350/212/202/350/247/204/345/210/222/346/250/241/346/235/277.json +24 -0
- package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//350/212/202/345/245/217/345/217/202/346/225/260/346/250/241/346/235/277.json +27 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//344/270/226/347/225/214/350/247/202/350/247/204/345/210/231/346/250/241/346/235/277.json +66 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/205/263/351/224/256/351/201/223/345/205/267/346/250/241/346/235/277.json +76 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/206/262/347/252/201/346/250/241/346/235/277.json +72 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/211/247/346/203/205/346/250/241/346/235/277.json +37 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/212/277/345/212/233/346/250/241/346/235/277.json +53 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/234/260/347/202/271/346/250/241/346/235/277.json +40 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//347/273/223/345/261/200/346/250/241/346/235/277.json +79 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//350/247/222/350/211/262/346/250/241/346/235/277.json +132 -0
- package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/205/263/347/263/273/346/250/241/346/235/277.json +133 -0
- package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/256/236/344/275/223/346/250/241/346/235/277.json +160 -0
- package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/261/202/347/272/247/346/250/241/346/235/277.json +65 -0
- package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//346/241/206/346/236/266/346/250/241/346/235/277.json +134 -0
- package/plugins/fancy-story-builder/templates.js +1248 -0
- package/plugins/fancy-story-builder/wiki-references.js +204 -0
- package/plugins/fancy-story-builder/writing-driver.js +1061 -0
- package/plugins/fancy-topic/index.js +704 -0
- package/plugins/fancy-topic/scripts/select-topic.js +274 -0
- package/plugins/fancy-topic/templates.js +373 -0
- package/commands/bootstrap/index.js +0 -160
- package/commands/bootstrap/init-project.js +0 -121
- package/commands/scan/index.js +0 -275
- package/commands/scan/platforms/fanqie.js +0 -146
- package/commands/scan/platforms/jinjiang.js +0 -143
- package/commands/scan/platforms/qidian.js +0 -102
- package/commands/scan/platforms/qimao.js +0 -127
- package/commands/scan/scraper.js +0 -195
- package/infra.js +0 -160
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
# 选题定位与卖点提炼
|
|
2
|
+
|
|
3
|
+
> 开书前第一份文件。先定"写给谁、在哪发、卖什么",再定"写什么"。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、决策路由
|
|
8
|
+
|
|
9
|
+
| 你在做什么 | 用哪节 |
|
|
10
|
+
|---|---|
|
|
11
|
+
| 找读者需求 | §2 需求矩阵 |
|
|
12
|
+
| 选平台 | §3 平台矩阵 |
|
|
13
|
+
| 找差异化 | §4 赛道差异化 |
|
|
14
|
+
| 提炼一句话故事 | §5 一句话故事五步法 |
|
|
15
|
+
| 定核心梗 | §6 核心梗三分法 |
|
|
16
|
+
| 检查卖点是否偏移 | §7 卖点一致性检查 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 二、读者需求矩阵
|
|
21
|
+
|
|
22
|
+
### 2.1 十六种底层需求
|
|
23
|
+
|
|
24
|
+
| # | 需求 | 男频典型 | 女频典型 | 免费平台典型 |
|
|
25
|
+
|---|---|---|---|---|
|
|
26
|
+
| 1 | 被尊重/认同 | 身份揭露、打脸 | 被偏爱、追妻 | 战神归来、赘婿翻身 |
|
|
27
|
+
| 2 | 优越感 | 碾压、扮猪吃虎 | 打脸绿茶、手撕渣男 | 神医下山、透视 |
|
|
28
|
+
| 3 | 不劳而获 | 系统签到、传承 | 空间灵泉、锦鲤 | 签到成神、开局万亿 |
|
|
29
|
+
| 4 | 惩恶扬善 | 复仇、除害 | 复仇、虐渣 | 打脸虐渣 |
|
|
30
|
+
| 5 | 公平 | 底层逆袭 | 庶女翻身 | 赘婿逆袭 |
|
|
31
|
+
| 6 | 安全感 | 护短、势力 | 被保护、偏爱 | 萌宝、宠妻 |
|
|
32
|
+
| 7 | 冒险欲 | 副本、秘境 | 穿越、快穿 | 无限流 |
|
|
33
|
+
| 8 | 好奇心 | 解谜、揭秘 | 悬疑、马甲 | 规则怪谈 |
|
|
34
|
+
| 9 | 成长 | 升级、变强 | 事业线、技能 | 系统升级 |
|
|
35
|
+
| 10 | 收获 | 爆装备、资源 | 空间、财富 | 签到奖励 |
|
|
36
|
+
| 11 | 三情(亲情/爱情/友情) | 兄弟、师徒 | 爱情、亲情 | 萌宝、团宠 |
|
|
37
|
+
| 12 | 大人物幻想 | 称霸、掌权 | 皇后、女帝 | 战神、总裁 |
|
|
38
|
+
| 13 | 暴力欲 | 战斗、杀戮 | 手撕、复仇 | 打脸、虐渣 |
|
|
39
|
+
| 14 | 新鲜感 | 脑洞、设定流 | 反套路、穿书 | 脑洞、反套路 |
|
|
40
|
+
| 15 | 情怀 | 怀旧、年代 | 年代、古言 | 年代重生 |
|
|
41
|
+
| 16 | 弥补遗憾 | 重生、后悔 | 重生、弥补 | 重生复仇 |
|
|
42
|
+
|
|
43
|
+
### 2.2 配比原则
|
|
44
|
+
|
|
45
|
+
一本主打一个主需求 + 一个辅需求,最多再加一个辅需求。超过三个,读者认知模糊,卖点偏移。
|
|
46
|
+
|
|
47
|
+
主需求决定书名、简介、开篇;辅需求做差异化,不抢主需求。
|
|
48
|
+
|
|
49
|
+
需求冲突时的仲裁方向:
|
|
50
|
+
- 优越感 vs 安全感冲突时,爽文听优越感,虐文听安全感
|
|
51
|
+
- 惩恶 vs 公平冲突时,复仇文听惩恶,逆袭文听公平
|
|
52
|
+
|
|
53
|
+
### 2.3 需求 → 题材映射
|
|
54
|
+
|
|
55
|
+
| 主需求 | 男频题材 | 女频题材 |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| 被尊重 | 都市逆袭、战神、赘婿 | 追妻火葬场、白月光 |
|
|
58
|
+
| 优越感 | 扮猪吃虎、神医、透视 | 打脸虐渣、手撕绿茶 |
|
|
59
|
+
| 不劳而获 | 系统、签到、传承 | 空间、锦鲤、快穿 |
|
|
60
|
+
| 惩恶扬善 | 复仇、都市异能 | 复仇、宅斗 |
|
|
61
|
+
| 公平 | 底层逆袭、赘婿 | 庶女翻身、替嫁 |
|
|
62
|
+
| 安全感 | 护短、势力流 | 被偏爱、萌宝 |
|
|
63
|
+
| 冒险欲 | 无限流、副本 | 快穿、穿越 |
|
|
64
|
+
| 好奇心 | 悬疑、规则怪谈 | 悬疑、马甲 |
|
|
65
|
+
| 成长 | 升级流、玄幻 | 事业线、技能流 |
|
|
66
|
+
| 三情 | 兄弟、师徒 | 爱情、亲情、团宠 |
|
|
67
|
+
| 大人物幻想 | 争霸、掌权 | 女帝、皇后 |
|
|
68
|
+
| 新鲜感 | 脑洞、设定流 | 反套路、穿书 |
|
|
69
|
+
| 弥补遗憾 | 重生 | 重生、年代 |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 三、平台题材矩阵
|
|
74
|
+
|
|
75
|
+
| 平台 | 付费模式 | 主攻性别 | 章字数基准 | 开篇窗口 | 读者耐心 | 核心指标 |
|
|
76
|
+
|---|---|---|---|---|---|---|
|
|
77
|
+
| 起点 | 付费 | 男频 | 2000-4000 | 黄金三章签约,前 10-20 章首订 | 中 | 追读、首订、均订 |
|
|
78
|
+
| 番茄 | 免费 | 男女 | 1000-2000 | 前 3 章推荐,前 10 章留存 | 低 | 完读率、章末跳出率 |
|
|
79
|
+
| 七猫 | 免费 | 男女 | 1000-2000 | 前 3 章 | 低 | 完读率、追更率 |
|
|
80
|
+
| 晋江 | 付费 | 女频 | 3000-5000 | 前三章收藏,入 V 前 10-20 章 | 中高 | 收藏、评论、入 V 订阅 |
|
|
81
|
+
| 知乎盐选 | 付费短篇 | 女频为主 | 3000-8000/篇 | 前 300 字定生死 | 极低 | 付费转化、读完率 |
|
|
82
|
+
| QQ 阅读 | 付费 | 男女 | 2000-3000 | 前 5 章 | 中 | 追读、订阅 |
|
|
83
|
+
|
|
84
|
+
**注**:以上"章字数基准"是平台惯例,不是骨架阶段的量化约束。骨架阶段只记录 T(目标章节数)和 target_words(目标字数),不按平台拆分章字数。
|
|
85
|
+
|
|
86
|
+
平台选择三问:我写男频还是女频?我要付费还是免费?我的读者耐心高还是低?
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 四、赛道差异化
|
|
91
|
+
|
|
92
|
+
### 4.1 同中有异三法
|
|
93
|
+
|
|
94
|
+
1. **设定差异**:同题材换核心设定(追妻火葬场,但女主是法医/律师/电竞选手)
|
|
95
|
+
2. **人设差异**:同题材换主角人设(战神,但是个社恐;赘婿,但是个真大佬且不想装)
|
|
96
|
+
3. **结构差异**:同题材换叙事结构(重生复仇,但双重生博弈;系统文,但系统是反派)
|
|
97
|
+
|
|
98
|
+
### 4.2 差异化检查
|
|
99
|
+
|
|
100
|
+
- 我的书用一句话说清"和同题材最不一样的一点"是什么?
|
|
101
|
+
- 这一点是否在书名/简介/开篇就能看到?
|
|
102
|
+
- 这一点是否可持续(不是一次性噱头)?
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 五、一句话故事五步法
|
|
107
|
+
|
|
108
|
+
### 第一步:填模板
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
【谁】,因为【什么事件】,要【做什么】,但【什么阻碍】,如果失败【什么代价】。
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 第二步:删形容词,留具体名词
|
|
115
|
+
|
|
116
|
+
- 弱:"一个强大的主角,因为悲惨的过去,要复仇,但敌人很厉害。"
|
|
117
|
+
- 强:"前特种兵陈默,因为妹妹被缅北电诈集团害死,要端掉整个园区,但集团背后有当地军阀,失败则妹妹的尸骨永远回不来。"
|
|
118
|
+
|
|
119
|
+
### 第三步:检查三问
|
|
120
|
+
|
|
121
|
+
1. 这句话让人想点开吗?(好奇心/情绪冲击)
|
|
122
|
+
2. 这句话能撑 100 万字吗?(冲突可持续)
|
|
123
|
+
3. 这句话的卖点是什么需求?(对应 §2)
|
|
124
|
+
|
|
125
|
+
### 第四步:从一句话反推书名/简介/开篇事件
|
|
126
|
+
|
|
127
|
+
一句话故事的"事件"就是第一章的激励事件;"阻碍"就是主线矛盾;"代价"就是死亡赌注。
|
|
128
|
+
|
|
129
|
+
### 第五步:过不了就换
|
|
130
|
+
|
|
131
|
+
如果一句话故事平淡,不要往下写。换事件、换阻碍、换代价,直到这句话让人想点开。
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 六、核心梗三分法
|
|
136
|
+
|
|
137
|
+
| 类型 | 运行方式 | 适用 | 检查 |
|
|
138
|
+
|---|---|---|---|
|
|
139
|
+
| 可重复型 | 每个单元重复运行 | 升级、系统、文抄、无限流 | 第一个单元必须完整运行一次 |
|
|
140
|
+
| 不可重复型 | 贯穿全文,最高潮爆发一次 | 追妻、掉马、禁忌之恋、身份揭秘 | 第一个单元必须完成首次铺垫 |
|
|
141
|
+
| 长期铺垫型 | 以期待点贯穿 | 悬疑、复仇、解谜、长线布局 | 每三到五个单元推进一次 |
|
|
142
|
+
|
|
143
|
+
配比:一本可同时用两种(可重复 + 长期铺垫,或不可重复 + 长期铺垫),不超过两种。
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 七、卖点一致性检查
|
|
148
|
+
|
|
149
|
+
- 主需求是否只有一个?辅需求不超过两个?
|
|
150
|
+
- 书名/简介/开篇是否都指向主需求?
|
|
151
|
+
- 开篇几章是否展示了核心梗?
|
|
152
|
+
- 一句话故事是否让人想点开?
|
|
153
|
+
- 差异化是否在书名/简介/开篇可见?
|
|
154
|
+
- 爽点满足的需求是否与主需求一致?(防止偏移到另一个题材的卖点)
|
|
155
|
+
|
|
156
|
+
**注**:本节是方法论自检,不是脚本验证。真正的字段验证由 `skeleton-validate.js` 的 `REQUIRED` / `TYPE` 检查执行。
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 八、示例
|
|
161
|
+
|
|
162
|
+
一本复仇文的定位:
|
|
163
|
+
|
|
164
|
+
- 主需求:惩恶扬善(#4)
|
|
165
|
+
- 辅需求:弥补遗憾(#16)、公平(#5)
|
|
166
|
+
- 平台:起点(男频付费)
|
|
167
|
+
- 一句话故事:"前特种兵陆子仲,因为妹妹被缅北电诈集团害死,要端掉整个园区,但集团背后有当地军阀,失败则妹妹的尸骨永远回不来。"
|
|
168
|
+
- 核心梗:不可重复型(复仇贯穿全书)+ 长期铺垫型(园区背后有更大的势力网)
|
|
169
|
+
- 差异化:主角不是特工/警察,而是一个被开除的前特种兵,用民间手段复仇
|
|
170
|
+
|
|
171
|
+
落到 `框架.json` 的 `input_snapshot`:
|
|
172
|
+
- `book_name`:书名
|
|
173
|
+
- `genre`:都市复仇
|
|
174
|
+
- `core_summary`:一句话故事
|
|
175
|
+
- `core_conflict`:主角 vs 缅北园区
|
|
176
|
+
- `hard_constraints`:无超自然战斗能力
|
|
177
|
+
- `anti_tropes`:主角不加入任何组织
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 九、常见反例
|
|
182
|
+
|
|
183
|
+
| 反例 | 为什么错 | 正确做法 |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| 主需求写了四个 | 读者认知模糊 | 只保留 1 主 2 辅 |
|
|
186
|
+
| 一句话故事没有"代价" | 读者感受不到紧迫 | 补"如果失败则……" |
|
|
187
|
+
| 书名与主需求不一致 | 读者点开即弃 | 让书名直接体现主需求 |
|
|
188
|
+
| 核心梗超过两种 | 一个单元运行不过来 | 只保留 2 种 |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 十、与其他文件的关系
|
|
193
|
+
|
|
194
|
+
| 本文件输出 | 落到哪个字段 | 参考哪个公式 | 由哪个脚本验证 |
|
|
195
|
+
|---|---|---|---|
|
|
196
|
+
| 书名 / 题材 / 一句话故事 / 核心冲突 / 硬门禁 / 反套路 | `框架.json` 的 `input_snapshot` | 无公式 | `skeleton-validate.js` 的 `REQUIRED` / `TYPE` 检查 |
|
|
197
|
+
| 平台选择 | 不落入 JSON(创作决策,供血肉/节奏阶段参考) | 无 | 无 |
|
|
198
|
+
|
|
199
|
+
**注**:平台章字数基准是创作参考,不进入 `capacity.avg_words_per_chapter` 的计算。后者由 `target_words / target_chapters` 决定。
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 十一、版本记录
|
|
204
|
+
|
|
205
|
+
| 版本 | 变更 |
|
|
206
|
+
|---|---|
|
|
207
|
+
| v1.0 | 从原 01-01 精简。删除"需求 → 题材映射"重复段落;明确"平台章字数基准"不进入骨架量化;新增"与其他文件的关系"节 |
|
|
208
|
+
| v1.1 | 按合规检查修订:§4.2 / §7 的"前 3 章"改为"开篇";§6 "每 3-5 单元"改为"每三到五个单元" |
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# 书名、简介与包装
|
|
2
|
+
|
|
3
|
+
> 定位定完后,用本文件把卖点变成点击率。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、决策路由
|
|
8
|
+
|
|
9
|
+
| 你在做什么 | 用哪节 |
|
|
10
|
+
|---|---|
|
|
11
|
+
| 起书名 | §2 书名 |
|
|
12
|
+
| 写简介 | §3 简介 |
|
|
13
|
+
| 定标签 | §4 标签与一句话卖点 |
|
|
14
|
+
| 检查包装一致性 | §5 一致性检查 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 二、书名
|
|
19
|
+
|
|
20
|
+
### 2.1 六种书名类型
|
|
21
|
+
|
|
22
|
+
| 类型 | 公式 | 适用 | 示例结构 |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| 信息型 | 身份 + 事件 | 战神、赘婿、神医 | 《战神归来》《赘婿当道》 |
|
|
25
|
+
| 悬念型 | 反常事实 | 悬疑、规则怪谈 | 《我死后第七天》《最后一个人类》 |
|
|
26
|
+
| 人设型 | 标签 + 反差 | 追妻、白月光 | 《渣男的白月光是我》《病娇总裁》 |
|
|
27
|
+
| 反差型 | A 其实是 B | 反套路、脑洞 | 《我在末世种田》《大佬装萌新》 |
|
|
28
|
+
| 数字型 | 数字 + 事件 | 系统、签到、重生 | 《开局签到荒古圣体》《重生 99 次》 |
|
|
29
|
+
| 情绪型 | 情绪词 + 对象 | 虐恋、复仇 | 《迟来的道歉》《她死那天》 |
|
|
30
|
+
|
|
31
|
+
### 2.2 书名四问
|
|
32
|
+
|
|
33
|
+
1. 是否一眼看出题材?
|
|
34
|
+
2. 是否有钩子(让人想点开)?
|
|
35
|
+
3. 是否与主需求一致?
|
|
36
|
+
4. 是否好记、好搜、好传播?
|
|
37
|
+
|
|
38
|
+
### 2.3 书名避雷
|
|
39
|
+
|
|
40
|
+
- 太长(超过十个字,搜索困难)
|
|
41
|
+
- 太文艺(读者看不出题材)
|
|
42
|
+
- 太泛("重生""系统"单用,无差异化)
|
|
43
|
+
- 与内容不符(书名党,读者点开即弃)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 三、简介
|
|
48
|
+
|
|
49
|
+
### 3.1 四段式
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
第一段(1 句):核心冲突 / 信息炸弹
|
|
53
|
+
第二段(3 句):展开冲突 + 主角处境 + 代价
|
|
54
|
+
第三段(1 句):钩子 / 反转 / 期待
|
|
55
|
+
第四段(可选 1 句):金句 / 情绪收束
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 3.2 平台差异
|
|
59
|
+
|
|
60
|
+
| 平台 | 简介策略 |
|
|
61
|
+
|---|---|
|
|
62
|
+
| 起点 | 悬念前置 + 世界观暗示 + 升级期待 |
|
|
63
|
+
| 番茄 | 爽点前置 + 打脸预告 + 情绪冲击 |
|
|
64
|
+
| 晋江 | 人设前置 + 感情线暗示 + 文笔质感 |
|
|
65
|
+
| 知乎盐选 | 第一人称 + 冲突前置 + 反转预告 |
|
|
66
|
+
|
|
67
|
+
### 3.3 简介避雷
|
|
68
|
+
|
|
69
|
+
- 大段世界观(读者不关心)
|
|
70
|
+
- 大段人物介绍(没有冲突)
|
|
71
|
+
- 没有钩子(读完不知道要看什么)
|
|
72
|
+
- 与正文不符(简介党,读者弃书)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 四、标签与一句话卖点
|
|
77
|
+
|
|
78
|
+
- **推荐位一句话**:不超过二十个字,说清"谁 + 冲突 + 爽点"
|
|
79
|
+
- **短视频推书**:十几秒内说清"最惨处境 + 最大反转 + 最爽结局"
|
|
80
|
+
- **标签组合**:三到五个标签,一个主标签打流量(如"重生""系统"),两到四个副标签做差异(如"女强""双重生""复仇")
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 五、包装一致性检查
|
|
85
|
+
|
|
86
|
+
- 书名、简介、标签是否指向同一主需求?
|
|
87
|
+
- 简介第一段是否有信息炸弹?
|
|
88
|
+
- 简介是否能短时间读完并产生好奇?
|
|
89
|
+
- 标签是否主标签 + 副标签组合?
|
|
90
|
+
- 包装承诺的内容,开篇几章是否兑现?
|
|
91
|
+
|
|
92
|
+
**注**:本节是方法论自检,不是脚本验证。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 六、示例
|
|
97
|
+
|
|
98
|
+
一本都市复仇文的包装:
|
|
99
|
+
|
|
100
|
+
- 书名:《她死那天》(情绪型,指向复仇需求)
|
|
101
|
+
- 简介第一段:"妹妹死了,死在我给她转学费的那天。"
|
|
102
|
+
- 简介第二段:"三年后,我找到了那个园区。园区老板叫坤沙,手下有三百条枪。警方查了三年,什么都没查到。我用了三个月,查到了他的名字。"
|
|
103
|
+
- 简介第三段:"他以为没人知道。但我知道,而且我不打算报警。"
|
|
104
|
+
- 标签:都市、复仇、爽文、智斗
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 七、常见反例
|
|
109
|
+
|
|
110
|
+
| 反例 | 为什么错 | 正确做法 |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| 书名与主需求无关 | 读者点开后失望 | 书名直接体现需求 |
|
|
113
|
+
| 简介全是大段世界观 | 读者不关心设定 | 前置冲突 |
|
|
114
|
+
| 标签太泛(只写"爽文") | 无法差异化 | 加副标签 |
|
|
115
|
+
| 简介承诺"无敌流"但正文有大量内心戏 | 承诺未兑现 | 简介与正文一致 |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 八、与其他文件的关系
|
|
120
|
+
|
|
121
|
+
| 本文件输出 | 落到哪个字段 | 参考哪个公式 | 由哪个脚本验证 |
|
|
122
|
+
|---|---|---|---|
|
|
123
|
+
| 书名 / 题材 / 一句话故事 | `框架.json` 的 `input_snapshot` | 无公式 | `skeleton-validate.js` 的 `REQUIRED` 检查 |
|
|
124
|
+
| 简介 / 标签 / 一句话卖点 | 不落入 JSON(包装文案,供血肉/写作阶段参考) | 无 | 无 |
|
|
125
|
+
|
|
126
|
+
**注**:包装文案(简介、标签)不进入骨架 JSON,因为它是"人读"内容而非"机器用"数据。它在写作阶段的开篇章节中兑现为第一章内容。
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 九、版本记录
|
|
131
|
+
|
|
132
|
+
| 版本 | 变更 |
|
|
133
|
+
|---|---|
|
|
134
|
+
| v1.0 | 从原 01-02 精简。删除"封面文案"中重复的内容;明确"简介/标签不落入骨架 JSON";新增"与其他文件的关系"节 |
|
|
135
|
+
| v1.1 | 按合规检查修订:§4 "3-5 个标签" → "三到五个标签";"15 秒内" → "十几秒内";§5 "前 3 章" → "开篇几章";"十秒内" → "短时间";§3.1 的四段式保持(这是结构描述不是区间,示例值用阿拉伯数字) |
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# 实体建卡
|
|
2
|
+
|
|
3
|
+
> 骨架阶段第 3 份。只建实体骨架卡,不建完整档案。完整档案在血肉阶段。
|
|
4
|
+
> 本文件只讲"怎么想",不讲"数量多少"(→ `formulas-skeleton.json`),不讲"JSON 怎么写"(→ `模板/骨架/实体模板.json`)。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、决策路由
|
|
9
|
+
|
|
10
|
+
| 你在做什么 | 用哪节 |
|
|
11
|
+
|---|---|
|
|
12
|
+
| 建主角卡 | §2 主角卡 |
|
|
13
|
+
| 建反派卡 | §3 反派卡 |
|
|
14
|
+
| 建金手指 | §4 金手指 |
|
|
15
|
+
| 建势力格局 | §5 势力格局 |
|
|
16
|
+
| 画势力对立线 | §5.2 势力对立线 |
|
|
17
|
+
| 定主角势力归属 | §5.3 主角势力归属 |
|
|
18
|
+
| 建其他实体 | §6 其他实体 |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 二、主角卡
|
|
23
|
+
|
|
24
|
+
### 2.1 骨架最小集
|
|
25
|
+
|
|
26
|
+
角色在骨架阶段只需要回答"是谁、什么类型、什么年龄段"三类信息。具体的"目标/缺陷/成长弧/关系/语言档案"属于血肉阶段。
|
|
27
|
+
|
|
28
|
+
骨架阶段的主角卡字段(**具体结构见 `模板/骨架/实体模板.json` 的 `characters`**):
|
|
29
|
+
- id、name、type(enumRef: character_type)、gender、age_group
|
|
30
|
+
|
|
31
|
+
血肉阶段会在此基础上补充目标、缺陷、金手指、关系、弧光等。
|
|
32
|
+
|
|
33
|
+
### 2.2 类型选择指导
|
|
34
|
+
|
|
35
|
+
角色类型见 `references/glossary.md` 的 `character_type` 枚举。选择原则:
|
|
36
|
+
|
|
37
|
+
- **主角**:全书第一视角。通常 1 人,特殊结构(双主)可 2 人。
|
|
38
|
+
- **贯穿级核心配角**:贯穿全书或大部分卷。数量少,每个都要有独立弧线。
|
|
39
|
+
- **卷级重要配角**:在某几卷中重要。数量多,弧线可以较简单。
|
|
40
|
+
- **贯穿级核心反派**:全书或大部分卷的主要对手。每个都要有独立动机和镜像关系。
|
|
41
|
+
- **卷级反派**:在某几卷中的主要对手。可以在卷末被击败。
|
|
42
|
+
|
|
43
|
+
**关键**:角色类型的数量由 `formulas-skeleton.json` 的 `character_elements.*` 约束。本文件不重复具体数字。
|
|
44
|
+
|
|
45
|
+
### 2.3 设计原则
|
|
46
|
+
|
|
47
|
+
- 主角动机必须是情感层("为妹妹复仇"优于"要变强")
|
|
48
|
+
- 反派必须有独立动机(从反派视角说得通)
|
|
49
|
+
- 反派智商/实力决定主角含金量
|
|
50
|
+
- 每个中反派以上必须有理念冲突
|
|
51
|
+
- 起名跟设定时代/地域/文化走
|
|
52
|
+
|
|
53
|
+
### 2.4 年龄段选择
|
|
54
|
+
|
|
55
|
+
年龄段见 `references/glossary.md` 的 `age_group` 枚举。选择原则:
|
|
56
|
+
- 主角通常是"青年"
|
|
57
|
+
- 导师/资深角色通常是"中年"或"老年"
|
|
58
|
+
- 少年角色用于成长线或视角互补
|
|
59
|
+
- 年龄要与身份/阵营/题材自洽(如校园文主角是"少年",职场文主角是"青年")
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 三、反派卡
|
|
64
|
+
|
|
65
|
+
### 3.1 反派四层
|
|
66
|
+
|
|
67
|
+
反派按叙事层级分四层(**篇幅不在骨架阶段定,由节奏阶段细化**):
|
|
68
|
+
|
|
69
|
+
| 层级 | 叙事定位 | 与主角关系 |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| 小反派 | 单个场景/短期障碍 | 不构成主线威胁 |
|
|
72
|
+
| 中反派 | 一个单元/一条支线的主要对手 | 至少赢主角一次 |
|
|
73
|
+
| 大弧 Boss | 一卷或数卷的主要对手 | 完整人弧 + 理念冲突 |
|
|
74
|
+
| 最终 Boss | 全书最终对手 | 与主角目标直接对立 |
|
|
75
|
+
|
|
76
|
+
**骨架阶段只建中反派及以上**,小反派在章节细纲建。
|
|
77
|
+
|
|
78
|
+
**关键**:反派在骨架 JSON 中通过 `characters.type` 表达(`贯穿级核心反派` / `卷级反派`),不单独建"反派表"。
|
|
79
|
+
|
|
80
|
+
### 3.2 反派铁律
|
|
81
|
+
|
|
82
|
+
- 反派智商/实力决定主角含金量——反派弱 = 主角赢没意义
|
|
83
|
+
- 反派行为从其视角说得通
|
|
84
|
+
- 不降智送赢
|
|
85
|
+
- 反派渲染公式:明确动机 → 动机驱动行为 → 行为形成障碍 → 障碍强度来自反派分量
|
|
86
|
+
|
|
87
|
+
### 3.3 镜像两种
|
|
88
|
+
|
|
89
|
+
| 类型 | 定义 | 效果 | 适用 |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| 相似镜像 | 同起点不同选择,反派是主角"走错路"的版本 | 悲剧感、宿命感 | 大弧 Boss、最终 Boss |
|
|
92
|
+
| 相反镜像 | 反派长处反映主角弱点,完全相反 | 摩擦感、互补对抗 | 中反派、日常对手 |
|
|
93
|
+
|
|
94
|
+
**骨架阶段不填镜像类型**(属于血肉阶段的 `mirror_type` 字段)。本文件只提醒:设计反派时先想清楚是相似还是相反。
|
|
95
|
+
|
|
96
|
+
### 3.4 反派与势力
|
|
97
|
+
|
|
98
|
+
每个中反派及以上必须标注所属势力。具体落法:在 `关系.json` 的 `faction_membership` 中登记"角色 → 势力",`member_relation` 选合适的关系枚举。
|
|
99
|
+
|
|
100
|
+
没有势力根基的反派,要么补势力来源,要么降为小反派。
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 四、金手指
|
|
105
|
+
|
|
106
|
+
金手指在骨架阶段只记录"有没有、什么类型、和主角是什么关系"。具体的"能力描述、边界、代价、上限"属于血肉阶段。
|
|
107
|
+
|
|
108
|
+
骨架阶段的处理:
|
|
109
|
+
- 金手指类型不单独字段(不建"金手指表")
|
|
110
|
+
- 如果金手指是**道具**,在 `实体.json` 的 `items` 中建一个 `item_category = 核心道具` 的条目
|
|
111
|
+
- 如果金手指是**能力**(系统/重生/天赋),在血肉阶段的 `characters.golden_finger` 字段描述,骨架阶段不单独建实体
|
|
112
|
+
|
|
113
|
+
**骨架阶段只做一个判断**:这个金手指是"道具型"还是"能力型"?
|
|
114
|
+
- 道具型 → 建 `items` 条目,`category = 核心道具`
|
|
115
|
+
- 能力型 → 不建实体,血肉阶段处理
|
|
116
|
+
|
|
117
|
+
### 4.1 金手指合格五问
|
|
118
|
+
|
|
119
|
+
(骨架阶段先答一次,答案落到血肉阶段)
|
|
120
|
+
|
|
121
|
+
1. 能否凸显主角与众不同?能否不断协助克服困难?
|
|
122
|
+
2. 和世界环境/设定是否有紧密联系并拥有反差?
|
|
123
|
+
3. 是否有喧宾夺主可能?是否可预防?
|
|
124
|
+
4. 主角资源提升百倍千倍时,是否还能解决主要矛盾?
|
|
125
|
+
5. 能否通过金手指解决矛盾的同时表达思想和主题?
|
|
126
|
+
|
|
127
|
+
**代价检查**:使用代价/失效条件/成长上限是什么?缺一项则后期无敌崩。
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 五、势力格局
|
|
132
|
+
|
|
133
|
+
### 5.1 势力类型
|
|
134
|
+
|
|
135
|
+
势力类型见 `references/glossary.md` 的 `faction_type` 枚举。选择原则:
|
|
136
|
+
|
|
137
|
+
- **官方组织**:政府、军队、执法机构。有程序约束,适合"程序正义 vs 效率"类冲突
|
|
138
|
+
- **民间组织**:帮派、家族、宗门、商会。有内部竞争,适合"内部嫡庶/长幼之争"类冲突
|
|
139
|
+
- **商业组织**:公司、商会、财团。有利益绑定,适合"商战/并购"类冲突
|
|
140
|
+
- **其他**:不属于以上三类
|
|
141
|
+
|
|
142
|
+
### 5.2 势力格局表
|
|
143
|
+
|
|
144
|
+
在 `实体.json` 的 `factions` 数组中建条目,每项只有:
|
|
145
|
+
- id、name、type
|
|
146
|
+
|
|
147
|
+
血肉阶段会在此基础上补充:核心诉求、掌握资源、与主角关系、内部结构、压制手段、资源被夺取方式、主线关联。
|
|
148
|
+
|
|
149
|
+
骨架阶段对势力格局的判断原则:
|
|
150
|
+
|
|
151
|
+
- 每个势力必须有"核心诉求"——没有诉求的势力是背景板
|
|
152
|
+
- 势力之间必须有矛盾——没有矛盾的势力格局无法推导出主线
|
|
153
|
+
- 主角必须与至少一个势力有明确关系——孤立的势力格局没有张力
|
|
154
|
+
|
|
155
|
+
**数量**:势力数量由 `formulas-skeleton.json` 的 `faction_elements.faction_count` 约束,本文件不重复具体数字。
|
|
156
|
+
|
|
157
|
+
### 5.3 势力对立线
|
|
158
|
+
|
|
159
|
+
在 `关系.json` 的 `faction_relations` 数组中登记势力间关系。每项含:
|
|
160
|
+
- from、to、relation_type(enumRef: relation_type)
|
|
161
|
+
|
|
162
|
+
**规则**:
|
|
163
|
+
- 至少一条对立线不是"主角 vs 反派"(势力间也有矛盾,主角才能借力)
|
|
164
|
+
- 每条对立线在血肉阶段要写清"争什么":资源/理念/历史恩怨/权力/地盘
|
|
165
|
+
- 中立势力必须有底线(没有底线的中立势力会变成"随时可倒向任何一方"的工具)
|
|
166
|
+
|
|
167
|
+
**对称性**:`relation_type` 为"对立"的关系必须双向声明(A→B 有"对立",则 B→A 也必须有"对立")。这一点由 `skeleton-validate.js` 的 `G_REL_ONE_WAY` / `G_REL_ASYMMETRIC` 检查。
|
|
168
|
+
|
|
169
|
+
### 5.4 主角势力归属
|
|
170
|
+
|
|
171
|
+
主角的归属模式(单归属/无归属/多归属/归属变化)是血肉阶段的选择。骨架阶段只落一个判断:
|
|
172
|
+
|
|
173
|
+
- 主角属于某个势力 → 在 `faction_membership` 登记(character=C001, faction=Fn)
|
|
174
|
+
- 主角无归属 → 不登记
|
|
175
|
+
- 主角多归属 → 登记多条
|
|
176
|
+
- 主角归属变化 → 登记当前归属(初始状态);变化在血肉阶段处理
|
|
177
|
+
|
|
178
|
+
**每个中反派及以上必须标注所属势力**(通过 `faction_membership`)。
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 六、其他实体
|
|
183
|
+
|
|
184
|
+
### 6.1 地点
|
|
185
|
+
|
|
186
|
+
在 `实体.json` 的 `locations` 数组中建条目。每项含:
|
|
187
|
+
- id、name、type(enumRef: location_type)、narrative_function(enumRef: narrative_function)
|
|
188
|
+
|
|
189
|
+
**原则**:每个地点必须服务至少一个冲突,否则不该列入关键地点。
|
|
190
|
+
|
|
191
|
+
### 6.2 道具
|
|
192
|
+
|
|
193
|
+
在 `实体.json` 的 `items` 数组中建条目。每项含:
|
|
194
|
+
- id、name、category(enumRef: item_category)
|
|
195
|
+
|
|
196
|
+
**原则**:
|
|
197
|
+
- 核心道具必须与主线冲突相关
|
|
198
|
+
- 支线道具必须与某条支线相关
|
|
199
|
+
- 象征道具承载情感/主题,可以没有明确功能
|
|
200
|
+
|
|
201
|
+
道具归属通过 `关系.json` 的 `item_owner` 登记。
|
|
202
|
+
|
|
203
|
+
### 6.3 结局
|
|
204
|
+
|
|
205
|
+
在 `实体.json` 的 `endings` 数组中建条目。每项含:
|
|
206
|
+
- id、name、level(enumRef: ending_level)、type(enumRef: ending_type)
|
|
207
|
+
|
|
208
|
+
**原则**:
|
|
209
|
+
- 全书级结局必须有且仅有一个
|
|
210
|
+
- 卷级结局的数量由 `ending_count` 与卷数决定(具体见 formulas-skeleton.json)
|
|
211
|
+
- 结局的"冲突解决方式/反套路设计/余韵/章节设计"属于血肉阶段
|
|
212
|
+
|
|
213
|
+
结局涉及的"谁的结局"通过 `关系.json` 的 `ending_character` 登记。
|
|
214
|
+
|
|
215
|
+
### 6.4 伏笔 / 高潮 / 爽点
|
|
216
|
+
|
|
217
|
+
在 `实体.json` 中建条目:
|
|
218
|
+
- `foreshadows`:id、name、type(enumRef: foreshadow_type)
|
|
219
|
+
- `climaxes`:id、name、type(enumRef: climax_type)
|
|
220
|
+
- `pleasures`:id、name、scale(enumRef: pleasure_scale)、kind(enumRef: pleasure_kind)
|
|
221
|
+
|
|
222
|
+
**原则**:
|
|
223
|
+
- 这些实体只有"存在与类型"在骨架阶段定,"具体内容和章节位置"属于节奏阶段
|
|
224
|
+
- 高潮必须与某个冲突相关(在血肉阶段落实)
|
|
225
|
+
- 爽点的 scale(规模)和 kind(种类)是正交的两个维度,都要填
|
|
226
|
+
|
|
227
|
+
### 6.5 世界观规则
|
|
228
|
+
|
|
229
|
+
在 `实体.json` 的 `world_rules` 数组中建条目。每项含:
|
|
230
|
+
- id、name、category(enumRef: world_rule_category)
|
|
231
|
+
|
|
232
|
+
**三类规则**(见 glossary):
|
|
233
|
+
- 核心规则:力量体系、物理规则
|
|
234
|
+
- 信息规则:信息传播/隐藏/揭示
|
|
235
|
+
- 社会规则:社会结构、文化、禁忌
|
|
236
|
+
|
|
237
|
+
骨架阶段只列"有哪些规则",具体内容属于血肉阶段的 `世界观规则.json`。
|
|
238
|
+
|
|
239
|
+
### 6.6 主线 / 支线
|
|
240
|
+
|
|
241
|
+
在 `实体.json` 的 `main_lines` 和 `branches` 数组中建条目:
|
|
242
|
+
- `main_lines`:id、name
|
|
243
|
+
- `branches`:id、name、type(enumRef: branch_type)
|
|
244
|
+
|
|
245
|
+
**原则**:
|
|
246
|
+
- 主线固定 1 条
|
|
247
|
+
- 支线数量由 `formulas-skeleton.json` 的 `structure.branch_count` 约束
|
|
248
|
+
- 支线的"主角、目标、结局、章节区间"属于节奏阶段
|
|
249
|
+
|
|
250
|
+
支线的"由谁主导"通过 `关系.json` 的 `branch_protagonist` 登记;主线/支线的交织关系通过 `main_line_branch_relation` 登记。
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## 七、示例
|
|
255
|
+
|
|
256
|
+
一本都市复仇文的实体清单(仅示意,实际字段值以 `模板/骨架/实体模板.json` 为准):
|
|
257
|
+
|
|
258
|
+
- characters:主角(陆子仲)、妹妹(已故,作为情感驱动)、反派(坤沙)、反派助手(阿豹)、前战友(老王)、刑警(陈队)
|
|
259
|
+
- factions:缅北园区(民间组织)、市刑警队(官方组织)、主角旧部(民间组织)
|
|
260
|
+
- locations:缅北园区(主要场景,冲突)、市局审讯室(次要场景,对话)
|
|
261
|
+
- items:妹妹的照片(象征道具)、园区账本(核心道具)
|
|
262
|
+
- endings:全书级结局(开放式)
|
|
263
|
+
- foreshadows / climaxes / pleasures:按数量和类型建条目
|
|
264
|
+
|
|
265
|
+
落到 `关系.json`:
|
|
266
|
+
- character_relations:陆子仲→坤沙(敌对)、陆子仲→老王(合作)
|
|
267
|
+
- faction_membership:坤沙→园区、陈队→市刑警队、老王→旧部
|
|
268
|
+
- faction_relations:园区↔刑警队(对立,双向)、园区↔旧部(对立,双向)
|
|
269
|
+
- conflict_participants:核心冲突 X001 的主角阵营=[陆子仲]、主要对手=坤沙
|
|
270
|
+
- branch_protagonist:B001 主角=陆子仲
|
|
271
|
+
- location_conflict:园区→[X001]
|
|
272
|
+
- item_owner:账本→(character, 陆子仲)
|
|
273
|
+
- ending_character:全书级结局→陆子仲
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 八、常见反例
|
|
278
|
+
|
|
279
|
+
| 反例 | 为什么错 | 正确做法 |
|
|
280
|
+
|---|---|---|
|
|
281
|
+
| 角色只写 name 不写 type | 类型是骨架阶段的核心分类 | 按 glossary 的 character_type 选 |
|
|
282
|
+
| 反派没有 faction_membership | 没有势力根基的反派不成立 | 补 faction_membership 或降级 |
|
|
283
|
+
| 势力之间没有 faction_relations | 孤立势力格局无张力 | 至少建 3 条势力关系 |
|
|
284
|
+
| 道具不建 item_owner | 不知道属于谁 | 建 item_owner 关系 |
|
|
285
|
+
| 地点没有 location_conflict | 地点成为旅游手册 | 关联至少一个冲突 |
|
|
286
|
+
| 伏笔没有 type | 无法在节奏阶段规划回收 | 按 foreshadow_type 选 |
|
|
287
|
+
| 爽点只填 scale 不填 kind(或反之) | 两个维度都必要 | 都填 |
|
|
288
|
+
| 世界观规则混用 category | 三类规则分工不同 | 按场景选对类别 |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 九、与其他文件的关系
|
|
293
|
+
|
|
294
|
+
| 本文件输出 | 落到哪个字段 | 参考哪个公式 | 由哪个脚本验证 |
|
|
295
|
+
|---|---|---|---|
|
|
296
|
+
| 实体清单 | `实体.json` 的 12 类数组 | `formulas-skeleton.json` 的 `character_elements.*` / `conflict_elements.*` / `faction_elements.faction_count` / `location_elements` / `item_elements` / `foreshadow_elements` / `climax_elements` / `pleasure_elements` / `ending_elements` / `fixed.structure.main_line_count` / `structure.branch_count` | `skeleton-validate.js` 的 `PATTERN` / `ENUM` / `ID_DUP` / `NAME_DUP` / `QUANTITY_MISMATCH`(warning) |
|
|
297
|
+
| 关系清单 | `关系.json` 的 9 类数组 | `formulas-skeleton.json` 的 `faction_elements.faction_relation_count`(理论上限) | `skeleton-validate.js` 的 `SKELETON_REF_MISSING` / `G_ISOLATED` / `G_REL_ONE_WAY` / `G_REL_ASYMMETRIC` / `G_DISCONNECTED`(warning) |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## 十、版本记录
|
|
302
|
+
|
|
303
|
+
| 版本 | 变更 |
|
|
304
|
+
|---|---|
|
|
305
|
+
| v1.0 | 从原 01-03 + 01-04 精简重组。删除所有"章节"相关内容;删除所有数量数字(移到 formulas);删除所有检查清单;删除"反派篇幅"表(篇幅属于节奏阶段);新增"与其他文件的关系"节 |
|