@oh-story/dsh 0.1.4 → 0.1.5

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 (479) hide show
  1. package/README.md +56 -12
  2. package/lib/client.js +2692 -268
  3. package/lib/client.js.map +4 -4
  4. package/lib/drama/manifest.json +136 -101
  5. package/lib/drama/skills/short-drama/SKILL.md +61 -1
  6. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +7 -4
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +133 -8
  8. package/lib/drama/skills/short-drama/references/creator-workflow.md +38 -2
  9. package/lib/drama/skills/short-drama/references/knowhow-index.md +3 -0
  10. package/lib/drama/skills/short-drama/references/reference-roles.md +10 -7
  11. package/lib/drama/skills/short-drama/references/runtime-preflight.md +3 -0
  12. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
  13. package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
  14. package/lib/drama/skills/short-drama-assets/SKILL.md +13 -3
  15. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
  16. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +2 -1
  17. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +19 -0
  18. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
  19. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
  20. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +6 -2
  21. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +4 -3
  22. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +1 -1
  23. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +1 -1
  24. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +3 -1
  25. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
  26. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
  27. package/lib/drama/skills/short-drama-produce/SKILL.md +46 -10
  28. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
  29. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
  30. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
  31. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
  32. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
  33. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
  34. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +12 -0
  35. package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
  36. package/lib/drama/skills/short-drama-storyboard/SKILL.md +76 -7
  37. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
  38. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +6 -2
  39. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
  40. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +5 -2
  41. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +16 -0
  42. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +8 -3
  43. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
  44. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +81 -13
  45. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
  46. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
  47. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +21 -1
  48. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
  49. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -6
  50. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +11 -7
  51. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
  52. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
  53. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +5 -2
  54. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
  55. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
  56. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
  57. package/lib/drama/skills/short-drama-write/SKILL.md +3 -2
  58. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
  59. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
  60. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
  61. package/lib/index.js +865 -33
  62. package/lib/index.js.map +4 -4
  63. package/lib/novel-to-game/LICENSE +21 -0
  64. package/lib/novel-to-game/README.md +180 -0
  65. package/lib/novel-to-game/README_ZH.md +178 -0
  66. package/lib/novel-to-game/VERSION +1 -0
  67. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
  68. package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
  69. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
  70. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  71. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  72. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  73. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  74. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  75. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  76. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  77. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  78. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  79. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  80. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  81. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  82. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  83. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  84. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  85. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  86. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  87. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  88. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  89. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  90. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  91. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  92. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  93. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  94. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  95. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  96. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  97. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  98. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  99. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  100. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  101. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  102. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  103. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  104. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  105. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  106. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  107. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  108. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  109. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  110. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  111. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
  112. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
  113. package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
  114. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
  115. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
  116. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
  117. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
  118. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
  119. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
  120. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
  121. package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
  122. package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
  123. package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
  124. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
  125. package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
  126. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
  127. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
  128. package/lib/novel-to-game/manifest.json +508 -0
  129. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
  130. package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
  131. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
  132. package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
  133. package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
  134. package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
  135. package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
  136. package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
  137. package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
  138. package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
  139. package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
  140. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
  141. package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
  142. package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
  143. package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
  144. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
  145. package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
  146. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
  147. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
  148. package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
  149. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
  150. package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
  151. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
  152. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
  153. package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
  154. package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
  155. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
  156. package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
  157. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
  158. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
  159. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
  160. package/lib/oh-story/manifest.json +415 -305
  161. package/lib/oh-story/roles/consistency-checker.md +1 -1
  162. package/lib/oh-story/roles/narrative-writer.md +32 -33
  163. package/lib/oh-story/roles/story-architect.md +16 -26
  164. package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
  165. package/lib/oh-story/skills/story/SKILL.md +16 -9
  166. package/lib/oh-story/skills/story/VERSION +1 -1
  167. package/lib/oh-story/skills/story/references/author-memory.md +163 -0
  168. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
  169. package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
  170. package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
  171. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
  172. package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
  173. package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
  174. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
  175. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
  176. package/lib/oh-story/skills/story-import/SKILL.md +19 -10
  177. package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
  178. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
  179. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
  180. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
  181. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
  182. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
  183. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
  184. package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
  185. package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
  186. package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
  187. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
  188. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
  189. package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
  190. package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
  191. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
  192. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
  193. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
  194. package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
  195. package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
  196. package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
  197. package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
  198. package/lib/oh-story/skills/{story-setup/references/agent-references/genre-core-mechanics.md → story-long-write/references/long-genre-mechanics.md} +1 -1
  199. package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-long-write/references/long-reversal.md} +18 -32
  200. package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
  201. package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
  202. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
  203. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  204. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
  205. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
  206. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +4 -4
  207. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
  208. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +14 -14
  209. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
  210. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
  211. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
  212. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
  213. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
  214. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
  215. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
  216. package/lib/oh-story/skills/story-review/SKILL.md +26 -17
  217. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
  218. package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
  219. package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
  220. package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
  221. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
  222. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
  223. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
  224. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
  225. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
  226. package/lib/oh-story/skills/story-setup/SKILL.md +74 -33
  227. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
  228. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
  229. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
  230. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
  231. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
  232. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
  233. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +1 -1
  234. package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
  235. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
  236. package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
  237. package/lib/oh-story/skills/{story-long-write/references/genre-core-mechanics.md → story-setup/references/agent-references/long-genre-mechanics.md} +1 -1
  238. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
  239. package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → long-reversal.md} +18 -32
  240. package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
  241. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
  242. package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
  243. package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
  244. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
  245. package/lib/oh-story/skills/{story-long-write/references/reversal-toolkit.md → story-setup/references/agent-references/short-reversal.md} +29 -23
  246. package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
  247. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  248. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +55 -55
  249. package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
  250. package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
  251. package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
  252. package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
  253. package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
  254. package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
  255. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
  256. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
  257. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
  258. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
  259. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
  260. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
  261. package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
  262. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
  263. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
  264. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
  265. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
  266. package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
  267. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
  268. package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
  269. package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
  270. package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
  271. package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
  272. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
  273. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
  274. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
  275. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
  276. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
  277. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
  278. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
  279. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
  280. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
  281. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
  282. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
  283. 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 +3 -3
  284. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
  285. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
  286. package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
  287. package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
  288. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
  289. package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
  290. package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
  291. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
  292. package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
  293. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
  294. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
  295. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
  296. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
  297. package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
  298. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
  299. package/lib/types/client/drama-production-view.d.ts +34 -0
  300. package/lib/types/client/drama-production-view.d.ts.map +1 -0
  301. package/lib/types/client/drama-production.d.ts +92 -0
  302. package/lib/types/client/drama-production.d.ts.map +1 -0
  303. package/lib/types/client/file-activity.d.ts +4 -2
  304. package/lib/types/client/file-activity.d.ts.map +1 -1
  305. package/lib/types/client/index.d.ts +1 -1
  306. package/lib/types/client/index.d.ts.map +1 -1
  307. package/lib/types/client/production-intents.d.ts +9 -0
  308. package/lib/types/client/production-intents.d.ts.map +1 -0
  309. package/lib/types/client/production-prompts.d.ts +9 -0
  310. package/lib/types/client/production-prompts.d.ts.map +1 -0
  311. package/lib/types/client/production-runtime.d.ts +58 -0
  312. package/lib/types/client/production-runtime.d.ts.map +1 -0
  313. package/lib/types/client/video-studio.d.ts +41 -0
  314. package/lib/types/client/video-studio.d.ts.map +1 -0
  315. package/lib/types/client/workbench-ui.d.ts +5 -0
  316. package/lib/types/client/workbench-ui.d.ts.map +1 -0
  317. package/lib/types/game-verification.d.ts +16 -0
  318. package/lib/types/game-verification.d.ts.map +1 -0
  319. package/lib/types/index.d.ts +3 -1
  320. package/lib/types/index.d.ts.map +1 -1
  321. package/lib/types/production-intent.d.ts +21 -0
  322. package/lib/types/production-intent.d.ts.map +1 -0
  323. package/lib/types/production-tool.d.ts +5 -0
  324. package/lib/types/production-tool.d.ts.map +1 -0
  325. package/lib/types/role-tool.d.ts.map +1 -1
  326. package/lib/types/skill-provider.d.ts +7 -0
  327. package/lib/types/skill-provider.d.ts.map +1 -1
  328. package/lib/types/video-project.d.ts +42 -0
  329. package/lib/types/video-project.d.ts.map +1 -0
  330. package/lib/types/workspace-request-trust.d.ts +6 -0
  331. package/lib/types/workspace-request-trust.d.ts.map +1 -1
  332. package/lib/types/workspace-route.d.ts +20 -0
  333. package/lib/types/workspace-route.d.ts.map +1 -1
  334. package/lib/video-recap/CHANGELOG.md +282 -0
  335. package/lib/video-recap/LICENSE +21 -0
  336. package/lib/video-recap/README.en.md +257 -0
  337. package/lib/video-recap/README.md +255 -0
  338. package/lib/video-recap/manifest.json +684 -0
  339. package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
  340. package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
  341. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
  342. package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
  343. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
  344. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
  345. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
  346. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
  347. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
  348. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
  349. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
  350. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
  351. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
  352. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
  353. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
  354. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
  355. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
  356. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
  357. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
  358. package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
  359. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
  360. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
  361. package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
  362. package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
  363. package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
  364. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
  365. package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
  366. package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
  367. package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
  368. package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
  369. package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
  370. package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
  371. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
  372. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
  373. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
  374. package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
  375. package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
  376. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
  377. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
  378. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
  379. package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
  380. package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
  381. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
  382. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
  383. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
  384. package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
  385. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
  386. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
  387. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
  388. package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
  389. package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
  390. package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
  391. package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
  392. package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
  393. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
  394. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
  395. package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
  396. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
  397. package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
  398. package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
  399. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
  400. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
  401. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
  402. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
  403. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
  404. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
  405. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
  406. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
  407. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
  408. package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
  409. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
  410. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
  411. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
  412. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
  413. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
  414. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
  415. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
  416. package/lib/video-recap/skills/video-script/SKILL.md +248 -0
  417. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
  418. package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
  419. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
  420. package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
  421. package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
  422. package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
  423. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
  424. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
  425. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
  426. package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
  427. package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
  428. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
  429. package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
  430. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
  431. package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
  432. package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
  433. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
  434. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
  435. package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
  436. package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
  437. package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
  438. package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
  439. package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
  440. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
  441. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
  442. package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
  443. package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
  444. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
  445. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
  446. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
  447. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
  448. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
  449. package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
  450. package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
  451. package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
  452. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
  453. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
  454. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
  455. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
  456. package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
  457. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
  458. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
  459. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
  460. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
  461. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
  462. package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
  463. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
  464. package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
  465. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
  466. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
  467. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
  468. package/package.json +55 -40
  469. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
  470. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
  471. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
  472. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
  473. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
  474. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
  475. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
  476. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
  477. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
  478. /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
  479. /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "upstream": {
4
- "repository": "git@github.com:worldwonderer/oh-story-claudecode.git",
5
- "commit": "9d0bd5f5aead707ddcdcf7d5f141b237e2ac464c",
6
- "releaseVersion": "0.7.6",
7
- "agentsVersion": 25
4
+ "repository": "git@github.com:zenstory-ai/oh-story-claudecode.git",
5
+ "commit": "5de060f9a47e7c4781c81edb320436b772e2955e",
6
+ "releaseVersion": "0.7.9",
7
+ "agentsVersion": 29
8
8
  },
