@oh-story/dsh 0.1.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.
Files changed (488) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/cordis.patch.yml +3 -0
  4. package/lib/client.js +1201 -0
  5. package/lib/client.js.map +7 -0
  6. package/lib/drama/LICENSE.upstream +21 -0
  7. package/lib/drama/manifest.json +1012 -0
  8. package/lib/drama/skills/short-drama/SKILL.md +153 -0
  9. package/lib/drama/skills/short-drama/agents/openai.yaml +4 -0
  10. package/lib/drama/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  11. package/lib/drama/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  12. package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +36 -0
  13. package/lib/drama/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  14. package/lib/drama/skills/short-drama/references/audience-reveal.md +74 -0
  15. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +94 -0
  16. package/lib/drama/skills/short-drama/references/creator-workflow.md +82 -0
  17. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
  18. package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
  19. package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
  20. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  21. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
  22. package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
  23. package/lib/drama/skills/short-drama/references/knowhow-index.md +80 -0
  24. package/lib/drama/skills/short-drama/references/lifecycle-commands.md +130 -0
  25. package/lib/drama/skills/short-drama/references/look-development.md +52 -0
  26. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +58 -0
  27. package/lib/drama/skills/short-drama/references/production-form-profiles.md +126 -0
  28. package/lib/drama/skills/short-drama/references/reference-roles.md +142 -0
  29. package/lib/drama/skills/short-drama/references/runtime-preflight.md +27 -0
  30. package/lib/drama/skills/short-drama/scripts/project_tool.py +1963 -0
  31. package/lib/drama/skills/short-drama/scripts/selftest.py +287 -0
  32. package/lib/drama/skills/short-drama-assets/SKILL.md +187 -0
  33. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +4 -0
  34. package/lib/drama/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  35. package/lib/drama/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  36. package/lib/drama/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  37. package/lib/drama/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  38. package/lib/drama/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  39. package/lib/drama/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  40. package/lib/drama/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  41. package/lib/drama/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  42. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +89 -0
  43. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +164 -0
  44. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +123 -0
  45. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +146 -0
  46. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +84 -0
  47. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +111 -0
  48. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +107 -0
  49. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +136 -0
  50. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +171 -0
  51. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +267 -0
  52. package/lib/drama/skills/short-drama-assets/scripts/selftest.py +89 -0
  53. package/lib/drama/skills/short-drama-develop/SKILL.md +157 -0
  54. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +4 -0
  55. package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  56. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +120 -0
  57. package/lib/drama/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  58. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +181 -0
  59. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  60. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  61. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  62. package/lib/drama/skills/short-drama-develop/references/episode-design.md +509 -0
  63. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  64. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
  65. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
  66. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
  67. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
  68. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
  69. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
  70. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
  71. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
  72. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
  73. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
  74. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
  75. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
  76. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +92 -0
  77. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  78. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  79. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +211 -0
  80. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  81. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  82. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +88 -0
  83. package/lib/drama/skills/short-drama-develop/references/story-craft.md +359 -0
  84. package/lib/drama/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  85. package/lib/drama/skills/short-drama-develop/scripts/selftest.py +47 -0
  86. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +181 -0
  87. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  88. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  89. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +37 -0
  90. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  91. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +31 -0
  92. package/lib/drama/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  93. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +154 -0
  94. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +231 -0
  95. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +122 -0
  96. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +152 -0
  97. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +96 -0
  98. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +38 -0
  99. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  100. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +140 -0
  101. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  102. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +89 -0
  103. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  104. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +93 -0
  105. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +245 -0
  106. package/lib/drama/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  107. package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  108. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  109. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  110. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  111. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +141 -0
  112. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  113. package/lib/drama/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  114. package/lib/drama/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  115. package/lib/drama/skills/short-drama-produce/SKILL.md +103 -0
  116. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +4 -0
  117. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +140 -0
  118. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  119. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  120. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +40 -0
  121. package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +60 -0
  122. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +1635 -0
  123. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +964 -0
  124. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +134 -0
  125. package/lib/drama/skills/short-drama-review/SKILL.md +178 -0
  126. package/lib/drama/skills/short-drama-review/agents/openai.yaml +4 -0
  127. package/lib/drama/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  128. package/lib/drama/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  129. package/lib/drama/skills/short-drama-review/assets/verdict-template.json +32 -0
  130. package/lib/drama/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  131. package/lib/drama/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  132. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +114 -0
  133. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +270 -0
  134. package/lib/drama/skills/short-drama-review/references/project-calibration.md +85 -0
  135. package/lib/drama/skills/short-drama-review/references/review-method.md +82 -0
  136. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +115 -0
  137. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  138. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +164 -0
  139. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +166 -0
  140. package/lib/drama/skills/short-drama-review/references/stage-contract.md +87 -0
  141. package/lib/drama/skills/short-drama-review/scripts/review_check.py +325 -0
  142. package/lib/drama/skills/short-drama-review/scripts/selftest.py +87 -0
  143. package/lib/drama/skills/short-drama-storyboard/SKILL.md +264 -0
  144. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  145. package/lib/drama/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  146. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  147. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +32 -0
  148. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  149. package/lib/drama/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  150. package/lib/drama/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  151. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  152. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +241 -0
  153. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +39 -0
  154. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +169 -0
  155. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +264 -0
  156. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +70 -0
  157. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +39 -0
  158. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +157 -0
  159. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +192 -0
  160. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +29 -0
  161. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +110 -0
  162. package/lib/drama/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  163. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  164. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +245 -0
  165. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  166. package/lib/drama/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  167. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  168. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +212 -0
  169. package/lib/drama/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  170. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  171. package/lib/drama/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  172. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +46 -0
  173. package/lib/drama/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  174. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +240 -0
  175. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +255 -0
  176. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +93 -0
  177. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +304 -0
  178. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +191 -0
  179. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +312 -0
  180. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +168 -0
  181. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +110 -0
  182. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  183. package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  184. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  185. package/lib/drama/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  186. package/lib/drama/skills/short-drama-write/SKILL.md +284 -0
  187. package/lib/drama/skills/short-drama-write/agents/openai.yaml +4 -0
  188. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +2 -0
  189. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  190. package/lib/drama/skills/short-drama-write/assets/episode-card.json +55 -0
  191. package/lib/drama/skills/short-drama-write/assets/screenplay.md +36 -0
  192. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  193. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +519 -0
  194. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +273 -0
  195. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +51 -0
  196. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  197. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +260 -0
  198. package/lib/drama/skills/short-drama-write/references/script-craft.md +558 -0
  199. package/lib/drama/skills/short-drama-write/references/stage-contract.md +94 -0
  200. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +107 -0
  201. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  202. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  203. package/lib/drama/skills/short-drama-write/scripts/selftest.py +229 -0
  204. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  205. package/lib/index.js +756 -0
  206. package/lib/index.js.map +7 -0
  207. package/lib/oh-story/LICENSE.upstream +21 -0
  208. package/lib/oh-story/manifest.json +1351 -0
  209. package/lib/oh-story/roles/chapter-extractor.md +314 -0
  210. package/lib/oh-story/roles/character-designer.md +169 -0
  211. package/lib/oh-story/roles/consistency-checker.md +190 -0
  212. package/lib/oh-story/roles/narrative-writer.md +294 -0
  213. package/lib/oh-story/roles/story-architect.md +195 -0
  214. package/lib/oh-story/roles/story-explorer.md +364 -0
  215. package/lib/oh-story/roles/story-researcher.md +304 -0
  216. package/lib/oh-story/skills/browser-cdp/SKILL.md +175 -0
  217. package/lib/oh-story/skills/story/SKILL.md +116 -0
  218. package/lib/oh-story/skills/story/VERSION +1 -0
  219. package/lib/oh-story/skills/story-cover/SKILL.md +327 -0
  220. package/lib/oh-story/skills/story-cover/references/cover-styles.md +210 -0
  221. package/lib/oh-story/skills/story-deslop/SKILL.md +445 -0
  222. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +582 -0
  223. package/lib/oh-story/skills/story-deslop/references/banned-words.md +147 -0
  224. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +1371 -0
  225. package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +330 -0
  226. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +241 -0
  227. package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +410 -0
  228. package/lib/oh-story/skills/story-import/SKILL.md +634 -0
  229. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +82 -0
  230. package/lib/oh-story/skills/story-import/references/format-and-structure.md +169 -0
  231. package/lib/oh-story/skills/story-import/references/length-routing.md +134 -0
  232. package/lib/oh-story/skills/story-import/references/state-tracking.md +108 -0
  233. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +442 -0
  234. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +175 -0
  235. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +161 -0
  236. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +1139 -0
  237. package/lib/oh-story/skills/story-long-analyze/SKILL.md +329 -0
  238. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
  239. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +530 -0
  240. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +559 -0
  241. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +80 -0
  242. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +149 -0
  243. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
  244. package/lib/oh-story/skills/story-long-scan/SKILL.md +342 -0
  245. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +197 -0
  246. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +114 -0
  247. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +105 -0
  248. package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +207 -0
  249. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +78 -0
  250. package/lib/oh-story/skills/story-long-write/SKILL.md +327 -0
  251. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +582 -0
  252. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +302 -0
  253. package/lib/oh-story/skills/story-long-write/references/banned-words.md +147 -0
  254. package/lib/oh-story/skills/story-long-write/references/character-basics.md +445 -0
  255. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +428 -0
  256. package/lib/oh-story/skills/story-long-write/references/character-relations.md +385 -0
  257. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +502 -0
  258. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +62 -0
  259. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +282 -0
  260. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +426 -0
  261. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +209 -0
  262. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +188 -0
  263. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +169 -0
  264. package/lib/oh-story/skills/story-long-write/references/genre-catalog.md +480 -0
  265. package/lib/oh-story/skills/story-long-write/references/genre-core-mechanics.md +415 -0
  266. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  267. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  268. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  269. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  271. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  272. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  273. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  274. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  275. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  276. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  277. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  278. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  279. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  280. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  281. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  282. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  283. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  284. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  285. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  286. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  287. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  288. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  289. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  290. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  291. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  292. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  293. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  294. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  295. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  296. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  297. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  298. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +91 -0
  299. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +235 -0
  300. package/lib/oh-story/skills/story-long-write/references/genre-writing-formulas.md +444 -0
  301. package/lib/oh-story/skills/story-long-write/references/hooks-chapter.md +225 -0
  302. package/lib/oh-story/skills/story-long-write/references/hooks-paragraph.md +146 -0
  303. package/lib/oh-story/skills/story-long-write/references/hooks-suspense.md +352 -0
  304. package/lib/oh-story/skills/story-long-write/references/opening-design.md +349 -0
  305. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +457 -0
  306. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +287 -0
  307. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +389 -0
  308. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +326 -0
  309. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +522 -0
  310. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +354 -0
  311. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +711 -0
  312. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +622 -0
  313. package/lib/oh-story/skills/story-long-write/references/quality-checklist.md +184 -0
  314. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +109 -0
  315. package/lib/oh-story/skills/story-long-write/references/reversal-toolkit.md +349 -0
  316. package/lib/oh-story/skills/story-long-write/references/state-tracking.md +108 -0
  317. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +409 -0
  318. package/lib/oh-story/skills/story-long-write/references/style-craft.md +347 -0
  319. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +510 -0
  320. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +161 -0
  321. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +140 -0
  322. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +171 -0
  323. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +99 -0
  324. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +284 -0
  325. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +421 -0
  326. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +1371 -0
  327. package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +330 -0
  328. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +241 -0
  329. package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +410 -0
  330. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +1139 -0
  331. package/lib/oh-story/skills/story-review/SKILL.md +483 -0
  332. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +582 -0
  333. package/lib/oh-story/skills/story-review/references/banned-words.md +147 -0
  334. package/lib/oh-story/skills/story-review/references/character-relations.md +385 -0
  335. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +282 -0
  336. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +522 -0
  337. package/lib/oh-story/skills/story-review/references/quality-checklist.md +250 -0
  338. package/lib/oh-story/skills/story-review/references/quality-rubric.md +55 -0
  339. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +18 -0
  340. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +19 -0
  341. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +20 -0
  342. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +161 -0
  343. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +1371 -0
  344. package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +330 -0
  345. package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +410 -0
  346. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +1139 -0
  347. package/lib/oh-story/skills/story-setup/SKILL.md +495 -0
  348. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +582 -0
  349. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +147 -0
  350. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +445 -0
  351. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
  352. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +385 -0
  353. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +282 -0
  354. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +426 -0
  355. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-methods.md +179 -0
  356. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +169 -0
  357. package/lib/oh-story/skills/story-setup/references/agent-references/genre-catalog.md +480 -0
  358. package/lib/oh-story/skills/story-setup/references/agent-references/genre-core-mechanics.md +415 -0
  359. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  360. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  361. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  362. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  363. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  364. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  365. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  366. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  367. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  368. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  369. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  370. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  371. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  374. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  375. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  376. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  377. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  378. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  379. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  380. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  381. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  382. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  383. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  384. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  385. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  386. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  387. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  388. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  389. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  390. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  391. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
  392. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +235 -0
  393. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +444 -0
  394. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-chapter.md +225 -0
  395. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-suspense.md +352 -0
  396. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +349 -0
  397. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
  398. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +287 -0
  399. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
  400. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
  401. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +247 -0
  402. package/lib/oh-story/skills/story-setup/references/agent-references/reversal-toolkit.md +349 -0
  403. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +409 -0
  404. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
  405. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +421 -0
  406. package/lib/oh-story/skills/story-short-analyze/SKILL.md +278 -0
  407. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +582 -0
  408. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +147 -0
  409. package/lib/oh-story/skills/story-short-analyze/references/character-basics.md +453 -0
  410. package/lib/oh-story/skills/story-short-analyze/references/character-design-methods.md +438 -0
  411. package/lib/oh-story/skills/story-short-analyze/references/character-relations.md +395 -0
  412. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
  413. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +490 -0
  414. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +425 -0
  415. package/lib/oh-story/skills/story-short-analyze/references/genre-readers.md +245 -0
  416. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +453 -0
  417. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-techniques.md +475 -0
  418. package/lib/oh-story/skills/story-short-analyze/references/hooks-chapter.md +225 -0
  419. package/lib/oh-story/skills/story-short-analyze/references/hooks-paragraph.md +146 -0
  420. package/lib/oh-story/skills/story-short-analyze/references/hooks-suspense.md +352 -0
  421. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +685 -0
  422. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +165 -0
  423. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +561 -0
  424. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +242 -0
  425. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +90 -0
  426. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +54 -0
  427. package/lib/oh-story/skills/story-short-scan/SKILL.md +212 -0
  428. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +90 -0
  429. package/lib/oh-story/skills/story-short-write/SKILL.md +433 -0
  430. package/lib/oh-story/skills/story-short-write/references/banned-words.md +147 -0
  431. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +62 -0
  432. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +282 -0
  433. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +179 -0
  434. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +159 -0
  435. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
  436. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
  437. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
  438. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
  439. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
  440. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
  441. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
  442. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
  443. package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +210 -0
  444. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +444 -0
  445. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +488 -0
  446. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +225 -0
  447. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +146 -0
  448. package/lib/oh-story/skills/story-short-write/references/hooks-suspense.md +352 -0
  449. package/lib/oh-story/skills/story-short-write/references/output-contract.md +165 -0
  450. package/lib/oh-story/skills/story-short-write/references/quality-checklist.md +222 -0
  451. package/lib/oh-story/skills/story-short-write/references/reversal-toolkit.md +349 -0
  452. package/lib/oh-story/skills/story-short-write/references/short-craft.md +185 -0
  453. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +133 -0
  454. package/lib/oh-story/skills/story-short-write/references/short-format.md +167 -0
  455. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +35 -0
  456. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +158 -0
  457. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +153 -0
  458. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +1371 -0
  459. package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +330 -0
  460. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +241 -0
  461. package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +410 -0
  462. package/lib/types/client/file-activity.d.ts +30 -0
  463. package/lib/types/client/file-activity.d.ts.map +1 -0
  464. package/lib/types/client/file-tree.d.ts +20 -0
  465. package/lib/types/client/file-tree.d.ts.map +1 -0
  466. package/lib/types/client/index.d.ts +12 -0
  467. package/lib/types/client/index.d.ts.map +1 -0
  468. package/lib/types/client/jsonl-preview.d.ts +15 -0
  469. package/lib/types/client/jsonl-preview.d.ts.map +1 -0
  470. package/lib/types/client/markdown-preview.d.ts +38 -0
  471. package/lib/types/client/markdown-preview.d.ts.map +1 -0
  472. package/lib/types/index.d.ts +25 -0
  473. package/lib/types/index.d.ts.map +1 -0
  474. package/lib/types/native-hooks.d.ts +16 -0
  475. package/lib/types/native-hooks.d.ts.map +1 -0
  476. package/lib/types/role-provider.d.ts +6 -0
  477. package/lib/types/role-provider.d.ts.map +1 -0
  478. package/lib/types/role-tool.d.ts +10 -0
  479. package/lib/types/role-tool.d.ts.map +1 -0
  480. package/lib/types/skill-provider.d.ts +15 -0
  481. package/lib/types/skill-provider.d.ts.map +1 -0
  482. package/lib/types/workspace-request-trust.d.ts +13 -0
  483. package/lib/types/workspace-request-trust.d.ts.map +1 -0
  484. package/lib/types/workspace-route.d.ts +10 -0
  485. package/lib/types/workspace-route.d.ts.map +1 -0
  486. package/lib/types/workspace-security.d.ts +9 -0
  487. package/lib/types/workspace-security.d.ts.map +1 -0
  488. package/package.json +107 -0
