@cloud411716/fancy-webnovel 1.0.46 → 3.0.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 +369 -0
- package/cordis.patch.yml +4 -13
- package/docs/douyin-plugin.md +118 -0
- package/docs/material-library/README.md +404 -0
- package/docs/material-library/import.js +437 -0
- package/docs/material-library/prompt.md +370 -0
- package/docs/material-library/queries.surql +94 -0
- package/docs/material-library/sample.jsonl +14 -0
- package/docs/material-library/schema.surql +46 -0
- package/docs/mcp-profile.example.yml +24 -0
- package/docs/story-graph-design.md +602 -0
- package/docs/story-graph-validation.md +81 -0
- package/docs/workspace-mcp.md +284 -0
- package/index.js +26 -38
- package/lib/atomic-write.js +109 -0
- package/lib/chapter-order.js +100 -0
- package/lib/chinese-num.js +111 -0
- package/lib/confirmation.js +80 -0
- package/lib/db-init.js +123 -0
- package/lib/deployed-state.js +141 -0
- package/lib/direction-labels.js +265 -0
- package/lib/error-codes.js +104 -0
- package/lib/infra.js +594 -0
- package/lib/llm-wiki.js +109 -0
- package/lib/material-db.js +149 -0
- package/lib/path-guard.js +150 -0
- package/lib/projects.js +400 -0
- package/lib/scraper-utils.js +305 -0
- package/lib/surreal-server.js +338 -0
- package/lib/topic-decision.js +860 -0
- package/lib/topic-fields.js +251 -0
- package/lib/topic-schema.js +225 -0
- package/lib/workspace.js +501 -0
- package/package.json +62 -5
- package/plugins/fancy-analyze/analyze-definitions.md +519 -0
- package/plugins/fancy-analyze/command-input.js +65 -0
- package/plugins/fancy-analyze/index.js +2024 -0
- package/plugins/fancy-analyze/ingest-coverage.js +107 -0
- package/plugins/fancy-analyze/schema-analyze.md +627 -0
- package/plugins/fancy-analyze/schema-write.md +178 -0
- package/plugins/fancy-analyze/scripts/append-summary-chapter.js +612 -0
- package/plugins/fancy-analyze/scripts/split_source.js +292 -0
- package/plugins/fancy-analyze/summary-progress.js +495 -0
- package/plugins/fancy-analyze/templates.js +1179 -0
- package/plugins/fancy-bootstrap/index.js +313 -0
- package/plugins/fancy-bootstrap/scripts/init.js +177 -0
- package/plugins/fancy-bootstrap/scripts/path-utils.js +21 -0
- package/plugins/fancy-bootstrap/templates.js +71 -0
- package/plugins/fancy-db/index.js +172 -0
- package/plugins/fancy-douyin/deploy.js +134 -0
- package/plugins/fancy-douyin/index.js +551 -0
- package/plugins/fancy-douyin/prompts/01-analysis-prompt.md +84 -0
- package/plugins/fancy-douyin/scripts/crawl-note.cjs +194 -0
- package/plugins/fancy-douyin/scripts/lib.cjs +197 -0
- package/plugins/fancy-douyin/scripts/scan-account.cjs +128 -0
- package/plugins/fancy-douyin/scripts/start-chrome.cjs +203 -0
- package/plugins/fancy-douyin/state.js +197 -0
- package/plugins/fancy-douyin/templates.js +127 -0
- package/plugins/fancy-export/exporter.js +805 -0
- package/plugins/fancy-export/index.js +63 -0
- package/plugins/fancy-import/import-core.js +1118 -0
- package/plugins/fancy-import/import-driver.js +604 -0
- package/plugins/fancy-import/index.js +738 -0
- package/plugins/fancy-import/prompts/01-import-prompt.md +131 -0
- package/plugins/fancy-import/templates.js +58 -0
- package/plugins/fancy-material/exporter.js +153 -0
- package/plugins/fancy-material/genres.js +256 -0
- package/plugins/fancy-material/index.js +835 -0
- package/plugins/fancy-material/inventory.js +143 -0
- package/plugins/fancy-material/kinds.js +313 -0
- package/plugins/fancy-material/queue.js +55 -0
- package/plugins/fancy-material/scripts/query.js +254 -0
- package/plugins/fancy-material/templates.js +258 -0
- package/plugins/fancy-material/tool-deploy.js +138 -0
- package/plugins/fancy-material/validate.js +149 -0
- package/plugins/fancy-project/index.js +133 -0
- package/plugins/fancy-scan/existing-block.js +100 -0
- package/plugins/fancy-scan/index.js +708 -0
- package/plugins/fancy-scan/prompts/01-analysis-prompt.md +302 -0
- package/plugins/fancy-scan/scripts/append-block.js +725 -0
- package/plugins/fancy-scan/scripts/report-validate.js +824 -0
- package/plugins/fancy-scan/scripts/run-scan.js +667 -0
- package/plugins/fancy-scan/scripts/scrapers/fanqie-rank-scraper.js +923 -0
- package/plugins/fancy-scan/scripts/scrapers/jjwxc-rank-scraper.js +469 -0
- package/plugins/fancy-scan/scripts/scrapers/qimao-rank-scraper.js +629 -0
- package/plugins/fancy-scan/templates/blocks.js +155 -0
- package/plugins/fancy-scan/templates/platforms.js +372 -0
- package/plugins/fancy-scan/templates/report-schema.js +90 -0
- package/plugins/fancy-scan/templates.js +694 -0
- package/plugins/fancy-scan/tool-deploy.js +335 -0
- package/plugins/fancy-scan/wait-turn.js +46 -0
- package/plugins/fancy-story-builder/db/README.md +106 -0
- package/plugins/fancy-story-builder/db/client.js +228 -0
- package/plugins/fancy-story-builder/db/commands.js +145 -0
- package/plugins/fancy-story-builder/db/ids.js +39 -0
- package/plugins/fancy-story-builder/db/import.js +798 -0
- package/plugins/fancy-story-builder/db/project.js +299 -0
- package/plugins/fancy-story-builder/db/query.js +361 -0
- package/plugins/fancy-story-builder/db/schema.js +417 -0
- package/plugins/fancy-story-builder/db/stage-sync.js +238 -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 +168 -0
- package/plugins/fancy-story-builder/index.js +6861 -0
- package/plugins/fancy-story-builder/patch-driver.js +390 -0
- package/plugins/fancy-story-builder/prompts/01-skeleton-prompt.md +563 -0
- package/plugins/fancy-story-builder/prompts/02-flesh-prompt.md +602 -0
- package/plugins/fancy-story-builder/prompts/03-rhythm-prompt.md +539 -0
- package/plugins/fancy-story-builder/prompts/04-writing-prompt.md +225 -0
- package/plugins/fancy-story-builder/prompts/05-deslop-prompt.md +96 -0
- package/plugins/fancy-story-builder/purpose-template.md +83 -0
- package/plugins/fancy-story-builder/references/formulas-rhythm.json +302 -0
- package/plugins/fancy-story-builder/references/formulas-skeleton.json +402 -0
- package/plugins/fancy-story-builder/references/genre-profiles.json +3514 -0
- package/plugins/fancy-story-builder/references/glossary.md +594 -0
- package/plugins/fancy-story-builder/references/index.md +581 -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 +181 -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 +243 -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 +185 -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 +187 -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 +209 -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 +160 -0
- package/plugins/fancy-story-builder/rhythm-output.js +140 -0
- package/plugins/fancy-story-builder/schema-setting.json +1100 -0
- package/plugins/fancy-story-builder/schema-setting.md +232 -0
- package/plugins/fancy-story-builder/scripts/ai-patterns.js +619 -0
- package/plugins/fancy-story-builder/scripts/brief-validate.js +164 -0
- package/plugins/fancy-story-builder/scripts/check-guide-compliance.js +289 -0
- package/plugins/fancy-story-builder/scripts/content-quality.js +416 -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 +1312 -0
- package/plugins/fancy-story-builder/scripts/formula-engine.js +112 -0
- package/plugins/fancy-story-builder/scripts/graph-utils.js +1484 -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/reference-log.js +110 -0
- package/plugins/fancy-story-builder/scripts/rhythm-validate.js +1312 -0
- package/plugins/fancy-story-builder/scripts/schema-pages.js +2668 -0
- package/plugins/fancy-story-builder/scripts/semantic-lint.js +381 -0
- package/plugins/fancy-story-builder/scripts/skeleton-quota.js +145 -0
- package/plugins/fancy-story-builder/scripts/skeleton-validate.js +1973 -0
- package/plugins/fancy-story-builder/scripts/stage-batches.js +1405 -0
- package/plugins/fancy-story-builder/scripts/stage-contract.js +429 -0
- package/plugins/fancy-story-builder/scripts/story-artifacts.js +933 -0
- package/plugins/fancy-story-builder/scripts/upstream-query.js +198 -0
- package/plugins/fancy-story-builder/scripts/v2/baseline.js +112 -0
- package/plugins/fancy-story-builder/scripts/v2/cast.js +517 -0
- package/plugins/fancy-story-builder/scripts/v2/context.js +434 -0
- package/plugins/fancy-story-builder/scripts/v2/contracts.js +493 -0
- package/plugins/fancy-story-builder/scripts/v2/core.js +419 -0
- package/plugins/fancy-story-builder/scripts/v2/engine.js +1068 -0
- package/plugins/fancy-story-builder/scripts/v2/export-markdown.js +794 -0
- package/plugins/fancy-story-builder/scripts/v2/genre.js +195 -0
- package/plugins/fancy-story-builder/scripts/v2/knowledge.js +321 -0
- package/plugins/fancy-story-builder/scripts/v2/macro.js +409 -0
- package/plugins/fancy-story-builder/scripts/v2/manifest.js +538 -0
- package/plugins/fancy-story-builder/scripts/v2/migrate.js +137 -0
- package/plugins/fancy-story-builder/scripts/v2/prompts.js +1335 -0
- package/plugins/fancy-story-builder/scripts/v2/rhythm.js +618 -0
- package/plugins/fancy-story-builder/scripts/v2/scale.js +843 -0
- package/plugins/fancy-story-builder/scripts/v2/snapshot.js +121 -0
- package/plugins/fancy-story-builder/scripts/v2/stages.js +273 -0
- package/plugins/fancy-story-builder/scripts/v2/writing.js +216 -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/storydb/README.md +271 -0
- package/plugins/fancy-story-builder/storydb/cli.js +458 -0
- package/plugins/fancy-story-builder/storydb/client.js +351 -0
- package/plugins/fancy-story-builder/storydb/compile.js +452 -0
- package/plugins/fancy-story-builder/storydb/context.js +288 -0
- package/plugins/fancy-story-builder/storydb/definitions.js +699 -0
- package/plugins/fancy-story-builder/storydb/driver.js +106 -0
- package/plugins/fancy-story-builder/storydb/dsh-tools.js +313 -0
- package/plugins/fancy-story-builder/storydb/export.js +175 -0
- package/plugins/fancy-story-builder/storydb/ids.js +31 -0
- package/plugins/fancy-story-builder/storydb/impact.js +170 -0
- package/plugins/fancy-story-builder/storydb/import.js +559 -0
- package/plugins/fancy-story-builder/storydb/mcp.js +99 -0
- package/plugins/fancy-story-builder/storydb/prompts.js +952 -0
- package/plugins/fancy-story-builder/storydb/stage-command.js +379 -0
- package/plugins/fancy-story-builder/storydb/stage.js +426 -0
- package/plugins/fancy-story-builder/storydb/store.js +891 -0
- package/plugins/fancy-story-builder/storydb/tools.js +592 -0
- package/plugins/fancy-story-builder/storydb/validation.js +183 -0
- package/plugins/fancy-story-builder/templates/v2/10-scale/scale-template.json +144 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/emotion-template.json +15 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/endings-template.json +16 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/lines-template.json +28 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/roles-template.json +10 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/story-template.json +19 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/volumes-template.json +24 -0
- package/plugins/fancy-story-builder/templates/v2/20-macro/world-template.json +24 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/characters-template.json +49 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/climaxes-template.json +14 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/conflicts-template.json +30 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/factions-template.json +18 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/foreshadows-template.json +29 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/information-template.json +29 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/items-template.json +13 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/locations-template.json +12 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/payoffs-template.json +16 -0
- package/plugins/fancy-story-builder/templates/v2/30-cast/relations-template.json +44 -0
- package/plugins/fancy-story-builder/templates/v2/40-rhythm/chapter-map-template.json +81 -0
- package/plugins/fancy-story-builder/templates/v2/40-rhythm/outline-template.json +162 -0
- package/plugins/fancy-story-builder/templates/v2/50-writing/ledger-template.json +46 -0
- package/plugins/fancy-story-builder/templates/v2/60-deslop/report-template.json +10 -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 +427 -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 +168 -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 +184 -0
- package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/205/266/344/273/226/345/256/236/344/275/223/346/250/241/346/235/277.json +62 -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 +131 -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 +85 -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 +103 -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 +68 -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 +142 -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 +292 -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 +266 -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 +336 -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 +308 -0
- package/plugins/fancy-story-builder/templates.js +1446 -0
- package/plugins/fancy-story-builder/wiki-references.js +540 -0
- package/plugins/fancy-story-builder/writing-driver.js +1388 -0
- package/plugins/fancy-topic/index.js +1057 -0
- package/plugins/fancy-topic/prompts/01-exploration-prompt.md +115 -0
- package/plugins/fancy-topic/scripts/save-suggestion.js +219 -0
- package/plugins/fancy-topic/scripts/select-topic.js +317 -0
- package/plugins/fancy-topic/templates.js +476 -0
- package/plugins/fancy-topic/tool-deploy.js +200 -0
- package/commands/bootstrap/index.js +0 -164
- package/commands/bootstrap/init-project.js +0 -121
- package/commands/scan/index.js +0 -283
- 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,174 @@
|
|
|
1
|
+
# 写作阶段入口
|
|
2
|
+
|
|
3
|
+
> 本文件是写作阶段的唯一入口。回答"写作阶段做什么、按什么顺序读、产出什么"。
|
|
4
|
+
> 本文件不定义方法、不写验证逻辑、不定义数据结构。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、阶段目标
|
|
9
|
+
|
|
10
|
+
把骨架 + 血肉 + 节奏的"档案 / 图 / 引擎 / 时序"落成逐章正文,并用台账持续维护"已发生"的状态。
|
|
11
|
+
|
|
12
|
+
回答:每章具体怎么写、每章写完台账怎么更新、出问题怎么诊断改稿。
|
|
13
|
+
|
|
14
|
+
写作是唯一会变的阶段。骨架 / 血肉 / 节奏一旦定稿即不可改;写作可改稿,但改稿要同步更新台账。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 二、四阶段定位
|
|
19
|
+
|
|
20
|
+
写作是四阶段的第四层。按"信息生命期"标准:
|
|
21
|
+
|
|
22
|
+
- **骨架**:实体、关系、数量、卷级归属(全书不变,无章节号)
|
|
23
|
+
- **血肉**:每个实体具体什么样(全书不变,无章节号)
|
|
24
|
+
- **节奏**:什么时间发生什么(含章节号)
|
|
25
|
+
- **写作**:具体怎么写(唯一会变的阶段)
|
|
26
|
+
|
|
27
|
+
写作阶段依赖上游的 16 个产物(骨架 4 + 血肉 8 + 节奏 4),但驱动**只整文件读 6 个**(骨架 `框架.json`/`实体.json` + 血肉 `角色.json` + 节奏 `章节规划.json`/`时序映射.json`/`章节细纲.json`)——整文件读会撑爆单回合上下文。其余上游产物按需用 `references/upstream-query.js` 精确取。写作阶段产出本阶段的逐章正文与 4 类台账。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 三、加载顺序
|
|
32
|
+
|
|
33
|
+
| 序 | 文件 | 作用 |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| 1 | 01-scene.md | 场景五要素、进出场、画面感、视角、比例、非对话信息传递 |
|
|
36
|
+
| 2 | 02-chapter-workflow.md | 从细纲到正文的八步流程、批量生成、版本管理 |
|
|
37
|
+
| 3 | 03-opening-chapter.md | 开篇第一章五段式、题材变体、平台差异 |
|
|
38
|
+
| 4 | 04-dialogue-mastery.md | 权力博弈、潜台词、场景路由、语言差异化、弹幕 |
|
|
39
|
+
| 5 | 05-genre-formulas.md | 各题材的节拍顺序、必选场景、核心规则 |
|
|
40
|
+
| 6 | 06-tone-ensemble.md | 喜剧 / 悲剧 / 文学性基调,群像 / 单元剧 / 非线性结构 |
|
|
41
|
+
| 7 | 07-ledger-audit.md | 台账体系、单元末 / 卷末盘点、上下文加载、改稿影响 |
|
|
42
|
+
| 8 | 08-diagnosis-revision.md | 八种症状诊断树、修改优先级、四轮打磨、复验 |
|
|
43
|
+
| 9 | 09-reading-power.md | 章末钩子 13 式、章首引子 7 式、8 大爽点、7 种微兑现、30-40-30 结构 |
|
|
44
|
+
| 10 | 10-deslop.md | 去 AI 味:四种改写手法、24 类 AI 模式清单(**去味阶段用**,写作阶段不必读) |
|
|
45
|
+
|
|
46
|
+
**顺序说明**:01 是"场景"这一最小单位的写法;02 是"章"这一层的工作流;03 是"第 1 章"的专门写法。三者是"从小到大"的递进,01 → 02 → 03 是必读基线。
|
|
47
|
+
|
|
48
|
+
04~06 是按场景 / 题材 / 基调的"按需加载"——写对话密集章时读 04,写特定题材时读 05,写喜剧 / 群像 / 单元剧 / 非线性时读 06。
|
|
49
|
+
|
|
50
|
+
07 是"每章后"必用(台账);08 是"出问题时"才用(诊断改稿);09 是"每章都要用"的阅读动力规则(钩子类型、微兑现)。
|
|
51
|
+
|
|
52
|
+
10 是"去味阶段"才用(改写方法),写作阶段不必读。
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 四、产出清单
|
|
57
|
+
|
|
58
|
+
| 产出 | 路径 |
|
|
59
|
+
|---|---|
|
|
60
|
+
| 逐章正文 | `设定/raw/sources/写作/第001章.md` ~ `第<T>章.md`(三位补零) |
|
|
61
|
+
| 章台账 | `设定/raw/sources/写作/台账/章台账.json` |
|
|
62
|
+
| 人物台账 | `设定/raw/sources/写作/台账/人物台账.json` |
|
|
63
|
+
| 伏笔台账 | `设定/raw/sources/写作/台账/伏笔台账.json` |
|
|
64
|
+
| 时间线台账 | `设定/raw/sources/写作/台账/时间线台账.json` |
|
|
65
|
+
|
|
66
|
+
**具体台账结构见 `prompts/04-writing-prompt.md` 的 §7.6**,本文件不重复定义。
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 五、决策路由
|
|
71
|
+
|
|
72
|
+
| 你在做什么 | 查 |
|
|
73
|
+
|---|---|
|
|
74
|
+
| 写一个场景 | 01-scene.md §2 场景五要素 |
|
|
75
|
+
| 判断场景 vs 概述 | 01-scene.md §3 比例 |
|
|
76
|
+
| 设计进入 / 退出场景 | 01-scene.md §4 进出场 |
|
|
77
|
+
| 写画面感 | 01-scene.md §5 画面感 |
|
|
78
|
+
| 选叙述视角 | 01-scene.md §6 视角 |
|
|
79
|
+
| 控句长文风 | 01-scene.md §7 句长 |
|
|
80
|
+
| 非对话信息传递 | 01-scene.md §9 非对话信息 |
|
|
81
|
+
| 从细纲到正文的流程 | 02-chapter-workflow.md §2 八步流程 |
|
|
82
|
+
| 批量生成质量控制 | 02-chapter-workflow.md §3 批量生成 |
|
|
83
|
+
| 版本管理 | 02-chapter-workflow.md §4 版本管理 |
|
|
84
|
+
| 写第一章 | 03-opening-chapter.md §2 五段式 |
|
|
85
|
+
| 按题材变体写第一章 | 03-opening-chapter.md §3 题材变体 |
|
|
86
|
+
| 按平台调整第一章 | 03-opening-chapter.md §4 平台差异 |
|
|
87
|
+
| 写对话 | 04-dialogue-mastery.md §2 对话核心规则 |
|
|
88
|
+
| 压制模式 / 反转模式 / 心死模式 | 04-dialogue-mastery.md §3 权力博弈 |
|
|
89
|
+
| 潜台词与议程 | 04-dialogue-mastery.md §4 潜台词与议程 |
|
|
90
|
+
| 情绪推动对话 | 04-dialogue-mastery.md §5 情绪推动 |
|
|
91
|
+
| 信息展示 / 弹幕 | 04-dialogue-mastery.md §6 信息展示与弹幕 |
|
|
92
|
+
| 人物语言差异化 | 04-dialogue-mastery.md §7 语言差异化 |
|
|
93
|
+
| 喜剧写法 | 06-tone-ensemble.md §2 喜剧 |
|
|
94
|
+
| 悲剧写法 | 06-tone-ensemble.md §3 悲剧 |
|
|
95
|
+
| 文学性 | 06-tone-ensemble.md §4 文学性 |
|
|
96
|
+
| 群像写法 | 06-tone-ensemble.md §5 群像 |
|
|
97
|
+
| 单元剧结构 | 06-tone-ensemble.md §6 单元剧 |
|
|
98
|
+
| 非线性叙事 | 06-tone-ensemble.md §7 非线性 |
|
|
99
|
+
| 更新伏笔 / 人物 / 时间线台账 | 07-ledger-audit.md §2 台账体系 |
|
|
100
|
+
| 单元末盘点 | 07-ledger-audit.md §3 单元末盘点 |
|
|
101
|
+
| 卷末大盘点 | 07-ledger-audit.md §4 卷末大盘点 |
|
|
102
|
+
| 上下文加载策略 | 07-ledger-audit.md §5 上下文加载 |
|
|
103
|
+
| 改稿连锁影响 | 07-ledger-audit.md §6 改稿影响 |
|
|
104
|
+
| 读者说平淡 / 憋屈 / 弃书 | 08-diagnosis-revision.md §2 诊断树 |
|
|
105
|
+
| 修哪个问题 | 08-diagnosis-revision.md §3 修改优先级 |
|
|
106
|
+
| 怎么修 | 08-diagnosis-revision.md §4 四轮打磨 |
|
|
107
|
+
| 修完怎么验 | 08-diagnosis-revision.md §5 复验 |
|
|
108
|
+
| 按题材套公式 | 05-genre-formulas.md(按题材路由) |
|
|
109
|
+
| 去掉 AI 味 | 10-deslop.md §2 四种改写手法 |
|
|
110
|
+
| 查某一类 AI 模式属于哪一类 | 10-deslop.md §4 24 类清单(判定以 `scripts/ai-patterns.js` 为准) |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 六、每章循环速览
|
|
115
|
+
|
|
116
|
+
写作阶段不是"一次生成全部正文",而是"逐章生成 + 逐章校验 + 台账持续更新"。循环结构:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
对第 N 章(N=1..T):
|
|
120
|
+
┌─ 步骤 A:读前置
|
|
121
|
+
│ ├─ 读本章细纲(如果本章有)
|
|
122
|
+
│ ├─ 读前章正文最后一段(衔接)
|
|
123
|
+
│ ├─ 读人物台账(出场角色当前状态)
|
|
124
|
+
│ ├─ 读伏笔台账(open 伏笔的当前状态)
|
|
125
|
+
│ └─ 读时间线台账(in-world-time 当前位置)
|
|
126
|
+
├─ 步骤 B:生成正文(按 01/02/03/04/05/06 方法论)
|
|
127
|
+
├─ 步骤 C:单章校验(writing-validate.js)
|
|
128
|
+
├─ 步骤 D:处理输出(status 0 → E / status 1 → 回喂重写 / status 2 → BLOCKED)
|
|
129
|
+
└─ 步骤 E:更新 4 类台账(07-ledger-audit.md)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**完整的循环细节、回喂格式、重试规则、BLOCKED 触发条件见 `prompts/04-writing-prompt.md` 的 §7**,本文件不重复。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 七、禁用与强制(本阶段特有)
|
|
137
|
+
|
|
138
|
+
写作阶段与前三阶段的差异,集中在"输出形态":
|
|
139
|
+
|
|
140
|
+
- **章节标题**:第一行必须是 `# 第N章 <标题>` / `# 第NNN章 <标题>` / `# 第X章 <标题>`(X 为中文数字)三种格式之一,章号必须与 `--chapter=N` 一致
|
|
141
|
+
- **禁用词**:`基本一致` / `无重大问题`(AI 分析口吻,不得出现在正文)
|
|
142
|
+
- **占位符**:`[X]` / `[Y]` / `[Z]` / `[W]` / `待确认` / `待定` / `N/A`
|
|
143
|
+
- **字符集**:不得含韩文谚文、日文假名
|
|
144
|
+
- **空章节**:标题存在但正文过短(非空白字符 < 50)会报 `EMPTY_BODY`
|
|
145
|
+
|
|
146
|
+
**具体的校验代码与触发条件见 `prompts/04-writing-prompt.md` 的 §八、§十二**,本文件不重复。
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 八、与其他文件的关系
|
|
151
|
+
|
|
152
|
+
| 本文件作用 | 被谁引用 |
|
|
153
|
+
|---|---|
|
|
154
|
+
| 写作阶段入口 | `prompts/04-writing-prompt.md`(提示词读本文件确定加载顺序与决策路由) |
|
|
155
|
+
| 写作阶段产出清单 | `index.md` §3.5(写作阶段 9 个指导文件之一) |
|
|
156
|
+
|
|
157
|
+
**本文件本身不直接输出到任何 JSON / 正文**,它是导航文件。所有具体输出由 01~08 子文件负责。
|
|
158
|
+
|
|
159
|
+
**上下游关系**:
|
|
160
|
+
- 上游:`prompts/04-writing-prompt.md`(编排) + 骨架 4 JSON + 血肉 8 JSON + 节奏 4 JSON
|
|
161
|
+
- 下游:`writing-validate.js`(单章校验) + 台账(持续更新)
|
|
162
|
+
|
|
163
|
+
**不输出到**:
|
|
164
|
+
- 场景五要素 / 八步流程 / 五段式 / 对话规则 / 题材公式 / 基调结构 / 台账结构 → 都是方法论或数据结构,分别写在 01~08 子文件与提示词 §7.6
|
|
165
|
+
- 具体章节号 / 字数 → 由节奏阶段的章节规划、章节细纲、时序映射决定
|
|
166
|
+
- 具体正文 → 逐章生成,不在本文件
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 九、版本记录
|
|
171
|
+
|
|
172
|
+
| 版本 | 变更 |
|
|
173
|
+
|---|---|
|
|
174
|
+
| v1.0 | 初建。从 `prompts/04-writing-prompt.md` 提炼入口层内容:阶段目标 / 四阶段定位 / 加载顺序 / 产出清单 / 决策路由 / 每章循环速览 / 禁用与强制 / 与其他文件的关系。补全写作阶段缺失的阶段入口(此前写作指导从 01-scene.md 开始,无 00-index.md) |
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# 场景写作法
|
|
2
|
+
|
|
3
|
+
> 写作阶段第 1 份。场景是正文的最小单位,不是章。
|
|
4
|
+
> 本文件不定义数据结构、不写验证逻辑、不写具体章节约束。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、决策路由
|
|
9
|
+
|
|
10
|
+
| 你在做什么 | 用哪节 |
|
|
11
|
+
|---|---|
|
|
12
|
+
| 写一个场景 | §2 场景五要素 |
|
|
13
|
+
| 判断场景 vs 概述 | §3 比例 |
|
|
14
|
+
| 进入/退出场景 | §4 进出场 |
|
|
15
|
+
| 写画面感 | §5 画面感 |
|
|
16
|
+
| 控制视角 | §6 视角 |
|
|
17
|
+
| 控句长文风 | §7 句长 |
|
|
18
|
+
| 控描写叙述比例 | §8 比例 |
|
|
19
|
+
| 非对话信息传递 | §9 非对话信息 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 二、场景五要素
|
|
24
|
+
|
|
25
|
+
每个场景必须回答:
|
|
26
|
+
|
|
27
|
+
1. **地点**:在哪?有什么环境细节?
|
|
28
|
+
2. **人物**:谁在场?各自想要什么?
|
|
29
|
+
3. **目标**:本场景中,视角人物想要什么?
|
|
30
|
+
4. **阻碍**:什么阻止他?
|
|
31
|
+
5. **转折**:场景结束时,处境/关系/认知发生了什么变化?
|
|
32
|
+
|
|
33
|
+
**没有转折的场景 = 废场景**,删或合并。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 三、场景与概述的比例
|
|
38
|
+
|
|
39
|
+
| 内容类型 | 写成场景 | 写成概述 |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| 核心冲突 | 是 | 否 |
|
|
42
|
+
| 关键对话 | 是 | 否 |
|
|
43
|
+
| 情绪转折 | 是 | 否 |
|
|
44
|
+
| 时间跳跃 | 否 | 是 |
|
|
45
|
+
| 背景交代 | 否 | 是 |
|
|
46
|
+
| 过渡 | 否 | 是 |
|
|
47
|
+
| 重复信息 | 否 | 是(一句话带过) |
|
|
48
|
+
|
|
49
|
+
网文常见病:该写场景的地方写概述(打脸一笔带过),该概述的地方灌水成场景(走路写五百字)。
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 四、进入与退出场景
|
|
54
|
+
|
|
55
|
+
### 4.1 进入场景
|
|
56
|
+
|
|
57
|
+
**不要从**:起床、走路、风景、天气、日常琐事切入。
|
|
58
|
+
|
|
59
|
+
**要从**:动作中途、对话中途、冲突爆发点、反常细节切入。
|
|
60
|
+
|
|
61
|
+
| 弱 | 强 |
|
|
62
|
+
|---|---|
|
|
63
|
+
| 李明早上起床,洗漱完毕,走出家门。 | 李明刚把钥匙插进锁孔,门里传来一声轻响。 |
|
|
64
|
+
| 宴会上人来人往,很热闹。 | "你也配坐主桌?"一只酒杯砸在他脚边。 |
|
|
65
|
+
|
|
66
|
+
### 4.2 退出场景
|
|
67
|
+
|
|
68
|
+
在情绪点切出,接章尾钩子。不要在场景"自然结束"后继续写。
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 五、画面感三件套
|
|
73
|
+
|
|
74
|
+
1. **感官细节**:视/听/触/嗅/味选一两个,不堆砌
|
|
75
|
+
2. **具体名词**:不写"一把武器",写"缺了口的柴刀";不写"一辆车",写"掉漆的桑塔纳"
|
|
76
|
+
3. **动作动词**:不写"他很生气",写"他把茶碗墩在桌上,茶水溅出来"
|
|
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
|
+
|---|---|
|
|
124
|
+
| 物件 | 一封信、一个伤疤、一件旧衣服、桌上的药瓶 |
|
|
125
|
+
| 环境 | 房间的整洁/凌乱、墙上的照片、窗外的天气 |
|
|
126
|
+
| 他人反应 | 旁人的眼神、窃窃私语、突然的沉默 |
|
|
127
|
+
| 动作 | 反复看表、攥紧拳头、避开视线 |
|
|
128
|
+
|
|
129
|
+
示例:不写"他很穷",写"他把烟盒里最后一根烟掰成两半,一半放回盒里"。
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 十、与其他文件的关系
|
|
134
|
+
|
|
135
|
+
| 本文件输出 | 落到哪个文件 | 由哪个脚本验证 |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| 场景五要素 | 每章正文(`第NNN章.md`) | `writing-validate.js` 的 `CHAPTER_TITLE` / `EMPTY_PARAGRAPH` |
|
|
138
|
+
| 正文具体内容 | 每章正文 | `WORD_COUNT`(字数)/ `FORBIDDEN_WORD`(禁用词) |
|
|
139
|
+
|
|
140
|
+
**不输出到**:
|
|
141
|
+
- 场景五要素不单独建 JSON 字段,是写作时的思考框架
|
|
142
|
+
- 具体的场景清单由章节细纲的 `function_main` / `function_aux` 提供
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## 十一、版本记录
|
|
147
|
+
|
|
148
|
+
| 版本 | 变更 |
|
|
149
|
+
|---|---|
|
|
150
|
+
| v1.0 | 从原 04-01 精简。删除检查清单(改为方法论陈述);保留场景五要素/进出场/画面感/比例/非对话信息传递;新增"与其他文件的关系"节 |
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# 章节生成工作流
|
|
2
|
+
|
|
3
|
+
> 写作阶段第 2 份。从细纲到正文的固定流程。每次生成按此走,质量才稳定。
|
|
4
|
+
> 本文件不定义数据结构、不写验证逻辑。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、决策路由
|
|
9
|
+
|
|
10
|
+
| 你在做什么 | 用哪节 |
|
|
11
|
+
|---|---|
|
|
12
|
+
| 从细纲到正文 | §2 八步流程 |
|
|
13
|
+
| 批量生成质量控制 | §3 批量生成 |
|
|
14
|
+
| 版本管理 | §4 版本管理 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 二、八步流程
|
|
19
|
+
|
|
20
|
+
### 第 1 步:读细纲,确认本章功能
|
|
21
|
+
|
|
22
|
+
从细纲读:本章推进哪条主线/支线?埋/推/收哪些伏笔?本章爽点类型?本章钩子类型?出场哪些势力?
|
|
23
|
+
|
|
24
|
+
本章功能只能选一个主功能 + 一个辅功能:推进主线 / 埋伏笔 / 爽点兑现 / 过渡 / 人物塑造。
|
|
25
|
+
|
|
26
|
+
### 第 2 步:确认情绪阶段
|
|
27
|
+
|
|
28
|
+
对照时序映射:本章在弧线哪个位置?是调动段、释放段还是蓄力段?本章情绪值目标(1-10)?
|
|
29
|
+
|
|
30
|
+
### 第 3 步:确认章首/章尾钩子
|
|
31
|
+
|
|
32
|
+
从时序映射读本章的 `hook_head` / `hook_tail` / `hook_strength`,按类型写章首/章尾。章首前 100 字、章尾后 100 字单独标注。
|
|
33
|
+
|
|
34
|
+
### 第 4 步:写场景清单
|
|
35
|
+
|
|
36
|
+
本章写几个场景(通常两到四个)。每个场景写五要素:地点/人物/目标/阻碍/转折。
|
|
37
|
+
|
|
38
|
+
### 第 5 步:写第一稿
|
|
39
|
+
|
|
40
|
+
按场景写,不按细纲条目写。每个场景按场景写作法(见 01-scene.md)的进入/退出/画面感/比例写。
|
|
41
|
+
|
|
42
|
+
### 第 6 步:自检
|
|
43
|
+
|
|
44
|
+
按下面的清单自检:
|
|
45
|
+
- 本章是否有至少一个价值改变?
|
|
46
|
+
- 章首前 100 字是否有钩子?
|
|
47
|
+
- 章尾后 100 字是否有钩子?
|
|
48
|
+
- 对话是否推动剧情?
|
|
49
|
+
- 伏笔是否更新?
|
|
50
|
+
- 字数是否在基准 ±20%?
|
|
51
|
+
|
|
52
|
+
### 第 7 步:修钩子
|
|
53
|
+
|
|
54
|
+
章首前 100 字、章尾后 100 字单独打磨。钩子不达标,回第 3 步重选。
|
|
55
|
+
|
|
56
|
+
### 第 8 步:更新台账
|
|
57
|
+
|
|
58
|
+
更新章台账、人物台账、伏笔台账、时间线台账(见 07-ledger-audit.md)。
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 三、批量生成质量控制
|
|
63
|
+
|
|
64
|
+
| 批次 | 划分 | 批内检查 | 批间检查 |
|
|
65
|
+
|---|---|---|---|
|
|
66
|
+
| 小批 | 几章(一个桥段) | 钩子不重复、爽点不同质、时间连续 | 上批章尾钩子是否接住 |
|
|
67
|
+
| 中批 | 十几到二十章(一个单元) | 单元末盘点 | 单元钩子是否立住 |
|
|
68
|
+
| 大批 | 一卷 | 卷末大盘点 | 跨卷衔接检查 |
|
|
69
|
+
|
|
70
|
+
**抽检**:每批抽一两章全文精读(查场景五要素/对话/钩子),其余章做台账核对。
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 四、版本管理
|
|
75
|
+
|
|
76
|
+
- 章 v1/v2/v3,每次改标注"改了什么、为什么改、影响哪些台账"
|
|
77
|
+
- 分支写法(A 版反击/B 版隐忍)标记清楚,对比后合并
|
|
78
|
+
- 回滚时同步恢复台账
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 五、与其他文件的关系
|
|
83
|
+
|
|
84
|
+
| 本文件输出 | 落到哪个文件 | 由哪个脚本验证 |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| 每章正文 | `第NNN章.md` | `writing-validate.js` 的全部检查 |
|
|
87
|
+
| 台账更新 | `台账/*.json` | 无(台账由方法论保证一致性) |
|
|
88
|
+
|
|
89
|
+
**不输出到**:
|
|
90
|
+
- 八步流程不单独建字段,是写作时的操作顺序
|
|
91
|
+
- 场景清单不单独建 JSON 字段,直接写进正文
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 六、版本记录
|
|
96
|
+
|
|
97
|
+
| 版本 | 变更 |
|
|
98
|
+
|---|---|
|
|
99
|
+
| v1.0 | 从原 04-02 精简。删除检查清单(改为"自检"节的方法论陈述);保留八步流程/批量生成/版本管理;新增"与其他文件的关系"节 |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# 开篇第一章逐段写法
|
|
2
|
+
|
|
3
|
+
> 写作阶段第 3 份。第一章决定点击率。按段拆,不平均用力。
|
|
4
|
+
> 本文件不定义数据结构、不写验证逻辑。允许出现具体字数和章节号作为写法参考。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、决策路由
|
|
9
|
+
|
|
10
|
+
| 你在做什么 | 用哪节 |
|
|
11
|
+
|---|---|
|
|
12
|
+
| 写第一章 | §2 五段式 |
|
|
13
|
+
| 按题材变体 | §3 题材变体 |
|
|
14
|
+
| 按平台调整 | §4 平台差异 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 二、五段式
|
|
19
|
+
|
|
20
|
+
以基准 2000 字/章为例:
|
|
21
|
+
|
|
22
|
+
| 段 | 字数 | 功能 | 要点 |
|
|
23
|
+
|---|---|---|---|
|
|
24
|
+
| 第 1 段 | 0-200 | 钩子 + 主角处境 + 一个具体细节 | 不从起床/风景切入;第一句就有冲突或反常 |
|
|
25
|
+
| 第 2 段 | 200-600 | 核心冲突初现 + 主角反应(立人设) | 主角必须做出选择,选择揭示性格 |
|
|
26
|
+
| 第 3 段 | 600-1200 | 信息差/对手出场/金手指暗示 | 读者知道主角不知道的事,或主角知道读者不知道的事 |
|
|
27
|
+
| 第 4 段 | 1200-1800 | 小高潮或反转 | 主角第一次反击/金手指第一次生效/真相第一次露头 |
|
|
28
|
+
| 第 5 段 | 1800-2000 | 章尾钩子 + 下一章期待 | 用章尾 13 式,约 100 字 |
|
|
29
|
+
|
|
30
|
+
**平台偏离**:
|
|
31
|
+
- 番茄 1000 字/章:五段比例不变,字数减半
|
|
32
|
+
- 知乎 300 字开篇窗口:第 1 段必须 0-100 字建立冲突
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 三、题材变体
|
|
37
|
+
|
|
38
|
+
### 3.1 复仇型
|
|
39
|
+
|
|
40
|
+
第 1 段:当众受辱(具体、狠)。第 2 段:主角冷静反应(不哭不闹,立"不好惹"人设)。第 3 段:对手得意 + 主角暗藏底牌。第 4 段:第一次反击(小胜)。第 5 段:钩子——"这只是开始"。
|
|
41
|
+
|
|
42
|
+
### 3.2 系统型
|
|
43
|
+
|
|
44
|
+
第 1 段:主角最低谷(失业/离婚/濒死)。第 2 段:系统激活。第 3 段:系统面板 + 新手奖励。第 4 段:第一次用系统解决小问题。第 5 段:钩子——系统发布新任务/前妻后悔伏笔。
|
|
45
|
+
|
|
46
|
+
### 3.3 悬疑型
|
|
47
|
+
|
|
48
|
+
第 1 段:反常事实(尸体/失踪/怪事)。第 2 段:主角介入(为什么是他)。第 3 段:第一个疑点 + 假提示。第 4 段:小反转(以为找到了,但不是)。第 5 段:钩子——新疑点/危险逼近。
|
|
49
|
+
|
|
50
|
+
### 3.4 言情型
|
|
51
|
+
|
|
52
|
+
第 1 段:主角 A 的困境(被退婚/被背叛/被轻视)。第 2 段:主角 B 出场(第一印象不佳或反常)。第 3 段:两人被迫接触 + 冲突。第 4 段:一个小吸引点(B 的反差/保护/秘密)。第 5 段:钩子——关系悬念/身份悬念。
|
|
53
|
+
|
|
54
|
+
### 3.5 无敌流/轻松型
|
|
55
|
+
|
|
56
|
+
第 1 段:主角展现反常(明明很强却装弱/明明很惨却乐观)。第 2 段:配角误判主角(信息差)。第 3 段:对手登场嚣张。第 4 段:主角随手碾压(轻描淡写)。第 5 段:钩子——更高层对手/隐藏身份伏笔。
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 四、平台差异
|
|
61
|
+
|
|
62
|
+
| 平台 | 第一章重点 |
|
|
63
|
+
|---|---|
|
|
64
|
+
| 起点 | 世界观暗示 + 主角目标 + 金手指伏笔(黄金三章签约) |
|
|
65
|
+
| 番茄 | 冲突前置 + 爽点预告 + 情绪冲击(前 3 章决定推荐) |
|
|
66
|
+
| 晋江 | 人设质感 + 感情线暗示 + 文笔(前三章决定收藏) |
|
|
67
|
+
| 知乎盐选 | 前 300 字建立冲突 + 第一人称 + 反转预告(300 字定生死) |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 五、第一章自检
|
|
72
|
+
|
|
73
|
+
写完后自问:
|
|
74
|
+
- 第一句是否有冲突/反常/悬念?
|
|
75
|
+
- 前 200 字是否建立了主角处境?
|
|
76
|
+
- 主角是否做出了一个揭示性格的选择?
|
|
77
|
+
- 是否有信息差(读者知/主角知/反派知)?
|
|
78
|
+
- 第 4 段是否有小高潮或反转?
|
|
79
|
+
- 章尾是否有钩子?
|
|
80
|
+
- 是否避免了起床/走路/风景/简历式介绍?
|
|
81
|
+
- 是否与书名/简介承诺一致?
|
|
82
|
+
- 是否与人物档案的核心特质一致?
|
|
83
|
+
|
|
84
|
+
**注**:这是写作时的自问,不是脚本验证。
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 六、与其他文件的关系
|
|
89
|
+
|
|
90
|
+
| 本文件输出 | 落到哪个文件 | 由哪个脚本验证 |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| 第 1 章正文 | `第001章.md` | `writing-validate.js` 的 `CHAPTER_TITLE` / `WORD_COUNT` / `HOOK_HEAD_MISSING` / `HOOK_TAIL_MISSING` |
|
|
93
|
+
|
|
94
|
+
**不输出到**:
|
|
95
|
+
- 五段式不单独建 JSON 字段,是写作时的结构参考
|
|
96
|
+
- 平台差异不进入骨架/血肉/节奏的 JSON,是写作时的写法选择
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 七、版本记录
|
|
101
|
+
|
|
102
|
+
| 版本 | 变更 |
|
|
103
|
+
|---|---|
|
|
104
|
+
| v1.0 | 从原 04-03 精简。删除检查清单(改为"自检"节的方法论陈述);保留五段式/题材变体/平台差异;允许具体字数作为写法参考;新增"与其他文件的关系"节 |
|