9
- "generatedAt": "2026-08-23T14:45:57.000Z",
9
+ "generatedAt": "2026-09-02T02:39:34.565Z",
10
10
  "skills": [
11
11
  "browser-cdp",
12
12
  "story",
@@ -49,18 +49,18 @@
49
49
  },
50
50
  {
51
51
  "path": "roles/consistency-checker.md",
52
- "sha256": "bfa407cc051e9ac0559f43e53efa65fdce5a556586f017469b3a5080400d2f1c",
53
- "bytes": 11462
52
+ "sha256": "dacd637c39c5f97780ddb36d63906ef4ec0ce825b45b57203c3bf6f126c431b9",
53
+ "bytes": 11458
54
54
  },
55
55
  {
56
56
  "path": "roles/narrative-writer.md",
57
- "sha256": "dbdc696a4e6c4e1bb9e22e9c102d9018c575811d7f033eee3d95eb80f9e375cb",
58
- "bytes": 30981
57
+ "sha256": "0027d342b4771d269459299d2ac520953e87f084119718d5ea1044d8f9820187",
58
+ "bytes": 32208
59
59
  },
60
60
  {
61
61
  "path": "roles/story-architect.md",
62
- "sha256": "9b0258b76954bd5a45826fce2c09390337bd6b3f43762696f9a00621b9009cbe",
63
- "bytes": 12788
62
+ "sha256": "b3599a5963abef5c94c227df0aa278062c4132f5e9dc54705c46ef1046b84713",
63
+ "bytes": 12139
64
64
  },
65
65
  {
66
66
  "path": "roles/story-explorer.md",
@@ -74,13 +74,13 @@
74
74
  },
75
75
  {
76
76
  "path": "skills/browser-cdp/SKILL.md",
77
- "sha256": "b6b899779654add6e823c4580439e1960bae814284e1fd41df4273bfb46366b4",
78
- "bytes": 6964
77
+ "sha256": "aa594fbec8ba42f0eb46458a926286c3154b9d92bfb329241efd3344dd0dda3c",
78
+ "bytes": 6962
79
79
  },
80
80
  {
81
81
  "path": "skills/story-cover/SKILL.md",
82
- "sha256": "98902e125ace61b0059fa27f94a50608c919767a50deda3bec1818ce95b73cb5",
83
- "bytes": 16284
82
+ "sha256": "2b3ecdd288671f8cc566a54dd13a75ec3d600d72307dc6c0d76e456760a1a6e7",
83
+ "bytes": 16282
84
84
  },
85
85
  {
86
86
  "path": "skills/story-cover/references/cover-styles.md",
@@ -89,34 +89,39 @@
89
89
  },
90
90
  {
91
91
  "path": "skills/story-deslop/SKILL.md",
92
- "sha256": "7b767fd9cc3d3aacbc2f05d6bfd8f86da7fa04f6d77ba1fb05e66f35bfc82fab",
93
- "bytes": 29421
92
+ "sha256": "97abadf6ea64190b6c1afe8a19b40ad37370e09e614f2210322220bf6398f5e0",
93
+ "bytes": 30428
94
94
  },
95
95
  {
96
96
  "path": "skills/story-deslop/references/anti-ai-writing.md",
97
- "sha256": "5f0ac64a75b831ec77db662fa9559e60bc521d990aa66df9b74dc919253ad111",
98
- "bytes": 36645
97
+ "sha256": "011bfda41a22f4ba467517bb260954db1cb11ff32a542a887022e51ece1ed717",
98
+ "bytes": 37029
99
+ },
100
+ {
101
+ "path": "skills/story-deslop/references/author-memory.md",
102
+ "sha256": "04077171ce2eb189985b555362fce60daad9fa3f966e32273e277062f65973d1",
103
+ "bytes": 9942
99
104
  },
100
105
  {
101
106
  "path": "skills/story-deslop/references/banned-words.md",
102
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
103
- "bytes": 9689
107
+ "sha256": "bb9512f5b81e2dd0d8d47a8165b0372ed6c147475502a4aa207f763ab694d5e1",
108
+ "bytes": 10337
109
+ },
110
+ {
111
+ "path": "skills/story-deslop/scripts/author_memory_commit.py",
112
+ "sha256": "2c6741ff9d6efb5ab59be6c247cd4935195c8ce37096a5c1fc5a071065c7eeee",
113
+ "bytes": 41806
104
114
  },
105
115
  {
106
116
  "path": "skills/story-deslop/scripts/check-ai-patterns.js",
107
- "sha256": "886f08957de16d4836f724b70ee21fefaceb950772a2f9649aa6cc2432a9ad6b",
108
- "bytes": 63141
117
+ "sha256": "90a2fc9c5ab4a9105714c439ab0c8212035a18091af01593700286afdc8b2707",
118
+ "bytes": 67088
109
119
  },
110
120
  {
111
121
  "path": "skills/story-deslop/scripts/check-degeneration.js",
112
122
  "sha256": "d6c212118dcf5c89018f337e05833265d6741d1d178789efba5b04f37a01a17d",
113
123
  "bytes": 14387
114
124
  },
115
- {
116
- "path": "skills/story-deslop/scripts/check-outline-copy.js",
117
- "sha256": "574dd78da11f934837e2b56f658b6c598935e16dd7dec2830272d0134d1587d3",
118
- "bytes": 9845
119
- },
120
125
  {
121
126
  "path": "skills/story-deslop/scripts/normalize-punctuation.js",
122
127
  "sha256": "b9fa7ea6482da1ab76de4c1268d9583ef777d13be4a9f57cb6f8725fe1a7f1da",
@@ -124,8 +129,8 @@
124
129
  },
125
130
  {
126
131
  "path": "skills/story-import/SKILL.md",
127
- "sha256": "ded07fb520b5d6dfa3b94ceacf984af429c64620360bb1f211ce5418e385a405",
128
- "bytes": 41904
132
+ "sha256": "a0267be37ed7e35261720fa35310155633708d0bb7caaf19a2abd21b18e6a882",
133
+ "bytes": 42702
129
134
  },
130
135
  {
131
136
  "path": "skills/story-import/references/character-state-reverse.md",
@@ -134,8 +139,8 @@
134
139
  },
135
140
  {
136
141
  "path": "skills/story-import/references/format-and-structure.md",
137
- "sha256": "f7cdac57d656f432841f90a337368e2cab8f7b89f80c917e2d7c857122921135",
138
- "bytes": 10181
142
+ "sha256": "1c5e69b60e87fe07a8425cae8bbdf51f2f47b35d51241397f279d000715066a5",
143
+ "bytes": 10538
139
144
  },
140
145
  {
141
146
  "path": "skills/story-import/references/length-routing.md",
@@ -149,28 +154,38 @@
149
154
  },
150
155
  {
151
156
  "path": "skills/story-import/references/structure-mapping-long.md",
152
- "sha256": "f6856dc294184990b95d62caef02594ebb0fd3f5fa13c8bb9e81194fdacac0b9",
153
- "bytes": 20225
157
+ "sha256": "31862e685e55deecb97ca87fe23999b1f1c7fc606f61f26d20942b88ee58f90e",
158
+ "bytes": 20299
154
159
  },
155
160
  {
156
161
  "path": "skills/story-import/references/structure-mapping-short.md",
157
- "sha256": "f44952a088e8748c5a6c050970c6f0570a114f8da35f437be4acbaeba0a8ff13",
158
- "bytes": 7631
162
+ "sha256": "668a76b8fad6e2efbed81d9b940eaca964687dc086fc6f922e78989a24a5f1ce",
163
+ "bytes": 7702
159
164
  },
160
165
  {
161
166
  "path": "skills/story-import/references/tracking-transaction.md",
162
- "sha256": "4f4d7909736ad2aeb6a04442b67a8511d8a30f5d207666a5d98817d1a3f8486f",
163
- "bytes": 11388
167
+ "sha256": "c1b166f047c5269b9fdac2eb85494efdce51b9b1a3596874ea1c1090ba828b13",
168
+ "bytes": 13253
169
+ },
170
+ {
171
+ "path": "skills/story-import/scripts/check-outline-contract.js",
172
+ "sha256": "00c47d32d3b5cf8ffd11934bd55c5f5623956427d94b9b546056b6071a55d0c2",
173
+ "bytes": 9536
164
174
  },
165
175
  {
166
176
  "path": "skills/story-import/scripts/tracking_commit.py",
167
- "sha256": "44be5492003377928753644956f3f13ff6e20b2759c208273c4e551da3522628",
168
- "bytes": 51860
177
+ "sha256": "18f273c877a3a22c32614a86b7d7d1c4da99a3f67ee5a422e2cee8bef942e645",
178
+ "bytes": 55499
179
+ },
180
+ {
181
+ "path": "skills/story-import/scripts/wordcount_core.py",
182
+ "sha256": "b900662406d99558e7a7400bff9cc303e1329b1eaa1c755c37d81eab417037f0",
183
+ "bytes": 10559
169
184
  },