@@ -0,0 +1,184 @@
1
+
2
+ # 网文质量检查清单
3
+
4
+ ## 目录
5
+
6
+ - [一、通用检查](#一通用检查)
7
+ - [二、长篇专项](#二长篇专项)
8
+
9
+ ## 一、通用检查
10
+
11
+ ### 章节结构
12
+ - [ ] 开头有钩子(不是天气/风景/日常开场)
13
+ - [ ] 中段有推进(快节奏题材要有可见事件;慢热题材状态变化即可)
14
+ - [ ] 局势有变化(读完这章,世界跟之前不一样了)
15
+ - [ ] 结尾落在变化上(不是总结)
16
+
17
+ ### 开篇检查(前 300-500 字)
18
+ - [ ] 有钩子,能抓住注意力
19
+ - [ ] 不从天气/风景/日常开始
20
+ - [ ] 主角快速出场
21
+ - [ ] 卖点或危机可见
22
+
23
+ ### 章节推进
24
+ - [ ] 本章至少改变目标 / 风险 / 信息 / 关系 / 资源 / 身份 / 情绪立场七类状态之一;快节奏(番茄/爽文)应有可见事件或爽点,慢热/情感文才可只靠低压小变化达标,不强求每章高潮
25
+ - [ ] 不是水字数(删掉这章会损失哪项状态变化?答不出才需压缩)
26
+ - [ ] 任务卡点有用:卡住之后是否带来上述状态变化?
27
+ - [ ] 推进强弱是否符合本书已建立的题材、兑现节奏与对标,而非套固定通用字数
28
+
29
+ ### 信息传递
30
+ - [ ] 没有大段设定说明文
31
+ - [ ] 信息跟着冲突走(通过事件传递设定)
32
+ - [ ] 设定量可控(一章不超 3 个新概念)
33
+
34
+ ### 场景检查
35
+ - [ ] 场景有目标(人物要什么)
36
+ - [ ] 场景有阻碍(什么挡着)
37
+ - [ ] 场景有变化(结束后跟之前不同)
38
+ - [ ] 人物在做事情,不是在感觉事情
39
+ - [ ] 没有可删除的段落
40
+
41
+ ### 章尾
42
+ - [ ] 结尾落在变化上
43
+ - [ ] 有危机/决定/发现/反转中的至少一个
44
+ - [ ] 不是总结式结尾
45
+ - [ ] 拉住读者翻下一页
46
+
47
+ ### 语言
48
+ - [ ] 没有空洞的抒情段落
49
+ - [ ] 没有连续多段同一情绪
50
+ - [ ] 对话符合人物身份(不同人说话方式不同)
51
+ - [ ] 情绪通过动作落地(不是直接说"他很难过")
52
+ - [ ] 标题行以外没有章节/写作元信息:不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类词;需要承接前文时改成角色能感知的事件锚点或相对时间;故事内真实阅读/讨论“第X章”或真实读者身份语境除外
53
+
54
+ ### 连载连续性
55
+ - [ ] 没有遗忘之前的承诺/伏笔
56
+ - [ ] 没有突然塞入大量新设定
57
+ - [ ] 伏笔有推进
58
+ - [ ] 故事引擎还在运转
59
+
60
+ ### 水(filler)检测
61
+ 以下信号出现 = 可能水了:
62
+ - 全章对话没有任何新信息
63
+ - 同一个情绪写了 3 段以上
64
+ - 场景描写超过 500 字但不推进剧情
65
+ - 角色回忆之前发生的事但没有任何新视角
66
+ - 连续 2 章以上没有冲突
67
+ - 删掉无损的流程细节 / 任务卡点 = 水;压缩或删除
68
+
69
+ ---
70
+
71
+ ## 二、长篇专项
72
+
73
+ ### 黄金三章检查
74
+ - [ ] 第一章前 500 字有钩子?
75
+ - [ ] 主角第一章就出场?
76
+ - [ ] 第一章有事件(不是纯铺垫)
77
+ - [ ] 第二章有升级(矛盾加深)
78
+ - [ ] 第三章有追读理由(给出继续看的动力)
79
+ - [ ] 前三章有至少 2 个爽点?
80
+ - [ ] 世界观没有大段说明文?
81
+ - [ ] 每章结尾有往下看的理由?(低压/过场章弱钩子或阶段目标即可,不强求强悬念)
82
+
83
+ ### 节奏检查
84
+ - [ ] 最近 5 章是否有明确进展?
85
+ - [ ] 爽点间隔是否超过 5000 字?(按章节定位:高压/推进章查间隔;低压/关系/信息整理章不计入)
86
+ - [ ] 有没有连续 2 章以上没有冲突?(呼吸章正常;红线是连续两章压力级≤1 或相邻章情绪趋同)
87
+ - [ ] 一卷是否有章节定位高低层次,没有全程同一力度?低压+过场是否克制(合计不超约 15%)?
88
+
89
+ ### 人物检查
90
+ - [ ] 主角行为符合人设?
91
+ - [ ] 配角是否有存在感?
92
+ - [ ] 反派逼格是否匹配当前阶段?
93
+
94
+ ### 五维评分标准
95
+
96
+ 每个维度 0-100 分,根据评分结果选择精修策略。
97
+
98
+ ### 维度 1:核心一致度
99
+ 检查:关键冲突、关键行动、人物动机是否前后一致。
100
+
101
+ | 问题 | 严重度 | 修复 |
102
+ |------|--------|------|
103
+ | 人物动机突然改变无铺垫 | critical | 补充动机转变的触发事件 |
104
+ | 核心冲突前后不一致 | high | 回溯修改冲突设定 |
105
+ | 关键行动与人物性格矛盾 | high | 调整行动或补充解释 |
106
+ | 次要矛盾遗忘 | medium | 回收或弱化 |
107
+
108
+ ### 维度 2:表层重写度
109
+ 检查:句式与措辞是否足够原创,避免套路化表达。
110
+
111
+ | 问题 | 严重度 | 修复 |
112
+ |------|--------|------|
113
+ | 照搬原句导致语气不自然 | medium | 只在确有 AI 腔时改写,正常原句可保留 |
114
+ | 大量使用 AI 标志词 | high | 替换为具体描述 |
115
+ | 同一句式重复出现 | medium | 变换表达方式 |
116
+ | 描写过于文学化(辞藻堆砌、书面腔、比喻成串) | medium | 改为口语化/动作化;动作化不是切成三五字短句串,改写后叙述仍以逗号长句为主 |
117
+
118
+ ### 维度 3:格式一致度
119
+ 检查:段落是否按戏剧单元/镜头自然断开,主语/角色名节奏是否自然,开头结尾格式是否统一。
120
+
121
+ | 问题 | 严重度 | 修复 |
122
+ |------|--------|------|
123
+ | 机械按字数切段或主语过密 | medium | 按戏剧单元重排段落,段首点名、段中代词/省略、关键转折再点名 |
124
+ | 章节字数偏离目标 | **high** | 写作/大纲修复时先回到细纲补足计划内情节点,再展开;去AI味已有正文时不得新增剧情 |
125
+ | 格式混乱(对话/描写不统一)| low | 统一格式 |
126
+
127
+ ### 维度 4:可读性
128
+ 检查:是否有啰嗦、AI 腔、空泛总结、套路修辞。
129
+
130
+ | AI 腔特征 | 如何识别 | 如何修复 |
131
+ |-----------|----------|----------|
132
+ | 空泛总结 | 「他终于明白了」「一切尽在不言中」 | 删掉,用行动代替 |
133
+ | 套路修辞 | 「命运仿佛在和他开玩笑」 | 删掉或换成具体描述 |
134
+ | 比喻堆叠 | 连续多处「像/好像/仿佛/如同」,每个画面都靠比喻解释 | 只留最有叙事功能的少数比喻,其余改成动作、物件、声音或后果 |
135
+ | 情绪标签 | 「他感到一阵悲伤」 | 改为行为表现 |
136
+ | 心理描写空转 | 内心独白无新信息、重复同一情绪或复述读者已知 | 只压缩空转部分;带新信息、决断或情绪转折的独白不按句数压缩 |
137
+
138
+ ### 维度 5:逻辑连贯
139
+ 检查:句间/段间是否通顺,有无设定冲突。
140
+
141
+ | 问题 | 严重度 | 修复 |
142
+ |------|--------|------|
143
+ | 设定前后矛盾 | critical | 查找并统一设定 |
144
+ | 时间线错误 | high | 标记时间线并修正 |
145
+ | 角色信息不一致 | high | 建立角色档案对照 |
146
+ | 因果链断裂 | medium | 补充过渡 |
147
+
148
+ ### 精修策略
149
+
150
+ 根据五维评分结果,选择精修策略:
151
+
152
+ | 主要问题 | 策略 | 说明 |
153
+ |----------|------|------|
154
+ | 核心一致度低 | rewrite | 围绕核心冲突重写相关段落 |
155
+ | 字数超标 | compress | 删减不推动剧情的内容 |
156
+ | 无意义卡点 | compress | 保留卡出的变化,压掉流程 |
157
+ | AI 腔重 | de_ai | 替换禁用词、改写句式 |
158
+ | 小问题多 | polish | 打磨语言细节 |
159
+
160
+ ### 读者契约与终局储备双向审查
161
+
162
+ 参 `reader-contract-and-progression.md`。先问“无毒吗”,再问“好看吗”:**无毒不等于好看**,没有 契约破坏 只代表不踩雷,还要确认情绪兑现足够强。
163
+
164
+ - [ ] 读者契约:本章/本卷是否兑现开篇承诺,还是把核心卖点交给机构、配角或偶然性?风险标记:契约安全 / 需补强 / 契约破坏。
165
+ - [ ] 主角代理权:按因果权 + 结算权审查,而非按出场时长;用“关键节点四问”核对决定、不可替代选择、后果与核心结算。配角可执行局部动作,但不能无声夺走期待所有权。
166
+ - [ ] 期待债:承诺是否被偿还、延期并支付利息,还是被解释/流程/设定吞掉?
167
+ - [ ] 终局储备:本单元是否动用了本阶段还不该解锁的终局底牌(宿敌/真相/身份/金手指上限)?是否让某条升级线逼近天花板、后面没台阶接?两问皆否即放行——单章一战多得(多线齐涨)是好设计,不算超速。
168
+ - [ ] 兑现归属:期待所有权是否按承诺结算;自愿让渡只有在“长期净收益为负 + 控制/因果权下降”同时出现时亮红灯,战略性让步的更大控制/未来收益/权力/信息交换是否可见?
169
+ - [ ] 节奏续接:高潮/兑现后是否允许短暂低压和小而可见的收益/奖励,而非机械立即加危机?新元素是否支付换书债、没有逃避旧承诺?
170
+ - [ ] 题材特定风险:履约爽文/能力幻想中,主角是否反复以愚蠢或可避免的无能制造灾难并由他人收拾,损害因果权与结算信任?
171
+ - [ ] 反向审查:若删除“安全解释”,情绪是否更强?若保留风险情节,是否带来更强期待、代价或爽点?
172
+
173
+ - [ ] 综合线:契约、主角代理权、期待债、终局储备是否互相支撑,而不是只做到“无毒”。
174
+
175
+
176
+ ### 单元情绪因果可证伪检查
177
+
178
+ - [ ] 目标是否只有“热血/悲伤”等情绪标签,却没有前状态→触发→后状态的情绪因果?
179
+ - [ ] 承载对象是否只是等待主角解决问题的工具角色?
180
+ - [ ] 高潮是否依赖巧合或最后一刻新增设定?
181
+ - [ ] 主角的硬能力是否服务核心情绪,而非只服务自我证明?
182
+ - [ ] 个体/关系/群体兑现是否回到本书的题材契约?群体兑现只在题材需要时使用。
183
+ - [ ] 是否错把“更安全”或“获得成长”本身当成高潮,却没有情绪意义变化?
184
+ - [ ] 机制是否保持可选:不把物件、误解、反转、死亡、疾病、哭喊或群体抬升当成通用硬模板?
@@ -0,0 +1,109 @@
1
+ # 读者契约与终局储备
2
+
3
+ 本文件是 `story-long-write` 关于读者契约、主角代理权(叙事能动性/主导性)、利益安全与阶段推进的权威参考文件。相关洞察由授权社区样本提炼而来;样本多数是问题帖/避坑帖,属于非统计共识,也不能替代具体题材、平台和对标书判断。
4
+
5
+ **安全边界**:本文件不得包含来源站点隐私数据、访问凭证、cookies、tokens、请求签名、私有标识符,或任何能反推出私域账号/请求环境的信息。
6
+
7
+ ## 1. 核心概念
8
+
9
+ ### 读者契约
10
+ - 读者契约 = 开篇、题材、主角配置、叙事口吻共同许诺的阅读快感。
11
+ - 写作前先确认:读者是来看主角解决问题、见证团队群像、看导师托举后辈,还是看制度合作建设?不同契约下同一情节风险不同。
12
+ - 题材边界先于单条禁忌:政府、宗门总部、跨国组织、多国公司等高层级机构一出现,可能开启制度/势力范围情节线;先检查本书是否从开篇承诺了这种玩法。
13
+
14
+ ### 主角代理权:因果权 + 结算权
15
+ - 主角代理权首先看**因果权 + 结算权**,不看出场时长,也不要求主角永远亲自动手或垄断每个镜头。
16
+ - 主角不可替代首先体现为因果权:主角通过决策、布局、授权、不可替代的信息/资源,或主动选择关键后果,决定事情为什么发生、如何进入与怎样转向。
17
+ - 结算权 = 核心收益、认可、权力或关键后果依照既有承诺回到应得者。可以借力、组队、被救、接受指导或让他人执行局部动作,只要因果与结算没有被无声夺走。
18
+ - 职业/权力幻想题材尤其敏感:读者通常期待主角掌握资源、做出决策、承担或选择后果并拿回可见收益。
19
+ - 题材例外(直给爽文):番茄战神/赘婿/打脸/都市异能等,主角亲自出手、当面碾压本身就是契约兑现,代理权不能拿来给主角划水、让下属封神;只有布局/权谋/经营/群像/导师题材才默认可幕后运筹、隔人兑现。
20
+
21
+ ### 期待所有权
22
+ - 承诺的兑现/高光属于本卷或本单元已经许诺的主角或其他承诺所有者;配角可以执行局部动作,但不能无声夺走期待所有权。
23
+ - 群像、导师或制度合作可把期待所有权明确给团队成员/学生/机构角色;关键是预先承诺、按约结算,而非事后解释抢戏合理。
24
+
25
+ ### 关键节点四问
26
+ 大纲、正文与审查遇到关键节点时统一问;答案可以指向主角,也可以指向本卷已承诺的其他所有者,不要求主角亲自完成每个动作:
27
+ 1. 谁决定事情为什么发生/如何进入?
28
+ 2. 谁作出不可替代的关键选择?
29
+ 3. 谁承担或选择关键后果?
30
+ 4. 核心收益/认可/权力最终结算给谁?
31
+
32
+ ### 利益安全与兑现归属
33
+ - 利益安全 = 读者相信自己追的核心卖点不会被没收、稀释、转赠或交给无关角色消化。
34
+ - 兑现归属 = 谁铺垫、谁承压、谁选择,谁就应拿到主要情绪回报;旁观者/配角反应可以放大爽点,不能替代主角爽点。
35
+ - 核心资产(金手指、关键资源、身份底牌、独家技术、关键证据)不得无交换地交出、暴露给外部机构或被上级接管。若必须交出,需要可见交换:权力、保护、资源、渠道、名分、债权、信息、阶段胜利或更大局面的主动权。
36
+
37
+ ### 期待债
38
+ - 每次埋承诺(主角会反击、资源会升级、身份会揭开、感情会推进)都产生期待债。
39
+ - 期待债可以延期,但要付利息:阶段性进展、新信息、局势变化、情绪释放或更清晰的下一目标。
40
+ - 用解释、设定或机构流程拖延兑现,会增加合理化债务。
41
+
42
+ ### 终局储备与推进节奏
43
+
44
+ “写无可写”的病根是两类**宏观资源**被提前打光,跟单章涨多少关系不大。管住这两类、放开单章密度,才既不透支又不憋屈。
45
+
46
+ **两类会打光的宏观资源(开书时定,逐卷解锁)**
47
+ - **终局底牌**:头号宿敌、终极真相/身世、金手指上限、身份/地位终点、核心情感的最终确定。一次性资源,用了就没。开书时列进 `设定/题材定位.md` 的「终局底牌与升级台阶」小节,每项标最早可解锁的卷/阶段(从终局倒推成卷级里程碑,一卷只解锁一个大里程碑)。
48
+ - **升级台阶**:境界/等级/地图/势力层级的剩余档数。开书时做一次台阶检查——体系档数 × 每档停留篇幅 ≥ 全书目标字数;台阶不够是设计病,设计期补(拉长体系/加地图层),不靠每章憋。敌人/目标/地图成**梯队**,逐级解锁,禁止越级提前秒顶级 boss / 解决终极目标。
49
+
50
+ **单章 / 单个剧情单元放开密度(爽感来源,不要压)**
51
+ - 每个剧情单元设 1 条**主推线**(战力线/资源线/身份线/关系线/信息线/地图线/制度线/势力线/事业线/情感确定性等升级线其一,承担本轮最大高潮),其余线按剧情自然给**战果**(轻触到大涨皆可)。**一战多得——一场大胜同时破境、缴获、收势力、涨声望、抱得美人——是允许且常见的好设计,该给就给。**
52
+ - 章级推进按平台/题材分档:快节奏(番茄/爽文)保留“每章要有可见事件或爽点推进”的下限;慢热/种田/情感文才放宽到“改变目标 / 风险 / 信息 / 关系 / 资源 / 身份 / 情绪立场七类状态之一即可”。低压/过渡章用小而可见的变化承接,不强求每章高潮。
53
+ - 高潮/兑现后可安排一段短暂低压,让读者先拿小而可见的收益/奖励,再进下一轮压力;不强制兑现后立即加危机。
54
+ - 可选工具:行动成本/成功代价。重要成功可带时间、关系、暴露、资源消耗或新敌意等成本;低压/过渡/纯奖励章不强制附加代价。
55
+
56
+ **推进过快判定(透支两问)**
57
+ 1. 是否动用了本阶段还不该解锁的终局底牌(宿敌了结、终极真相、身份终点、金手指触顶)?
58
+ 2. 是否让某条升级线逼近天花板、后面没台阶接?
59
+
60
+ 任一为“是” = 真正的透支预警 → 回退或改纲;两者皆否,多线齐涨放行。这套判定是经验法则,档位与里程碑按本书题材、平台与对标调整,不是硬门槛。
61
+
62
+ ### 合理化债务
63
+ - 解释成本用于说明机构响应/接管、保密、资源调动、跨区执法、组织协作等为什么成立。
64
+ - 检查:这些解释是否服务核心情绪?若解释本身吞掉爽点、代入或主角高光,就先缩短解释、改为可见交换,或把机构反应降级为旁观/阻碍/资源接口。
65
+
66
+ ## 2. 制度/机构与旁观者设计
67
+
68
+ - 提到政府、宗门总部、跨国组织、多国公司等不天然有毒;它们只是高层级叙事开关。
69
+ - 国家合作 / 政府合作类故事可以算契约安全,前提是开篇已承诺制度合作,主角保持不可替代,并获得可见权力、保护、资源、收益或更高行动权限。
70
+ - 若本书承诺的是个人逆袭、职业掌控、独享金手指,外部机构接管核心问题通常需要强交换与主角主动选择。
71
+ - 旁观者/反应层适合做:震惊、误判、舆论扩散、资源报价、敌我站队、见证主角选择。避免让旁观者替主角复仇、替主角做最终裁决、替主角拿核心收益。
72
+
73
+ ## 3. 风险等级
74
+
75
+ | 等级 | 定义 | 处理 |
76
+ |---|---|---|
77
+ | 契约安全 | 与开篇题材契约一致;主角仍拥有关键选择/不可替代贡献;收益归属清楚 | 可写,注意把交换和收益可视化 |
78
+ | 需补强 | 可能稀释主角高光或推进过快,但能通过铺垫、交换、成本、题材声明修复 | 写前补理由、补代价或调整为阶段性而非终局兑现 |
79
+ | 契约破坏 | 没收核心卖点;自愿让渡同时造成**长期净收益为负 + 主角控制/因果权下降**(尤其没有可见战略交换);无关角色夺走期待所有权;核心资产无交换上交或被接管 | 修纲;战略性让步可用局部聚光灯/资源换取更大控制、未来收益、关系/制度权力、信息优势,或兑现已承诺的群像/导师高光,不按让渡本身判红灯 |
80
+
81
+ ## 4. 好/坏例与例外
82
+
83
+ ### 职业/权力幻想主角自愿让出聚光灯
84
+ - 红灯组合:让渡同时导致长期净收益为负、主角控制/因果权下降,且看不到战略交换;不是任何自愿让渡都算 契约破坏。
85
+ - 好:主角授权下属执行,但方案、关键资源、最终谈判和风险承担由主角掌控;或用局部聚光灯/资源换取更大控制、未来收益、关系/制度权力、信息优势。下属表现反过来证明主角识人/组织能力。
86
+ - 例外:若本书从开篇承诺“导师/经营组织/群像成长”,主角的高光可以是培养体系、选人眼光和关键兜底。
87
+
88
+ ### 给出资源或核心资产
89
+ - 坏:主角把独家技术、金手指产物、关键证据无条件交给机构,换来口头感谢,后续由机构推进主线。
90
+ - 好:主角交换到牌照、保护、渠道、话语权、独占收益或更大舞台,并保留不可替代的控制点。
91
+
92
+ ### 无关角色替主角复仇
93
+ - 坏:压迫主角多章的敌人,被路过强者或随机事故解决,主角没选择、没出手、没获得认知/资源/地位变化。
94
+ - 好:配角可以助攻或见证,但关键证据、布局、决断、公开裁决或最后反击由主角完成。
95
+ - 例外:悲剧、悬疑、群像战争可让他人完成局部动作,但要让主角获得新的核心任务、代价或认知推进。
96
+
97
+ ### 提前打光终局储备(多线齐涨本身没问题)
98
+ - 坏:一个剧情单元把全书级底牌一次性烧光——解决头号宿敌、揭终极身世、坐实终局身份、金手指直接触顶,后面没大目标可写。
99
+ - 好:本单元让主角一战多得(破境+缴获+声望齐涨),但都在体系台阶之内、不碰终局底牌;宿敌只退一个梯队、真相只揭一层,大底牌留到后续卷偿还期待债。
100
+
101
+ ### 合法群像 / 导师故事例外
102
+ - 群像契约:每个 POV 有自己的目标和偿还,主角不是唯一爽点来源;卷契约应写清谁在本卷拥有高光。
103
+ - 导师契约:导师主角的高光在设计训练、识破困局、关键兜底、承担更高层代价,而不是每次亲手收割。
104
+ - 制度合作契约:开篇即承诺国家/机构协作,主角以专家、指挥者、关键资源拥有者或不可替代执行者身份获得明确权力和收益。
105
+
106
+ ## 5. 续接与换书债
107
+
108
+ - **换书债**:引入新地图、新机构、新能力、新敌人或新谜团,既要支付必要的铺垫成本,也会新增期待债;不能靠新鲜元素逃避旧承诺。
109
+ - **题材特定高风险**:在履约爽文/能力幻想中,主角反复因愚蠢或可避免的无能制造灾难,再由别人收拾,会持续损害因果权、控制感和结算信任;这是依题材契约判断的高风险,不是所有故事的绝对禁令。
@@ -0,0 +1,349 @@
1
+ # 反转设计工具箱
2
+ > 操作手册:反转类型、嵌套反转、误导技巧、打脸节奏。按决策路由选用,按设置/揭示步骤执行,用自检清单验收。
3
+ > 反转类型枚举与拆文 `_meta.json.reversal_type` 字段一致:视角/身份/动机/时间线/信息/认知/无反转。
4
+
5
+ ## 决策路由
6
+
7
+ | 你要设计什么 | 用哪种反转 | 关键操作 |
8
+ |-------------|-----------|---------|
9
+ | 角色不是你以为的人 | 身份反转 | 埋3处行为细节暗示 |
10
+ | 真相从另一个角度完全不同 | 视角反转 | 引入另一角色视角打破认知 |
11
+ | 角色做某事的原因不是你以为的 | 动机反转 | 高压场景中二选一暴露真动机 |
12
+ | 时间顺序跟读者理解不同 | 时间线反转 | 不撒谎只调叙述顺序 |
13
+ | 读者掌握了错误信息 | 信息反转 | 新证据直接否定旧"事实" |
14
+ | 读者对整个角色/关系的理解被颠覆 | 认知反转 | 全程铺感情色彩,结尾翻转色彩 |
15
+ | 甜宠/喜剧/报应型,本就没有反转 | 无反转 | 走报应兑现或甜度递进,不硬塞反转 |
16
+ | 要叠多层反转 | 嵌套反转 | 主次分明,间隔递减 |
17
+
18
+ ---
19
+
20
+ ## 反转类型
21
+
22
+ ### 1. 身份反转
23
+
24
+ **触发条件**:角色真实身份与读者认知不同。
25
+
26
+ **设置步骤**:
27
+ 1. 确定表面身份和隐藏身份
28
+ 2. 通过行为细节泄露(禁止用叙述者直接说明)
29
+ 3. 回看至少埋3处暗示
30
+
31
+ **揭示步骤**:
32
+ 1. 用场景同时揭示身份和动机
33
+ 2. 禁止让角色自说"其实我是XX"
34
+ 3. 选在读者最不期待揭示的时机
35
+
36
+ | 表面身份 | 隐藏身份 | 铺垫线索 |
37
+ |----------|----------|----------|
38
+ | 乖巧继女 | 幕后操控者 | 总在关键时刻「恰好」不在场 |
39
+ | 热心邻居 | 伤害主角的人 | 对主角家里的布局太熟悉了 |
40
+ | 死去的恋人 | 还活着 | 「遗物」里有一件不该存在的东西 |
41
+ | 陌生人 | 主角失忆前的至亲 | 叫出了主角只有至亲才知道的小名 |
42
+
43
+ 示例铺排:
44
+ ```
45
+ 铺垫1(5%):邻居帮修水管,对水管走向异常熟悉
46
+ 铺垫2(25%):邻居「随口」提到主角家灯每天几点关
47
+ 铺垫3(50%):梦到有人站床前,醒来闻到烟味——邻居抽烟
48
+ 揭示(75%):监控里,每晚站床前的人穿邻居那件灰色外套
49
+ ```
50
+
51
+ ### 2. 视角反转
52
+
53
+ **触发条件**:叙事者视角是片面的,真相从另一个角度完全不同。
54
+
55
+ **设置步骤**:
56
+ 1. 确保所有叙述都是事实,但不是全部事实
57
+ 2. 叙述者解读引导读者走错方向
58
+ 3. 关键信息被「合理地」跳过或淡化
59
+ 4. 叙述者自己也真诚地相信这套叙事——他不是在骗读者,他自己也被骗了
60
+
61
+ **揭示步骤**:
62
+ 1. 引入另一角色视角/证词
63
+ 2. 展示主角「没看到」的场景
64
+ 3. 用证据打破认知
65
+
66
+ | 主角视角 | 真实视角 | 关键差异 |
67
+ |----------|----------|----------|
68
+ | 丈夫出轨对不起我 | 我才是被蒙在鼓里的第三者 | 时间线上的空白 |
69
+ | 同事在排挤我 | 我的「好心」一直在伤害别人 | 别人视角下我的行为 |
70
+ | 我在拯救这段关系 | 我在控制对方 | 对方的反应其实是在自保 |
71
+ | 我是受害者 | 我是施害者 | 记忆被叙述者篡改了 |
72
+
73
+ **铁律**:叙述者必须真诚地相信自己的视角,禁止叙述者明知真相而故意误导读者。
74
+
75
+ ### 3. 动机反转
76
+
77
+ **触发条件**:角色做某事的真正原因与读者以为的不同。
78
+
79
+ **设置步骤**:
80
+ 1. 给角色一个「表面动机」让读者觉得合理
81
+ 2. 真正动机藏在表面之下
82
+ 3. 埋下行为细节与表面动机的微小矛盾(矛盾不要太大)
83
+
84
+ **揭示步骤**:
85
+ 1. 制造高压场景迫使角色二选一
86
+ 2. 表面动机指向选A,但角色选了B
87
+ 3. 选择行为直接暴露真正动机
88
+
89
+ | 表面动机 | 真正动机 | 行为矛盾线索 |
90
+ |----------|----------|-------------|
91
+ | 想和前夫复婚 | 想拿回藏在婚房里的东西 | 从不关心他的生活,只关心那套房子 |
92
+ | 保护妹妹 | 嫉妒妹妹,想控制她 | 每次「保护」都让妹妹更孤立 |
93
+ | 追求公平正义 | 报个人私仇 | 目标人物恰好和当年的事有关 |
94
+ | 害怕失去朋友 | 害怕朋友发现自己背叛了她 | 每次朋友接近真相就制造新危机 |
95
+
96
+ ### 4. 时间线反转
97
+
98
+ **触发条件**:故事的实际时间顺序与读者理解的顺序不同。
99
+
100
+ **设置步骤**:
101
+ 1. 确定真实时间顺序和读者理解的顺序
102
+ 2. 用叙述技巧让读者以为A在B之前,实际B在A之前
103
+ 3. 不撒谎,只调整叙述顺序
104
+ 4. 用时态、季节、物品新旧作为天然时间线索
105
+
106
+ **揭示步骤**:
107
+ 1. 找一个不可能存在的时间矛盾
108
+ 2. 或让角色提到「还没发生」的事
109
+ 3. 或展示物品状态与时间线不符
110
+
111
+ | 读者以为的时间线 | 真实时间线 | 揭示方式 |
112
+ |------------------|-----------|----------|
113
+ | 丈夫丧妻后变质 | 妻子「死后」还活着 | 时间戳对不上的消息 |
114
+ | 姐姐在弟弟出事后崩溃 | 弟弟出事因姐姐先做了某事 | 医院记录上的时间 |
115
+ | 两人正在恋爱 | 这是一段回忆,已分开 | 「我当时不知道那是最后一次」 |
116
+ | 重生后第二天 | 重生前的最后一天循环 | 镜子里倒影和之前不一样 |
117
+
118
+ **铁律**:写完必须画时间线图自查。
119
+
120
+ ### 5. 信息反转
121
+
122
+ **触发条件**:读者(和主角)掌握了错误的关键信息。
123
+
124
+ **设置步骤**:
125
+ 1. 给读者一个来自可靠来源的「事实」
126
+ 2. 所有人物基于此「事实」行动
127
+ 3. 在后果中埋下矛盾证据
128
+
129
+ **揭示步骤**:
130
+ 1. 新证据直接否定旧「事实」
131
+ 2. 读者和主角同时发现被骗
132
+ 3. 前面所有剧情获得新解读
133
+
134
+ | 错误信息 | 真实信息 | 揭示的连锁反应 |
135
+ |----------|----------|---------------|
136
+ | 遗嘱遗产给长子 | 遗嘱被调包,本给次子 | 长子所有「孝心」都是演戏 |
137
+ | 医生说孩子亲生 | DNA报告被篡改 | 配偶从受害者变加害者 |
138
+ | 朋友说看到他出轨 | 朋友在撒谎 | 朋友的「安慰」其实是操控 |
139
+ | 老板说提拔我 | 岗位已取消 | 老板画饼为让我多干活 |
140
+
141
+ **核心区别**:信息反转是认知层面的——你以为世界是A,其实是B。核心是「一条假信息」。
142
+
143
+ ### 6. 认知反转
144
+
145
+ **触发条件**:读者对某个角色/关系的整体理解被颠覆;重点在整段感情色彩翻转,而非单条信息纠错。
146
+
147
+ **与信息反转的区别**:信息反转翻一条事实(遗嘱归属、亲子关系真伪);认知反转翻读者对整个角色/关系的感情判断(恨了全程的妈其实一直在护着她)。信息反转改事实答案,认知反转改"我对他的感觉"。
148
+
149
+ **设置步骤**:
150
+ 1. 全程让读者积累一种感情色彩(这个妈狠心/这个丈夫凉薄/这个对手纯坏)
151
+ 2. 每个负面场景都埋一个被忽略的反向细节(狠话之后多塞了钱、转身擦了眼泪)
152
+ 3. 细节要小到读者当时不在意,回看才发现处处都是
153
+
154
+ **揭示步骤**:
155
+ 1. 用一个场景或一件遗物,让所有负面行为同时获得反向解读
156
+ 2. 不解释,让读者自己把全程重新过一遍
157
+ 3. 揭示后情绪从"恨/怨"翻成"亏欠/意难平"
158
+
159
+ | 全程认知 | 翻转后认知 | 反向细节铺垫 |
160
+ |----------|-----------|-------------|
161
+ | 后妈刻薄赶我走 | 她赶我走是怕她仇家牵连我 | 每次骂完都往我包里塞钱 |
162
+ | 丈夫冷漠不管家 | 他在外面替我扛了所有债 | 深夜接的"应酬"电话都是催债 |
163
+ | 师父偏心打压我 | 他压我是知道我会被盯上 | 每次罚我都安排在别人看得见的地方 |
164
+
165
+ **追妻/世情主力反转**:这是追妻火葬场、世情最常用的反转——男主/婆婆/亲人全程被恨,结尾翻成"原来一直在爱/在护",意难平拉满。
166
+
167
+ ### 7. 无反转
168
+
169
+ **触发条件**:甜宠、喜剧、反差萌、报应型复仇/重生——这类故事本就没有传统反转,硬塞反转反而毁节奏。
170
+
171
+ **爽感来源(替代反转)**:
172
+ - **报应兑现型**(复仇/重生爽文):爽点不在"真相翻转",在反派一步步走向毁灭、每条恶行精确对应一条报应(以彼之道还施彼身)。用报应设计表:恶行→报应→爽感来源。
173
+ - **甜度递进型**(甜宠/青春):爽点在关系一步步升温,反差萌反复"装失败"。全程正向情绪阶梯上升,不经历反转的负向回落。
174
+
175
+ **写法要点**:
176
+ 1. 不为"显得有设计感"硬加反转
177
+ 2. 报应型:每个报应要让读者等过、铺过,兑现时才解气
178
+ 3. 甜宠型:升温节拍密集,每节给一个甜点/反差点
179
+
180
+ > 拆文时遇到此类,`reversal_type` 填「无反转」,`setup_clues`(反转铺垫)一项跳过阈值(见 analyze output-contract 的「structure_counts 数值校验」)。
181
+
182
+ ---
183
+
184
+ ## 嵌套反转
185
+
186
+ 一篇短篇可叠 2-3 层反转,必须主次分明。
187
+
188
+ ### 双层嵌套
189
+
190
+ ```
191
+ 读者以为:A(铺垫阶段)
192
+ 第一层反转:其实是 B!(70%处)
193
+ 第二层反转:B 也是假的,其实是 C!(90%处)
194
+ ```
195
+
196
+ **执行要求**:
197
+ - 第一层反转必须足够有说服力,让读者接受B就是真相
198
+ - 第一层后给1-2段「消化时间」
199
+ - 第二层要能同时解释A和B,比第一层更震撼
200
+
201
+ 示例:
202
+ ```
203
+ 铺垫:丈夫出轨了,妻子收集证据准备离婚
204
+ 第一层(70%):丈夫没出轨,那女人是他线人——他在调查妻子的公司
205
+ 第二层(90%):妻子公司确实有问题;举报人换成妻子自己,丈夫只是被引导发现
206
+ ——她故意让丈夫发现,只有丈夫「不经意」揭发她才能拿到保险赔偿
207
+ ```
208
+
209
+ ### 三层嵌套(慎用)
210
+
211
+ **使用条件**:只有15000字以上能装下三层。
212
+
213
+ **执行要求**:
214
+ - 间隔递减:第一层50-60%,第二层75-80%,第三层90-95%
215
+ - 第三层必须最短最狠——一句话就够
216
+ - 最后一层必须回答前面所有疑问
217
+ - 每层都要有情感冲击,不只是信息冲击
218
+ - 题材限制:只适合高智商悬疑、精心设计的复仇
219
+
220
+ ---
221
+
222
+ ## 反转时机
223
+
224
+ ### 最佳揭示位置
225
+
226
+ | 反转类型 | 最佳位置 | 原因 |
227
+ |----------|----------|------|
228
+ | 身份反转 | 65-75% | 留够时间展示身份变化后的新冲突 |
229
+ | 视角反转 | 70-80% | 需要足够篇幅建立错误认知 |
230
+ | 动机反转 | 75-85% | 动机要在角色做出关键选择前揭示 |
231
+ | 时间线反转 | 80-90% | 时间线需要最长铺垫 |
232
+ | 信息反转 | 70-80% | 揭示后需要展示连锁反应 |
233
+ | 认知反转 | 75-90% | 感情色彩要全程积累够才翻得动 |
234
+
235
+ ### 时机铁律
236
+
237
+ - 禁止在50%之前揭示——铺垫不够,反转没力度
238
+ - 禁止在95%之后揭示——揭示后没有展开空间
239
+ - 最优区间:70-85%
240
+ - 双反转:第一个在55-65%,第二个在80-90%
241
+
242
+ ---
243
+
244
+ ## 误导技巧
245
+
246
+ 误导要引导读者自己走向错误结论,不能欺骗读者。
247
+
248
+ ### 两大底层路径
249
+
250
+ - **加法路径(分层法)**:在真实信息上叠加假信息。线索既可用逻辑线A解释为A',也可用B解释为B'。A'是误导方向(常见故事),B'是真相(不常见故事)。误导读者以为是A'时,必须同时暗埋与B'相关的线索。
251
+ - **减法路径(信息残缺法)**:不添加假信息,隐藏关键信息的一部分。只让主角得知成功的部分。导致下行的最好不是主角主动行动获得的,可以让配角获得那半信息后交给主角时发生意外。
252
+
253
+ ### 五种技巧速查
254
+
255
+ | 技巧 | 操作方法 | 示例 |
256
+ |------|---------|------|
257
+ | 选择性叙述 | 主角只关注某些信息,读者跟着走 | 主角在意丈夫和女同事暧昧,忽略「客户」的奇怪电话 |
258
+ | 情绪引导 | 用情绪场景引导判断 | 暖的父女戏→其实是愧疚,他做了对不起女儿的事 |
259
+ | 假线索(红鲱鱼) | 给可疑角色/事件吸引注意力 | 诡异邻居和主线无关,真正威胁是一直正常的人 |
260
+ | 刻板印象利用 | 利用社会认知偏见 | 强势婆婆其实是保护儿媳,她知道一些儿媳不知道的事 |
261
+ | 信息分层 | 真相同假信息混在一起 | 丈夫确实秘密联系人(真)→前女友(假)→亲妹妹(真) |
262
+
263
+ **红鲱鱼铁律**:红鲱鱼必须在故事里有自己的功能(推进情节/增加趣味),只是不是反转的答案。
264
+
265
+ ---
266
+
267
+ ## 反转自检清单
268
+
269
+ ### 合理性
270
+ - [ ] 回看铺垫至少有3处暗示指向反转
271
+ - [ ] 反转不依赖巧合——角色选择推动了反转
272
+ - [ ] 没有引入前面完全没提过的新信息
273
+
274
+ ### 冲击力
275
+ - [ ] 反转后情绪强度高于反转前
276
+ - [ ] 反转改变了读者对前面所有剧情的理解
277
+ - [ ] 反转让读者想翻回开头重看
278
+
279
+ ### 公平性
280
+ - [ ] 读者有可能在反转前猜到(不是必须,但有可能)
281
+ - [ ] 没有对读者撒谎——只是没说出全部真相
282
+ - [ ] 揭示方式自然,不靠角色大段独白解释
283
+
284
+ ### 节奏
285
+ - [ ] 反转揭示不超过300字(快速、干脆)
286
+ - [ ] 揭示后有足够篇幅展示反转影响
287
+ - [ ] 反转后结尾在反转产生的情绪上收束
288
+
289
+ ---
290
+
291
+ ## 常见反转错误
292
+
293
+ | 错误 | 问题 | 修正 |
294
+ |------|------|------|
295
+ | 天降反转 | 前面完全没铺垫 | 至少埋3条线索 |
296
+ | 解释过多 | 大段文字解释反转 | 用行动/场景让读者自己明白 |
297
+ | 反转太弱 | 读者早就猜到了 | 加误导或换反转类型 |
298
+ | 反转太多 | 3个以上反转堆在一起 | 砍到1-2个做到极致 |
299
+ | 反转无感 | 只改变信息没改变情绪 | 反转必须同时改变读者情感判断 |
300
+ | 反转作弊 | 引入前面不存在的信息 | 所有反转要素必须在前文中出现过 |
301
+
302
+ ---
303
+
304
+ ## 特殊反转技法
305
+
306
+ ### 虚晃一枪反转法
307
+
308
+ 先给出"应该不会发生"的预期让读者放松,然后意外以反转形式发生。类似鬼片推开门什么都没有->松口气->回头撞鬼。
309
+
310
+ ### 超额收获反转
311
+
312
+ 反转后收获超出预期,产生二次惊喜:
313
+ - 短篇:主角以为只解决一个问题,结果连带解决了隐藏的更大问题
314
+ - 网游文模式:Boss爆三样——立刻能用的 / 送人拉关系的 / 暂时用不到但一看很厉害的
315
+
316
+ ### 情绪拉扯反转标准流程
317
+
318
+ 1. 展示物品/能力强大,读者期待+1
319
+ 2. 配角因信息差认为鸡肋,读者期待打脸+1
320
+ 3. 展示反派特性恰好克制,读者期待+1
321
+ 4. 配角拿更强装备打反派失败,期待+1
322
+ 5. 众人看衰主角,期待继续+1
323
+ 6. 主角秒杀,期待满足
324
+ 7. 众人震惊,配角马后炮分析,期待满足
325
+ 8. 新一轮收获,满足+新期待产生
326
+
327
+ ---
328
+
329
+ ## 打脸的深层节奏
330
+
331
+ ### 三种打脸方式
332
+
333
+ | 方式 | 特点 | 适用场景 |
334
+ |------|------|----------|
335
+ | 主动挑衅->打脸 | 简单粗暴 | 小白文最常见 |
336
+ | 对手挑衅->被打脸 | 压主角同时给读者安全感和反击暗示 | 需要积蓄仇恨时 |
337
+ | 借他人之手打脸 | 支持者代为回击,无损主角形象 | 保持主角高逼格时 |
338
+
339
+ ### 打脸节奏铁律
340
+
341
+ - 压抑不能太长——连输8场写3万字不行,改成连输4场+略写
342
+ - 压的同时必须给读者信心暗示(主角自信到自大:"我们还是联赛前四!")
343
+ - 比起主角被欺负,读者更厌恶主角自暴自弃
344
+ - 高潮部分要拉长,最大化利用(球迷反应、解说员、赛后跟进)
345
+ - 大高潮不要险胜——充分铺垫后要尽情碾压,干净利落的大胜
346
+
347
+ ### 高潮间过渡
348
+
349
+ 升级练功也有爽点,但大爽点落在升级后打脸,读者期待升级后的兑现。