@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,510 @@
1
+ # 题材风格模块
2
+
3
+ > 各题材的核心原则、关键技法与写作要点。用于确定题材方向后查阅对应模块。
4
+
5
+ ---
6
+
7
+ ## 决策路由
8
+
9
+ | 你在做什么 | 查阅哪个模块 |
10
+ |-----------|-------------|
11
+ | 写幽默/搞笑/沙雕 | 幽默 / 搞笑文 / 沙雕风 |
12
+ | 写悬疑/推理/恐怖 | 悬疑 / 推理 / 恐怖 |
13
+ | 写言情/救赎 | 言情 / 救赎文冲突设计法 |
14
+ | 写玄幻/修仙/奇幻 | 奇幻/玄幻 + 升级流/爽文 |
15
+ | 写现实/世情/新媒体 | 现实/世情 |
16
+ | 写轻小说/二次元 | 轻小说/二次元风 |
17
+ | 写赛博朋克 | 赛博朋克风 |
18
+ | 写盘点/模拟/直播 | 盘点文/信息差文 / 模拟文 / 直播流 |
19
+ | 选题材/定赛道 | 市场定位与选材策略 -> 吸量与赛道 -> 跟风与创新 |
20
+ | 设计开篇 | 创作思路与开篇设计 -> 低位身份开篇的流畅写法 -> 开头五要诀 |
21
+ | 判断题材边界 | 边界感与氛围感 -> 各网站风格差异 |
22
+ | 按题材分类生成正文提示卡 | `genre-prose-cards.md` 索引 + `genre-prose-cards/{题材}.md` 单卡 |
23
+ | 设计战斗/打斗 | 转到 style-combat-face.md |
24
+
25
+ ## 指令语气
26
+
27
+ 本文件以"题材操作手册"语气书写。每个题材模块给出该题材的**核心规则和操作要点**,是写对应题材时**必须遵守**的约束。遇到跨题材缝合时:主题材规则 > 辅题材规则 > 通用建议。
28
+
29
+ ## 正文提示卡组合模式
30
+
31
+ 正文写作采用「通用正文要求 + 题材正文提示卡 + 本书文风」三件套,不再为每个题材复制一整套正文 prompt。
32
+
33
+ - **通用正文要求**由 `story-long-write` Phase 4 负责:严格消费细纲,按情节点预算写,缓慢推进,不提前写后续剧情,完成字数/钩子/禁用词/退化校验。
34
+ - **题材正文提示卡**只管题材层的稳定核心:世界观或生活逻辑、读者期待、核心爽点/情绪、节奏密度、场景颗粒、禁止漂移。项目优先从 `genre-prose-cards.md` 索引匹配,再读取 `genre-prose-cards/{题材}.md` 单卡,本文件只作通用流派补充。
35
+ - **本书文风**来自 `设定/文风.md` 或对标 `文风.md`:只管句长、标点、潜台词、锚点片段和笔调,不覆盖题材核心与章节意图。
36
+ - 三者冲突时:章节细纲与连续性 > 题材正文提示卡 > 本书文风 > 通用技巧建议。
37
+
38
+ ### 题材正文提示卡模板
39
+
40
+ 项目可在 Phase 2 生成 `设定/题材正文提示卡.md`。没有该文件时,Phase 4 写前先用 `设定/题材定位.md` 匹配 `genre-prose-cards.md` 索引并读取 `genre-prose-cards/{题材}.md` 单卡;仍无匹配再从本文件即时抽取一张轻量卡。卡片保持短,给 `narrative-writer` 传摘要,不把参考文件整段复制进 prompt。
41
+
42
+ ```markdown
43
+ ## 题材正文提示卡
44
+
45
+ - 主题材 / 平台:{如 番茄男频·都市高武}
46
+ - 题材边界:{这本书读起来必须是什么味,不能串到什么味}
47
+ - 核心逻辑:{世界观/社会关系/生活压力/能力规则如何驱动冲突}
48
+ - 读者期待:{读者进来等什么:打脸、升级、情感债、信息差、悬疑逼近等}
49
+ - 核心爽点 / 情绪:{本题材最稳定的 1-3 个释放方式}
50
+ - 节奏密度:{铺垫、爆发、冷却的比例;低压章允许的功能}
51
+ - 场景颗粒:{该题材需要哪些具体载体:账单/门店/宗门规矩/弹幕/案件线索等}
52
+ - 对话与人物声线:{该题材下台词承担什么功能,哪些角色不能说成同一种腔}
53
+ - 禁止漂移:{不能变成说明文、纯设定、纯科普、纯撒糖、纯战报等}
54
+ - 本章取舍:{仅本章使用的 2-4 条;从上面抽取,不全量执行}
55
+ ```
56
+
57
+ ### 番茄优先校准
58
+
59
+ 番茄是长篇正文的重点平台时,卡片强调「入口钩子清楚、情绪兑现快、功能位复用、过渡少」。但不要把伪指标写成硬门禁:
60
+
61
+ - 不强制每行 50-60 字;优质样本的段落长度随场景变化,固定行长会显假。
62
+ - 不强制对话占比 50%-60%;对话只在冲突、关系、信息揭示需要时增加。
63
+ - 不全局替换「地/得/很/像/顿号」;先判断是否真的油、虚、模板化。
64
+ - 不随机倒装;需要打破平滑时,优先换视点入口、物件入口、声音入口或动作结果入口。
65
+ - 不为自然感补“办事流程”;任务卡点必须卡出信息、关系、代价、选择或伏笔变化。
66
+
67
+ ### 生成 / 读取规则
68
+
69
+ 1. 先从 `设定/题材定位.md` 读取主题材、目标平台、主对标书、核心梗。
70
+ 2. 项目先在 `genre-prose-cards.md` 精确匹配分类,再读取 `genre-prose-cards/{题材}.md` 单卡(如 都市脑洞 / 豪门总裁 / 年代 / 双男主);低置信卡必须标注低置信并用同题材对标书校准。
71
+ 3. 无分类命中时,再在本文件中找到最接近的通用题材模块;跨题材时只取主题材 3-5 条,辅题材 1-2 条。
72
+ 4. 把抽取结果写成 `genre_prose_card`,每章只携带与本章情绪/事件相关的条目。
73
+ 5. 题材卡不得改剧情顺序、不得替换角色人设、不得覆盖 `剧情/情绪模块.md` / `剧情/节奏.md` 的权威召回。
74
+
75
+ ---
76
+
77
+ ## 幽默
78
+
79
+ ### 核心原则
80
+ 幽默是压力释放器,不是笑话delivery。最好的幽默来自角色试图维持尊严/权威/冷静,但现实不配合。
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
+ 1. 定义未知
115
+ 2. 定义搞错的代价
116
+ 3. 安排读者/角色/对手的信息不对称
117
+ 4. 后半段收窄选择或提升赌注
118
+ 5. 从已有线索生长钩子,不插入突如其来的惊吓
119
+
120
+ ### 混搭规则
121
+ - 悬疑+推理:接下来怎么办 vs 到底发生了什么
122
+ - 悬疑+恐怖:逼近 vs 扭曲
123
+ - 悬疑+言情:关系暴露、错过时机、情感代价作为悬疑源
124
+
125
+ ---
126
+
127
+ ## 言情
128
+
129
+ ### 核心原则
130
+ 言情靠欲望、恐惧、骄傲、关心、误判和情感债不断摩擦,不靠"终于在一起了"。
131
+
132
+ ### 核心规则
133
+ - 化学反应来自具体的人物差异,不是空洞赞美
134
+ - 最好的张力 = 想靠近 + 害怕失去/暴露/负债
135
+ - 每场重头关系戏改变信任/希望/占有欲/脆弱/边界/误解的深度
136
+ - 延迟可以,但必须带来新的压力/债务/理解/代价
137
+ - 最动人的亲密藏在小事、关心、误判和没说出口的话里
138
+
139
+ ### 章节操作
140
+ 1. 定义各自主角想要什么、怕什么
141
+ 2. 决定本章拉近、推远,还是拖入更危险的纠缠
142
+ 3. 让一个实际行动承载情感含义
143
+ 4. 如果是误解,扎根于角色的认知/处境/伤疤,不是低级的"不说开"
144
+ 5. 结尾要有新的情感债/风险/期待
145
+
146
+ ---
147
+
148
+ ## 推理
149
+
150
+ ### 核心原则
151
+ 推理的核心是"读者觉得自己也能破案",所以线索必须公平呈现。
152
+
153
+ ### 关键技法
154
+ - 线索要混在自然叙事中(不能专门停下来列线索)
155
+ - 每条真线索旁放1-2条误导线索
156
+ - 揭示顺序比真相本身更重要(先猜对动机,再猜对人)
157
+ - 嫌疑人每人一个关键秘密,只有一个跟案子有关
158
+
159
+ ---
160
+
161
+ ## 恐怖
162
+
163
+ ### 核心原则
164
+ 恐怖靠"有限视角"工作——角色不知道的东西,比展示的怪物更可怕。
165
+
166
+ ### 关键技法
167
+ - 恐惧要升级(不能一直同一个强度)
168
+ - 限制信息来源(断电、断信号、独自一人)
169
+ - 用生理反应代替直接描写恐惧
170
+ - 安全感的短暂回归让下一波恐怖更猛
171
+
172
+ ---
173
+
174
+ ## 奇幻/玄幻
175
+
176
+ ### 核心原则
177
+ 世界观的力量在于规则和代价,不在于"什么都能做"。
178
+
179
+ ### 关键技法
180
+ - 力量体系必须有明确边界和代价
181
+ - 世界观展开跟剧情推进绑定(不搞说明文)
182
+ - 日常细节比宏大设定更让世界"活"(集市上的货币、旅店的价格)
183
+ - 每5章必须有一次世界观层面的新信息
184
+
185
+ ### 金手指设计要点
186
+ - 金手指决定爽点上限:越强能解决的矛盾越大
187
+ - 避免只能靠一次性秘宝——越写越崩
188
+ - 金手指碎片化处理:把复杂能力拆分细分,碎片化融入剧情
189
+ - 没收集完成之间就是远期期待,收集到每一片就意味着能解决至少一个冲突
190
+ - 设定服务剧情,不要被设定反向限制;主角必须是规则中的特殊变量
191
+
192
+ ---
193
+
194
+ ## 现实/世情
195
+
196
+ ### 核心原则
197
+ 现实题材的力量在于"读者认识这些人",共鸣来自精准的日常观察。
198
+
199
+ ### 关键技法
200
+ - 对话必须口语化(不能有书面腔)
201
+ - 场景要具体到店名、品牌、地段(越具体越真实)
202
+ - 矛盾来自真实的社会压力(钱、面子、关系、阶层)
203
+ - 细节用五感(油烟味、麻将声、电动车充电的嗡嗡声)
204
+
205
+ ### 价值观与商业原则
206
+ - 网文是商业写作,判断文字好坏以目标读者反馈和写作目标为准
207
+ - 表达朴素价值观:杀人偿命、欠债还钱、睚眦必报、有恩必报、善恶有报
208
+ - 高端表达观点 = 讲故事让读者自己得出结论
209
+ - 观点要鲜明,立场要犀利:坏人做了坏事必须受惩罚
210
+ - 不要为了展示"人性复杂"而恶心读者
211
+
212
+ ---
213
+
214
+ ## 升级流/爽文
215
+
216
+ ### 核心原则
217
+ 爽文的本质是"读者知道结局的未知过程"。核心期待是变强、变富、被认可。
218
+
219
+ ### 关键技法
220
+ - 升级-收获-装逼三循环是通用核心循环
221
+ - 升级带来收获(对比),收获带来装逼(震惊),装逼推动新的升级
222
+ - 收获要分层释放,额外的、不确定的收获比固定收获更有惊喜感
223
+ - 爽点核心就四个字:主角牛逼——解决问题的方式决定爽感
224
+ - 风轻云淡一指灭杀 >> 歇斯底里艰难取胜
225
+ - 该爽的时候不爽到位,观感上比毒点还毒
226
+
227
+ ### 核心梗提炼
228
+ - 搞清楚核心梗才能确定赛道和受众,盲目模仿跟风全扑
229
+ - 核心梗决定金手指资源获取方式(杀杀杀 vs 经营关系网+种田)
230
+ - 核心梗影响全书基调(轻松日常 vs 严肃热血)
231
+
232
+ ### 人设一致性原则
233
+ - 权力来源决定行为逻辑:
234
+
235
+ | 权力类型 | 来源 | 行为特征 |
236
+ |----------|------|----------|
237
+ | 个人实力型 | 仙侠型,实力即王道 | 技能法宝归自己 |
238
+ | 服从型 | 领主型,权力来自下位者服从 | 利益不一致就叫不动人 |
239
+
240
+ - 智者人设不能崩:有脑子的角色必须遵守节能原则(最小代价换最大收益)
241
+ - 反派集结军队硬刚时,要考虑军队是否服从、利益是否一致
242
+ - 人设崩塌 = 角色做出与权力结构/性格不符的行为只为推动剧情
243
+
244
+ ### 战力/量级设计原则
245
+ - 量级上限取决于题材边界和可控性,保证不写崩
246
+ - 单体宇宙级之下基本够用,不需要多元宇宙花活
247
+ - 规则类能力尽量回避,太容易失控
248
+ - 量级需匹配题材的边界感
249
+
250
+ ---
251
+
252
+ ## 搞笑文
253
+
254
+ - 搞笑不等于神经病,逻辑是根基——搞笑情节必须在符合逻辑推理的情况下搞笑(规则之内的办法,但不在预料之内)
255
+ - 无逻辑的神经病主角前期好玩,后期读者对不上脑电波就觉得尬
256
+ - 玩梗法则:硬玩梗不如不玩梗——梗有生命周期,热度过了只剩尴尬
257
+ - 正确做法:提炼梗的内在搞笑逻辑,化用到小说情境中
258
+
259
+ ---
260
+
261
+ ## 轻小说/二次元风
262
+
263
+ - 核心定义:以卖戏剧性人设为主的小说,尤其以卖各种美少女人设为核心
264
+ - 人设即卖点:每个角色都有鲜明的"标签化"特质,读者一眼记住
265
+ - 日常感重于剧情推进:角色互动和日常碎片是主要内容
266
+ - 吐槽/内心戏密集:主角作为"吐槽役",对荒诞事物的反应本身就是爽点
267
+ - 人设差异要极端化:傲娇/病娇/三无/天然呆,标签越鲜明越好
268
+ - 卖人设 > 卖剧情:剧情服务于展示角色魅力
269
+ - 对话量 > 描写量:角色互动靠对话推进,减少大段心理独白
270
+
271
+ ---
272
+
273
+ ## 沙雕风
274
+
275
+ - 沙雕风 = 用荒诞、反常规的叙事制造笑点
276
+ - 角色行为出人意料但逻辑自洽(有脑子的荒诞,避免乱来)
277
+ - 严肃场景被角色的沙雕行为化解,反差制造笑点
278
+ - 宗门日常 > 战斗升级:沙雕宗门风中,升级只是不起眼的元素
279
+ - 群像感强:一群人互相衬托,笑点不靠单人硬撑
280
+ - 沙雕不等于降智:角色的行为要有自己的逻辑,只是这个逻辑很离谱
281
+ - 核心风险:纯沙雕没有情感深度,读者笑完就忘,需要有真情实感的底色
282
+
283
+ ---
284
+
285
+ ## 赛博朋克风
286
+
287
+ - 高科技低生活的质感:霓虹、义体、数据流、阶级固化
288
+ - 信息密度大:大量世界观细节需要自然融入叙事,不能写说明文
289
+ - 冷硬基调:疏离感、压抑感、技术异化感贯穿始终
290
+ - 世界观细节 > 剧情复杂度:赛博朋克读者来看的是世界观氛围
291
+ - 必须在开头几章建立足够的氛围感:雨夜、霓虹、义体改造、虚拟网络
292
+ - 避免写披着赛博皮的玄幻:力量体系要服从科技逻辑
293
+
294
+ ---
295
+
296
+ ## 盘点文/信息差文
297
+
298
+ - 核心机制:通过主角掌握的独有信息向不知情的围观者展示,制造震惊和装逼效果
299
+ - 知识类信息差是核心爽点:读者和主角一起"碾压"不知情的世界
300
+ - 单元结构:一个盘点对象 = 一个装逼单元,循环推进
301
+ - 共鸣优先:盘点方向必须选择读者能产生民族/文化/专业共鸣的内容
302
+ - 每个盘点单元需要:铺垫环境的不了解 -> 主角展示 -> 围观者震惊 -> 信息差抹平
303
+ - 可以与其他题材缝合:盘点+游戏文、盘点+穿越文、盘点+娱乐圈
304
+ - 边界感规则:盘点文的节奏是信息差驱动,不能变成纯科普
305
+
306
+ ---
307
+
308
+ ## 模拟文
309
+
310
+ - 核心结构:通过"模拟"获得奖励和信息差,再在现实中推进主线、满足期待
311
+ - 单元结构:模拟制造情绪缺口 -> 模拟中获得奖励(形成信息差)-> 现实满足期待
312
+ - 卷纲结构:模拟得知大危机/大期待 -> 多次【模拟+得奖励+现实推进】的小单元循环 -> 最终达成/解决核心期待
313
+ - 模拟中的信息差 = 现实装逼的筹码
314
+ - 模拟内容可以展示"如果不干预会怎样"的后果,强化紧迫感
315
+ - 奖励分层:小模拟给小奖励(升级资源),大模拟给关键信息(剧情转折)
316
+ - 模拟不是全知:保留未知变量,不能让主角通过模拟知道一切
317
+
318
+ ---
319
+
320
+ ## 直播流
321
+
322
+ - 核心机制:以直播场景为框架,融合搞钱、装逼、对抗、整活多种爽点
323
+
324
+ | 爽点来源 | 具体表现 |
325
+ |----------|----------|
326
+ | 搞钱 | 直接收打赏/礼物,金钱数字直观增长 |
327
+ | 对抗 | PK、打榜、与同行竞争 |
328
+ | 身份马甲 | 观众中有隐藏大佬,弹幕信息差制造惊喜 |
329
+ | 整活 | 抽象/搞笑的直播内容吸引围观 |
330
+ | 才艺展示 | 主角独特能力的展示窗口 |
331
+
332
+ - 目标感明确:每场直播有具体目标(圈够X钱/涨X粉),给读者确定预期
333
+ - 直播间弹幕 = 即时反馈系统:相当于内置的装逼观众,不需要额外设计
334
+ - 可以融合世情:每场直播接待一个客人/处理一件事 = 一个单元世情故事
335
+ - 节奏要求:不能一直直播,需要现实线穿插推进
336
+
337
+ ---
338
+
339
+ ## 救赎文冲突设计法
340
+
341
+ | 冲突类型 | 做法 | 示例 |
342
+ |----------|------|------|
343
+ | 救赎目标冲突 | 一方想得到的救赎来自另一方的牺牲 | 萧峰与阿朱 |
344
+ | 救赎行为冲突 | 救赎建立在谎言/伤害/零和博弈上 | 顶替他人身份 |
345
+ | 三角关系 | 一方的救赎行为导致第三方需要被救赎 | 连锁效应 |
346
+ | 救赎倒计时 | 必须在某事发生前完成,否则彻底堕入深渊 | 时间压力 |
347
+ | 增大救赎代价 | 一方救赎另一方的付出越来越大 | 情感/资源/身心代价递增 |
348
+ | 救赎资源稀缺 | 双方都需要救赎,但资源只够一个 | 零和博弈 |
349
+ | 立场对立 | 双方有立场分歧,但彼此需要对方的帮助 | 救赎与立场的矛盾 |
350
+ | 性格反差 | 乐观vs悲观、冷血vs有同情心 | 阻碍理解和沟通 |
351
+
352
+ ---
353
+
354
+ ## 边界感与氛围感
355
+
356
+ ### 边界感本质
357
+ 边界感 = 题材/流派特有的信息点集合。用这些信息点塑造氛围,让读者产生"这就是那个味"的感觉。
358
+
359
+ ### 边界感的三个层次
360
+
361
+ | 层次 | 内容 | 失败表现 |
362
+ |------|------|----------|
363
+ | 题材边界 | 该题材特有的设定、节奏、情绪基调 | 都市文写出仙侠味、种田文写出争霸味 |
364
+ | 风格边界 | 该流派的语言质感、叙事节奏 | 轻小说写出严肃文学腔、世情文写出玄幻腔 |
365
+ | 受众边界 | 目标读者群体的期待和雷点 | 用男频节奏写女频、用起点标准写番茄 |
366
+
367
+ ### 基调一致性原则
368
+ - 全文基调必须贯穿如一,基调中途改变 = 核心吸引力崩塌
369
+ - 基调 = 读者对"这本书在讲什么感觉"的共识
370
+ - 检查法:写完每章后问"这章和开篇的基调一致吗?"
371
+
372
+ ### 题材缝合的边界感判断
373
+ - 缝合前先明确两个题材各自的核心梗
374
+ - 缝合后碰撞出的看点是否超脱了核心梗?超脱 = 脱离边界感 = 危险
375
+ - 缝合的正确姿势:保持一个题材为主基调,另一个提供金手指或设定外衣
376
+ - 错误姿势:两套节奏交替,读者不知道自己在看什么
377
+
378
+ ### 对标书选择的边界感
379
+ - 对标书必须同网站+同题材+同类型,三者缺一不可
380
+ - 不同网站的读者群体期待不同,写法不能直接搬
381
+
382
+ ---
383
+
384
+ ## 各网站风格差异
385
+
386
+ | 网站 | 核心竞争力 | 读者偏好 | 策略 |
387
+ |------|-----------|----------|------|
388
+ | 起点主站 | 升级流/事业线为主 | 偏长线期待、稳定节奏、世界观深度 | 优先选择边界清楚、已有成熟受众的题材 |
389
+ | 番茄小说 | 短平快、强情绪、高密度爽点 | 快节奏、不拖沓、第一章就要有钩子 | 拆解同平台同题材样本的前期结构,复用功能位而非桥段 |
390
+ | 刺猬猫 | 整活 > 节奏,人设 > 剧情 | 动漫同人+二游读者,对"好玩"的需求大于"节奏稳定" | 适配同人、轻小说、脑洞、整活向 |
391
+ | 下沉市场 | 乐子文为核心 | 颠、搞怪、放飞自我 | 放开了写,风格要对味 |
392
+
393
+ ---
394
+
395
+ ## 市场定位与选材策略
396
+
397
+ - 优先选择受众广、样本多、边界清楚的类别;具体热度必须由当前 scan/analyze 或用户样本验证。
398
+ - 热门类别只代表潜在读者池更大,不代表任何具体梗当前有效。
399
+ - 降低竞争压力的做法:保留题材边界,替换切入角度、人物关系或情绪触发方式。
400
+ - 不用"传统文就是如此"解释节奏慢、冲突弱或卖点不清。
401
+
402
+ ---
403
+
404
+ ## 题材本质=元素拼接
405
+
406
+ - 题材的本质:所有题材就是元素的排列组合
407
+ - 元素 = 读者感兴趣的东西 + 在网文里流行过的东西
408
+ - 元素不等于金手指,也不等于频道分类
409
+ - 签到流的元素:【苟+高强度收获+强期待感】
410
+ - 两个元素割裂的题材(仙侠+科技)难度极高,要先自圆其说+制造趣味
411
+ - 赛道选择规则:优先选择竞争分散、近期样本有效的新兴赛道;避免进入强品牌集中且功能位难复用的成熟赛道。
412
+ - 研究中层样本而非只分析顶流——前者结构更可复用。
413
+ - 商业化 = 尊重目标读者,私人表达不能凌驾于核心卖点和阅读体验上。
414
+
415
+ ---
416
+
417
+ ## 吸量与赛道
418
+
419
+ - 吸量 = 一个题材的上限/天花板,有时就是题材不行不是写得不好
420
+ - 赛道 = 题材跑道,不同赛道的读者池和期待不同。
421
+ - 赛道选择的三个维度:吸量(天花板)+ 竞争度(对手数量)+ 素材/能力匹配度。
422
+ - 选择赛道前先看天花板;读者池太小的赛道要降低篇幅和商业预期。
423
+
424
+ ---
425
+
426
+ ## 跟风与创新
427
+
428
+ - 网文写作的核心 = 会不会讲故事,不是文采好/创意标新立异/知识面广
429
+ - 跟风 = 复用已验证功能位,是降低风险的方式之一
430
+ - 同质化本质 = 跟风过程中对目标没有深加工,只是一味仿照
431
+ - 跟风没问题,问题是连行动和语气都相似——退婚流可以各种组合
432
+ - 标新立异的设定不等于创新——主流之所以是主流因为大部分人接受认同
433
+ - 创新的核心:提炼梗的内在搞笑逻辑,化用到新情境中
434
+
435
+ ---
436
+
437
+ ## 题材的元素拼接与流派思维
438
+
439
+ - 把一个流派的要素提炼出来 + 另一个流派的要素提炼出来 -> 合成一本新书
440
+ - 点子只有在“素材、人物、冲突、篇幅”都能支撑时才可用。
441
+ - 反套路 = 推翻旧有模式的写法,让读者产生新鲜感。
442
+ - 常见问题:正文没有把关键信息显性化,读者无法理解卖点。
443
+ - 小说需要被目标读者识别到核心卖点,否则商业价值无法兑现。
444
+
445
+ ---
446
+
447
+ ## 市场认知与创作要点
448
+
449
+ - 开书节奏规则:前期聚焦核心卖点/金手指的快速展开,避免在设定和伏笔上过度投入导致正文节奏缓慢
450
+ - 一旦追求完美 -> 沉迷写设定写剧情挖伏笔 -> 正文节奏缓慢
451
+ - 信息差风险:写前准备想的是后续精彩展开,正文呈现出来却是男主拖沓和女主坑队友
452
+ - 新媒体入口依赖噱头和第一眼吸引力;开篇必须立刻兑现入口承诺
453
+ - 不要东一榔头西一棒子,每段剧情都要紧密推动核心矛盾
454
+
455
+ ---
456
+
457
+ ## 创作思路与开篇设计
458
+
459
+ - 创作思路三步法:确定主角身份 -> 匹配金手指类型 -> 设定开局环境 -> 设立意象(标签)
460
+ - 意象 = 给人物和剧情贴标签提升深度
461
+ - 开篇不需要写冲突,可以写环境,关键是流畅,把所有信息带出来
462
+ - 不要通过旁白介绍背景,多通过对话把信息掺杂在里面
463
+ - 主角身份 -> 面临的困境 -> 想办法解决 -> 能力不够 -> 金手指来了
464
+ - 不要一次性灌太多信息
465
+ - 关于节奏的误区:书让读者没兴趣,哪怕第一章成神王大帝都没用
466
+
467
+ ---
468
+
469
+ ## 低位身份开篇的流畅写法
470
+
471
+ - 低位开局核心 = 流畅,不需要反转和拉扯
472
+ - 把所有信息带出来同时做到流畅——读者的思绪跟着内容往下顺
473
+ - 不要一次性把所有压力灌给主角,压力一点点给
474
+ - 多通过对话传递信息,少用旁白介绍背景
475
+ - 给出金手指后要有即时变化——让读者看到变化的过程
476
+ - 金手指要在主角积极应对危机但能力不足时才来——这样主角不是废物
477
+ - 什么身份做什么事:马奴不配有道德,步子太大 = 结构破坏
478
+ - 写大剧情时检查:主角目前的等级、身份和资源是否够格?
479
+
480
+ ---
481
+
482
+ ## 开头五要诀
483
+
484
+ - **简单点**:简明扼要交代五要素(谁/在哪里/有什么/为什么/要做什么),第一章就点明
485
+ - **不能偏**:开头剧情必须符合主线,跑偏 = 零分开头
486
+ - **要快**:切入剧情速度要快,磨磨蹭蹭交代背景 = 啰嗦
487
+ - **要爽**:开头第一个小剧情必须有爽点,五章之内没有震惊 = 失败,不能有毒点/雷点/劝退点
488
+ - **不能平**:文似看山不喜平,没有冲突矛盾平淡如水 = 失败
489
+
490
+ **常见开头问题**:
491
+ - 上来楔子 -> ABCD世外高人对话 -> 打哑谜 -> 读者满脸懵
492
+ - 云里雾里不知所云 -> 读者看不懂直接走人
493
+ - 罗里吧嗦"铺垫" -> 实际全是废话 -> 节奏太慢
494
+
495
+ ---
496
+
497
+ ## 质量检查清单
498
+
499
+ 写完某个题材的章节/卷后,逐项检查:
500
+
501
+ - [ ] **题材边界感**:这章读起来是目标题材的味道,没有串味
502
+ - [ ] **基调一致**:与开篇基调一致,没有中途变调
503
+ - [ ] **题材核心技法执行**:对应题材模块的"核心规则"全部遵守
504
+ - [ ] **人设符合标签**:角色行为基于标签,没有人设崩塌
505
+ - [ ] **对话口语化**:无书面腔(现实/世情/升级流强制要求)
506
+ - [ ] **五感细节**:场景有具体感官细节,不是抽象概括
507
+ - [ ] **开篇五要诀**(如检查开篇):简单/不偏/快/爽/不平
508
+ - [ ] **缝合边界感**(如跨题材):主题材为主基调,辅题材提供外衣
509
+ - [ ] **对标书一致**:对标书同网站+同题材+同类型
510
+ - [ ] **市场匹配**:目标赛道读者池足够,题材与现有素材/能力长板吻合
@@ -0,0 +1,161 @@
1
+ # 追踪状态协议
2
+
3
+ `追踪/` 使用“一个结构化权威状态 + 多个确定性派生视图”。模型只提交一份语义 JSON,不分别 `Write/Edit/echo >>` 多个追踪文件。
4
+
5
+ ## 权威层与派生层
6
+
7
+ | 层级 | 文件 | 语义 |
8
+ |---|---|---|
9
+ | 唯一权威 | `_tracking-state.json` | schema、最后提交章、导入截止章、状态修订号、上下文结构、全部当前角色/伏笔/时间线状态 |
10
+ | 章节记录 | `逐章记录/第NNN章.md` | 本章对未来连续性有用的紧凑变化;目标 ≤1536 字节,硬上限 3072 字节;导入范围内修订写成覆盖记录 |
11
+ | 派生视图 | `上下文.md`、`角色状态/{角色名}.md`、`伏笔.md`、`时间线/作者真相.md`、`时间线/读者已知.md` | 完全从 `_tracking-state.json` 生成;禁止手改,不作为程序输入 |
12
+
13
+ Markdown 只负责给作者和 Agent 阅读,工具不再反向解析 Markdown。`check` 直接从 `_tracking-state.json` 重渲染并逐文件比较。未来“第几章揭示”的计划写在卷纲/细纲,不写成时间线既成事实。
14
+ 逐章记录只是便于人阅读的紧凑变化记录,不承诺单独无损重建全部当前状态;完整当前语义以 `_tracking-state.json` 为准。
15
+
16
+ ## 运行工具
17
+
18
+ 先按运行环境探测 Python 3 解释器(依次尝试 `python3`、`python`、`py -3`),再用当前 skill 根目录执行:
19
+
20
+ ```text
21
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py init --project {书项目根} --input {初始化事务.json}
22
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py commit --project {书项目根} --input {逐章事务.json}
23
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py check --project {书项目根}
24
+ ```
25
+
26
+ - `init`:只在 `_tracking-state.json` 不存在时执行,绝不覆盖已初始化项目。
27
+ - `commit`:读取唯一权威状态,在内存中完成合并、引用检查、全部视图渲染和容量检查;随后写逐章记录与派生视图,最后原子替换 `_tracking-state.json` 作为唯一提交点。
28
+ - `check`:严格验证 state schema、逐章记录连续性/规范名/体积、固定 7 栏、角色快照硬上限、派生文件集合,以及所有派生视图与 state 的逐字一致性。
29
+
30
+ 同一本书只允许工作流串行提交,不支持多个 Agent 或终端并发写。`expected_state_revision` 用于拒绝基于旧状态构造的顺序 stale transaction,不是并发锁。
31
+
32
+ 事务 JSON 在成功前必须保留。若文件写入失败,`_tracking-state.json` 尚未推进;修正环境后直接重跑**同一份** `commit`。append 重跑只接受内容完全相同的既有逐章记录,不维护 `dirty/pending/repair` 状态机。
33
+
34
+ 校验失败与写入失败处理方式不同:校验失败(字段非法、退役结构、容量超限)要按报错改事务本身,重跑同一份结果不变。派生视图被手改或外部改动导致 `check` 报 `derived view differs from _tracking-state.json` 时,重新提交**该章**的 `mode=revision` 事务让工具整份重建,`expected_state_revision` 取 `追踪/_tracking-state.json` 的 `state_revision` 字段——`check` 失败时只往 stderr 打 ERROR,不输出 JSON;不手改派生文件,也不删 `_tracking-state.json` 重来。手写出的逐章记录会让同章 `append` 永久报 `chapter delta N already exists with different content`——删掉那个手写文件后重跑原事务即可。
35
+
36
+ 本工具不解析旧 `_tracking-meta.json`、`时间线/事件库.json` 或更早追踪结构,不提供语义兼容层。`init` 遇到这类旧文件时,先把它们按原样整体移入 `追踪/_旧追踪存档/`,再在原地建当前协议:旧内容留给作者查阅,不参与解析,当前状态完全以 init 输入为准。校验失败的 `init` 不移动任何文件。`commit` 与 `check` 仍直接拒绝旧结构——它们只在已建协议的项目上运行。
37
+
38
+ ## 初始化事务
39
+
40
+ 新书从第 0 章初始化。`story-import` 导入已有小说时把最后完整章写入 `last_chapter=N`;第 1..N 章不伪造日更记录,常规续写从 N+1 章开始。
41
+
42
+ ```json
43
+ {
44
+ "schema_version": 1,
45
+ "book_title": "让你管账号,你高燃混剪炸全网",
46
+ "last_chapter": 0,
47
+ "context": {
48
+ "position": {
49
+ "volume": "第一卷·军宣整顿",
50
+ "volume_start_chapter": 1,
51
+ "story_time": "江晨到火箭军文工团报到前",
52
+ "scene": "火箭军文工团"
53
+ },
54
+ "long_term_constraints": ["军宣爽点要用作品效果和围观反应链兑现,不能只靠系统播报"],
55
+ "active_character_names": [],
56
+ "continuity_risks": [],
57
+ "recent_chapters": [],
58
+ "next_chapter_commitments": ["让江晨报到,并落下五天百万粉的新手任务"]
59
+ },
60
+ "character_snapshots": {},
61
+ "foreshadow": [],
62
+ "timeline_events": []
63
+ }
64
+ ```
65
+
66
+ 导入初始化时直接传入当前核心角色快照、伏笔当前行、时间线事件和固定 7 栏状态输入。阶段/卷级回看按需查询正文,不作为每章强一致追踪产物。
67
+
68
+ ## 逐章事务
69
+
70
+ ```json
71
+ {
72
+ "schema_version": 1,
73
+ "mode": "append",
74
+ "chapter": 10,
75
+ "chapter_title": "专业团队拍得还不如他拍的好?",
76
+ "expected_state_revision": 9,
77
+ "delta": {
78
+ "result": "专业团队重拍的高清版在高层看片会上被判定缺了灵魂,张耀祖拍板继续采用江晨的手机原版。",
79
+ "character_changes": [
80
+ {"name": "江晨", "change": "作品价值获军内高层确认,从爆款新人升为不可替代的军宣创作者"}
81
+ ],
82
+ "foreshadow_changes": [
83
+ {
84
+ "action": "upsert",
85
+ "id": "F027",
86
+ "summary": "专业团队仍拍不出江晨原版的灵魂,继续验证其创作能力不可复制",
87
+ "planted_chapter": 10,
88
+ "planned_resolution_chapter": null,
89
+ "status": "已埋",
90
+ "importance": "中"
91
+ }
92
+ ],
93
+ "timeline_events": [
94
+ {
95
+ "action": "upsert",
96
+ "id": "E010",
97
+ "story_time": "实弹训练两天后",
98
+ "objective_fact": "文工团高层否决专业重拍版,决定沿用江晨手机拍摄的原版视频",
99
+ "reader_knowledge": "读者已看到周薄森指出专业版缺了灵魂,张耀祖当场拍板用回原版",
100
+ "reveal_status": "已揭示",
101
+ "reveal_chapter": 10,
102
+ "characters": ["江晨", "周薄森", "张耀祖"]
103
+ }
104
+ ],
105
+ "constraints": ["后续继续用作品落地效果和围观反应放大江晨的高光,不能只写系统奖励数字"],
106
+ "next_chapter_commitments": ["结算五天百万粉任务,并承接老兵主题的新任务"]
107
+ },
108
+ "context": {
109
+ "position": {
110
+ "volume": "第一卷·军宣整顿",
111
+ "volume_start_chapter": 1,
112
+ "story_time": "实弹训练两天后",
113
+ "scene": "火箭军文工团高层看片会"
114
+ },
115
+ "long_term_constraints": ["军宣爽点要用作品效果和围观反应链兑现,不能只靠系统播报"],
116
+ "active_character_names": ["江晨"],
117
+ "continuity_risks": ["钟嘉嘉说江晨只猜对一半,未公开的培养安排不能被当成读者已知事实"]
118
+ },
119
+ "character_snapshots": {
120
+ "江晨": {
121
+ "identity": "火箭军文工团宣传兵;军宣爆款创作者",
122
+ "location": "火箭军文工团高层看片会",
123
+ "goal": "完成五天百万粉任务,持续做出真正能打的军宣内容",
124
+ "state": "专业团队反向验证原版价值,军内认可继续抬升",
125
+ "abilities_resources": ["前世MCN爆款运营经验", "《中国军魂》伴奏", "大师级导演能力"],
126
+ "relationships": ["钟嘉嘉持续提供军报资源", "周薄森和张耀祖已明确认可其创作能力"],
127
+ "knowledge": ["《军报》采访稿已经过审", "原版视频将继续作为正式军宣内容"],
128
+ "open_threads": ["五天百万粉任务尚未结算", "钟嘉嘉所谓只猜对一半仍未解释"]
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ 约束:
135
+
136
+ - 构造事务前运行 `check`,把当前 `state_revision` 原样写入 `expected_state_revision`;若状态已经变化,重新读取 state 并重构事务。
137
+ - `context` 的允许字段随子命令不同:`init` 收 `position`、`long_term_constraints`、`active_character_names`、`continuity_risks`、`recent_chapters`、`next_chapter_commitments` 六项;`commit` 只收前四项。`recent_chapters` 与 `next_chapter_commitments` 在 commit 时由工具从当前视图和本章 `delta` 派生,手填会在任何写入前被拒(`context contains unsupported fields: ...`,exit 2)。照 init 示例套 commit 事务是最容易踩的一处。
138
+ - `character_snapshots` 中出现的角色视为核心复用角色,必须同时出现在 `character_changes`;已经建立快照的核心角色再次变化时必须提交新快照。
139
+ - 角色快照的四个列表不限制条数,只限制单项长度和最终文件总字节:目标 ≤4096 字节,超过警告;硬上限 8192 字节,超过则在任何写入前拒绝。
140
+ - 没有快照的角色变化视为临时角色,不建立状态文件;`context.active_character_names` 最多 6 人且必须已有当前快照。
141
+ - `context.long_term_constraints` 和 `context.continuity_risks` 是整份提交的当前值。凡是上一版有、本次没有的条目,必须逐条列进 `delta.retired_context_items`,否则工具在任何写入前拒绝——漏写不会被当成删除。实际退役的条目由工具写进本章逐章记录的 `## 本章退役登记`,随后仍可回查。
142
+ - 不再复用的核心角色写进 `delta.retired_characters`:工具删除其当前快照与 `角色状态/{角色名}.md`,并在逐章记录留档。同一事务里不能既退役又提交快照,也不能退役仍列在 `context.active_character_names` 的角色。角色阵亡/退场这一章,把变化照写进 `character_changes` 即可,本章退役的角色不必再交一份马上要删的快照,逐章记录仍按核心角色标注。退役只表示不再进入热上下文,正文与逐章记录不受影响。
143
+ - 两类退役都只能在 `mode=append` 提交。退役表示「从此刻起离开当前状态」,而修订事务的逐章记录属于被改写的旧章,落在那里会谎报退役发生的章节;`mode=revision` 必须原样重交当前全部上下文条目,需要退役就放到下一次 append。
144
+ - `伏笔.md` 只呈现已经埋设过的当前状态。未来规划仍留在大纲。
145
+ - `timeline_events.action` 可为 `upsert/delete`。`未揭示` 的 `reveal_chapter` 必须为 `null`;部分/完全揭示只能填写已经发生的实际章节。
146
+ - `mode=revision` 时,逐章记录必须重算为修订后该章仍然成立的完整连续性记录;当前角色、伏笔、时间线和上下文则提交受影响对象截至最新已写章的当前值。
147
+ - 修订导入截止章内的正文时,会新增或覆盖该章的逐章记录;`imported_through_chapter` 不变。
148
+
149
+ ## 续写状态卡固定格式
150
+
151
+ `上下文.md` ≤12288 字节,由 state 整份生成,只含以下 7 个顶层区块:
152
+
153
+ 1. `## 当前位置`
154
+ 2. `## 长期约束`
155
+ 3. `## 核心角色状态`
156
+ 4. `## 活跃伏笔`
157
+ 5. `## 近三章速记`
158
+ 6. `## 下一章承诺`
159
+ 7. `## 连贯性风险`
160
+
161
+ 其中活跃角色最多 6 人、活跃伏笔确定性选取最多 8 条、近章只保留 3 章。这些是下一章热上下文容量,不是完整角色状态的容量限制。