170
185
  {
171
186
  "path": "skills/story-long-analyze/SKILL.md",
172
- "sha256": "6b23ee7e04c424bdb7170031106328a705eba7a541587325c0a5c51056b6fd4d",
173
- "bytes": 30113
187
+ "sha256": "d96df880231af80f6ce18163a2e5651bc4fc0e77e6c4774206492568b28e3a32",
188
+ "bytes": 30188
174
189
  },
175
190
  {
176
191
  "path": "skills/story-long-analyze/references/deconstruction-notes.md",
@@ -204,8 +219,8 @@
204
219
  },
205
220
  {
206
221
  "path": "skills/story-long-scan/SKILL.md",
207
- "sha256": "faac5fccf052dcbcb49ca26315977424e9a662f2eed80d6c5fd19eba7f765d55",
208
- "bytes": 16432
222
+ "sha256": "aedbfc25b66d525a08a806554a6aeb51eb2d3cf5a9ef6647a20a25d3b276e2c8",
223
+ "bytes": 16430
209
224
  },
210
225
  {
211
226
  "path": "skills/story-long-scan/references/genre-trends.md",
@@ -264,23 +279,28 @@
264
279
  },
265
280
  {
266
281
  "path": "skills/story-long-write/SKILL.md",
267
- "sha256": "1bd0991c4054a280f49abb0d2cec26fc74582851e19f34e5b397abd4ef7a9f17",
268
- "bytes": 27252
282
+ "sha256": "93a4b9ce6f8f46c0d07c59eee825223fa13c0c58b27af4eba638958725bffc27",
283
+ "bytes": 29595
269
284
  },
270
285
  {
271
286
  "path": "skills/story-long-write/references/anti-ai-writing.md",
272
- "sha256": "5f0ac64a75b831ec77db662fa9559e60bc521d990aa66df9b74dc919253ad111",
273
- "bytes": 36645
287
+ "sha256": "011bfda41a22f4ba467517bb260954db1cb11ff32a542a887022e51ece1ed717",
288
+ "bytes": 37029
274
289
  },
275
290
  {
276
291
  "path": "skills/story-long-write/references/artifact-protocols.md",
277
- "sha256": "64c9c027a6b6e4f5565fcdfa58bade57fbcc4a1b7091ce22950a12baad659650",
278
- "bytes": 16913
292
+ "sha256": "4a87737d479574a6d7be84296a21d7dfa480dfbf4b42ca85c38fc2cd98366223",
293
+ "bytes": 17597
294
+ },
295
+ {
296
+ "path": "skills/story-long-write/references/author-memory.md",
297
+ "sha256": "04077171ce2eb189985b555362fce60daad9fa3f966e32273e277062f65973d1",
298
+ "bytes": 9942
279
299
  },
280
300
  {
281
301
  "path": "skills/story-long-write/references/banned-words.md",
282
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
283
- "bytes": 9689
302
+ "sha256": "bb9512f5b81e2dd0d8d47a8165b0372ed6c147475502a4aa207f763ab694d5e1",
303
+ "bytes": 10337
284
304
  },
285
305
  {
286
306
  "path": "skills/story-long-write/references/character-basics.md",
@@ -304,8 +324,8 @@
304
324
  },
305
325
  {
306
326
  "path": "skills/story-long-write/references/cross-book-recall.md",
307
- "sha256": "725305f1a46133354d05cb0ef36f94cf04c0ac32fa136970692362578ea86ebc",
308
- "bytes": 5043
327
+ "sha256": "f090efa7466fca4dbd887e117ebe02565d3d7c671a02800eaaefdecdee7b989e",
328
+ "bytes": 4943
309
329
  },
310
330
  {
311
331
  "path": "skills/story-long-write/references/dialogue-mastery.md",
@@ -327,25 +347,10 @@
327
347
  "sha256": "ce37e42e07a38b71bbb0fdfde863a6e0f92d959c512dc2d07651293f427b80bc",
328
348
  "bytes": 11427
329
349
  },
330
- {
331
- "path": "skills/story-long-write/references/format-and-structure.md",
332
- "sha256": "f7cdac57d656f432841f90a337368e2cab8f7b89f80c917e2d7c857122921135",
333
- "bytes": 10181
334
- },
335
- {
336
- "path": "skills/story-long-write/references/genre-catalog.md",
337
- "sha256": "20b2d01f53bbc1b64bbef254b3ad4f1fa14abbf202a486614abed39a50cc719e",
338
- "bytes": 20681
339
- },
340
- {
341
- "path": "skills/story-long-write/references/genre-core-mechanics.md",
342
- "sha256": "8930a0834961ff205ca125f68966a056ab8d8b5d97592de406a2c4bc92c51355",
343
- "bytes": 17360
344
- },
345
350
  {
346
351
  "path": "skills/story-long-write/references/genre-prose-cards.md",
347
- "sha256": "4aa0c2263710d34fb35da536cc3bb0c968f0ed9210ed18e5017ece72d787fe4e",
348
- "bytes": 7137
352
+ "sha256": "56f2e59f37722c9f8268a2baf5da1335aa72d7cc39291029393e1613593fd982",
353
+ "bytes": 7146
349
354
  },
350
355
  {
351
356
  "path": "skills/story-long-write/references/genre-prose-cards/东方仙侠.md",
@@ -509,33 +514,48 @@
509
514
  },
510
515
  {
511
516
  "path": "skills/story-long-write/references/genre-readers.md",
512
- "sha256": "3d940dd35f3d7baf84d007faa9681251fd74b192744529253f48a0e6e0b92be3",
513
- "bytes": 10972
517
+ "sha256": "f64ab0b227ee74e178a8fb7fe120443e46b421ee221331fde85f6f82a1a224f5",
518
+ "bytes": 11007
514
519
  },
515
520
  {
516
- "path": "skills/story-long-write/references/genre-writing-formulas.md",
517
- "sha256": "1b0681918f972b79b75e0050938e3839d0cae94b26ba47756bc246eddd417264",
518
- "bytes": 21340
521
+ "path": "skills/story-long-write/references/long-chapter-hooks.md",
522
+ "sha256": "0d492f0b0d64017fa8ad4cb5232a7a1b7857bf3a8c8e21eac5fde5b50d890848",
523
+ "bytes": 8784
519
524
  },
520
525
  {
521
- "path": "skills/story-long-write/references/hooks-chapter.md",
522
- "sha256": "8f931ef9ff06f1958da40d683c9d3788ffda8d1136964a2305c5ce23316c3679",
523
- "bytes": 8632
526
+ "path": "skills/story-long-write/references/long-chapter-quality.md",
527
+ "sha256": "9a5e554c864c1a1e96ce90e287e2a86c774c73a46a124c7e850105d9f5c717bf",
528
+ "bytes": 10002
524
529
  },
525
530
  {
526
- "path": "skills/story-long-write/references/hooks-paragraph.md",
527
- "sha256": "947932cc322c580ffb695d094170f094d215858f8b745d7cb5c5d6cd9f52d222",
528
- "bytes": 6848
531
+ "path": "skills/story-long-write/references/long-format.md",
532
+ "sha256": "1d41dd2110452281280cb6d85008852b6e010ae8a858110715d784de3fa97d61",
533
+ "bytes": 2841
534
+ },
535
+ {
536
+ "path": "skills/story-long-write/references/long-genre-catalog.md",
537
+ "sha256": "a7ddb4270202f05d7cea9a29d0850a987fccf013ba2058a4d388185b35b53587",
538
+ "bytes": 17378
539
+ },
540
+ {
541
+ "path": "skills/story-long-write/references/long-genre-mechanics.md",
542
+ "sha256": "4de5abedc0b9865f2a4a3aad74cd5834a96cbc8b62e937e21621c940de2db935",
543
+ "bytes": 17364
544
+ },
545
+ {
546
+ "path": "skills/story-long-write/references/long-reversal.md",
547
+ "sha256": "98e78968f204b5945d0a11e38f8eeee677b8e4386052e72e4082ecb539de0365",
548
+ "bytes": 15581
529
549
  },
530
550
  {
531
- "path": "skills/story-long-write/references/hooks-suspense.md",
532
- "sha256": "4a6717e46fb7f0557212e7bdee1d4ad30aac6cbc33ca86ff013ea804240efd69",
533
- "bytes": 15308
551
+ "path": "skills/story-long-write/references/long-suspense.md",
552
+ "sha256": "6a36ec1b8522337bed8e024604d0f36e007c923ae6d2d33446f977be8ece4282",
553
+ "bytes": 15524
534
554
  },
535
555
  {
536
556
  "path": "skills/story-long-write/references/opening-design.md",
537
- "sha256": "fb5e9f2b0eb78f741cfbbd3da569b187c94f65d18a1d9c93a4a8c7dca949ffe8",
538
- "bytes": 12753
557
+ "sha256": "da4a4d3614da522419b6a4c10ae711303279205242827ff3c42a3213b26b7ca6",
558
+ "bytes": 12819
539
559
  },
540
560
  {
541
561
  "path": "skills/story-long-write/references/outline-conflict.md",
@@ -554,8 +574,8 @@
554
574
  },
555
575
  {
556
576
  "path": "skills/story-long-write/references/outline-structure-theory.md",
557
- "sha256": "98f012698491cddf03f0176b8501bd132435f9ad62b4f9d7fab902d94614a3a3",
558
- "bytes": 22122
577
+ "sha256": "529ca28bed2850b7f9ff5293d9bed5f253a7c1d0e5e9ebae5a1e9c1e707be0b4",
578
+ "bytes": 22085
559
579
  },
560
580
  {
561
581
  "path": "skills/story-long-write/references/plot-core-methods.md",
@@ -577,21 +597,11 @@
577
597
  "sha256": "b32d8d16c9602620517eb34e9cd8ceed7f2007ab6516e43dfd6e772a9247488b",
578
598
  "bytes": 25544
579
599
  },
