@oh-story/dsh 0.1.15 → 0.1.17

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 (560) hide show
  1. package/README.md +17 -15
  2. package/lib/client.js +26 -15
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/manifest.json +284 -364
  5. package/lib/drama/package.json +4 -0
  6. package/lib/drama/skills/short-drama/SKILL.md +13 -14
  7. package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
  8. package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
  9. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
  10. package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
  11. package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
  12. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
  13. 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 +5 -5
  14. 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 +5 -6
  15. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
  16. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
  17. 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 +6 -7
  18. package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
  19. package/lib/drama/skills/short-drama/references/look-development.md +5 -7
  20. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
  21. package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
  22. package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
  23. package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
  24. package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
  25. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
  26. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
  27. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
  28. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
  29. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
  30. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
  31. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
  32. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
  33. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
  34. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
  35. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
  36. package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
  37. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
  38. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
  39. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
  40. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
  41. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
  42. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
  43. package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
  44. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
  45. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +4 -5
  46. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +2 -2
  47. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +1 -1
  48. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +2 -2
  49. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
  50. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +1 -1
  51. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +1 -1
  52. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
  53. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +4 -5
  54. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +1 -1
  55. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +1 -1
  56. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
  57. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +2 -2
  58. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
  59. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
  60. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
  61. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
  62. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
  63. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
  64. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
  65. package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
  66. package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
  67. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
  68. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
  69. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
  70. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
  71. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
  72. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
  73. package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
  74. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
  75. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
  76. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
  77. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
  78. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
  79. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
  80. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
  81. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
  82. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
  83. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
  84. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
  85. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
  86. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
  87. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
  88. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
  89. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
  90. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
  91. package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
  92. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
  93. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
  94. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
  95. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
  96. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
  97. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
  98. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
  99. package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
  100. package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
  101. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
  102. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
  103. package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
  104. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
  105. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
  106. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
  107. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
  108. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
  109. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
  110. package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
  111. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
  112. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
  113. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
  114. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
  115. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
  116. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
  117. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
  118. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
  119. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
  120. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
  121. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
  122. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
  123. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
  124. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
  125. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
  126. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
  127. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
  128. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
  129. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
  130. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
  131. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
  132. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
  133. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
  134. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
  135. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
  136. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
  137. package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
  138. package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
  139. package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
  140. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
  141. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
  142. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
  143. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
  144. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
  145. package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
  146. package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
  147. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
  148. package/lib/index.js +120 -31
  149. package/lib/index.js.map +3 -3
  150. package/lib/novel-to-game/README.md +10 -11
  151. package/lib/novel-to-game/README_ZH.md +14 -15
  152. package/lib/novel-to-game/VERSION +1 -1
  153. package/lib/novel-to-game/manifest.json +34 -29
  154. package/lib/novel-to-game/package.json +4 -0
  155. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
  156. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
  157. package/lib/novel-to-game/skills/game-build/SKILL.md +9 -1
  158. package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
  159. package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
  160. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
  161. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
  162. package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
  163. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
  164. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
  165. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
  166. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
  167. package/lib/oh-story/manifest.json +628 -803
  168. package/lib/oh-story/package.json +4 -0
  169. package/lib/oh-story/roles/chapter-extractor.md +13 -12
  170. package/lib/oh-story/roles/character-designer.md +20 -101
  171. package/lib/oh-story/roles/consistency-checker.md +7 -9
  172. package/lib/oh-story/roles/narrative-writer.md +22 -22
  173. package/lib/oh-story/roles/story-architect.md +22 -32
  174. package/lib/oh-story/roles/story-explorer.md +11 -14
  175. package/lib/oh-story/roles/story-researcher.md +13 -14
  176. package/lib/oh-story/skills/browser-cdp/SKILL.md +38 -26
  177. package/lib/oh-story/skills/story/SKILL.md +98 -63
  178. package/lib/oh-story/skills/story/VERSION +1 -1
  179. package/lib/oh-story/skills/story-cover/SKILL.md +46 -234
  180. package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
  181. package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -93
  182. package/lib/oh-story/skills/story-deslop/SKILL.md +75 -212
  183. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
  184. package/lib/oh-story/skills/story-deslop/references/banned-words.md +61 -151
  185. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
  186. package/lib/oh-story/skills/story-deslop/references/expression.md +83 -0
  187. package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
  188. package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
  189. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
  190. package/lib/oh-story/skills/story-import/SKILL.md +18 -22
  191. package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
  192. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -9
  193. package/lib/oh-story/skills/story-import/references/deep-analysis.md +7 -8
  194. package/lib/oh-story/skills/story-import/references/import-report.md +9 -8
  195. package/lib/oh-story/skills/story-import/references/import-special-cases.md +7 -17
  196. package/lib/oh-story/skills/story-import/references/import-tracking.md +6 -6
  197. package/lib/oh-story/skills/story-import/references/length-routing.md +10 -60
  198. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +10 -10
  199. package/lib/oh-story/skills/story-import/references/outline-reverse.md +3 -3
  200. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +120 -132
  201. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -92
  202. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
  203. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
  204. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
  205. package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
  206. package/lib/oh-story/skills/story-long-analyze/SKILL.md +41 -78
  207. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +28 -30
  208. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +9 -17
  209. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
  210. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +23 -10
  211. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +13 -20
  212. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +28 -29
  213. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
  214. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
  215. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -164
  216. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -13
  217. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +114 -35
  218. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +16 -6
  219. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
  220. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
  221. package/lib/oh-story/skills/story-long-scan/SKILL.md +54 -82
  222. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -181
  223. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +24 -7
  224. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
  225. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
  226. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
  227. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +26 -16
  228. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -34
  229. package/lib/oh-story/skills/story-long-write/SKILL.md +12 -13
  230. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +2 -2
  231. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +53 -26
  232. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +9 -7
  233. package/lib/oh-story/skills/story-long-write/references/author-memory.md +6 -6
  234. package/lib/oh-story/skills/story-long-write/references/banned-words.md +61 -151
  235. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +4 -4
  236. package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
  237. package/lib/oh-story/skills/story-long-write/references/character-relations.md +120 -270
  238. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +3 -3
  239. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +26 -29
  240. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +9 -9
  241. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
  242. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +33 -73
  243. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +42 -89
  244. 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 +3 -3
  245. 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 +2 -2
  246. 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 +3 -3
  247. 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 +3 -3
  248. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  249. 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 +3 -3
  250. 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 +3 -3
  251. 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 +3 -3
  252. 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 +3 -3
  253. 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 +3 -3
  254. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  255. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  256. 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 +3 -3
  257. 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 +3 -3
  258. 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 +3 -3
  259. 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 +3 -3
  260. 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 +3 -3
  261. 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 +3 -3
  262. 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 +3 -3
  263. 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 +4 -4
  264. 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 +3 -3
  265. 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 +3 -3
  266. 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 +3 -3
  267. 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 +3 -3
  268. 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 +3 -3
  269. 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 +3 -3
  270. 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 +3 -3
  271. 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 +2 -2
  272. 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 +3 -3
  273. 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 +4 -4
  274. 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 +3 -3
  275. 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 +3 -3
  276. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
  277. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +99 -172
  278. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +40 -120
  279. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
  280. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
  281. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +82 -311
  282. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
  283. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +4 -4
  284. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +11 -13
  285. package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
  286. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
  287. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
  288. package/lib/oh-story/skills/story-long-write/references/project-files.md +12 -16
  289. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
  290. package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -84
  291. package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
  292. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +3 -3
  293. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +15 -22
  294. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +4 -172
  295. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
  296. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
  297. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
  298. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +10 -8
  299. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +3 -3
  300. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
  301. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +10 -10
  302. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +5 -10
  303. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
  304. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +1 -1
  305. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +77 -132
  306. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
  307. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
  308. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
  309. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
  310. package/lib/oh-story/skills/story-review/SKILL.md +41 -54
  311. package/lib/oh-story/skills/story-review/references/agent-prompts.md +20 -18
  312. package/lib/oh-story/skills/story-review/references/banned-words.md +61 -151
  313. package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
  314. package/lib/oh-story/skills/story-review/references/expression.md +83 -0
  315. package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
  316. package/lib/oh-story/skills/story-review/references/quality-rubric.md +11 -11
  317. package/lib/oh-story/skills/story-review/references/review-tracking.md +6 -5
  318. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +10 -10
  319. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +10 -11
  320. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +12 -12
  321. package/lib/oh-story/skills/story-review/references/solo.md +8 -7
  322. package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
  323. package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
  324. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
  325. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
  326. package/lib/oh-story/skills/story-setup/SKILL.md +29 -36
  327. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
  328. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +14 -16
  329. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +61 -151
  330. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +10 -10
  331. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
  332. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +120 -270
  333. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
  334. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +26 -29
  335. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +9 -9
  336. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
  337. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +83 -0
  338. package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
  339. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
  340. 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 +3 -3
  341. 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 +2 -2
  342. 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 +3 -3
  343. 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 +3 -3
  344. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  345. 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 +3 -3
  346. 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 +3 -3
  347. 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 +3 -3
  348. 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 +3 -3
  349. 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 +3 -3
  350. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  351. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  352. 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 +3 -3
  353. 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 +3 -3
  354. 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 +3 -3
  355. 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 +3 -3
  356. 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 +3 -3
  357. 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 +3 -3
  358. 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 +3 -3
  359. 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 +4 -4
  360. 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 +3 -3
  361. 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 +3 -3
  362. 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 +3 -3
  363. 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 +3 -3
  364. 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 +3 -3
  365. 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 +3 -3
  366. 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 +3 -3
  367. 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 +2 -2
  368. 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 +3 -3
  369. 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 +4 -4
  370. 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 +3 -3
  371. 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 +3 -3
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +99 -172
  374. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +40 -120
  375. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +34 -74
  376. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +82 -311
  377. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
  378. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
  379. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +4 -4
  380. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +11 -13
  381. package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
  382. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
  383. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
  384. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
  385. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +64 -192
  386. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +15 -69
  387. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +46 -58
  388. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
  389. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +23 -48
  390. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
  391. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +15 -22
  392. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +4 -172
  393. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
  394. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +77 -132
  395. package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
  396. package/lib/oh-story/skills/story-short-analyze/SKILL.md +44 -103
  397. package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
  398. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
  399. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
  400. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +22 -21
  401. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +7 -6
  402. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +6 -6
  403. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
  404. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +6 -6
  405. package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
  406. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
  407. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +38 -50
  408. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
  409. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +24 -175
  410. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +53 -38
  411. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +54 -83
  412. package/lib/oh-story/skills/story-short-scan/SKILL.md +56 -73
  413. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
  414. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
  415. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
  416. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +36 -75
  417. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +35 -15
  418. package/lib/oh-story/skills/story-short-write/SKILL.md +23 -26
  419. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +4 -4
  420. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +9 -7
  421. package/lib/oh-story/skills/story-short-write/references/author-memory.md +6 -6
  422. package/lib/oh-story/skills/story-short-write/references/banned-words.md +61 -151
  423. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
  424. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
  425. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
  426. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +26 -29
  427. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +15 -69
  428. package/lib/oh-story/skills/story-short-write/references/expression.md +83 -0
  429. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +12 -12
  430. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +21 -21
  431. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +17 -17
  432. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +17 -17
  433. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +19 -19
  434. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +16 -16
  435. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +17 -16
  436. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +17 -17
  437. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +11 -11
  438. 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 +22 -22
  439. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +46 -58
  440. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +64 -192
  441. package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
  442. package/lib/oh-story/skills/story-short-write/references/reference-index.md +14 -16
  443. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
  444. package/lib/oh-story/skills/story-short-write/references/short-craft.md +22 -43
  445. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
  446. package/lib/oh-story/skills/story-short-write/references/short-format.md +19 -43
  447. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +23 -48
  448. package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
  449. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
  450. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
  451. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +23 -30
  452. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +69 -26
  453. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +19 -20
  454. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +52 -70
  455. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
  456. package/lib/types/client/file-activity.d.ts +10 -0
  457. package/lib/types/client/file-activity.d.ts.map +1 -1
  458. package/lib/types/client/index.d.ts.map +1 -1
  459. package/lib/types/native-hooks.d.ts.map +1 -1
  460. package/lib/types/role-tool.d.ts +42 -2
  461. package/lib/types/role-tool.d.ts.map +1 -1
  462. package/lib/types/skill-provider.d.ts.map +1 -1
  463. package/lib/types/workspace-route.d.ts.map +1 -1
  464. package/lib/video-recap/CHANGELOG.md +8 -0
  465. package/lib/video-recap/README.en.md +8 -10
  466. package/lib/video-recap/README.md +8 -8
  467. package/lib/video-recap/manifest.json +48 -48
  468. package/lib/video-recap/package.json +4 -0
  469. package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
  470. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
  471. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
  472. package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
  473. package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
  474. package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
  475. package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
  476. package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
  477. package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
  478. package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
  479. package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
  480. package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
  481. package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
  482. package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
  483. package/lib/video-recap/skills/video-script/SKILL.md +4 -13
  484. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
  485. package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
  486. package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
  487. package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
  488. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
  489. package/package.json +25 -24
  490. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
  491. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
  492. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
  493. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
  494. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
  495. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
  496. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
  497. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
  498. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
  499. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
  500. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
  501. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
  502. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
  503. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
  504. package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
  505. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
  506. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
  507. package/lib/oh-story/skills/story/references/author-memory.md +0 -117
  508. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1638
  509. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
  510. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
  511. package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
  512. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1638
  513. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  514. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -43
  515. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  516. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  517. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  518. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  519. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -114
  520. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -105
  521. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
  522. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  523. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -502
  524. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -171
  525. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  526. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  527. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -273
  528. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  529. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -711
  530. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -622
  531. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -327
  532. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
  533. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
  534. package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
  535. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  536. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -288
  537. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  538. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -246
  539. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1638
  540. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
  541. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  542. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  543. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  544. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -146
  545. package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
  546. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -453
  547. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -438
  548. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -395
  549. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -146
  550. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -245
  551. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -477
  552. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  553. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -90
  554. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  555. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
  556. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -146
  557. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -127
  558. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -224
  559. package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
  560. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -4,14 +4,11 @@ description: |
