@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
@@ -6,272 +6,90 @@ metadata: {"openclaw":{"requires":{"env":["GPT_IMAGE_API_KEY"],"bins":["curl","j
6
6
  ---
7
7
  # story-cover:小说封面生成
8
8
 
9
- 你是小说封面设计师。根据书名和题材,调用 GPT-Image-2 一次性生成包含书名和作者名的完整封面。
10
-
11
- **核心原则:封面是读者的第一印象,一眼传达题材和氛围。**
9
+ 根据书名和题材生成包含书名、笔名的完整封面,让读者一眼看出题材和氛围。
12
10
 
13
11
  ---
14
12
 
15
13
  ## 生成通路
16
14
 
17
- - **Codex 内置(优先)**:当前 Codex CLI 会话可调用 `$imagegen` / `image_gen` 时,直接生成并落盘;计入 Codex 通用用量,无需 `OPENAI_API_KEY` 或 `GPT_IMAGE_API_KEY`,也不运行 `curl`。`story-cover` 自行调用工具,不让用户另开命令。
18
- - **API 回退**:仅在会话没有内置工具或用户明确指定 API 时使用,需要 `GPT_IMAGE_API_KEY`。工具缺失不等于 Codex 订阅不支持生图;内置调用失败时先报告错误,不静默切换到可能收费的 API。
19
-
20
- ## 输出参数与 API 回退环境变量
21
-
22
- | 变量 | 必填 | 默认 | 说明 |
23
- |:-----|:----:|:-----|:-----|
24
- | `GPT_IMAGE_API_KEY` | API 回退必填 | — | OpenAI 或兼容代理的 API Key;Codex 内置通路不用 |
25
- | `GPT_IMAGE_BASE_URL` | | `https://api.openai.com/v1` | 兼容代理时改这个 |
26
- | `GPT_IMAGE_MODEL` | | `gpt-image-2` | 仅在测试新模型时覆盖 |
27
- | `GPT_IMAGE_SIZE` | | `1024x1536` | API 回退的目标比例提示(番茄 3:4→`768x1024`,默认 2:3→`1024x1536`)。官方 gpt-image-2 认任意 16 倍数尺寸(比例≤3:1),但**很多中转代理会忽略 size、按预设返回约 2:3**(已实测)——平台尺寸不靠它,由「导出平台上传尺寸」步骤兜底 |
28
- | `UPLOAD_SIZE` | | — | 平台固定上传像素(番茄 `600x800`);设置后由「导出平台上传尺寸」步骤居中裁剪+缩放出上传版(不变形、不依赖出图尺寸) |
29
- | `BOOK_DIR` | ✅ | — | 输出目录,建议 `./covers/<书名>` |
30
- | `REF_IMAGE` | | — | 参考图本地路径或 URL;内置通路先把图片载入会话,API 回退走 `images/edits` 图生图 |
31
-
32
- ---
15
+ - **Codex 内置(优先)**:当前 Codex CLI 会话可调用 `$imagegen` / `image_gen` 时,直接调用工具生成并保存,无需 `OPENAI_API_KEY` 或 `GPT_IMAGE_API_KEY`,不运行 `curl`。
16
+ - **API 回退**:仅在会话没有内置工具或用户明确指定 API 时使用,需要 `GPT_IMAGE_API_KEY`;环境变量和命令在 [references/api-fallback.md](references/api-fallback.md),走这条通路时再读。工具缺失不等于 Codex 订阅不支持生图;内置调用失败时先报告错误,不静默切换到可能收费的 API。
33
17
 
34
18
  ## 生成流程
35
19
 
36
20
  ### Step 1:收集信息
37
21
 
38
- 必填:书名、作者名(笔名)、目标平台、输出目录 `BOOK_DIR`(建议 `./covers/<书名>`;API 回退用环境变量,内置通路直接使用当前任务值)。问作者时说「封面存在哪?默认 `./covers/<书名>`」,不把变量名当问题抛给作者
39
- 选填:参考图 `REF_IMAGE`(本地路径或 URL,设置后切换到图生图)、风格偏好、尺寸
40
-
41
- > **书名和笔名是封面必需信息**:缺任一必须先用 AskUserQuestion 问用户补全,不得编造或留空。
22
+ 先找当前书:项目根 `.active-book` 指向项目内现有目录时就是当前书;否则从项目根往下最多 4 层找(跳过 `.` 开头的目录、`node_modules`、`拆文库/`、`对标/`),含 `追踪/`、`正文/`、`设定/` 子目录或 `正文.md`、`设定.md` 文件的是书目录,找到多本时请作者选择。有 `正文/` 或 `设定/` 子目录的是长篇,有 `正文.md` 或 `设定.md` 的是短篇。找到后读:
42
23
 
43
- **按目标平台定封面尺寸**:番茄上传 600×800 是 **3:4**(不是 2:3),出图比例不对、平台二次裁剪就会切掉书名/笔名。
24
+ - 长篇:`设定/题材定位.md`「基本信息」的书名、题材类型、目标平台、核心梗;
25
+ - 短篇:`设定.md`「基本信息」的标题、目标平台、目标情绪,以及「一句话梗概」「题材招式」。
44
26
 
45
- | 平台 | 上传尺寸 | 比例 | 生成 `GPT_IMAGE_SIZE`(尽量) |
46
- |:-----|:--------|:-----|:-------------------|
47
- | 番茄小说 | 600×800 | 3:4 | `768x1024` |
48
- | 其他平台(默认竖版) | 按平台规格 | 2:3 | `1024x1536` |
27
+ 已有字段不再问;笔名不在这些文件里,每次都要问。没有书目录或缺项时,用宿主可用的提问方式一次问齐:书名、笔名、目标平台。
49
28
 
50
- 内置通路把目标比例写进提示词;API 回退再 `export GPT_IMAGE_SIZE`(很多代理会忽略、返回约 2:3)。平台有固定上传像素时设置 `UPLOAD_SIZE`(番茄 `600x800`)。**平台尺寸最终由「导出平台上传尺寸」步骤居中裁剪+缩放保证,不依赖实际出图尺寸。** 平台与题材风格见 [references/cover-styles.md](references/cover-styles.md)。
29
+ > **书名和笔名是封面必需信息**:缺任一时先请作者补全,不得编造或留空。
51
30
 
52
- ### Step 2:题材判定
53
-
54
- 扫描书名(必要时简介)中的关键词,对照 [references/cover-styles.md](references/cover-styles.md) 的「题材推断规则」表选定题材。
55
-
56
- - 单题材命中 → 直接采用
57
- - 多题材命中 → 按优先级取一:仙侠 > 西幻 > 古言 > 现言 > 都市 > 悬疑 > 科幻 > 历史 > 灵异 > 轻小说
58
- - 零命中 → 默认 `都市`
59
-
60
- ### Step 3:构建提示词
31
+ 选填:参考图 `REF_IMAGE`(本地路径或 URL)、风格偏好;参考图的用法见 Step 4。
61
32
 
62
- 提示词 = **文字层** + **风格层** + **画面层**,全部用英文编写。
33
+ **保存位置**:有书目录时存到 `{书目录}/封面/`,不用问;没有书目录时用 `./covers/{书名}/封面/`。下文 `BOOK_DIR` 指 `封面/` 的上一层。
63
34
 
64
- #### 文字层:书名 + 作者名字体设计
35
+ **按目标平台定比例和上传尺寸**:番茄上传 600×800,比例 **3:4**,出图比例不符时平台再次裁剪可能切掉书名或笔名;其他平台按竖版 2:3 交付,作者给出平台上传像素时按该尺寸导出。各平台的画风关键词见 [references/cover-styles.md](references/cover-styles.md)「平台风格」。
65
36
 
66
- 在提示词中直接包含中文书名和作者名,GPT-Image-2 可直接渲染。**重点描述字体风格**:
67
-
68
- ```
69
- Title text '书名' at top center in [书名字体风格].
70
- Author name '作者名' at bottom center in [作者名字体风格].
71
- ```
72
-
73
- #### 书名字体风格
74
-
75
- | 题材 | 描述关键词 |
76
- |:-----|:-----------|
77
- | 玄幻/仙侠 | `bold golden brush calligraphy with metallic glow and sharp strokes` |
78
- | 都市 | `modern bold sans-serif with metallic silver finish` |
79
- | 古言/宫斗 | `elegant golden traditional Kai script with ornate decoration` |
80
- | 现言/甜宠 | `soft rounded handwritten style in white with pink glow` |
81
- | 悬疑/推理 | `distorted bold cracked letters in blood red` |
82
- | 科幻/末世 | `neon glowing futuristic font in electric blue` |
83
- | 西幻 | `metallic embossed fantasy lettering with glow effect` |
84
- | 历史/军事 | `heavy stone-carved seal script in deep red` |
85
- | 灵异/恐怖 | `eerie dripping handwritten font in sickly green` |
86
- | 轻小说 | `colorful cartoon outlined bubbly font` |
87
-
88
- #### 作者名字体风格(重点:作者名必须精心设计,不能只是"小字")
89
-
90
- 作者名虽小,但是封面专业感的关键。必须指定:**字体 + 颜色 + 装饰元素**,让作者名与书名风格呼应但不抢焦点。
37
+ ### Step 2:题材判定
91
38
 
92
- | 题材 | 作者名风格提示词 |
93
- |:-----|:----------------|
94
- | 玄幻/仙侠 | `small refined white serif text with faint golden glow, flanked by delicate cloud-scroll ornaments on both sides, resting on a thin horizontal gold line` |
95
- | 都市 | `small clean white modern text with subtle drop shadow, positioned above a thin silver horizontal divider line` |
96
- | 古言/宫斗 | `small elegant dark red traditional text inside a thin golden rectangular border frame with corner decorations` |
97
- | 现言/甜宠 | `small soft pink-white handwritten text with a tiny heart motif on the left side, light sparkle effect` |
98
- | 悬疑/推理 | `small pale grey text with slight blur effect, almost hidden in the shadows, a thin cracked line underneath` |
99
- | 科幻/末世 | `small crisp white monospace text with subtle cyan scanline overlay, flanked by small geometric brackets` |
100
- | 西幻 | `small bronze medieval script text with aged parchment texture, enclosed in a small decorative shield or banner shape` |
101
- | 历史/军事 | `small dignified white Song typeface text above a double horizontal line in dark red` |
102
- | 灵异/恐怖 | `small faded grey-green text slightly tilted, with a thin dripping ink line above` |
103
- | 轻小说 | `small playful rounded white text with pastel color outline, tiny star decorations on both sides` |
39
+ 在 [references/cover-styles.md](references/cover-styles.md) 的「风格库」里选一个题材:
104
40
 
105
- **作者名通用规则**:
106
- - 大小:`small`(不能太大抢书名焦点,也不能太小看不清)
107
- - 位置:`at bottom center`,与画面底部保持适当间距
108
- - 必须有装饰元素:线条/边框/小图标/光效中至少一种
109
- - 颜色与背景形成对比但不刺眼
41
+ 1. 有「题材类型」(长篇)或梗概、题材招式(短篇)时,按内容选风格库中最接近的一节。
42
+ 2. 没有,或对不上风格库任何一节(如年代、种田、无限流、电竞)时,用书名(必要时简介)对照「题材推断规则」:只命中一个题材就用它;命中多个按该表下方的优先级取一;都没命中先用「都市」。
43
+ 3. 第 2 条推断出的题材,在 Step 4 给作者看方案时一并说出来,作者可以改。
110
44
 
111
- #### 风格层:平台风格
45
+ ### Step 3:构建提示词
112
46
 
113
- 平台风格的描述关键词统一来自 [references/cover-styles.md](references/cover-styles.md) 的「平台风格」节,按目标平台直接取对应关键词串使用,不在本文件维护副本以免与参考文件漂移。
47
+ 提示词 = **文字层** + **风格层** + **画面层**。设计指令用英文,书名和笔名保留作者提供的原文。所选题材的字体、标签、色彩、人物、背景、光效都在「风格库」同一节里查。
114
48
 
115
- #### 画面层:题材 + 构图
49
+ **文字层**:GPT-Image-2 可直接渲染中文。书名在上方居中,用该题材的书名字体;笔名在下方居中,用该题材的笔名字体。笔名要和书名风格呼应、清晰可读而不抢焦点:
116
50
 
117
- 从 [references/cover-styles.md](references/cover-styles.md) 读取题材对应的风格标签、色彩、人物、背景描述。
51
+ - 大小用 `small`;位置 `at bottom center`,与画面底部留出间距;
52
+ - 必须带一种装饰:线条、边框、小图标或光效;
53
+ - 颜色与背景形成对比但不刺眼。
118
54
 
119
- 构图变体(首次输出 2-3 个方案):
55
+ **风格层**:目标平台在「平台风格」表里有对应时,取它的关键词串;没有对应(如黑岩、红果、小程序)时省掉这一层,只靠题材风格。
120
56
 
121
- | 方案 | 构图 | 适合题材 |
122
- |:-----|:-----|:---------|
123
- | A | 人物特写 + 场景 | 全题材通用 |
124
- | B | 全身像 + 动态姿势 | 玄幻、都市、西幻 |
125
- | C | 纯场景/氛围图 | 悬疑、科幻、历史 |
57
+ **画面层**:题材的风格标签、人物、背景、色彩、光效,加上一种构图(见「构图变体」)。
126
58
 
127
- #### 完整提示词模板
59
+ 完整提示词模板(唯一一份,示例和改版都按它拼):
128
60
 
129
61
  ```
130
62
  Chinese web novel cover design, [平台风格].
131
- Title text '{书名}' at top center in [书名字体风格].
132
- Author name '{作者名}' at bottom center in [作者名字体风格 — 从上表选择].
133
- [题材风格标签]. [人物描述]. [背景描述].
63
+ Title text '{书名}' at top center in [书名字体].
64
+ Author name '{笔名}' at bottom center in [笔名字体].
65
+ [题材风格标签]. [构图关键词]. [人物描述]. [背景描述].
134
66
  [色彩指令]. [光效指令].
135
67
  Professional book cover, high detail digital painting, portrait [平台比例:番茄=3:4,默认=2:3] ratio, keep title and author name inside the central safe area away from edges (inner ~85%), no watermark
136
68
  ```
137
69
 
138
- #### 提示词技巧(实测验证)
70
+ 写法要点:
71
+ - 人物描述写清服饰、姿态、发型、表情、道具,不要只写 `a man`;
72
+ - 背景分三层:前景人物或道具,中景场景,远景氛围;
73
+ - 光效写清光源方向和颜色,如 `dramatic golden light from above`;
74
+ - 用 `digital painting style`,不用 `photo`,避免真人照片感。
139
75
 
140
- - 人物描述越具体越好:服饰、姿态、发型、表情、道具每个维度都指定
141
- - 背景分层:前景(人物)→ 中景(场景)→ 远景(氛围)
142
- - 光效是指定光源方向 + 颜色(如 `dramatic golden light from above`)
143
- - 用 `digital painting style` 而非 `photo`,避免真人照片感
76
+ ### Step 4:选方案并生成
144
77
 
145
- ### Step 4:生成并保存
78
+ 先从「构图变体」里挑 2-3 种适合本题材的构图,每种用一句话描述画面(构图、主色、书名字体),连同 Step 2 定的题材一起给作者挑。作者选定后只生成那一张;作者说「都出」时每个方案单独生成一次。
146
79
 
147
80
  #### Codex 内置 ImageGen(优先)
148
81
 
149
82
  1. 用 Step 3 的完整提示词调用 `image_gen`。比例和安全区写进提示词,不传 `GPT_IMAGE_MODEL`、`GPT_IMAGE_SIZE`、`response_format` 等 API 参数。
150
83
  2. 有 `REF_IMAGE` 时,本地文件先用图片查看工具载入会话;URL 先下载再载入。说明它是编辑目标还是风格参考,并列出必须保持的内容。
151
- 3. 每个构图方案单独调用一次。先创建 `BOOK_DIR/封面/`,再把工具返回的图片复制为 `封面_vN.png`,`N` 自增且不覆盖旧版;保留 `$CODEX_HOME/generated_images/` 原文件,同时保存同名 `.prompt.txt`,有参考图再保存 `.ref.txt`。确认图片可读,并把原图绝对路径交给 Step 5。
84
+ 3. 先创建 `BOOK_DIR/封面/`,再把工具返回的图片复制为 `封面_vN.png`,`N` 自增且不覆盖旧版;保留 `$CODEX_HOME/generated_images/` 原文件,同时保存同名 `.prompt.txt`,有参考图再保存 `.ref.txt`。确认图片可读,并把原图绝对路径交给 Step 5。
152
85
 
153
86
  #### API 回退
154
87
 
155
- `gpt-image-2` 始终返回 base64,请求体不要带 `response_format`(旧 DALL-E 参数,gpt-image 系列不支持)。`$PROMPT` 为「构建提示词」步骤拼出的完整提示词。
156
-
157
- 两种调用方式二选一:未设置 `REF_IMAGE` → 走「文生图」;设置了 → 走「图生图」。
158
-
159
- #### 文生图(默认)
160
-
161
- ```bash
162
- set -euo pipefail
163
- : "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
164
- : "${PROMPT:?请先 export PROMPT=构建提示词步骤拼好的完整提示词}"
165
- BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
166
- MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
167
- SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
168
- BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=./covers/<书名>}"
169
-
170
- mkdir -p "$BOOK_DIR/封面"
171
-
172
- # 自增版本号,避免覆盖之前生成的封面
173
- i=1
174
- while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
175
- OUT="$BOOK_DIR/封面/封面_v${i}.png"
176
- RESP=$(mktemp)
177
- trap 'rm -f "$RESP"' EXIT
178
-
179
- # 用 jq 拼 JSON 体,避免 PROMPT 里的引号/换行/中文把 shell 字符串撑破
180
- BODY=$(jq -n \
181
- --arg m "$MODEL" \
182
- --arg p "$PROMPT" \
183
- --arg s "$SIZE" \
184
- '{model:$m, prompt:$p, size:$s}')
185
-
186
- curl -fsS --max-time 180 --retry 2 --retry-delay 5 \
187
- "$BASE_URL/images/generations" \
188
- -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
189
- -H "Content-Type: application/json" \
190
- -d "$BODY" > "$RESP"
191
-
192
- # API 出错时早退,避免把 error JSON 当成 base64 写成损坏 PNG
193
- if jq -e '.error' "$RESP" >/dev/null 2>&1; then
194
- echo "API error:" >&2
195
- jq '.error' "$RESP" >&2
196
- exit 1
197
- fi
198
-
199
- # `// empty` 让缺失字段输出空串而非 "null",配合下面的 -s 检查避免写出 3 字节假 PNG
200
- jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
201
- [ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }
202
-
203
- # 落地提示词副本,方便迭代时基于上一次微调
204
- printf '%s\n' "$PROMPT" > "${OUT%.png}.prompt.txt"
205
-
206
- file "$OUT"
207
- ls -lt "$BOOK_DIR/封面/"
208
- ```
209
-
210
- #### 图生图(提供参考图时)
211
-
212
- `/v1/images/edits` 走 `multipart/form-data`,**不能** 用 `Content-Type: application/json`。文本字段用 `--form-string`(避免 `@` 被误判为文件引用),图片字段用 `-F image=@path`。
213
-
214
- ```bash
215
- set -euo pipefail
216
- : "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
217
- : "${PROMPT:?请先 export PROMPT=构建提示词步骤拼好的完整提示词}"
218
- BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
219
- MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
220
- SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
221
- BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=./covers/<书名>}"
222
- REF_IMAGE="${REF_IMAGE:?请先 export REF_IMAGE=本地路径或 URL}"
223
-
224
- mkdir -p "$BOOK_DIR/封面"
225
-
226
- # 自增版本号
227
- i=1
228
- while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
229
- OUT="$BOOK_DIR/封面/封面_v${i}.png"
230
- RESP=$(mktemp)
231
- REF_TMP=""
232
- trap '[ -n "$REF_TMP" ] && rm -f "$REF_TMP"; rm -f "$RESP"' EXIT
233
-
234
- # URL 先下载到临时文件,本地路径直接用。用裸 mktemp 以保证 macOS/Linux 行为一致。
235
- case "$REF_IMAGE" in
236
- http://*|https://*)
237
- REF_TMP=$(mktemp)
238
- curl -fsSL --max-time 60 -o "$REF_TMP" "$REF_IMAGE"
239
- REF_LOCAL="$REF_TMP"
240
- ;;
241
- *)
242
- [ -f "$REF_IMAGE" ] || { echo "参考图不存在: $REF_IMAGE" >&2; exit 1; }
243
- REF_LOCAL="$REF_IMAGE"
244
- ;;
245
- esac
246
-
247
- curl -fsS --max-time 240 --retry 2 --retry-delay 5 \
248
- "$BASE_URL/images/edits" \
249
- -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
250
- --form-string "model=$MODEL" \
251
- --form-string "size=$SIZE" \
252
- --form-string "prompt=$PROMPT" \
253
- -F "image=@$REF_LOCAL" > "$RESP"
254
-
255
- if jq -e '.error' "$RESP" >/dev/null 2>&1; then
256
- echo "API error:" >&2
257
- jq '.error' "$RESP" >&2
258
- exit 1
259
- fi
260
-
261
- # `// empty` 让缺失字段输出空串而非 "null",配合 -s 检查避免写出 3 字节假 PNG
262
- jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
263
- [ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }
264
-
265
- printf '%s\n' "$PROMPT" > "${OUT%.png}.prompt.txt"
266
- printf '%s\n' "$REF_IMAGE" > "${OUT%.png}.ref.txt"
267
-
268
- file "$OUT"
269
- ls -lt "$BOOK_DIR/封面/"
270
- ```
88
+ 读 [references/api-fallback.md](references/api-fallback.md),按其中的环境变量和命令生成;没有参考图走文生图,有参考图走图生图。生成后把原图绝对路径交给 Step 5。
271
89
 
272
90
  ### Step 5:导出平台上传尺寸(平台有固定像素时)
273
91
 
274
- 平台有固定上传像素(番茄 600×800)时,把原图**居中裁剪+缩放**成上传尺寸——不论出图是 2:3 还是 3:4 都裁成平台精确像素,不变形,避免平台再裁切掉书名/笔名。原图保留、另存 `_上传` 版;`SRC` 和 `TARGET` 直接使用前序步骤的任务值,不依赖跨 shell 的临时变量:
92
+ 平台有固定上传像素(番茄 600×800)时,把原图**居中裁剪+缩放**到精确尺寸,保持画面比例,原图保留并另存 `_上传` 版。`SRC` 填 Step 4 的原图绝对路径,`TARGET` 填 Step 1 的上传尺寸,不依赖上一段 shell 的临时变量:
275
93
 
276
94
  ```bash
277
95
  SRC='<Step 4 生成的原图绝对路径>'
@@ -297,19 +115,19 @@ if [ -n "$TARGET" ] && [ -f "$SRC" ]; then
297
115
  fi
298
116
  ```
299
117
 
300
- > 书名/笔名已在提示词里留中心安全区,居中裁剪不会切到。
118
+ > 提示词中的中心安全区用于减少裁切风险;导出后仍按 Step 6 检查书名和笔名是否完整。
301
119
 
302
120
  ### Step 6:质量检查 + 迭代
303
121
 
304
122
  | 检查项 | 标准 |
305
123
  |:-------|:-----|
306
- | 文字渲染 | 书名清晰可辨,字体风格匹配题材 |
307
- | 题材匹配 | 视觉风格与书名题材一致 |
124
+ | 文字渲染 | 书名、笔名清晰可辨,字体风格匹配题材 |
125
+ | 题材匹配 | 视觉风格与本书题材一致 |
308
126
  | 构图合理 | 主体突出,文字不遮挡核心画面 |
309
- | 平台适配 | 符合目标平台的封面风格调性 |
127
+ | 平台适配 | 符合目标平台的封面风格 |
310
128
  | 平台尺寸 | 比例与平台一致;缩放到上传尺寸后书名、笔名完整可见、未被裁切 |
311
129
 
312
- 不满意时调整方向:更换构图、调整色调、换字体风格、换平台风格。
130
+ 未达标或作者希望调整时,可更换构图、色调、字体或平台风格,改完重新生成一张。
313
131
 
314
132
  交付时这样告诉作者;命令、环境变量和接口报错不贴给作者,失败时用一句话说原因和办法(如「生图接口没配好,需要先设置 API Key」):
315
133
 
@@ -324,13 +142,7 @@ fi
324
142
 
325
143
  ## 参考资料
326
144
 
327
- | 文件 | 何时加载 |
145
+ | 文件 | 何时读 |
328
146
  |:-----|:---------|
329
- | [references/cover-styles.md](references/cover-styles.md) | 题材→视觉风格映射、平台风格详情、提示词模板 |
330
-
331
- ---
332
-
333
- ## 语言
334
-
335
- - 跟随用户的语言回复,用户用什么语言就用什么语言回复
336
- - 中文回复遵循《中文文案排版指北》
147
+ | [references/cover-styles.md](references/cover-styles.md) | Step 1 定平台风格、Step 2 定题材、Step 3 查字体和画面时 |
148
+ | [references/api-fallback.md](references/api-fallback.md) | Step 4 走 API 回退时 |
@@ -0,0 +1,128 @@
1
+ # API 回退生图
2
+
3
+ 只在会话没有内置生图工具或作者明确要求走 API 时使用。`gpt-image-2` 返回 base64,请求体不带 `response_format`。无参考图走文生图,有参考图走图生图。
4
+
5
+ ## 环境变量
6
+
7
+ | 变量 | 必填 | 默认 | 说明 |
8
+ |:-----|:----:|:-----|:-----|
9
+ | `GPT_IMAGE_API_KEY` | 是 | — | OpenAI 或兼容代理的 API Key |
10
+ | `GPT_IMAGE_BASE_URL` | | `https://api.openai.com/v1` | 用兼容代理时改这个 |
11
+ | `GPT_IMAGE_MODEL` | | `gpt-image-2` | 只在测试新模型时覆盖 |
12
+ | `GPT_IMAGE_SIZE` | | `1024x1536` | 请求尺寸:番茄 3:4 用 `768x1024`,默认 2:3 用 `1024x1536`。实际尺寸以出图结果为准,上传像素由入口的导出步骤保证 |
13
+ | `BOOK_DIR` | 是 | — | `封面/` 的上一层,按入口「收集信息」定的保存位置 |
14
+ | `PROMPT` | 是 | — | 入口按模板拼好的完整提示词 |
15
+ | `REF_IMAGE` | | — | 参考图本地路径或 URL;设置后走图生图 |
16
+
17
+ ## 文生图(没有参考图)
18
+
19
+ ```bash
20
+ set -euo pipefail
21
+ : "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
22
+ : "${PROMPT:?请先 export PROMPT=构建提示词步骤拼好的完整提示词}"
23
+ BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
24
+ MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
25
+ SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
26
+ BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=书目录或 ./covers/<书名>}"
27
+
28
+ mkdir -p "$BOOK_DIR/封面"
29
+
30
+ # 自增版本号,避免覆盖之前生成的封面
31
+ i=1
32
+ while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
33
+ OUT="$BOOK_DIR/封面/封面_v${i}.png"
34
+ RESP=$(mktemp)
35
+ trap 'rm -f "$RESP"' EXIT
36
+
37
+ # 用 jq 拼 JSON 体,避免 PROMPT 里的引号/换行/中文把 shell 字符串撑破
38
+ BODY=$(jq -n \
39
+ --arg m "$MODEL" \
40
+ --arg p "$PROMPT" \
41
+ --arg s "$SIZE" \
42
+ '{model:$m, prompt:$p, size:$s}')
43
+
44
+ curl -fsS --max-time 180 --retry 2 --retry-delay 5 \
45
+ "$BASE_URL/images/generations" \
46
+ -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
47
+ -H "Content-Type: application/json" \
48
+ -d "$BODY" > "$RESP"
49
+
50
+ # API 出错时早退,避免把 error JSON 当成 base64 写成损坏 PNG
51
+ if jq -e '.error' "$RESP" >/dev/null 2>&1; then
52
+ echo "API error:" >&2
53
+ jq '.error' "$RESP" >&2
54
+ exit 1
55
+ fi
56
+
57
+ # `// empty` 让缺失字段输出空串而非 "null",配合下面的 -s 检查避免写出 3 字节假 PNG
58
+ jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
59
+ [ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }
60
+
61
+ # 落地提示词副本,方便迭代时基于上一次微调
62
+ printf '%s\n' "$PROMPT" > "${OUT%.png}.prompt.txt"
63
+
64
+ file "$OUT"
65
+ ls -lt "$BOOK_DIR/封面/"
66
+ ```
67
+
68
+ ## 图生图(有参考图)
69
+
70
+ 下面的 `/v1/images/edits` 命令通过 `multipart/form-data` 上传本地图片,不加 `Content-Type: application/json`。文本字段用 `--form-string`,图片字段用 `-F image=@path`。
71
+
72
+ ```bash
73
+ set -euo pipefail
74
+ : "${GPT_IMAGE_API_KEY:?请设置 export GPT_IMAGE_API_KEY=你的key}"
75
+ : "${PROMPT:?请先 export PROMPT=构建提示词步骤拼好的完整提示词}"
76
+ BASE_URL="${GPT_IMAGE_BASE_URL:-https://api.openai.com/v1}"
77
+ MODEL="${GPT_IMAGE_MODEL:-gpt-image-2}"
78
+ SIZE="${GPT_IMAGE_SIZE:-1024x1536}"
79
+ BOOK_DIR="${BOOK_DIR:?请先 export BOOK_DIR=书目录或 ./covers/<书名>}"
80
+ REF_IMAGE="${REF_IMAGE:?请先 export REF_IMAGE=本地路径或 URL}"
81
+
82
+ mkdir -p "$BOOK_DIR/封面"
83
+
84
+ # 自增版本号
85
+ i=1
86
+ while [ -f "$BOOK_DIR/封面/封面_v${i}.png" ]; do i=$((i+1)); done
87
+ OUT="$BOOK_DIR/封面/封面_v${i}.png"
88
+ RESP=$(mktemp)
89
+ REF_TMP=""
90
+ trap '[ -n "$REF_TMP" ] && rm -f "$REF_TMP"; rm -f "$RESP"' EXIT
91
+
92
+ # URL 先下载到临时文件,本地路径直接用。用裸 mktemp 以保证 macOS/Linux 行为一致。
93
+ case "$REF_IMAGE" in
94
+ http://*|https://*)
95
+ REF_TMP=$(mktemp)
96
+ curl -fsSL --max-time 60 -o "$REF_TMP" "$REF_IMAGE"
97
+ REF_LOCAL="$REF_TMP"
98
+ ;;
99
+ *)
100
+ [ -f "$REF_IMAGE" ] || { echo "参考图不存在: $REF_IMAGE" >&2; exit 1; }
101
+ REF_LOCAL="$REF_IMAGE"
102
+ ;;
103
+ esac
104
+
105
+ curl -fsS --max-time 240 --retry 2 --retry-delay 5 \
106
+ "$BASE_URL/images/edits" \
107
+ -H "Authorization: Bearer $GPT_IMAGE_API_KEY" \
108
+ --form-string "model=$MODEL" \
109
+ --form-string "size=$SIZE" \
110
+ --form-string "prompt=$PROMPT" \
111
+ -F "image=@$REF_LOCAL" > "$RESP"
112
+
113
+ if jq -e '.error' "$RESP" >/dev/null 2>&1; then
114
+ echo "API error:" >&2
115
+ jq '.error' "$RESP" >&2
116
+ exit 1
117
+ fi
118
+
119
+ # `// empty` 让缺失字段输出空串而非 "null",配合 -s 检查避免写出 3 字节假 PNG
120
+ jq -er '.data[0].b64_json // empty' "$RESP" | base64 --decode > "$OUT"
121
+ [ -s "$OUT" ] || { echo "empty or malformed output: $OUT" >&2; head -c 300 "$RESP" >&2; exit 1; }
122
+
123
+ printf '%s\n' "$PROMPT" > "${OUT%.png}.prompt.txt"
124
+ printf '%s\n' "$REF_IMAGE" > "${OUT%.png}.ref.txt"
125
+
126
+ file "$OUT"
127
+ ls -lt "$BOOK_DIR/封面/"
128
+ ```