580
- {
581
- "path": "skills/story-long-write/references/quality-checklist.md",
582
- "sha256": "00932a5755e33c9773c230842b63d46257192a93b50edbd6f489b0bf8dd38009",
583
- "bytes": 9734
584
- },
585
600
  {
586
601
  "path": "skills/story-long-write/references/reader-contract-and-progression.md",
587
602
  "sha256": "e5c66dad88095dfb25f67294d70a2a5a98b035f9fa87e83b9876676d97840fde",
588
603
  "bytes": 11144
589
604
  },
590
- {
591
- "path": "skills/story-long-write/references/reversal-toolkit.md",
592
- "sha256": "6927d730da58765a38450aee34554248267f0fece58a90cffe13d57b5fb36e54",
593
- "bytes": 15406
594
- },
595
605
  {
596
606
  "path": "skills/story-long-write/references/state-tracking.md",
597
607
  "sha256": "76c2261e4b9cd825916c3bdba75c07d9db9a7cddd6e67dd52f26f38a96ad289a",
@@ -609,49 +619,59 @@
609
619
  },
610
620
  {
611
621
  "path": "skills/story-long-write/references/style-genre-modules.md",
612
- "sha256": "d75299fc649e9725b58743301b1e0913c464b99776e7e6bb9563cef8eedbfb59",
613
- "bytes": 24730
622
+ "sha256": "b4cfe79dd3138bc29f84dfd8178b15476a70b14c5c4943bf8b8b7e393007eada",
623
+ "bytes": 24739
614
624
  },
615
625
  {
616
626
  "path": "skills/story-long-write/references/tracking-transaction.md",
617
- "sha256": "4f4d7909736ad2aeb6a04442b67a8511d8a30f5d207666a5d98817d1a3f8486f",
618
- "bytes": 11388
627
+ "sha256": "c1b166f047c5269b9fdac2eb85494efdce51b9b1a3596874ea1c1090ba828b13",
628
+ "bytes": 13253
619
629
  },
620
630
  {
621
631
  "path": "skills/story-long-write/references/workflow-chapter.md",
622
- "sha256": "160c539f956ea8cb69f945d24af1ab21d0715367abc1b2e182d1c4568120adfb",
623
- "bytes": 27056
632
+ "sha256": "85b832ec018f3a18aa928bc9bdbad5046b6aafc462ea2a0b6fbf617428b61c5c",
633
+ "bytes": 26858
624
634
  },
625
635
  {
626
636
  "path": "skills/story-long-write/references/workflow-daily.md",
627
- "sha256": "28479f89d22286196dda75b432d08cafbdf2c76fd7ae82c8b9fe29c4cbe0e4e6",
628
- "bytes": 25247
637
+ "sha256": "c89d2978b1108e7439d9b588330a9cc857edafa78d1f33102cce11a4b79aff7d",
638
+ "bytes": 25160
629
639
  },
630
640
  {
631
641
  "path": "skills/story-long-write/references/workflow-revision.md",
632
- "sha256": "3dd33e1d366db87a812f92e2497fcd242d75010719fa9b865318824b1d258fe3",
633
- "bytes": 6452
642
+ "sha256": "c4ee165984df696ce92dbb9094453998d777bb497afdd04d464b507e644460cb",
643
+ "bytes": 6691
634
644
  },
635
645
  {
636
646
  "path": "skills/story-long-write/references/workflow-setup.md",
637
- "sha256": "719e68845bd81153e755ed5188859a4ffb646f83e3fd2bd0e15dcba782485d6f",
638
- "bytes": 30111
647
+ "sha256": "f677e4961fc0d9e7627a8b67e574dcff407016de96bb2999b86c2b38df4e2d8f",
648
+ "bytes": 30096
639
649
  },
640
650
  {
641
651
  "path": "skills/story-long-write/references/writing-craft.md",
642
- "sha256": "735887afd8978f09c687edd1ab1a50ec62c6c246702a6e7b738155eade84ab58",
643
- "bytes": 22866
652
+ "sha256": "7543a65921b1b7190b40f6621ee067dcd28ff233093563621afb273ee78e315a",
653
+ "bytes": 24966
654
+ },
655
+ {
656
+ "path": "skills/story-long-write/scripts/author_memory_commit.py",
657
+ "sha256": "2c6741ff9d6efb5ab59be6c247cd4935195c8ce37096a5c1fc5a071065c7eeee",
658
+ "bytes": 41806
644
659
  },
645
660
  {
646
661
  "path": "skills/story-long-write/scripts/check-ai-patterns.js",
647
- "sha256": "886f08957de16d4836f724b70ee21fefaceb950772a2f9649aa6cc2432a9ad6b",
648
- "bytes": 63141
662
+ "sha256": "90a2fc9c5ab4a9105714c439ab0c8212035a18091af01593700286afdc8b2707",
663
+ "bytes": 67088
649
664
  },
650
665
  {
651
666
  "path": "skills/story-long-write/scripts/check-degeneration.js",
652
667
  "sha256": "d6c212118dcf5c89018f337e05833265d6741d1d178789efba5b04f37a01a17d",
653
668
  "bytes": 14387
654
669
  },
670
+ {
671
+ "path": "skills/story-long-write/scripts/check-outline-contract.js",
672
+ "sha256": "00c47d32d3b5cf8ffd11934bd55c5f5623956427d94b9b546056b6071a55d0c2",
673
+ "bytes": 9536
674
+ },
655
675
  {
656
676
  "path": "skills/story-long-write/scripts/check-outline-copy.js",
657
677
  "sha256": "574dd78da11f934837e2b56f658b6c598935e16dd7dec2830272d0134d1587d3",
@@ -662,25 +682,40 @@
662
682
  "sha256": "b9fa7ea6482da1ab76de4c1268d9583ef777d13be4a9f57cb6f8725fe1a7f1da",
663
683
  "bytes": 13083
664
684
  },
685
+ {
686
+ "path": "skills/story-long-write/scripts/storyctl.py",
687
+ "sha256": "0fe250cbc02376b8216b52ba95310413b728dc4788691baba55e70dda9761f16",
688
+ "bytes": 12666
689
+ },
665
690
  {
666
691
  "path": "skills/story-long-write/scripts/tracking_commit.py",
667
- "sha256": "44be5492003377928753644956f3f13ff6e20b2759c208273c4e551da3522628",
668
- "bytes": 51860
692
+ "sha256": "18f273c877a3a22c32614a86b7d7d1c4da99a3f67ee5a422e2cee8bef942e645",
693
+ "bytes": 55499
694
+ },
695
+ {
696
+ "path": "skills/story-long-write/scripts/wordcount_core.py",
697
+ "sha256": "b900662406d99558e7a7400bff9cc303e1329b1eaa1c755c37d81eab417037f0",
698
+ "bytes": 10559
669
699
  },
670
700
  {
671
701
  "path": "skills/story-review/SKILL.md",
672
- "sha256": "7292e49968309050a26617f2037cd0ec1d1301b9fe9676e2006ff87c404e0c8b",
673
- "bytes": 38654
702
+ "sha256": "de5e5ecc1f06c78861449ab0f7bcad641ae7c49ce4bf14ee34e0fc6da29ea56b",
703
+ "bytes": 39913
674
704
  },
675
705
  {
676
706
  "path": "skills/story-review/references/anti-ai-writing.md",
677
- "sha256": "5f0ac64a75b831ec77db662fa9559e60bc521d990aa66df9b74dc919253ad111",
678
- "bytes": 36645
707
+ "sha256": "011bfda41a22f4ba467517bb260954db1cb11ff32a542a887022e51ece1ed717",
708
+ "bytes": 37029
709
+ },
710
+ {
711
+ "path": "skills/story-review/references/author-memory.md",
712
+ "sha256": "04077171ce2eb189985b555362fce60daad9fa3f966e32273e277062f65973d1",
713
+ "bytes": 9942
679
714
  },
680
715
  {
681
716
  "path": "skills/story-review/references/banned-words.md",
682
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
683
- "bytes": 9689
717
+ "sha256": "bb9512f5b81e2dd0d8d47a8165b0372ed6c147475502a4aa207f763ab694d5e1",
718
+ "bytes": 10337
684
719
  },
685
720
  {
686
721
  "path": "skills/story-review/references/character-relations.md",
@@ -697,16 +732,16 @@
697
732
  "sha256": "85274f51589fddf8098100419b4de3b73baf8caa0d99b8fbe2f8d414c7728e84",
698
733
  "bytes": 20291
699
734
  },
700
- {
701
- "path": "skills/story-review/references/quality-checklist.md",
702
- "sha256": "ffc369e11196346980d70957c0bc2e9cb10f41c1ea741f31638c0c362629d86d",
703
- "bytes": 12984
704
- },
705
735
  {
706
736
  "path": "skills/story-review/references/quality-rubric.md",
707
737
  "sha256": "629fddafeb21dd3f7d8306f0487d776013aef8ff9e8a833e8e68216e95bd84a3",
708
738
  "bytes": 4637
709
739
  },
740
+ {
741
+ "path": "skills/story-review/references/review-quality.md",
742
+ "sha256": "b8c4b0ae2056bb8b3cdf09b8f896974c2071080861f790c57adb1c8bb19072a6",
743
+ "bytes": 13991
744
+ },
710
745
  {
711
746
  "path": "skills/story-review/references/rubrics/fanqie.md",
712
747
  "sha256": "4f5b437aa67d90f30f83c84dcc1b3f1a89d90ea7ec122e661b7969beeb161b14",
@@ -724,13 +759,18 @@
724
759
  },
725
760
  {
726
761
  "path": "skills/story-review/references/tracking-transaction.md",
727
- "sha256": "4f4d7909736ad2aeb6a04442b67a8511d8a30f5d207666a5d98817d1a3f8486f",
728
- "bytes": 11388
762
+ "sha256": "c1b166f047c5269b9fdac2eb85494efdce51b9b1a3596874ea1c1090ba828b13",
763
+ "bytes": 13253
764
+ },
765
+ {
766
+ "path": "skills/story-review/scripts/author_memory_commit.py",
767
+ "sha256": "2c6741ff9d6efb5ab59be6c247cd4935195c8ce37096a5c1fc5a071065c7eeee",
768
+ "bytes": 41806
729
769
  },