4
4
  故事项目结构化查询 agent(只读)。响应关于角色状态、伏笔进度、设定出现位置、
5
5
  时间线节点、写作进度的查询。使用 grep + read 从项目文件系统中检索信息,
6
6
  返回结构化 JSON 摘要。
7
- 被 story-long-write(写前对标召回、日更查旧信息)、story-review(审查时查设定)、
8
- story 路由(用户自然提问时)调用。
7
+ 写前对标召回、日更查旧信息、审稿查设定和作者直接提问时被调用。
9
8
  不做任何创作判断或修改。
10
9
  tools: [Read, Glob, Grep]
11
10
  disallowedTools: [Write, Edit, Bash]
12
11
  model: haiku
13
- # 注:故意不设 memory: project。本 agent 是纯只读查询器,每次查询都是独立的,
14
- # 不需要跨会话持久状态。memory: project 会隐性启用 Write/Edit,与 disallowedTools 矛盾。
15
12
  maxTurns: 15
16
13
  ---
17
14
 
@@ -20,8 +17,6 @@ maxTurns: 15
20
17
  你是故事资料查询员,负责从项目文件系统中检索故事相关信息并返回结构化结果。
21
18
  **你只做查询,不做创作,不做检查,不做修改。**
22
19
 
23
- **重要:你是只读的。不修改任何文件。不做任何文学质量或创作方向的判断。**
24
-
25
20
  ---
26
21
 
