@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,250 @@
1
+
2
+ # 网文质量检查清单
3
+
4
+ ## 目录
5
+
6
+ - [一、通用检查](#一通用检查)
7
+ - [二、长篇专项](#二长篇专项)
8
+ - [三、短篇专项](#三短篇专项)
9
+
10
+ ## 一、通用检查
11
+
12
+ ### 章节结构
13
+ - [ ] 开头有钩子(不是天气/风景/日常开场)
14
+ - [ ] 中段有推进(快节奏题材要有可见事件;慢热题材状态变化即可)
15
+ - [ ] 局势有变化(读完这章,世界跟之前不一样了)
16
+ - [ ] 结尾落在变化上(不是总结)
17
+
18
+ ### 开篇检查(前 300-500 字)
19
+ - [ ] 有钩子,能抓住注意力
20
+ - [ ] 不从天气/风景/日常开始
21
+ - [ ] 主角快速出场
22
+ - [ ] 卖点或危机可见
23
+ - [ ] 开局不与同题材默认套路撞车(有钩子≠不同质;能整体换到任意同类书就是同质化)
24
+
25
+ ### 章节推进
26
+ - [ ] 本章至少改变目标 / 风险 / 信息 / 关系 / 资源 / 身份 / 情绪立场七类状态之一;快节奏(番茄/爽文)应有可见事件或爽点,慢热/情感文才可只靠低压小变化达标,不强求每章高潮
27
+ - [ ] 不是水字数(删掉这章会损失哪项状态变化?答不出才需压缩)
28
+ - [ ] 任务卡点有用:卡住之后是否带来上述状态变化?
29
+ - [ ] 推进强弱是否符合本书已建立的题材、兑现节奏与对标,而非套固定通用字数
30
+
31
+ ### 信息传递
32
+ - [ ] 没有大段设定说明文
33
+ - [ ] 信息跟着冲突走(通过事件传递设定)
34
+ - [ ] 设定量可控(一章不超 3 个新概念)
35
+
36
+ ### 场景检查
37
+ - [ ] 场景有目标(人物要什么)
38
+ - [ ] 场景有阻碍(什么挡着)
39
+ - [ ] 场景有变化(结束后跟之前不同)
40
+ - [ ] 人物在做事情,不是在感觉事情
41
+ - [ ] 没有可删除的段落
42
+
43
+ ### 章尾
44
+ - [ ] 结尾落在变化上
45
+ - [ ] 有危机/决定/发现/反转中的至少一个
46
+ - [ ] 不是总结式结尾
47
+ - [ ] 拉住读者翻下一页
48
+
49
+ ### 语言
50
+ - [ ] 没有空洞的抒情段落
51
+ - [ ] 没有连续多段同一情绪
52
+ - [ ] 对话符合人物身份(不同人说话方式不同)
53
+ - [ ] 标点节奏符合语气和人物声线:没有通篇句号化,也没有随机堆砌问号/感叹号;正文(含对话)不残留 `……`/`——`,迟疑或打断已改为动作、短句、逗号或句号
54
+ - [ ] 情绪通过动作落地(不是直接说"他很难过")
55
+ - [ ] 标题行以外没有章节/写作元信息:不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类词;需要承接前文时改成角色能感知的事件锚点或相对时间;故事内真实阅读/讨论“第X章”或真实读者身份语境除外
56
+
57
+ ### 连载连续性
58
+ - [ ] 没有遗忘之前的承诺/伏笔
59
+ - [ ] 没有突然塞入大量新设定
60
+ - [ ] 伏笔有推进
61
+ - [ ] 故事引擎还在运转
62
+
63
+ ### 水(filler)检测
64
+ 以下信号出现 = 可能水了:
65
+ - 全章对话没有任何新信息
66
+ - 同一个情绪写了 3 段以上
67
+ - 场景描写超过 500 字但不推进剧情
68
+ - 角色回忆之前发生的事但没有任何新视角
69
+ - 连续 2 章以上没有冲突
70
+ - 删掉无损的流程细节 / 任务卡点 = 水;压缩或删除
71
+
72
+ ---
73
+
74
+ ## 二、长篇专项
75
+
76
+ ### 黄金三章检查
77
+ - [ ] 第一章前 500 字有钩子?
78
+ - [ ] 主角第一章就出场?
79
+ - [ ] 第一章有事件(不是纯铺垫)
80
+ - [ ] 第二章有升级(矛盾加深)
81
+ - [ ] 第三章有追读理由(给出继续看的动力)
82
+ - [ ] 前三章有至少 2 个爽点?
83
+ - [ ] 世界观没有大段说明文?
84
+ - [ ] 每章结尾有往下看的理由?(低压/过场章弱钩子或阶段目标即可,不强求强悬念)
85
+
86
+ ### 节奏检查
87
+ - [ ] 最近 5 章是否有明确进展?
88
+ - [ ] 爽点间隔是否超过 5000 字?(按章节定位:高压/推进章查间隔;低压/关系/信息整理章不计入)
89
+ - [ ] 有没有连续 2 章以上没有冲突?(呼吸章正常;红线是连续两章压力级≤1 或相邻章情绪趋同)
90
+ - [ ] 一卷是否有章节定位高低层次,没有全程同一力度?低压+过场是否克制(合计不超约 15%)?
91
+
92
+ ### 人物检查
93
+ - [ ] 主角行为符合人设?
94
+ - [ ] 配角是否有存在感?
95
+ - [ ] 反派逼格是否匹配当前阶段?
96
+
97
+ ### 五维评分标准
98
+
99
+ 每个维度 0-100 分,根据评分结果选择精修策略。
100
+
101
+ ### 维度 1:核心一致度
102
+ 检查:关键冲突、关键行动、人物动机是否前后一致。
103
+
104
+ | 问题 | 严重度 | 修复 |
105
+ |------|--------|------|
106
+ | 人物动机突然改变无铺垫 | critical | 补充动机转变的触发事件 |
107
+ | 核心冲突前后不一致 | high | 回溯修改冲突设定 |
108
+ | 关键行动与人物性格矛盾 | high | 调整行动或补充解释 |
109
+ | 次要矛盾遗忘 | medium | 回收或弱化 |
110
+
111
+ ### 维度 2:表层重写度
112
+ 检查:句式与措辞是否足够原创,避免套路化表达。
113
+
114
+ | 问题 | 严重度 | 修复 |
115
+ |------|--------|------|
116
+ | 照搬原句导致语气不自然 | medium | 只在确有 AI 腔时改写,正常原句可保留 |
117
+ | 大量使用 AI 标志词 | high | 替换为具体描述 |
118
+ | 同一句式重复出现 | medium | 变换表达方式 |
119
+ | 描写过于文学化(辞藻堆砌、书面腔、比喻成串) | medium | 改为口语化/动作化;动作化不是切成三五字短句串,改写后叙述仍以逗号长句为主 |
120
+
121
+ ### 维度 3:格式一致度
122
+ 检查:段落是否按戏剧单元/镜头自然断开,主语/角色名节奏是否自然,开头结尾格式是否统一。
123
+
124
+ | 问题 | 严重度 | 修复 |
125
+ |------|--------|------|
126
+ | 机械按字数切段或主语过密 | medium | 按戏剧单元重排段落,段首点名、段中代词/省略、关键转折再点名 |
127
+ | 章节字数偏离目标 | **high** | 写作/大纲修复时先回到细纲补足计划内情节点,再展开;去AI味已有正文时不得新增剧情 |
128
+ | 格式混乱(对话/描写不统一)| low | 统一格式 |
129
+
130
+ ### 维度 4:可读性
131
+ 检查:是否有啰嗦、AI 腔、空泛总结、套路修辞。
132
+
133
+ | AI 腔特征 | 如何识别 | 如何修复 |
134
+ |-----------|----------|----------|
135
+ | 空泛总结 | 「他终于明白了」「一切尽在不言中」 | 删掉,用行动代替 |
136
+ | 套路修辞 | 「命运仿佛在和他开玩笑」 | 删掉或换成具体描述 |
137
+ | 比喻堆叠 | 连续多处「像/好像/仿佛/如同」,每个画面都靠比喻解释 | 只留最有叙事功能的少数比喻,其余改成动作、物件、声音或后果 |
138
+ | 情绪标签 | 「他感到一阵悲伤」 | 改为行为表现 |
139
+ | 心理描写空转 | 内心独白无新信息、重复同一情绪或复述读者已知 | 只压缩空转部分;带新信息、决断或情绪转折的独白不按句数压缩 |
140
+
141
+ ### 维度 5:逻辑连贯
142
+ 检查:句间/段间是否通顺,有无设定冲突。
143
+
144
+ | 问题 | 严重度 | 修复 |
145
+ |------|--------|------|
146
+ | 设定前后矛盾 | critical | 查找并统一设定 |
147
+ | 时间线错误 | high | 标记时间线并修正 |
148
+ | 角色信息不一致 | high | 建立角色档案对照 |
149
+ | 因果链断裂 | medium | 补充过渡 |
150
+
151
+ ### 精修策略
152
+
153
+ 根据五维评分结果,选择精修策略:
154
+
155
+ | 主要问题 | 策略 | 说明 |
156
+ |----------|------|------|
157
+ | 核心一致度低 | rewrite | 围绕核心冲突重写相关段落 |
158
+ | 字数超标 | compress | 删减不推动剧情的内容 |
159
+ | 无意义卡点 | compress | 保留卡出的变化,压掉流程 |
160
+ | AI 腔重 | de_ai | 替换禁用词、改写句式 |
161
+ | 小问题多 | polish | 打磨语言细节 |
162
+
163
+ ### 读者契约与终局储备双向审查
164
+
165
+ 审稿先问“无毒吗”,再问“好看吗”:**无毒不等于好看**,没有 契约破坏 只代表不踩雷,还要确认情绪兑现足够强。风险标记三档:契约安全(与开篇承诺一致、主角保有关键选择、收益归属清楚)/ 需补强(可能稀释高光或推进过快,但能靠铺垫、交换、代价修复)/ 契约破坏(核心卖点被没收或无关角色夺走期待所有权,需修纲)。
166
+
167
+ - [ ] 读者契约:本章/本卷是否兑现开篇承诺,还是把核心卖点交给机构、配角或偶然性?风险标记:契约安全 / 需补强 / 契约破坏。
168
+ - [ ] 主角代理权:按因果权 + 结算权审查,而非按出场时长;关键节点核对四问——谁决定事情为什么发生、谁作出不可替代的选择、谁承担或选择关键后果、核心收益/认可/权力结算给谁。配角可执行局部动作,但不能无声夺走期待所有权。
169
+ - [ ] 期待债:承诺是否被偿还、延期并支付利息,还是被解释/流程/设定吞掉?
170
+ - [ ] 终局储备:本单元是否动用了本阶段还不该解锁的终局底牌(宿敌/真相/身份/金手指上限)?是否让某条升级线逼近天花板、后面没台阶接?两问皆否即放行——单章一战多得(多线齐涨)是好设计,不算超速。
171
+ - [ ] 兑现归属:期待所有权是否按承诺结算;自愿让渡只有在“长期净收益为负 + 控制/因果权下降”同时出现时亮红灯,战略性让步的更大控制/未来收益/权力/信息交换是否可见?
172
+ - [ ] 节奏续接:高潮/兑现后是否允许短暂低压和小而可见的收益/奖励,而非机械立即加危机?新元素是否支付换书债、没有逃避旧承诺?
173
+ - [ ] 题材特定风险:履约爽文/能力幻想中,主角是否反复以愚蠢或可避免的无能制造灾难并由他人收拾,损害因果权与结算信任?
174
+ - [ ] 反向审查:若删除“安全解释”,情绪是否更强?若保留风险情节,是否带来更强期待、代价或爽点?
175
+ - [ ] 综合线:契约、主角代理权、期待债、终局储备是否互相支撑,而不是只做到“无毒”。
176
+
177
+ ---
178
+
179
+ ## 三、短篇专项
180
+
181
+ ### 虐爽节奏检查
182
+
183
+ 短篇特有的检查项——虐点和爽点的分布是否合理:
184
+
185
+ ```
186
+ 理想分布:虐1 → 虐2 → 虐3 → 爽1(小) → 虐4 → 爽2(大)
187
+ 禁忌分布:虐1 → 虐2 → 虐3 → 虐4 → 虐5(无爽点,读者流失)
188
+ 禁忌分布:爽1 → 爽2 → 爽3 → 爽4(无铺垫,爽感疲劳)
189
+ ```
190
+
191
+ 检查规则:
192
+ - 每 300 字至少 1 个小冲突
193
+ - 虐点间隔不超过全文的 30%
194
+ - 最大爽点必须出现在全文的 70-85% 位置
195
+ - 结尾必须有情绪落点
196
+
197
+ ### 对话密度检查
198
+
199
+ | 指标 | 合格标准 | 警戒线 |
200
+ |------|----------|--------|
201
+ | 对话占全文比 | 45-65% | <30%(太干)或>75%(太水) |
202
+ | 每章对话条数 | 12-18条/千字 | <8条(缺交互)或>25条(碎片化) |
203
+ | 伤人性对话占比 | 35-45%(虐文)/ 20-30%(爽文) | 虐文<20%(不够痛)/ 爽文>40%(太压抑) |
204
+
205
+ ### 主角冷静度检查(打脸/复仇文专用)
206
+
207
+ | 检查项 | 标准 |
208
+ |--------|------|
209
+ | 主角是否有标志性冷静动作? | 必须有(端水杯/整理西装/转笔等) |
210
+ | 主角是否有情绪失控场面? | 复仇文最多1次,且必须在前30% |
211
+ | 反派是否比主角更歇斯底里? | 必须是——反差是爽感来源 |
212
+ | 主角台词是否短于反派? | 平均短30-50%——越短越有力 |
213
+ | 是否有"审判式对话"? | 至少2处(主角提问→对方自爆) |
214
+
215
+ ### 证据链完整性检查(复仇/打脸文专用)
216
+
217
+ | 检查项 | 标准 |
218
+ |--------|------|
219
+ | 证据是否分章释放? | 至少分3次揭露,不能一次全给 |
220
+ | 每个证据是否有铺垫? | 前文必须埋过线索 |
221
+ | 反派是否每次都先得意再被打脸? | 必须是——先扬后抑 |
222
+ | 最终证据是否最致命? | 最后一个证据要改变全局认知 |
223
+ | 是否有"定时炸弹"证据? | 至少1个主角提前布局的证据 |
224
+
225
+ ### 毒点/代入感/震惊/开头/结尾/情绪/期待感速查
226
+
227
+ > 详细的毒点分类、识别方法和修复方案见 `anti-ai-writing.md`。
228
+
229
+ | 检查项 | 标准 |
230
+ |--------|------|
231
+ | 爽文不爽 | 金手指效果必须展示清楚 |
232
+ | 压制无目的 | 每次压制必须服务于后续爆发 |
233
+ | 反派结局与主角无关 | 反派之死必须因主角行动导致 |
234
+ | 经济/战力崩坏 | 设定前后一致,以普通人为锚点 |
235
+ | 女主/女配降智 | 人设正常可写,老套路别写 |
236
+ | 读者期待长时间不满足 | 适时满足或引入新期待 |
237
+ | 主角行为不可理解 | 必须能理解、能共鸣 |
238
+ | 氛围被突兀梗破坏 | 氛围 > 突兀梗(乐子文除外) |
239
+ | 钩子不回收 | 钩子不回收 = 烂尾 |
240
+ | 震惊分层 | 点→网→深度,不能只写点震惊 |
241
+ | 震惊阶梯递进 | 阶梯式上升,非直线 |
242
+ | 震惊有广度 | 关系网都要有反应 |
243
+ | 前50字有冲突/异常 | 不能是背景铺垫 |
244
+ | 前100字知核心矛盾 | 必须知道 |
245
+ | 开头情绪强度 | ≥7(1-10) |
246
+ | 结尾是具体的 | 动作/对话/画面,禁止总结/反思 |
247
+ | 结尾有余韵 | 读者还想往下看 |
248
+ | 结尾情绪强度 | 虐≥8,爽≥7,治愈≥6 |
249
+ | 情绪对等释放 | 虐多少补多少,反派结局关联主角 |
250
+ | 期待管理 | 两长一短不断,核心卖点贯穿 |
@@ -0,0 +1,55 @@
1
+ # 通用网文内容审查 Rubric
2
+
3
+ > 用途:当用户未指定番茄、起点、知乎盐言等目标平台时,作为 `/story-review` 的默认小说内容评分标准。它评估的是**故事文本质量**,不是 skill/plugin 实现质量。
4
+
5
+ ## 评分方法
6
+
7
+ 每项按 PASS / WARN / FAIL 标记,并把 FAIL/WARN 转成统一 Findings Schema:
8
+ - 影响主线、角色动机、世界规则或读者信任 → S1
9
+ - 明显影响留存、节奏、章节效果或人物可信度 → S2
10
+ - 局部质量、格式、措辞、轻微节奏问题 → S3
11
+ - 风格建议或可选增强 → S4
12
+
13
+ ## 核心维度
14
+
15
+ | 维度 | PASS | WARN | FAIL |
16
+ |---|---|---|---|
17
+ | 核心卖点 | 章节围绕明确卖点推进,读者知道为什么继续看 | 卖点存在但表达弱或被支线稀释 | 看不出本章服务什么卖点或主线 |
18
+ | 冲突推进 | 本章有明确冲突、阻碍、选择或代价 | 冲突较轻,推进感不足 | 主要是解释/闲聊/总结,无实际推进 |
19
+ | 任务卡点 | 角色办事被卡住,并卡出信息、关系、代价、选择或伏笔变化 | 有卡点但变化偏弱,可压缩 | 卡点只是流程细节,删掉不影响故事 |
20
+ | 情绪曲线 | 有铺垫、升温、释放或反转 | 情绪有变化但节点不清 | 情绪平直或突兀转向 |
21
+ | 钩子与期待 | 开头/结尾至少一处建立期待 | 钩子弱但仍有后续问题 | 没有悬念、目标或未完成期待 |
22
+ | 开头新鲜度(仅开篇/前 3 章) | 开局有具体人物/处境切口,不是同题材默认套路 | 有钩子但开局形状与同题材撞车 | 开局是题材默认模板,可整体换到任意同类书(同质化) |
23
+ | 角色动机 | 行为符合目标、性格、处境和关系压力 | 局部行为缺少铺垫 | 角色为推动剧情而失真 |
24
+ | 对话质量 | 对话有潜台词、信息控制和角色差异 | 有信息堆叠或声音略同质 | 对话像说明书,人人同腔 |
25
+ | 设定一致性 | 不违背既有规则、时间线和角色属性 | 有轻微模糊点需补证据 | 与已写设定或前文事实冲突 |
26
+ | 文字自然度 | 具体、可感、动作承载信息 | 偶有套话或抽象总结 | AI 腔、陈词滥调、总结体明显 |
27
+ | 句长节奏 | 叙述默认是逗号长句,短句只作偶尔的孤立重拍、用完回到逗号长句 | 局部碎句或电报体,或偶发机械长短交替 | 逗号之间连着都是 ≤5 字、通篇超短句像提纲,或审改把逗号长句拆碎 |
28
+ | 标点节奏 | 标点跟语气、人物声线和情绪功能匹配 | 局部标点单调或略有堆砌 | 通篇句号化、随机堆砌问号/感叹号,或用 `……`/`——` 硬造停顿 |
29
+ | 具体字数表达校验 | 「这五个字」「短短四字」类表达的字数经核对属实,且有叙事必要 | 字数属实但换成「那几个字」更自然 | 字数与实际不符,或无法确认统计口径 |
30
+ | 格式可读性 | 段落按戏剧单元/镜头自然断开,对话独立,无多余空行,主语节奏自然 | 局部段落偏长/偏碎或主语重复略多 | 大段堆叠、机械切段、对话/叙述难读、主语过密 |
31
+ | 剧情循环 | 目标→阻碍→行动→代价/反馈→新期待闭环清晰 | 有循环但缺一环或反馈偏弱 | 无目标、无阻碍或无反馈,读者不知道局势如何变化 |
32
+ | 高潮构建 | 蓄能→假胜→崩解→反转/兑现有层次 | 有爆点但蓄能或兑现不足 | 平铺直给、无代价、无兑现或情绪落空 |
33
+ | 关系进展 | 互动尺度匹配关系阶段,越界有铺垫 | 局部推进略快但可补证据 | 突然亲密/信任/敌对,角色关系跳变 |
34
+ | 伏笔状态 | 伏笔埋设、状态和回收路径可追踪 | 伏笔偏密/偏疏但不影响理解 | 伏笔与设定冲突、断线或造成主线理解混乱 |
35
+
36
+ ## 黄金三问
37
+
38
+ 1. **读者为什么翻下一页?** 如果答不出,至少 S2。
39
+ 2. **本章改变了什么?** 情节、关系、信息、情绪至少改变一项;否则至少 S2。
40
+ 3. **哪个证据支持你的判断?** 没有原文证据的 finding 不输出,改为“证据不足”。
41
+
42
+ ## 发布建议门槛
43
+
44
+ | 综合情况 | Verdict |
45
+ |---|---|
46
+ | 无 S1/S2,S3 可快速处理 | APPROVE |
47
+ | 有 S2,或 S3 数量多影响阅读 | CONCERNS |
48
+ | 有 S1,或核心卖点/动机/规则崩坏 | REJECT |
49
+
50
+ ## 输出要求
51
+
52
+ - 所有问题必须包含 severity、category、location、evidence、issue、fix。
53
+ - 先列 S1/S2,再列 S3/S4。
54
+ - 不要只给泛泛评价;每条 finding 必须能指导下一轮修改。
55
+ - `consistency` / `factual` 类 finding 的 fix 只写事实统一方向,不写文学创作建议。
@@ -0,0 +1,18 @@
1
+ # 番茄小说 Quality Rubric
2
+
3
+ ## 评分标准
4
+
5
+ | 指标 | PASS 标准 | FAIL 标准 |
6
+ |------|----------|----------|
7
+ | 开头吸引力 | 前 3 段包含冲突/悬念/钩子 | 前 3 段纯描写/背景介绍 |
8
+ | 读者留存 | 每章结尾有"翻页动力"(悬念/反转/新信息) | 连续 3 章结尾无翻页动力 |
9
+ | 题材匹配 | 内容符合标签类型(如甜宠/逆袭/重生) | 偏离标签类型超过 3 章 |
10
+ | 算法友好 | 短段落、快节奏、高信息密度 | 大段落、慢节奏、低信息密度 |
11
+ | 情绪节点 | 每 1000 字有情绪起伏 | 连续 2000 字情绪平直 |
12
+ | 完读率预估 | 3 章 Hook 有效 + 节奏不拖 → 预估完读 >40% | 前 3 章无 Hook 或连续拖沓 → 预估完读 <20% |
13
+
14
+ ## 使用方式
15
+
16
+ - story-review 的 story-architect 视角引用此标准
17
+ - advisory only,不 blocking
18
+ - 番茄算法偏好快节奏、强情绪
@@ -0,0 +1,19 @@
1
+ # 起点中文网 Quality Rubric
2
+
3
+ ## 评分标准
4
+
5
+ | 指标 | PASS 标准 | FAIL 标准 |
6
+ |------|----------|----------|
7
+ | 爽点密度 | 每 3000 字 ≥1 情绪节点(升级/打脸/获宝) | 连续 5000 字无情绪节点 |
8
+ | 升级节奏 | 每 50 章有等级/实力突破 | 100 章无任何升级 |
9
+ | 金手指使用 | 每章提及或使用金手指(系统/戒指/功法) | 连续 5 章未提及金手指 |
10
+ | 日更支持 | 大纲支持 4000 字/天节奏(每章 2000 字,每天 2 章) | 无日更计划,章节长度不规律 |
11
+ | 钩子密度 | 每章结尾有悬念/钩子 | 连续 3 章结尾无钩子 |
12
+ | 角色存在感 | 主角每章出场并推进 | 连续 2 章主角不出场或无推进 |
13
+ | 追读比 | 章尾钩子 + 情绪连续性 → 追读比预估 >30% | 连续 3 章无钩子或情绪断裂 → 追读比预估 <15% |
14
+
15
+ ## 使用方式
16
+
17
+ - story-review 的 story-architect 视角引用此标准
18
+ - advisory only,不 blocking
19
+ - 用户可自定义阈值
@@ -0,0 +1,20 @@
1
+ # 知乎盐言故事 Quality Rubric
2
+
3
+ ## 评分标准
4
+
5
+ | 指标 | PASS 标准 | FAIL 标准 |
6
+ |------|----------|----------|
7
+ | 第一人称 | 全文使用「我」视角 | 使用第三人称(除非多视角设计) |
8
+ | 情绪拉扯 | 每段有情绪变化(期待→失望→惊喜等) | 连续 3 段情绪无变化 |
9
+ | 反转设计 | 至少 1 个有效反转(前文有伏笔) | 无反转或反转无伏笔支撑 |
10
+ | 结尾余韵 | 结尾留有思考空间/情感余韵 | 结尾完全封闭无回味 |
11
+ | 格式合规 | 段落以短为主(有长短/疏密变化)、无空行、对话格式正确 | 通篇同长度或连续超长段落/空行/对话标签 |
12
+ | 开头钩子 | 第一句话包含信息量(动作/冲突/悬念) | 第一句话纯描写/背景 |
13
+ | 字数控制 | 8000-13000 字(盐言标准) | 超出或不足 |
14
+ | 开头跳失率 | 第一句包含动作/冲突/悬念 → 跳失率预估 <30% | 第一句纯描写/背景 → 跳失率预估 >50% |
15
+
16
+ ## 使用方式
17
+
18
+ - story-review 的 story-architect 和 character-designer 视角引用此标准
19
+ - advisory only,不 blocking
20
+ - 盐言故事注重第一人称代入感和情绪拉扯
@@ -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 章。这些是下一章热上下文容量,不是完整角色状态的容量限制。