730
770
  {
731
771
  "path": "skills/story-review/scripts/check-ai-patterns.js",
732
- "sha256": "886f08957de16d4836f724b70ee21fefaceb950772a2f9649aa6cc2432a9ad6b",
733
- "bytes": 63141
772
+ "sha256": "90a2fc9c5ab4a9105714c439ab0c8212035a18091af01593700286afdc8b2707",
773
+ "bytes": 67088
734
774
  },
735
775
  {
736
776
  "path": "skills/story-review/scripts/check-degeneration.js",
@@ -744,23 +784,38 @@
744
784
  },
745
785
  {
746
786
  "path": "skills/story-review/scripts/tracking_commit.py",
747
- "sha256": "44be5492003377928753644956f3f13ff6e20b2759c208273c4e551da3522628",
748
- "bytes": 51860
787
+ "sha256": "18f273c877a3a22c32614a86b7d7d1c4da99a3f67ee5a422e2cee8bef942e645",
788
+ "bytes": 55499
789
+ },
790
+ {
791
+ "path": "skills/story-review/scripts/wordcount_core.py",
792
+ "sha256": "b900662406d99558e7a7400bff9cc303e1329b1eaa1c755c37d81eab417037f0",
793
+ "bytes": 10559
749
794
  },
750
795
  {
751
796
  "path": "skills/story-setup/SKILL.md",
752
- "sha256": "ecd2216e803c771a00b322f32f6782cb719a35ee9814ccd296f1576b33b0b415",
753
- "bytes": 51900
797
+ "sha256": "a5abd4092ee917bb80684cbd5ca3a2d7fd637084ea4a7c821771dbb4988b5cac",
798
+ "bytes": 61902
799
+ },
800
+ {
801
+ "path": "skills/story-setup/references/agent-references/agent-quality.md",
802
+ "sha256": "364d1761e9506d9a2c4bd059d95b758b84b841b6b8a8a9aa1d83d718e26a9feb",
803
+ "bytes": 3593
804
+ },
805
+ {
806
+ "path": "skills/story-setup/references/agent-references/agent-reference-profiles.md",
807
+ "sha256": "7f3fb2c0b0183a84c2d8f64deb2942a62aaaf9baef77b952e9684311ceffbd93",
808
+ "bytes": 4031
754
809
  },
755
810
  {
756
811
  "path": "skills/story-setup/references/agent-references/anti-ai-writing.md",
757
- "sha256": "5f0ac64a75b831ec77db662fa9559e60bc521d990aa66df9b74dc919253ad111",
758
- "bytes": 36645
812
+ "sha256": "011bfda41a22f4ba467517bb260954db1cb11ff32a542a887022e51ece1ed717",
813
+ "bytes": 37029
759
814
  },
760
815
  {
761
816
  "path": "skills/story-setup/references/agent-references/banned-words.md",
762
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
763
- "bytes": 9689
817
+ "sha256": "bb9512f5b81e2dd0d8d47a8165b0372ed6c147475502a4aa207f763ab694d5e1",
818
+ "bytes": 10337
764
819
  },
765
820
  {
766
821
  "path": "skills/story-setup/references/agent-references/character-basics.md",
@@ -787,30 +842,15 @@
787
842
  "sha256": "f3f939596ec4e5e78b0bc0443a679037fb488db686e6b230017fcb34e4860581",
788
843
  "bytes": 16647
789
844
  },
790
- {
791
- "path": "skills/story-setup/references/agent-references/emotional-methods.md",
792
- "sha256": "db0ff9f07c3b8ebcec12f9fe498509f489ebfb3a20f4aa74277036380b6db013",
793
- "bytes": 7690
794
- },
795
845
  {
796
846
  "path": "skills/story-setup/references/agent-references/format-and-structure.md",
797
- "sha256": "f7cdac57d656f432841f90a337368e2cab8f7b89f80c917e2d7c857122921135",
798
- "bytes": 10181
799
- },
800
- {
801
- "path": "skills/story-setup/references/agent-references/genre-catalog.md",
802
- "sha256": "20b2d01f53bbc1b64bbef254b3ad4f1fa14abbf202a486614abed39a50cc719e",
803
- "bytes": 20681
804
- },
805
- {
806
- "path": "skills/story-setup/references/agent-references/genre-core-mechanics.md",
807
- "sha256": "8930a0834961ff205ca125f68966a056ab8d8b5d97592de406a2c4bc92c51355",
808
- "bytes": 17360
847
+ "sha256": "1c5e69b60e87fe07a8425cae8bbdf51f2f47b35d51241397f279d000715066a5",
848
+ "bytes": 10538
809
849
  },
810
850
  {
811
851
  "path": "skills/story-setup/references/agent-references/genre-prose-cards.md",
812
- "sha256": "4aa0c2263710d34fb35da536cc3bb0c968f0ed9210ed18e5017ece72d787fe4e",
813
- "bytes": 7137
852
+ "sha256": "56f2e59f37722c9f8268a2baf5da1335aa72d7cc39291029393e1613593fd982",
853
+ "bytes": 7146
814
854
  },
815
855
  {
816
856
  "path": "skills/story-setup/references/agent-references/genre-prose-cards/东方仙侠.md",
@@ -974,28 +1014,48 @@
974
1014
  },
975
1015
  {
976
1016
  "path": "skills/story-setup/references/agent-references/genre-readers.md",
977
- "sha256": "3d940dd35f3d7baf84d007faa9681251fd74b192744529253f48a0e6e0b92be3",
978
- "bytes": 10972
1017
+ "sha256": "b95f5c2e04b978413993be24a50548c0642500a5a658d6172e5983cc32aa5836",
1018
+ "bytes": 11027
979
1019
  },
980
1020
  {
981
- "path": "skills/story-setup/references/agent-references/genre-writing-formulas.md",
982
- "sha256": "1b0681918f972b79b75e0050938e3839d0cae94b26ba47756bc246eddd417264",
983
- "bytes": 21340
1021
+ "path": "skills/story-setup/references/agent-references/long-chapter-hooks.md",
1022
+ "sha256": "0d492f0b0d64017fa8ad4cb5232a7a1b7857bf3a8c8e21eac5fde5b50d890848",
1023
+ "bytes": 8784
984
1024
  },
985
1025
  {
986
- "path": "skills/story-setup/references/agent-references/hooks-chapter.md",
987
- "sha256": "8f931ef9ff06f1958da40d683c9d3788ffda8d1136964a2305c5ce23316c3679",
988
- "bytes": 8632
1026
+ "path": "skills/story-setup/references/agent-references/long-emotional-methods.md",
1027
+ "sha256": "767b43cc413a2890bcde021a61da92612f20fd502778bc161c3acc82c055758b",
1028
+ "bytes": 10178
1029
+ },
1030
+ {
1031
+ "path": "skills/story-setup/references/agent-references/long-genre-catalog.md",
1032
+ "sha256": "a7ddb4270202f05d7cea9a29d0850a987fccf013ba2058a4d388185b35b53587",
1033
+ "bytes": 17378
989
1034
  },
990
1035
  {
991
- "path": "skills/story-setup/references/agent-references/hooks-suspense.md",
992
- "sha256": "4a6717e46fb7f0557212e7bdee1d4ad30aac6cbc33ca86ff013ea804240efd69",
993
- "bytes": 15308
1036
+ "path": "skills/story-setup/references/agent-references/long-genre-mechanics.md",
1037
+ "sha256": "4de5abedc0b9865f2a4a3aad74cd5834a96cbc8b62e937e21621c940de2db935",
1038
+ "bytes": 17364
1039
+ },
1040
+ {
1041
+ "path": "skills/story-setup/references/agent-references/long-quality.md",
1042
+ "sha256": "35b2658a8a426e974b94927611488eb6deaf3da11dca569ae3260da2f0f131d6",
1043
+ "bytes": 2891
1044
+ },
1045
+ {
1046
+ "path": "skills/story-setup/references/agent-references/long-reversal.md",
1047
+ "sha256": "98e78968f204b5945d0a11e38f8eeee677b8e4386052e72e4082ecb539de0365",
1048
+ "bytes": 15581
1049
+ },
1050
+ {
1051
+ "path": "skills/story-setup/references/agent-references/long-suspense.md",
1052
+ "sha256": "6a36ec1b8522337bed8e024604d0f36e007c923ae6d2d33446f977be8ece4282",
1053
+ "bytes": 15524
994
1054
  },
995
1055
  {
996
1056
  "path": "skills/story-setup/references/agent-references/opening-design.md",
997
- "sha256": "fb5e9f2b0eb78f741cfbbd3da569b187c94f65d18a1d9c93a4a8c7dca949ffe8",
998
- "bytes": 12753
1057
+ "sha256": "da4a4d3614da522419b6a4c10ae711303279205242827ff3c42a3213b26b7ca6",
1058
+ "bytes": 12819
999
1059
  },
1000
1060
  {
1001
1061
  "path": "skills/story-setup/references/agent-references/outline-conflict.md",
@@ -1018,14 +1078,39 @@
1018
1078
  "bytes": 20291
1019
1079
  },
1020
1080
  {
1021
- "path": "skills/story-setup/references/agent-references/quality-checklist.md",
1022
- "sha256": "1d3004811004a999dff129f4e858ad5a755e23ffe8e9389ae0515f48259c032c",
1023
- "bytes": 12457
1081
+ "path": "skills/story-setup/references/agent-references/short-chapter-hooks.md",
1082
+ "sha256": "8f931ef9ff06f1958da40d683c9d3788ffda8d1136964a2305c5ce23316c3679",
1083
+ "bytes": 8632
1084
+ },
1085
+ {
1086
+ "path": "skills/story-setup/references/agent-references/short-emotional-methods.md",
1087
+ "sha256": "abb87b5dc5da81e50c6c16879608645443e54824d426098faec070cd505d2a0b",
1088
+ "bytes": 7888
1089
+ },
1090
+ {
1091
+ "path": "skills/story-setup/references/agent-references/short-genre-formulas.md",
1092
+ "sha256": "c4ff08dab0359c857b19c4226eb122e72d4f54f59df1f653129ce4e87bba879f",
1093
+ "bytes": 21427
1094
+ },
1095
+ {
1096
+ "path": "skills/story-setup/references/agent-references/short-paragraph-hooks.md",
1097
+ "sha256": "947932cc322c580ffb695d094170f094d215858f8b745d7cb5c5d6cd9f52d222",
1098
+ "bytes": 6848
1024
1099
  },