27
22
  ## 参考文件路径规则
@@ -95,6 +90,8 @@ maxTurns: 15
95
90
  └── {topic}.md # 研究资料
96
91
  ```
97
92
 
93
+ 短篇书目录只有 `设定.md`(人设、关系、规则都在里面)、`小节大纲.md`、`正文.md`:角色、设定、关系查 `设定.md`,进度看 `正文.md` 写到第几节;伏笔、时间线和修订号这类追踪查询在 `gaps` 写明短篇没有追踪,不报缺失错误。
94
+
98
95
  ---
99
96
 
100
97
  ## 查询流程
@@ -108,7 +105,7 @@ maxTurns: 15
108
105
 
109
106
  ### character_status 流程
110
107
 
111
- 1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`);prompt 里没有这两个值时不自行读取 `_tracking-state.json`(完整 state 不进 prompt,读取量不随章数增长),只读 `追踪/上下文.md` 头部的 `状态修订:{N}` 作参考;两者对不上或字段缺失时在 `gaps` 返回 `tracking_state_invalid`,不把派生视图当成已确认状态。
108
+ 1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`),与 `追踪/上下文.md` 头部修订号比对;修订号不符或所需状态字段缺失时,在 `gaps` 返回 `tracking_state_invalid`,不把派生视图当成已确认状态。prompt 缺值时只取头部修订号作参考,不自行读取 `_tracking-state.json`(完整 state 不进 prompt)。
112
109
  2. `Read 追踪/角色状态/{角色名}.md`,直接取得截至最后提交章的身份、位置、目标、状态、能力资源、关键关系、已知信息和未结事项。
113
110
  3. `Read 设定/角色/{角色名}.md` 取得静态人设;静态设定不得覆盖动态快照。
114
111
  4. 只有查询明确要求“为什么变成这样/哪章变化”时,才 `Grep "{角色名}" 追踪/逐章记录/` 并读取命中小文件;当前状态查询不扫描全历史。
@@ -116,10 +113,10 @@ maxTurns: 15
116
113
 
117
114
  ### character_appearances 流程
118
115
 
119
- 1. `Grep 正文/ "{角色名}"` -> 列出所有匹配章节
120
- 2. 按章节号排序
121
- 3. 如需每章一句话摘要 -> `Read` 每章前几段
122
- 4. 返回出场列表
116
+ 1. `Grep 正文/ "{角色名}"` -> 列出候选章节
117
+ 2. 回查命中段,区分实际出场与仅被提及,再按章节号排序
118
+ 3. 如需每章一句话摘要,读取命中段及必要上下文,不用开头几段代替
119
+ 4. 返回已核实的出场列表
123
120
 
124
121
  ### foreshadow_status / foreshadow_list 流程
125
122
 
@@ -150,7 +147,7 @@ maxTurns: 15
150
147
 
151
148
  ### progress 流程
152
149
 
153
- 1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`);prompt 里没有这两个值时不自行读取 `_tracking-state.json`(完整 state 不进 prompt,读取量不随章数增长),只读 `追踪/上下文.md` 头部的 `状态修订:{N}` 作参考,取得最后提交章和状态修订号。
150
+ 1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`);prompt 里没有这两个值时不自行读取 `_tracking-state.json`(完整 state 不进 prompt,读取量不随章数增长),读 `追踪/上下文.md` 的头部修订号与「当前位置」当前章,取得最后提交章和状态修订号。
154
151
  2. `Read 追踪/上下文.md` 获取当前位置、下一章承诺和连贯性风险。
155
152
  3. 任一文件缺失或章号不一致时返回 blocking gap,不扫描正文猜测进度。
156
153
 
@@ -170,7 +167,7 @@ maxTurns: 15
170
167
 
171
168
  ## 输出格式
172
169
 
173
- 所有查询返回结构化 JSON。**必须输出可被 JSON.parse 解析的纯 JSON**:不要包 Markdown 代码围栏。输出前逐字段做 JSON 字符串安全化:字符串里的英文双引号必须写成 `\"`,换行写成 `\n`;尤其是 `anchor_excerpts[].text` 原文片段。若无法保证原文片段可转义,可把英文双引号替换为中文弯引号后再输出;禁止输出会破坏 JSON 的裸双引号。最终答案前自检一遍:任一字符串包含未转义 `"` 时先修正再返回。
170
+ 所有查询返回结构化 JSON。**必须输出可被 JSON.parse 解析的纯 JSON**:不要包 Markdown 代码围栏。输出前逐字段做 JSON 字符串安全化:字符串里的英文双引号必须写成 `\"`,换行写成 `\n`;尤其是 `anchor_excerpts[].text` 原文片段。原文片段只做 JSON 转义,不替换原文引号;仍无法合法返回时,在 `gaps` 说明该摘录未返回。禁止输出会破坏 JSON 的裸双引号。最终答案前自检一遍:任一字符串包含未转义 `"` 时先修正再返回。
174
171
 
175
172
  ```json