1025
1100
  {
1026
- "path": "skills/story-setup/references/agent-references/reversal-toolkit.md",
1027
- "sha256": "6927d730da58765a38450aee34554248267f0fece58a90cffe13d57b5fb36e54",
1028
- "bytes": 15406
1101
+ "path": "skills/story-setup/references/agent-references/short-quality.md",
1102
+ "sha256": "81ba14f1a38871a3c23d7f6610399a51feb05e296e29b86f779fd8993a4332c6",
1103
+ "bytes": 2789
1104
+ },
1105
+ {
1106
+ "path": "skills/story-setup/references/agent-references/short-reversal.md",
1107
+ "sha256": "3e7f50696552aa09536c2681a4c4272e4a383d2f84d9352cbf40016bfc15c490",
1108
+ "bytes": 16682
1109
+ },
1110
+ {
1111
+ "path": "skills/story-setup/references/agent-references/short-suspense.md",
1112
+ "sha256": "40b07607cc4b4ff96fc7bcdf1b65dfa1d7f208bd2b78ae68eda0adca34ca5a1b",
1113
+ "bytes": 15939
1029
1114
  },
1030
1115
  {
1031
1116
  "path": "skills/story-setup/references/agent-references/style-combat-face.md",
@@ -1034,123 +1119,118 @@
1034
1119
  },
1035
1120
  {
1036
1121
  "path": "skills/story-setup/references/agent-references/style-genre-modules.md",
1037
- "sha256": "d75299fc649e9725b58743301b1e0913c464b99776e7e6bb9563cef8eedbfb59",
1038
- "bytes": 24730
1122
+ "sha256": "b4cfe79dd3138bc29f84dfd8178b15476a70b14c5c4943bf8b8b7e393007eada",
1123
+ "bytes": 24739
1039
1124
  },
1040
1125
  {
1041
1126
  "path": "skills/story-setup/references/agent-references/writing-craft.md",
1042
- "sha256": "735887afd8978f09c687edd1ab1a50ec62c6c246702a6e7b738155eade84ab58",
1043
- "bytes": 22866
1127
+ "sha256": "d954eebeef4fd9006899dac0718c29a1e4e0464d7287a4e648879097eb6e6ed6",
1128
+ "bytes": 24881
1044
1129
  },
1045
1130
  {
1046
1131
  "path": "skills/story-short-analyze/SKILL.md",
1047
- "sha256": "be345bfd3731e7eafc846a3922628d1ba52febb7dd6b1ebde1c77b47c6e8e396",
1048
- "bytes": 17011
1132
+ "sha256": "6bfbb111ef8870599673bfa261311e0275eeace02137a8c3aaf1e7ed452b33b9",
1133
+ "bytes": 17296
1049
1134
  },
1050
1135
  {
1051
- "path": "skills/story-short-analyze/references/anti-ai-writing.md",
1052
- "sha256": "5f0ac64a75b831ec77db662fa9559e60bc521d990aa66df9b74dc919253ad111",
1053
- "bytes": 36645
1136
+ "path": "skills/story-short-analyze/references/analysis-character-basics.md",
1137
+ "sha256": "ce9d1242b8505c0a40379fb34ba4f762d093283b1f89afcc17cf1c912dd3ae12",
1138
+ "bytes": 17023
1054
1139
  },
1055
1140
  {
1056
- "path": "skills/story-short-analyze/references/banned-words.md",
1057
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
1058
- "bytes": 9689
1141
+ "path": "skills/story-short-analyze/references/analysis-character-design.md",
1142
+ "sha256": "44d1da180e202da4fc1d6bd1b28f339320f89384861e238e5f6417cde44adec8",
1143
+ "bytes": 16845
1059
1144
  },
1060
1145
  {
1061
- "path": "skills/story-short-analyze/references/character-basics.md",
1062
- "sha256": "577e32f97ad1d9adc157fe7a073bc097d00725ef2e825db3e5536f28c1b8ca56",
1063
- "bytes": 17011
1146
+ "path": "skills/story-short-analyze/references/analysis-character-relations.md",
1147
+ "sha256": "804db2800366552595a5f8cbb1d6700339785d29a095f6fc4caec3cc9781f758",
1148
+ "bytes": 16041
1064
1149
  },
1065
1150
  {
1066
- "path": "skills/story-short-analyze/references/character-design-methods.md",
1067
- "sha256": "35b3f65a1bafdd1ff4801da5ebb28563189ccb6844358bc7a0f7c3a96b35f6d9",
1068
- "bytes": 16839
1151
+ "path": "skills/story-short-analyze/references/analysis-paragraph-hooks.md",
1152
+ "sha256": "504e8f6e68b550670d96e38cb3b52defb45ea45cddb6c644b18badf636aace16",
1153
+ "bytes": 6857
1069
1154
  },
1070
1155
  {
1071
- "path": "skills/story-short-analyze/references/character-relations.md",
1072
- "sha256": "39ee425f2c3db25377a771d7e81a2790ce86eefa94eca5af78ccc9923ed7eea9",
1073
- "bytes": 16047
1156
+ "path": "skills/story-short-analyze/references/analysis-reader-profile.md",
1157
+ "sha256": "a9740df6d727b9c7398575f1f6d629c8da5a9d123c83c3eb16790dcfc6eb1eda",
1158
+ "bytes": 11563
1074
1159
  },
1075
1160
  {
1076
- "path": "skills/story-short-analyze/references/deconstruction-examples.md",
1077
- "sha256": "d8191330c8691a02bfa754843433161cbb92319699c1b13166f095bc00df392e",
1078
- "bytes": 4201
1161
+ "path": "skills/story-short-analyze/references/analysis-report-style.md",
1162
+ "sha256": "df2ee08fdb8ca97b2cc87710a18f74404a8181afabeac1e843ea5aa5788fe779",
1163
+ "bytes": 2577
1079
1164
  },
1080
1165
  {
1081
- "path": "skills/story-short-analyze/references/genre-catalog.md",
1082
- "sha256": "ad8464bb1d2ae52f9cc33dcac5922add024aedcf7e7beb7f154019151f9ff6b8",
1083
- "bytes": 21061
1166
+ "path": "skills/story-short-analyze/references/analysis-short-genres.md",
1167
+ "sha256": "69ad6fc03dc6b3400a36c9e968e35ab11ed0ae218a7247edc4af5d46c1843a98",
1168
+ "bytes": 4720
1084
1169
  },
1085
1170
  {
1086
- "path": "skills/story-short-analyze/references/genre-core-mechanics.md",
1087
- "sha256": "0182cc0e08b5c6583a4af6aa348a8cd5a3d31a36a7833c933d76790979573d92",
1088
- "bytes": 17937
1171
+ "path": "skills/story-short-analyze/references/analysis-short-hooks.md",
1172
+ "sha256": "02fa595c88af7945e03b599cbc7a08723a826a1b9b3ec95a41fdfd18898bce23",
1173
+ "bytes": 3708
1089
1174
  },
1090
1175
  {
1091
- "path": "skills/story-short-analyze/references/genre-readers.md",
1092
- "sha256": "03ebcfca610256c97f4a70b2be347ad8e0d2550c86bb2f03561f30163bcc6144",
1093
- "bytes": 11549
1176
+ "path": "skills/story-short-analyze/references/analysis-short-mechanics.md",
1177
+ "sha256": "a939727f8a57865fce412fda33aa27dcb850832c1c8c6af4f432404930fcf6f6",
1178
+ "bytes": 4393
1094
1179
  },
1095
1180
  {
1096
- "path": "skills/story-short-analyze/references/genre-writing-formulas.md",
1097
- "sha256": "b4f4c7b3eb8cf6155383d47510ba5800fc57e64d1b2b2ab95b32acf01b579ca6",
1098
- "bytes": 21665
1181
+ "path": "skills/story-short-analyze/references/analysis-short-patterns.md",
1182
+ "sha256": "e96763386981ff90981d2ac0117197d04a3c616e7bbd9a998f1c4452f9544cbf",
1183
+ "bytes": 4291
1099
1184
  },
1100
1185
  {
1101
- "path": "skills/story-short-analyze/references/genre-writing-techniques.md",
1102
- "sha256": "73acdb869d324886c8b1078aafd6a012e2245ffb0bbcab86bc0d2a5e5e1d615a",
1103
- "bytes": 20800
1186
+ "path": "skills/story-short-analyze/references/analysis-short-suspense.md",
1187
+ "sha256": "72508bc8c0f50d08fbb3e6b2e78d5de362f869cc6bf77377b93438a2dec5b687",
1188
+ "bytes": 4262
1104
1189
  },
1105
1190
  {
1106
- "path": "skills/story-short-analyze/references/hooks-chapter.md",
1107
- "sha256": "8f931ef9ff06f1958da40d683c9d3788ffda8d1136964a2305c5ce23316c3679",
1108
- "bytes": 8632
1191
+ "path": "skills/story-short-analyze/references/analysis-writing-techniques.md",
1192
+ "sha256": "7a8a9797b1971ce20306001705d426631b6e93e4ba5eab11b81878f0007928df",
1193
+ "bytes": 21760
1109
1194
  },
1110
1195
  {
1111
- "path": "skills/story-short-analyze/references/hooks-paragraph.md",
1112
- "sha256": "947932cc322c580ffb695d094170f094d215858f8b745d7cb5c5d6cd9f52d222",
1113
- "bytes": 6848
1114
- },
1115
- {
1116
- "path": "skills/story-short-analyze/references/hooks-suspense.md",
1117
- "sha256": "4a6717e46fb7f0557212e7bdee1d4ad30aac6cbc33ca86ff013ea804240efd69",
1118
- "bytes": 15308
1196
+ "path": "skills/story-short-analyze/references/deconstruction-examples.md",
1197
+ "sha256": "48d04c09a4db38a8ae5f8e68f6b05adcafe6df9577de7878d503937e30406ec3",
1198
+ "bytes": 4250
1119
1199
  },
1120
1200
  {
1121
1201
  "path": "skills/story-short-analyze/references/material-decomposition.md",
1122
- "sha256": "eab032b1cf60a18612b61e10c113b16ed52159ac45f0e3d654f481d5db1598b3",
1123
- "bytes": 33805
1202
+ "sha256": "c8dc5acf538e3b85c806f80ab1bea911ac3ab99e436eabb2b576596e64537d86",
1203
+ "bytes": 34841
1124
1204
  },
1125
1205
  {
1126
1206
  "path": "skills/story-short-analyze/references/output-contract.md",
1127
- "sha256": "f38f510cef105f51ec5da65fb099a6c0f10bd6af99ed6f51d233189a83a74c46",
1128
- "bytes": 9088
1207
+ "sha256": "1390a94a82e970c0067c773b02131a97bbd156516fda79c6e64947b26419f242",
1208
+ "bytes": 9076
1129
1209
  },
1130
1210
  {
1131
1211
  "path": "skills/story-short-analyze/references/output-templates.md",
1132
- "sha256": "e5bbbcd37c48607c616f9fb31ab392222c6277da860b8dfb0ea331d684cb7ed1",
1133
- "bytes": 23631
1134
- },
1135
- {
1136
- "path": "skills/story-short-analyze/references/quality-checklist.md",
1137
- "sha256": "148a8c7bfd3bd18487cef3482399c68ae3ac60f5d3c61f3eb9e2cc5a967b876d",
1138
- "bytes": 10436
1212
+ "sha256": "c27259344dc3bcd4787d536fef73ba31c6d79bcf08b8588943e7aa6e9d8710d0",
1213
+ "bytes": 24074
1139
1214
  },
1140
1215
  {
1141
1216
  "path": "skills/story-short-analyze/references/real-market-data.md",
1142
1217
  "sha256": "6f755c4a683b69ae79a64a55f6634b544e7a625d9b8b7f03e76648eef7e9127b",
1143
1218
  "bytes": 4962
1144
1219
  },
1220
+ {
1221
+ "path": "skills/story-short-analyze/references/source-story-quality.md",
1222
+ "sha256": "82ee323ec9db08d786f4f444418a639a9d959f4f534e289429a8c49818e67391",
1223
+ "bytes": 10514
1224
+ },
1145
1225
  {
1146
1226
  "path": "skills/story-short-analyze/references/zhihu-style.md",
1147
- "sha256": "00a80fb4c0bed21791f9dcf00f11ae1c07df53a296c29aaf3661a042e427a152",
1148
- "bytes": 2416
1227
+ "sha256": "1adf08722fb6b216f2814e3143e4c92d71a1664ec4fa36cd3c135fc1374a139c",
1228
+ "bytes": 2594
1149
1229
  },
1150
1230
  {
1151
1231
  "path": "skills/story-short-scan/SKILL.md",
1152
- "sha256": "ae9563681b649e8c03cea39c8e508587dc410b3e797dffda7b020d55450de7e3",
1153
- "bytes": 8991
1232
+ "sha256": "def39be0868b47260e9ed4101bceac32a7582b63c903b8efb98514021e835f8a",
1233
+ "bytes": 8989
1154
1234
  },
1155
1235
  {
1156
1236
  "path": "skills/story-short-scan/references/real-market-data.md",
@@ -1174,18 +1254,23 @@
1174
1254
  },
1175
1255
  {
1176
1256
  "path": "skills/story-short-write/SKILL.md",
1177
- "sha256": "bc9e649f00da62cae39887b3a82d9ec47bea93ebefeabaa3e12f7efb71173fef",
1178
- "bytes": 36117
1257
+ "sha256": "c7cb71da8d621bfcea3472f52edf3b3e2b4e87dd35cfc32df2aba73232dc1a4e",
1258
+ "bytes": 39406
1259
+ },
1260
+ {
1261
+ "path": "skills/story-short-write/references/author-memory.md",
1262
+ "sha256": "04077171ce2eb189985b555362fce60daad9fa3f966e32273e277062f65973d1",
1263
+ "bytes": 9942
1179
1264
  },
1180
1265
  {
1181
1266
  "path": "skills/story-short-write/references/banned-words.md",
1182
- "sha256": "0c2cfc7f8236a4976bd06d99124fe60c15641769b67b9ee15f99f12a06b6ae3e",
1183
- "bytes": 9689
1267
+ "sha256": "bb9512f5b81e2dd0d8d47a8165b0372ed6c147475502a4aa207f763ab694d5e1",
1268
+ "bytes": 10337
1184
1269
  },
1185
1270
  {
1186
1271
  "path": "skills/story-short-write/references/cross-book-recall.md",
1187
- "sha256": "725305f1a46133354d05cb0ef36f94cf04c0ac32fa136970692362578ea86ebc",
1188
- "bytes": 5043
1272
+ "sha256": "3e3846a022a976712dc49179a35868f548e2a1ce6e91c55a16c0b8e2735b4d62",
1273
+ "bytes": 5039
1189
1274
  },
1190
1275
  {
1191
1276
  "path": "skills/story-short-write/references/dialogue-mastery.md",
@@ -1194,68 +1279,68 @@
1194
1279
  },
1195
1280
  {
1196
1281
  "path": "skills/story-short-write/references/emotional-methods.md",
1197
- "sha256": "db0ff9f07c3b8ebcec12f9fe498509f489ebfb3a20f4aa74277036380b6db013",
1198
- "bytes": 7690
1282
+ "sha256": "abb87b5dc5da81e50c6c16879608645443e54824d426098faec070cd505d2a0b",
1283
+ "bytes": 7888
1199
1284
  },
1200
1285
  {
1201
1286
  "path": "skills/story-short-write/references/genre-styles/世情打脸.md",
1202
- "sha256": "bb448b5c734d64f20b5ca74bbf892ecd7d3c71b5eedd3dea6086f45d7abc107c",
1203
- "bytes": 16267
1287
+ "sha256": "54b4812b6ee102ff743fac28e6baec81e1c6e9ca6b83c9bed274bae78ec1a6c6",
1288
+ "bytes": 16476
1204
1289
  },
1205
1290
  {
1206
1291
  "path": "skills/story-short-write/references/genre-styles/双男主.md",
1207
- "sha256": "0c9888650ca8c99385c7094b1a67471f51185e7c0188d7f4583d72dd67b793ce",
1208
- "bytes": 12475
1292
+ "sha256": "e92352d371f1498c1fd2e080ad019b90630580a8bd8000cbb7693767377d09a8",
1293
+ "bytes": 12646
1209
1294
  },
1210
1295
  {
1211
1296
  "path": "skills/story-short-write/references/genre-styles/复仇打脸.md",
1212
- "sha256": "317ea0132987674c9897fedb5c2a17e9db1785d443e11eefa2dfe81214016748",
1213
- "bytes": 14606
1297
+ "sha256": "c3dcf50e806fe39a1727b2a4b694302bfc85b53a2ca61e3e7d23ab5ef4a325a1",
1298
+ "bytes": 14846
1214
1299
  },
1215
1300
  {
1216
1301
  "path": "skills/story-short-write/references/genre-styles/宅斗宫斗.md",
1217
- "sha256": "65d21b3197d8bad0783ed1c511a6162983f1b9b23b6733f9b4da30c342a483df",
1218
- "bytes": 15379
1302
+ "sha256": "8e6d40bfcd4332f36411f8eba6c32d55614ab890284a506eba82c9fe477f65cb",
1303
+ "bytes": 15819
1219
1304
  },
1220
1305
  {
1221
1306
  "path": "skills/story-short-write/references/genre-styles/总裁豪门.md",
1222
- "sha256": "16d689085da3fcea91f026db29b3361113b121389c5b89fa759ff108f8e4fe66",
1223
- "bytes": 17114
1307
+ "sha256": "8dafcfce78d62641a3e4640e8eb449d2a24ac31648131a3184d871ae221de99e",
1308
+ "bytes": 17423
1224
1309
  },
1225
1310
  {
1226
1311
  "path": "skills/story-short-write/references/genre-styles/悬疑.md",
1227
- "sha256": "10443bdd95ead8d9ba42fbd8344d717e4af197473f4cdfeb72820d917c076ef0",
1228
- "bytes": 13436
1312
+ "sha256": "509be5eb455e84a4e0b6b302fa67afe81f912d955cc11bdd632ded837ba37ba9",
1313
+ "bytes": 13648
1229
1314
  },
1230
1315
  {
1231
1316
  "path": "skills/story-short-write/references/genre-styles/民俗怪谈.md",
1232
- "sha256": "fe3bdb58a9b14cc8e00f1e1942a7516f594c803a3affeae7aef7ab3d469be74b",
1233
- "bytes": 12759
1317
+ "sha256": "3cc947c44bafca816e45097406c0612b6d20f1db7e776fee96a9f6f390689e40",
1318
+ "bytes": 13216
1234
1319
  },
1235
1320
  {
1236
1321
  "path": "skills/story-short-write/references/genre-styles/沙雕脑洞.md",
1237
- "sha256": "edb5b6ebf4a41b2c49b706fe523de97d9f5bd3ccbb64f989acc92f3a6fbae2eb",
1238
- "bytes": 14297
1322
+ "sha256": "d745e461025d2fa1905841455a2df9f6601223f60cec5921592a911ceec949f7",
1323
+ "bytes": 14716
1239
1324
  },
1240
1325
  {
1241
1326
  "path": "skills/story-short-write/references/genre-styles/甜宠.md",
1242
- "sha256": "bfdb2c9fe1895844ddb4c09358b9ec217b96471ae8dd0750055cc6836e1628ac",
1243
- "bytes": 11558
1327
+ "sha256": "9c1d6b910b5e678bce09091e138081c872229af236999ce58c5bf8b683229a22",
1328
+ "bytes": 11853
1244
1329
  },