176
173
  {
@@ -245,7 +242,7 @@ maxTurns: 15
245
242
 
246
243
  - **拥有**:项目文件系统的结构化查询和信息检索
247
244
  - **不拥有**:创作方向(story-architect)、角色设计(character-designer)、文字质量(narrative-writer)、冲突检测(consistency-checker)、外部研究(story-researcher)
248
- - **升级路径**:查询结果涉及创作决策 -> 返回可调用的对应 agent,不在本 agent 内做决策
245
+ - 查询结果涉及创作决策时,在 `gaps` 写明待主会话裁决,不在本 agent 内做决策
249
246
 
250
247
  ---
251
248
 
@@ -3,7 +3,7 @@ name: story-researcher
3
3
  description: |
4
4
  小说写作资料研究 agent。接收研究查询,优先使用 CDP (agent-browser) 搜索并提取完整正文,
5
5
  WebSearch/webReader 作为兜底。输出带来源引用的结构化 Markdown 参考文件。
6
- 被 story-long-write(Phase 4)、story-review、story skill 路由调用。
6
+ 写章前查外部事实、审稿事实核查和作者直接让查资料时被调用。
7
7
  tools: [Read, Glob, Grep, Bash, Write]
8
8
  disallowedTools: [Edit]
9
9
  model: sonnet
@@ -15,7 +15,7 @@ maxTurns: 20
15
15
 
16
16
  你是小说写作的资料研究员,负责为创作提供准确、有据可查的外部事实和细节。
17
17
 
18
- **你的产出是参考资料,不是创作内容。你只负责研究,不负责写作。**
18
+ **只输出带来源的参考资料,不代写故事。**
19
19
 
20
20
  ---
21
21
 
@@ -56,7 +56,7 @@ maxTurns: 20
56
56
 
57
57
  **核心原则:CDP 优先,WebSearch 兜底。**
58
58
 
59
- CDP 能打开真实页面拿到完整正文;WebSearch 只返回摘要节选,信息量远不如全文。
59
+ CDP 可打开实际页面提取正文,搜索摘要用于定位来源;下方示例只截取前 8000 字符,不能把截取结果当成已读全文。
60
60
 
61
61
  ```
62
62
  1. CDP (agent-browser) → Google 搜索 → 从 DOM 提取链接 → 导航到目标页 → 提取正文
@@ -91,13 +91,14 @@ CDP 能打开真实页面拿到完整正文;WebSearch 只返回摘要节选,
91
91
 
92
92
  ### 第二步:检查 CDP 可用性
93
93
 
94
+ 探测浏览器调试端口用 node(各系统都能跑,不用 `lsof` 这类只在部分系统上有的命令);`{cdp_port}` 换成调用方给的端口,没给用 9222,后续命令同一端口:
95
+
94
96
  ```bash
95
- # 检查 CDP 端口是否在监听
96
- lsof -i :9222 -sTCP:LISTEN 2>/dev/null | grep -q LISTEN && echo "CDP_AVAILABLE" || echo "CDP_UNAVAILABLE"
97
+ node -e "require('http').get('http://127.0.0.1:'+process.argv[1]+'/json/version',{timeout:3000},r=>console.log(r.statusCode===200?'CDP_AVAILABLE':'CDP_UNAVAILABLE')).on('timeout',function(){this.destroy()}).on('error',()=>console.log('CDP_UNAVAILABLE'))" {cdp_port}
97
98
  ```
98
99
 
99
100
  - `CDP_AVAILABLE` → 使用 CDP 主链路
100
- - `CDP_UNAVAILABLE` → 直接降级到 WebSearch/webReader
101
+ - `CDP_UNAVAILABLE` → 不自己启动或重启浏览器(会关掉作者正在用的 Chrome,须作者同意);直接降级到 WebSearch/webReader
101
102
 
102
103
  ### 第三步:CDP 研究(主链路)
103
104
 
@@ -123,7 +124,7 @@ agent-browser --cdp {cdp_port} eval "window.location.replace('https://www.google
123
124
  agent-browser --cdp {cdp_port} wait 5000
124
125
  ```
125
126
 
126
- > macOS/zsh 注意:含括号的 eval 表达式用单引号包裹。带 `&` 的 URL 用 `URLSearchParams` 组装。
127
+ > eval 表达式整体用引号包裹,查询参数用 `URLSearchParams` 组装,避免 `&` 被 shell 拆开。
127
128
 
128
129
  #### 3.3 验证页面加载并获取搜索结果
129
130
 
@@ -138,7 +139,7 @@ agent-browser --cdp {cdp_port} snapshot 2>&1
138
139
 
139
140
  #### 3.4 从搜索结果中提取链接
140
141
 
141
- **重要**:搜索引擎使用 JS 路由拦截,`click ref=eXX` 无法可靠导航到目标页面。必须用 DOM 查询提取真实 URL:
142
+ 用 DOM 查询提取真实 URL,再导航到选定来源,避免猜测目标地址:
142
143
 
143
144
  ```bash
144
145
  # 从搜索结果 DOM 中提取所有链接的 href
@@ -174,7 +175,7 @@ agent-browser --cdp {cdp_port} eval 'document.body.innerText.substring(0,8000)'
174
175
 
175
176
  ### 第四步:WebSearch/webReader(兜底)
176
177
 
177
- CDP 不可用时使用:
178
+ CDP 不可用且宿主实际提供 WebSearch/webReader 时使用;当前工具权限未授予它们时不直接调用,按下方失败协议回报主会话处理:
178
179
 
179
180
  ```
180
181
  1. WebSearch 搜索关键词
@@ -184,12 +185,10 @@ CDP 不可用时使用:
184
185
  5. 输出文件中标注 "工具路径:WebSearch 兜底",置信度上限为 medium
185
186
  ```
186
187
 
187
- > **注意**:WebSearch 返回的是搜索摘要片段,信息量低于 CDP 全文提取。使用 WebSearch 路径时,应在输出中明确标注工具路径,置信度不高于 medium。
188
-
189
188
  #### 全链路不可用时的降级
190
189
 
191
190
  如果 CDP 和 WebSearch 均不可用(如 WebSearch 配额耗尽、webReader 返回错误):
192
- 1. 返回 `status: "failed"`,在 `gaps` 中说明失败原因
191
+ 1. 返回 `status: "failed"`,在 `gaps` 中说明失败原因;浏览器调试端口没开时写 `cdp_unavailable`,由主会话征得作者同意后启动浏览器再派你,或主会话自己检索
193
192
  2. 给出下一步动作:`"当前无法获取外部资料({原因})。下一步:稍后重试 / 将手动搜索结果放入参考资料/目录"`
194
193
  3. 不要编造任何内容作为替代
195
194
 
@@ -205,7 +204,7 @@ CDP 不可用时使用:
205
204
  |------|---------|------|
206
205
  | A(高) | 学术论文、官方文献、百科全书 | 知网、维基百科、政府网站 |
207
206
  | B(中) | 专业媒体、行业网站、从业者分享 | 专业论坛精华帖、行业媒体 |
208
- | C(低) | 个人博客、自媒体、影视改编 | 需交叉验证,不可单独引用 |
207
+ | C(低) | 个人博客、自媒体 | 需交叉验证,不可单独引用 |
209
208
  | D(不可用) | 小说、影视剧、无来源表述 | 仅可作为灵感参考,不作为事实依据 |
210
209
 
211
210
  **关键规则:**
@@ -266,7 +265,7 @@ CDP 不可用时使用:
266
265
 
267
266
  - **拥有**:外部资料搜索、来源评估、结构化参考文件输出
268
267
  - **不拥有**:创作方向(story-architect)、角色对话(character-designer)、文字质量(narrative-writer)、内部一致性(consistency-checker)
269
- - **升级路径**:研究涉及世界观设定决策 → 咨询 story-architect;角色历史背景不确定 → 咨询 character-designer
268
+ - **超出本职的问题**(世界观设定决策、角色背景取舍)写进 `gaps` 待主会话裁决,不自己转交
270
269
 
271
270
  **与 consistency-checker 的关系:**
272
271
  - 你负责外部事实收集(Web),可写文件
@@ -5,19 +5,21 @@ metadata: {"openclaw":{"requires":{"bins":["agent-browser"]},"source":"https://g
5
5
  ---
6
6
  # Browser CDP 操作工具
7
7
 
8
- 通过 CDP 协议控制 Chrome,复用已有登录态,执行浏览器自动化操作。
8
+ 通过 CDP(Chrome DevTools Protocol)连接 Chrome,复用登录态并执行浏览器操作。
9
9
 
10
10
  ## 前置条件
11
11
 
12
- - macOS / Linux / Windows(实验性),已安装 Google Chrome
12
+ - macOS / Linux / Windows(实验性),已安装并使用过 Google Chrome,来源 profile 已存在
13
13
  - Node.js 20+
14
14
  - `agent-browser` 已安装:`npm install -g agent-browser`
15
15
 
16
- > ⚠️ **首次启动会 kill 用户的常规 Chrome。** 在启动前必须征求用户同意(见下方"启动流程"),否则用户可能丢失未保存的标签页/草稿。
16
+ > 启动或重建时,若需结束 Chrome 进程,先按下方流程征得同意;未保存的标签页或草稿可能丢失。
17
17
 
18
18
  ---
19
19
 
20
- ## 启动流程(skill-mode 强制步骤)
20
+ ## 启动流程(每次都按这个顺序)
21
+
22
+ 下文 `{SKILL_DIR}` 指本 skill(browser-cdp)的目录。
21
23
 
22
24
  **第一步:探测当前状态(无副作用)**
23
25
 
@@ -43,14 +45,24 @@ CHROME_PID_COUNT=3
43
45
 
44
46
  **第二步:根据探测结果分支**
45
47
 
46
- - `CDP_STATUS=ready` → 直接使用 `agent-browser --cdp 9222 ...`,**不要运行 setup**。
48
+ - `CDP_STATUS=needs-setup` 且 `CHROME_INSTALLED=no` → 本机没找到 Chrome,告诉用户先安装并用它登录一次需要的网站,不要运行 setup。
49
+ - `CDP_STATUS=ready` 且本次只需连接 → 直接使用 `agent-browser --cdp 9222 ...`,**不要运行 setup**。
50
+ - 明确请求 `--reset` / `--profile` → 即使 ready 也走重建,按下方「需要结束 Chrome 时」处理。
47
51
  - `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=no` → 安全启动:
48
52
  ```bash
49
53
  node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --yes
50
54
  ```
51
- - `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=yes` → **先用 AskUserQuestion 工具向用户确认**:告知会杀掉 N 个 Chrome 进程、可能丢失未保存工作;用户同意后再带 `--yes` 启动;用户拒绝则放弃这次自动化。
55
+ - `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=yes` → 按下方「需要结束 Chrome 时」处理。
56
+
57
+ **需要结束 Chrome 时(同意流程)**:凡是会结束正在运行的 Chrome 的命令(Chrome 在运行时启动、`--reset`、显式 `--profile`),都按这三步走:
58
+
59
+ 1. 带上原定选项加 `--dry-run` 跑一次,看会结束几个 Chrome 进程;
60
+ 2. 告诉用户会结束 N 个 Chrome 进程、未保存的标签页或草稿可能丢失,问是否继续;
61
+ 3. 用户同意后,去掉 `--dry-run`、加 `--yes` 重跑;用户拒绝就放弃这次自动化。
52
62
 
53
- **为什么不能直接 `--yes`:** 脚本在非 TTY(即 skill 模式 / Bash 工具)下,如果检测到 Chrome 在跑而没有 `--yes`,会以退出码 3 报 `NEEDS_CONSENT: ...` 并中止,**不会**静默杀进程。这是有意的兜底——但 skill 流程仍应先问用户,而不是看到 3 就盲传 `--yes`。
63
+ 非 TTY 调用中,Chrome 在运行且未传 `--yes` 时,脚本以退出码 3 报 `NEEDS_CONSENT: ...` 并中止。取得同意后再重跑,不自动补 `--yes`。
64
+
65
+ **换端口**:9222 被别的程序占用时可以换一个端口(如 9333),之后所有 `agent-browser --cdp` 命令用同一个端口,扫榜脚本加 `--port 9333`,查资料助手传 `cdp_port: 9333`。
54
66
 
55
67
  ---
56
68
 
@@ -58,10 +70,10 @@ CHROME_PID_COUNT=3
58
70
 
59
71
  | 选项 | 说明 |
60
72
  |------|------|
61
- | `--detect-only` | 只探测,不修改任何状态(skill 用) |
73
+ | `--detect-only` | 只探测,不修改任何状态 |
62
74
  | `--yes` | 已征得同意,跳过交互提示 |
63
75
  | `--reset` | 启动前清空 `~/chrome-debug-profile`(登录失效时用) |
64
- | `--profile <name>` | 使用非 Default 的 Chrome profile(如 `"Profile 1"`) |
76
+ | `--profile <name>` | 指定来源 profile(默认 `Default`,如 `"Profile 1"`);显式传入即重建 |
65
77
  | `--dry-run` | 打印将执行的步骤,不执行 |
66
78
 
67
79
  退出码:`0` 成功 / `1` 通用错误 / `2` 用户拒绝(TTY)/ `3` 需同意但缺 `--yes`。
@@ -85,13 +97,15 @@ agent-browser --cdp 9222 eval 'document.body.innerText.substring(0, 8000)'
85
97
 
86
98
  ### 提取 Auth Token
87
99
 
100
+ 示例读取 localStorage 的 `token` 项或 JavaScript 可读的 Cookie;实际存放位置按站点确认。
101
+
88
102
  ```bash
89
103
  agent-browser --cdp 9222 eval 'localStorage.getItem("token") || document.cookie'
90
104
  ```
91
105
 
92
106
  ### 复杂 JS(含引号 / `$` / 反引号)
93
107
 
94
- shell 转义容易出错,用以下两种方式之一:
108
+ 用 base64 或标准输入传入脚本,避免 shell 转义错误:
95
109
 
96
110
  ```bash
97
111
  # 1) base64 包裹
@@ -118,20 +132,19 @@ agent-browser --cdp 9222 type "<sel>" "<text>"
118
132
 
119
133
  - 关掉 debug Chrome 窗口即可。若窗口无响应,先按 `--user-data-dir` 核验出 debug 实例的 PID 再只结束它:
120
134
  - macOS / Linux:`pgrep -af chrome-debug-profile`
121
- - Windows:`wmic process where "name='chrome.exe'" get ProcessId,CommandLine | findstr chrome-debug-profile`
122
- 拿到 PID 后 `kill -9 {PID}` / `taskkill /F /PID {PID}`。核验不出归属时停止,**手工清理不得按 Chrome 可执行文件名批量结束进程**——那会连带杀掉用户的日常 Chrome。
123
- 例外:`setup-cdp-chrome.js --reset` 内部确实会做一次按可执行名的清理,它属于本 skill 自带的、需 `--yes` 显式同意的启动流程;手工排障不要复制该做法。
124
- - 登录态失效:`node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --reset --yes`(注意 `--yes` 同样需要先问用户)。
135
+ - Windows(PowerShell):`Get-CimInstance Win32_Process | Where-Object CommandLine -like '*chrome-debug-profile*' | Select-Object ProcessId,CommandLine`;没有 PowerShell 的旧系统才用 `wmic process get ProcessId,CommandLine | findstr chrome-debug-profile`
136
+ 核验 PID 后用 `kill -9 {PID}` / `taskkill /F /PID {PID}`,无法核验则停止。**手工清理不得按 Chrome 可执行文件名批量结束进程**;启动脚本仍走上述同意流程。
137
+ - 登录态失效:用 `node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --reset` 重新复制来源 profile,按上方「需要结束 Chrome 时」先 dry-run、征得同意再加 `--yes`。
125
138
 
126
139
  ---
127
140
 
128
- ## OpenCode 环境注意事项
141
+ ## 长命令加超时
129
142
 
130
- opencode 没有后台执行命令行的工具,长时间的 CDP 操作(如等待页面加载、大批量数据抓取)会阻塞整个会话,导致 CLI 无响应。
143
+ 在前台执行耗时的 CDP 命令时,为页面加载和批量采集设置超时,避免单次调用长时间占住会话。
131
144
 
132
145
  ### 超时包装
133
146
 
134
- Windows 上对 CDP 命令使用 PowerShell Job 包装超时:
147
+ Windows 用 PowerShell Job 设置超时:
135
148
 
136
149
  ```powershell
137
150
  $job = Start-Job { agent-browser --cdp 9222 eval "window.location.replace('https://www.qidian.com/rank/')" }
@@ -141,7 +154,7 @@ else { Receive-Job $job }
141
154
  Remove-Job $job -Force
142
155
  ```
143
156
 
144
- macOS / Linux 上使用 `timeout` 命令:
157
+ macOS / Linux 有 `timeout` 时:
145
158
 
146
159
  ```bash
147
160
  timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.qidian.com/rank/')" || echo "⏱ CDP 操作超时(30s),请重试或手动打断"
@@ -149,8 +162,6 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
149
162
 
150
163
  ### 已知限制
151
164
 
152
- 即使加了超时包装,以下场景仍可能出现问题:
153
-
154
165
  | 场景 | 风险 | 缓解 |
155
166
  |------|------|------|
156
167
  | 页面加载超时 | eval 命令等待永不返回 | 设置 30s 超时,超时后重试 |
@@ -158,7 +169,7 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
158
169
  | Chrome 进程僵死 | CDP 连接断开但进程未退出 | 先核验 debug profile 对应 PID,只结束该 debug 实例后重连;不得连带普通 Chrome |
159
170
  | 网络波动 | 请求挂起无超时 | 超时后自动重试一次 |
160
171
 
161
- 如遇到持续卡死的操作,在 opencode 中按 `ESC` 手动打断。
172
+ 持续卡死时,请用户在宿主里手动打断(如 OpenCode、Claude Code 按 `ESC`)。
162
173
 
163
174
  ---
164
175
 
@@ -166,10 +177,11 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
166
177
 
167
178
  | 问题 | 解决方案 |
168
179
  |------|----------|
169
- | `NEEDS_CONSENT` + 退出码 3 | 用 AskUserQuestion 询问用户是否允许杀掉 Chrome,同意后加 `--yes` 重跑 |
170
- | CDP 端口未监听 | `--detect-only` 再确认;端口被占用则换端口 |
180
+ | `NEEDS_CONSENT` + 退出码 3 | 按「需要结束 Chrome 时」:先 dry-run 说清会结束几个进程,同意后加 `--yes` 重跑 |
181
+ | `CHROME_INSTALLED=no` 或来源 profile 不存在 | 安装并使用 Chrome 一次;已有其他 profile 时用 `--profile` 指定(会重建,按同意流程) |
182
+ | CDP 端口未监听 | `--detect-only` 再确认;端口被占用就换端口,下游命令一起改(见「换端口」) |
171
183
  | 页面跳转到登录页 | `snapshot -i` 找登录按钮并操作 |
172
184
  | `eval` 返回 `null` | 检查 localStorage key 名;含引号的 JS 用 `eval -b` 或 `--stdin` |
173
- | 登录态过期 | `setup-cdp-chrome.js 9222 --reset --yes` 重新拷贝 |
174
- | 有多个 Chrome profile | `--profile "Profile 1"` 指定 |
175
- | Chrome 不会启动(30s 超时) | 试 `--reset`;检查端口冲突;查看 `~/chrome-debug-profile/` 是否损坏 |
185
+ | 登录态过期 | `setup-cdp-chrome.js 9222 --reset`,按同意流程先 dry-run、同意后加 `--yes` |
186
+ | 有多个 Chrome profile | `--profile "Profile 1"` 指定;显式传 `--profile` 会重建,按同意流程 |
187
+ | Chrome 不会启动(30s 超时) | 检查端口冲突;查看 `~/chrome-debug-profile/` 是否损坏;仍不行再按同意流程试 `--reset` |
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: story
3
- description: "网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可管理作者习惯、启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。"
3
+ description: "网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。"
4
4
  metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
5
5
  ---
6
6
  # story:网文工具箱路由
7
7
 
8
- 你是网文工具箱的路由入口。用户的请求模糊时由你分发到具体 skill。
8
+ 识别用户的写作需求,并路由到对应 skill。
9
9
 
10
10
  ## 路由表
11
11
 
12
- > Codex CLI 中优先使用 `$story-*` 或 `/skills` 触发;Claude Code / OpenCode 继续使用 `/story-*`;Antigravity 可在 `/skills` 中选择或用自然语言点名;OpenClaw 可用 `/skill story-*` 或自然语言点名 skill。下表以 slash command 展示,Codex 可将 `/story-long-write` 等价替换为 `$story-long-write`,OpenClaw 可将其等价替换为 `/skill story-long-write`。
12
+ 各宿主的调用写法:Claude Code、OpenCode 用 `/story-*`(Claude 插件安装时为 `/oh-story:story-*`),也可 `Skill("story-*")`;Codex、ZCode 用 `$story-*`(Codex 也可 `/skills`);OpenClaw 用 `/skill story-*`;Antigravity、Reasonix 在 skill 入口选择或用自然语言点名。下表按 `/story-*` 写,其他宿主照此替换,本文件其余地方同理。
13
13
 
14
14
  | 用户意图 | 关键词示例 | 路由到 |
15
15
  |---|---|---|
@@ -18,8 +18,8 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
18
18
  | 长篇拆文 | 拆文、分析这本书、黄金三章、灵感库、跨书灵感聚合 | `/story-long-analyze` |
19
19
  | 短篇拆文 | 拆短篇、分析这个故事 | `/story-short-analyze` |
20
20
  | 长篇扫榜 | 长篇排行、什么火、新书在冒什么、起点/番茄/晋江/七猫长篇 | `/story-long-scan` |
21
- | 选题决策 | 写什么能爆、帮我选题、选题方向 | `/story-long-scan` |
22
21
  | 短篇扫榜 | 短篇排行、知乎盐言排行 | `/story-short-scan` |
22
+ | 选题决策 | 写什么能爆、帮我选题、选题方向 | 长篇 `/story-long-scan`,短篇 `/story-short-scan`;没说篇幅先问一句 |
23
23
  | 去 AI 味 | 去 AI 味、太 AI、去味 | `/story-deslop` |
24
24
  | 审查稿件 | 审查、审稿、帮我审一下、一致性检查、看看有没有问题 | `/story-review` |
25
25
  | 封面 | 封面、封面图 | `/story-cover` |
@@ -29,28 +29,98 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
29
29
  | 工作台 | dashboard、工作台、看拆文库、浏览项目文件、打开项目面板 | 见下方「Dashboard 工作台」 |
30
30
  | 检查/更新版本 | 检查更新、有新版本吗、升级、更新工具箱 | 见下方「版本更新检查」 |
31
31
  | 切换/列出书目 | 切书、换书、列出我的书、我在写哪几本、切换项目 | 见下方「多书切换」 |
32
- | 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 | 见下方「作者记忆」 |
33
- | 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 | spawn `story-explorer` agent(结构化 prompt:`项目目录:{dir}\n查询类型:{根据意图选择}\n查询参数:{用户查询}`);agent 不可用时见下方「查询降级」 |
34
- | 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 | spawn `story-researcher` agent;agent 不可用时见下方「查询降级」 |
32
+ | 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 | 见下方「作者习惯管理」 |
33
+ | 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 | 见下方「查询」 |
34
+ | 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 | 见下方「查询」 |
35
+
36
+ 能明确匹配就直接调用对应 skill;匹配不上时只问缺的那一项。用户说"我想写小说"但没说长篇还是短篇,先问篇幅再路由。
35
37
 
36
38
  ### 裸调用与新手
37
39
 
38
- 只说 `/story`、看不出意图时,不贴路由表,给四个白话选项:「开一本长篇或接着写」→ `/story-long-write`;「写一篇短篇」→ `/story-short-write`;「把一章改得不那么 AI」→ `/story-deslop`;「更多(拆书、扫榜、导入旧稿、审稿、封面)」→ 再列进阶项。还没部署过(项目根没有 `.story-deployed`)时先建议 `/story-setup`。
40
+ 只说 `/story`、看不出意图时,不贴路由表,给四个白话选项:「开一本长篇或接着写」→ `/story-long-write`;「写一篇短篇」→ `/story-short-write`;「把一章改得不那么 AI」→ `/story-deslop`;「更多(拆书、扫榜、导入旧稿、审稿、封面)」→ 再列进阶项。还没部署过(项目根没有 `.story-deployed`)时先建议 `/story-setup`,并说明部署完要新开一个会话再开始,写作助手才会生效。
39
41
 
40
42
  ### 导入续写顺序
41
43
 
42
- 用户问"导入续写先 setup 还是 import"时,直接回答:**推荐先 `/story-setup`,新开/刷新会话后 `/story-import`,最后 `/story-long-write 日更` 或 `/story-long-write 写第N章`**。如果用户已经直接触发 `/story-import`,按 story-import 自带环境检测继续:未 setup 时让用户选择先去 setup 或继续串行导入。
44
+ 用户问"导入续写先 setup 还是 import"时,直接回答:**推荐先 `/story-setup`,新开会话后 `/story-import`;导完长篇说 `/story-long-write 写第N章`(N 是导入后的下一章),短篇用 `/story-short-write` 先补完构思**。如果用户已经直接触发 `/story-import`,按 story-import 自带环境检测继续:未 setup 时让用户选择先去 setup 或继续串行导入。
45
+
46
+ ## 书目录判定
47
+
48
+ 本文件的"书目录""当前书"均按此查找:
49
+
50
+ 1. 项目根有 `.active-book` 且指向项目内一个存在的目录 → 就是它。
51
+ 2. 否则在项目根往下最多 4 层找,跳过以 `.` 开头的目录、`node_modules`、`拆文库/`、`对标/`:
52
+ - 含 `追踪/`、`正文/` 子目录或 `正文.md` 文件的目录(与写作 hook 同一口径);
53
+ - 刚定完方向、还没有正文的长篇:含 `设定/题材定位.md` 的目录;
54
+ - 构思中、还没有正文的短篇:同时有 `设定.md` 与 `小节大纲.md` 的目录。
55
+ 找到多本又没有 `.active-book` 时,需要"当前书"就问作者是哪本(做法同「多书切换」)。
56
+ 3. 篇幅:有 `正文/` 或 `设定/` 子目录的是长篇,有 `正文.md` 或 `设定.md` 文件的是短篇。
57
+
58
+ 没找到任何书目录:创建写作项目时先运行 `/story-setup`;只讨论结构、选题,或要扫榜、拆文时直接路由。找到了:按目标 skill 自己的环境检查继续,需要初始化或补部署时运行 `/story-setup`。
59
+
60
+ ## 作者习惯管理
61
+
62
+ 按用户明确指定的长篇/短篇选写作 skill;没指定时按当前书的篇幅。没有当前书的通用习惯交 `/story-long-write` 管理;只针对某本书却定位不到时问是哪本,不要求先建书。路由层只转交,不读写作者记忆文件。
63
+
64
+ ## 查询
65
+
66
+ ### 交给哪个助手、传什么
67
+
68
+ 「查故事资料」交 `story-explorer`,prompt 三行:
69
+
70
+ ```text
71
+ 项目目录:{书目录的绝对路径}
72
+ 查询类型:{按下表选}
73
+ 查询参数:{用户问到的角色名、伏笔、设定关键词或章节范围}
74
+ ```
75
+
76
+ | 用户在问 | 查询类型 |
77
+ |---|---|
78
+ | 某角色现在什么状态 | `character_status` |
79
+ | 某角色在哪几章出场 | `character_appearances` |
80
+ | 某条伏笔的情况 | `foreshadow_status` |
81
+ | 还有哪些伏笔、哪些没收 | `foreshadow_list` |
82
+ | 某个设定怎么定的 | `setting_detail` |
83
+ | 某个设定在哪些章出现过 | `setting_appearances` |
84
+ | 第 X 到 Y 章发生了什么 | `timeline`(查询参数默认带 `perspective: reader`;作者明确问幕后真相时用 `author`) |
85
+ | 写到哪了 | `progress` |
86
+ | 两个角色现在什么关系 | `relationship` |
87
+
88
+ 一句话含多类查询时,分次调用或只选最主要的一类;问的是创作建议而不是查已有内容时,不交给它,主会话直接答。
89
+
90
+ 「查资料」交 `story-researcher`,prompt 按下面写,没有的可选项整行省略:
91
+
92
+ ```text
93
+ query:{要查的主题}
94
+ type:{可选:历史考证、地理/环境、职业知识、文化习俗、器物/服饰、描写参考、命名参考、体系构建、诗词典故、视觉参考、真实案例、读者偏好}
95
+ context:{可选:为什么要查,如正在写哪一段}
96
+ project_dir:{书目录的绝对路径;没有书目录时用项目根}
97
+ cdp_port:{可选:Chrome 调试端口不是 9222 时写}
98
+ ```
99
+
100
+ ### 能不能用助手
101
+
102
+ > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 36` 不一致时(标记缺失、字段缺失/非整数、小于或大于 36)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时用一句白话提示作者「查资料助手是旧版,运行 /story-setup 后新开会话」,`Notice: agents bundle 版本不匹配(项目 {N},本版 36)` 原文写进回答最末一行「技术备注:」;大于 36 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,`Fallback: ... -> solo` 同样只进技术备注行。
103
+
104
+ 走助手前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 `invoke_subagent` 工具可用,且对应部署文件存在(Claude `.claude/agents/*.md`、OpenCode `.opencode/agents/*.md`、Codex `.codex/agents/*.toml`、Antigravity `.agents/agents/agent-name/agent.md`,其中 `agent-name` 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 `invoke_subagent` + 同名 `TypeName`,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级处理:
105
+
106
+ - `story-explorer` 不可用 → 主会话直接用 Read/Grep 从书目录检索(角色状态、伏笔、进度、设定),回答前说一句「查资料助手没启用,这次我直接翻项目文件」;项目尚未部署时提示先 `/story-setup`。
107
+ - `story-researcher` 不可用 → 主会话用当前可用的搜索能力回答,回答前说一句「查资料助手没启用,这次我直接搜」;搜不到就如实说明。
43
108
 
44
- ## 作者记忆
109
+ ### 怎么回答作者
45
110
 
46
- 用户要求记住、查看、确认、替换或忘掉作者习惯时,加载 [references/author-memory.md](references/author-memory.md),并只用本 skill 的 `scripts/author_memory_commit.py` 管理两级 `.story/作者记忆/`:全局、题材、流程条目在工作区(`AP`),本书条目在书目录(`BP`,传 `--book-root`)。常用变更走单事件 `record`;工具未返回 `ok: true` 和 `Author Memory Receipt` 前,不得声称已记住。告诉作者时先用一句人话说记住了什么(如「记住了:这本书的对话一律用「」」),回执放最后一行,写法见协议「回执怎么告诉作者」。显示画像或待确认项是只读操作;不存在时直接说明尚未建立。
111
+ 讲故事里的事(谁、在哪章、发生了什么);文件字段名、伏笔/事件编号不单独出现,编号必须跟着故事描述。助手返回的英文字段和缺口说明由主会话翻成白话再说。
47
112
 
48
- 新增习惯必须保留用户原话和适用范围。一次性要求只执行不记录;小说事实写入本书设定/追踪;不从反复修改或成稿推断偏好,只记作者明确说的,原话范围含糊才进待确认;与已生效习惯冲突时显式 replace,不原地改写历史。作者说「整理作者记忆」、回执提示习惯攒得太多、工具报单书布局错误,或项目级画像里还有「本书:」条目(建议对该书运行 `migrate --book-root`)时,再加载 [references/author-memory-maintenance.md](references/author-memory-maintenance.md)。用户没有指定工作区时,按协议定位已有作者记忆的最近祖先或当前创作工作区,禁止默认写到用户主目录。
113
+ ## 多书切换
114
+
115
+ 用户想切换或查看在写的书时(一个项目可同时有多本):
116
+
117
+ 1. 按「书目录判定」第 2 条列出所有书目录,标出当前 `.active-book` 指向的那本。
118
+ 2. 让用户选择,把所选书的相对路径写入项目根 `.active-book`(覆盖原内容)。
119
+ 3. 只发现一本时直接确认为活跃书,无需询问。
49
120
 
50
121
  ## Dashboard 工作台
51
122
 
52
- 用户执行 `/story dashboard`(Codex 为 `$story dashboard`),或明确说“打开工作台 / 看项目
53
- 文件”时,直接启动随本 skill 分发的本地 Dashboard,不再转发到其他 skill:
123
+ 用户执行 `/story dashboard`,或明确要求打开工作台、查看项目文件时,启动本 skill 的本地 Dashboard:
54
124
 
55
125
  1. 把**当前工作目录**作为默认工作区;用户明确给出目录时改用该目录。目录必须存在。
56
126
  2. 从当前已加载的 `story` skill 目录定位 `scripts/dashboard-server.mjs`,不要硬编码仓库路径、
@@ -66,64 +136,29 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
66
136
  5. Dashboard 默认只监听 `127.0.0.1`。不要主动增加 `--allow-network`,不要把工作区暴露到
67
137
  局域网或公网。
68
138
 
69
- 工作台会识别标准 `拆文库/{书名}/`,兼容存量 `拆文库-{书名}/`。写作项目识别同时支持:
139
+ 工作台按自己的规则识别目录,与上方「书目录判定」不同:识别标准 `拆文库/{书名}/`,兼容存量 `拆文库-{书名}/`;写作项目识别同时支持:
70
140
 
71
141
  - 长篇目录结构:目录内含 `正文/`、`大纲/`、`设定/` 或 `追踪/` 任一普通子目录。
72
142
  - 短篇单文件结构:目录内含普通文件 `正文.md`,并同时含 `小节大纲.md` 或 `设定.md`。
73
143
 
74
- 符号链接不作为项目标记,只有单个 `正文.md` 的普通资料目录也不会被误认。浏览器可编辑
75
- `.md`、`.txt`、`.json`、`.yaml`、`.yml`、`.toml`,保存或确认删除前用修改时间防止
76
- 误操作外部更新。
77
-
78
- 停止服务时终止对应的 Node 长运行进程即可。若用户只问用法,不要替他启动;给出
79
- `/story dashboard` / `$story dashboard` 两种平台对应入口。
80
-
81
- ## 路由流程
82
-
83
- 1. 分析用户请求,提取意图关键词
84
- 2. 匹配上表,找到对应的 skill
85
- 3. 如果能明确匹配,直接调用对应 skill(Claude/OpenCode 可用 `Skill("skill-name")` 或 slash command;Codex 用 `$skill-name` / `/skills`;Antigravity 用 `/skills` 或自然语言点名;OpenClaw 用 `/skill skill-name` 或自然语言点名)
86
- 4. 如果无法匹配,询问用户想做什么(从上表中选择)
87
- 5. 如果用户说"我想写小说"但未指定长篇/短篇,询问篇幅类型后再路由
88
-
89
- ## 查询降级
90
-
91
- > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时(标记缺失、字段缺失/非整数、小于或大于 34)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 34)` 并提示重新运行 `/story-setup` 后新开会话;大于 34 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。
92
-
93
- 「查故事资料」「查资料」走 agent 前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 `invoke_subagent` 工具可用,且对应部署文件存在(Claude `.claude/agents/*.md`、OpenCode `.opencode/agents/*.md`、Codex `.codex/agents/*.toml`、Antigravity `.agents/agents/agent-name/agent.md`,其中 `agent-name` 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 `invoke_subagent` + 同名 `TypeName`,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级,不硬失败:
94
-
95
- - `story-explorer` 不可用 → 主会话直接用 Read/Grep 从项目文件检索(角色状态/伏笔/进度/设定),回答前说一句「查资料助手没启用,这次我直接翻项目文件」;项目尚未部署时提示先 `/story-setup`(Codex 中用 `$story-setup`)。
96
- - `story-researcher` 不可用 → 主会话用现有检索/回答能力完成,或提示用户改用 `/browser-cdp` 采集,同样用一句白话说明。
97
-
98
- 回答作者时讲故事里的事(谁、在哪章、发生了什么);文件字段名、伏笔/事件编号不单独出现,编号必须跟着故事描述。
99
-
100
- ## 项目状态感知
101
-
102
- 路由前先检查当前项目状态:
103
-
104
- - **无项目目录**(没有包含 `追踪/` 或 `设定/` 的书名目录,也没有同时有 `正文.md` 与 `小节大纲.md`(或 `设定.md`)的短篇目录):
105
- - 如果用户要写作,下一步是先运行 `/story-setup` 初始化环境(Codex 中用 `$story-setup`)
106
- - 如果用户要扫榜/拆文,直接路由
107
- - **已有项目**:检查 `.story-deployed` 标记,如未部署则先运行 `/story-setup`(Codex 中用 `$story-setup`)
108
-
109
- ## 多书切换
110
-
111
- 用户想切换或查看在写的书时(一个项目可同时有多本):
144
+ 符号链接不作为项目标记,只有单个 `正文.md` 的资料目录不识别为写作项目。浏览器可编辑 `.md`、`.txt`、`.json`、`.yaml`、`.yml`、`.toml`;保存或确认删除时核对文件内容版本,避免覆盖外部修改。
112
145
 
113
- 1. 在项目根查找所有书目录:包含 `追踪/` 或 `设定/` 子目录的目录,或同时有 `正文.md` 与 `小节大纲.md`(或 `设定.md`)的目录(含 `长篇/`、`短篇/` 下的子目录)。
114
- 2. 列出书名,并标出当前 `.active-book` 指向的那本。
115
- 3. 让用户选择,把所选书的相对路径写入项目根 `.active-book`(覆盖原内容)。
116
- 4. 只发现一本时直接确认为活跃书,无需询问。
146
+ 停止服务时终止对应的 Node 长运行进程即可。若用户只问用法,不要替他启动;告诉用户用 `/story dashboard`(按上方宿主写法替换)。
117
147
 
118
148
  ## 版本更新检查
119
149
 
120
- 用户问"有没有新版本""检查更新""升级"时执行。**只通知,更不更新由用户定,不自动安装。**
150
+ 用户问“有没有新版本”“检查更新”“升级”时执行。**先报告版本,是否安装由用户决定。**
121
151
 
122
- 1. **当前版本**:读本 skill 同目录的 `VERSION` 文件;缺失则视为未知。
152
+ 1. **当前版本**:读本 skill 同目录的 `VERSION` 文件;缺失则视为未知。本 skill 在写作项目里(如项目下的 `skills/`、`.agents/skills/`、`.zcode/skills/`)时,读到的是项目副本的版本。
123
153
  2. **最新版本**:优先 `gh release view --json tagName,name,url -R zenstory-ai/oh-story-claudecode` 取 `tagName`;无 gh 用 `curl -fsS --max-time 5 https://api.github.com/repos/zenstory-ai/oh-story-claudecode/releases/latest` 取 `.tag_name`(jq 或 grep)。查不到 → 告知"暂时拉不到最新版本,可手动看 [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)",不报错。
124
- 3. **比较**:去掉 `v` 前缀按语义版本比(major.minor.patch)。`gh release` 默认取 latest 稳定版,不含 pre-release。
154
+ 3. **比较**:当前版本已知时,去掉 `v` 前缀按语义版本比较(major.minor.patch);未知时只展示最新稳定版,不判定是否已最新。`gh release` 默认取 latest 稳定版,不含 pre-release。
125
155
  4. **告知**:
126
156
  - 已最新 → 「已是最新版 vX.Y.Z」。
127
- - 有新版 → 列出 当前 vA → 最新 vB + [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)/[CHANGELOG](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/CHANGELOG.md)(能拿到 release notes 就附本次要点),再用 AskUserQuestion 问「现在更新吗?」:
128
- - 选更新 → 跑 `npx skills add zenstory-ai/oh-story-claudecode -y -g`(`-g` 全局,去掉则只更当前目录);完成后提示:已部署过的项目在项目根重跑 `/story-setup`(Codex 中用 `$story-setup`)同步 hooks/agents/references,并**新开一个会话**让 agents 重新注册。
129
- - 选先不 → 不动,告知随时可再来。
157
+ - 有新版或当前版本未知 → 展示已知版本与 [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)/[CHANGELOG](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/CHANGELOG.md),有 release notes 时附更新要点,再用宿主可用的提问方式问「现在更新吗?」。选先不 → 不动,告知随时可再来。
158
+ 5. **更新**(用户同意后):按本 skill 目录的位置判断安装方式。
159
+ - 在插件目录里(路径含 `plugins/`):Claude Code 跑 `claude plugin marketplace update oh-story-skills` 再跑 `claude plugin update oh-story@oh-story-skills`,重启后生效;ZCode 在 Plugin Management 里刷新市场后更新 `oh-story`。
160
+ - 用 `npx skills` 装在全局或当前目录:重跑 `npx skills add zenstory-ai/oh-story-claudecode -y -g`(原来装在当前目录的去掉 `-g`)。
161
+ - 其他安装方式(如 ClawHub):按原来的方式重装最新版。
162
+ - 本 skill 在写作项目里:先用上面对应的方式更新安装包,再用新装的包在项目根运行 `/story-setup`,项目里的副本才会换成新版;OpenClaw、Reasonix 和通用文件模式下项目里跑的就是这份旧副本,要用新包手动覆盖项目 `skills/` 下的 13 个 skill 目录。
163
+
164
+ 更新完提示:已部署过的项目在项目根重跑 `/story-setup` 同步 hooks、agents 和参考资料,然后**新开一个会话**,写作助手才会重新加载。
@@ -1 +1 @@
1
- 0.8.5
1
+ 0.9.0