1245
1330
  {
1246
1331
  "path": "skills/story-short-write/references/genre-styles/追妻火葬场.md",
1247
- "sha256": "f7b58e216079742f731937b02c34c8890a64f23f8bafe05c2781a786e9687cb1",
1248
- "bytes": 15658
1332
+ "sha256": "19490647fea878aff99b9dac87c02faa5a6a0149475dc95b6fe21bf4fb27c286",
1333
+ "bytes": 15967
1249
1334
  },
1250
1335
  {
1251
1336
  "path": "skills/story-short-write/references/genre-writing-formulas.md",
1252
- "sha256": "1b0681918f972b79b75e0050938e3839d0cae94b26ba47756bc246eddd417264",
1253
- "bytes": 21340
1337
+ "sha256": "c4ff08dab0359c857b19c4226eb122e72d4f54f59df1f653129ce4e87bba879f",
1338
+ "bytes": 21427
1254
1339
  },
1255
1340
  {
1256
1341
  "path": "skills/story-short-write/references/genre-writing-techniques.md",
1257
- "sha256": "7a0ba60836fd7b647eeb0ac742c6d58b5c5ed3ea562fb039c81e53c8d239b766",
1258
- "bytes": 22196
1342
+ "sha256": "113cfab1a27a7a67e40dd476072df7907ca344285c85415dfd7014ef348dd375",
1343
+ "bytes": 23213
1259
1344
  },
1260
1345
  {
1261
1346
  "path": "skills/story-short-write/references/hooks-chapter.md",
@@ -1268,44 +1353,44 @@
1268
1353
  "bytes": 6848
1269
1354
  },
1270
1355
  {
1271
- "path": "skills/story-short-write/references/hooks-suspense.md",
1272
- "sha256": "4a6717e46fb7f0557212e7bdee1d4ad30aac6cbc33ca86ff013ea804240efd69",
1273
- "bytes": 15308
1356
+ "path": "skills/story-short-write/references/output-contract.md",
1357
+ "sha256": "1390a94a82e970c0067c773b02131a97bbd156516fda79c6e64947b26419f242",
1358
+ "bytes": 9076
1274
1359
  },
1275
1360
  {
1276
- "path": "skills/story-short-write/references/output-contract.md",
1277
- "sha256": "f38f510cef105f51ec5da65fb099a6c0f10bd6af99ed6f51d233189a83a74c46",
1278
- "bytes": 9088
1361
+ "path": "skills/story-short-write/references/short-craft.md",
1362
+ "sha256": "1e2be00eec0fbc0f4bca6583861d21c2484f2fe1389f34f0a4703ddbe29648eb",
1363
+ "bytes": 13960
1279
1364
  },
1280
1365
  {
1281
- "path": "skills/story-short-write/references/quality-checklist.md",
1282
- "sha256": "4f0a1cea6182cb7b00711a600098d9a869cb302aa0bbd221fc00fc04c2086576",
1283
- "bytes": 9523
1366
+ "path": "skills/story-short-write/references/short-deslop.md",
1367
+ "sha256": "ad2f8d82d6f37b7bc080803844411f7b46937f95361c1fe54c0fd2b8923602e6",
1368
+ "bytes": 8592
1284
1369
  },
1285
1370
  {
1286
- "path": "skills/story-short-write/references/reversal-toolkit.md",
1287
- "sha256": "6927d730da58765a38450aee34554248267f0fece58a90cffe13d57b5fb36e54",
1288
- "bytes": 15406
1371
+ "path": "skills/story-short-write/references/short-format.md",
1372
+ "sha256": "675843a3ad707ac06286fea4cd59aa45f54a62b0c4675600d5ff6bab1deed9c4",
1373
+ "bytes": 8649
1289
1374
  },
1290
1375
  {
1291
- "path": "skills/story-short-write/references/short-craft.md",
1292
- "sha256": "0a1d1d9c926364d980fc718594b620d015b5117d1a8b60efad5620d39f9ca0d9",
1293
- "bytes": 13345
1376
+ "path": "skills/story-short-write/references/short-prose-quality.md",
1377
+ "sha256": "d7963fb96a55a29a0ad866c222e09d1697b837c25579422a07cde3a1e55e2fde",
1378
+ "bytes": 10536
1294
1379
  },
1295
1380
  {
1296
- "path": "skills/story-short-write/references/short-deslop.md",
1297
- "sha256": "90128cd60d077334300ac355fa2c628682b187a2c0bd4687963f09110b6f6d92",
1298
- "bytes": 8532
1381
+ "path": "skills/story-short-write/references/short-reversal.md",
1382
+ "sha256": "3e7f50696552aa09536c2681a4c4272e4a383d2f84d9352cbf40016bfc15c490",
1383
+ "bytes": 16682
1299
1384
  },
1300
1385
  {
1301
- "path": "skills/story-short-write/references/short-format.md",
1302
- "sha256": "807f20fae4921d4933ad907fc69387627049a54104123238700bf1eb1b490cb4",
1303
- "bytes": 6901
1386
+ "path": "skills/story-short-write/references/short-suspense.md",
1387
+ "sha256": "40b07607cc4b4ff96fc7bcdf1b65dfa1d7f208bd2b78ae68eda0adca34ca5a1b",
1388
+ "bytes": 15939
1304
1389
  },
1305
1390
  {
1306
1391
  "path": "skills/story-short-write/references/submission-craft.md",
1307
- "sha256": "172c7b50743976f681f73491dd608cf56e2aa2b4d88e307815c87171450481b1",
1308
- "bytes": 4775
1392
+ "sha256": "0de2487e37de3eccb3005e57587b7ddb409538a36836b948f6dd61e0071f31a7",
1393
+ "bytes": 4860
1309
1394
  },
1310
1395
  {
1311
1396
  "path": "skills/story-short-write/references/villain-and-reveal.md",
@@ -1314,24 +1399,39 @@
1314
1399
  },
1315
1400
  {
1316
1401
  "path": "skills/story-short-write/references/writing-workflow.md",
1317
- "sha256": "6e6b736d7f7aa96355dc9b6ff74ed1f629ade9564da95cbcb1aad05244d10d51",
1318
- "bytes": 8785
1402
+ "sha256": "dd0a9039690084797fdc85152d41fda228f2ee9630f8e37a70b67b9e9d3479d0",
1403
+ "bytes": 10296
1404
+ },
1405
+ {
1406
+ "path": "skills/story-short-write/scripts/author_memory_commit.py",
1407
+ "sha256": "2c6741ff9d6efb5ab59be6c247cd4935195c8ce37096a5c1fc5a071065c7eeee",
1408
+ "bytes": 41806
1319
1409
  },
1320
1410
  {
1321
1411
  "path": "skills/story-short-write/scripts/check-ai-patterns.js",
1322
- "sha256": "886f08957de16d4836f724b70ee21fefaceb950772a2f9649aa6cc2432a9ad6b",
1323
- "bytes": 63141
1412
+ "sha256": "90a2fc9c5ab4a9105714c439ab0c8212035a18091af01593700286afdc8b2707",
1413
+ "bytes": 67088
1324
1414
  },
1325
1415
  {
1326
1416
  "path": "skills/story-short-write/scripts/check-degeneration.js",
1327
1417
  "sha256": "d6c212118dcf5c89018f337e05833265d6741d1d178789efba5b04f37a01a17d",
1328
1418
  "bytes": 14387
1329
1419
  },
1420
+ {
1421
+ "path": "skills/story-short-write/scripts/check-delivery-contract.js",
1422
+ "sha256": "15ab29cfc17d0f466b80a097ce4cfc0a04b70040df3ae6b70abf08f282cb3d91",
1423
+ "bytes": 7301
1424
+ },
1330
1425
  {
1331
1426
  "path": "skills/story-short-write/scripts/check-outline-copy.js",
1332
1427
  "sha256": "574dd78da11f934837e2b56f658b6c598935e16dd7dec2830272d0134d1587d3",
1333
1428
  "bytes": 9845
1334
1429
  },
1430
+ {
1431
+ "path": "skills/story-short-write/scripts/check-phase2-contract.js",
1432
+ "sha256": "742d951066005759b4fbad6b2530a51cf6cd43157f148622fbfffef72b402dc4",
1433
+ "bytes": 16497
1434
+ },
1335
1435
  {
1336
1436
  "path": "skills/story-short-write/scripts/normalize-punctuation.js",
1337
1437
  "sha256": "b9fa7ea6482da1ab76de4c1268d9583ef777d13be4a9f57cb6f8725fe1a7f1da",
@@ -1339,13 +1439,23 @@
1339
1439
  },
1340
1440
  {
1341
1441
  "path": "skills/story/SKILL.md",
1342
- "sha256": "ee6af57e46d2b2a29ca1e760f566b32360388baa1c12dd656cb31cf8bff7183f",
1343
- "bytes": 9598
1442
+ "sha256": "16d46f035a5dfdf79769e60fc2911efa5b996f6a2509ca2354a84ffa8ccc7e02",
1443
+ "bytes": 10883
1344
1444
  },
1345
1445
  {
1346
1446
  "path": "skills/story/VERSION",
1347
- "sha256": "94ca3eced7cb380b15f80484b8c28e8be79da390a3cfe413b514442494ce789a",
1447
+ "sha256": "112064d2eef87b1b3566a13e7673e42db7030d364bc7d8f9f6f53d339119a0ac",
1348
1448
  "bytes": 6
1449
+ },
1450
+ {
1451
+ "path": "skills/story/references/author-memory.md",
1452
+ "sha256": "04077171ce2eb189985b555362fce60daad9fa3f966e32273e277062f65973d1",
1453
+ "bytes": 9942
1454
+ },
1455
+ {
1456
+ "path": "skills/story/scripts/author_memory_commit.py",
1457
+ "sha256": "2c6741ff9d6efb5ab59be6c247cd4935195c8ce37096a5c1fc5a071065c7eeee",
1458
+ "bytes": 41806
1349
1459
  }
1350
1460
  ]
1351
1461
  }