@oh-story/dsh 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (488) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/cordis.patch.yml +3 -0
  4. package/lib/client.js +1201 -0
  5. package/lib/client.js.map +7 -0
  6. package/lib/drama/LICENSE.upstream +21 -0
  7. package/lib/drama/manifest.json +1012 -0
  8. package/lib/drama/skills/short-drama/SKILL.md +153 -0
  9. package/lib/drama/skills/short-drama/agents/openai.yaml +4 -0
  10. package/lib/drama/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  11. package/lib/drama/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  12. package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +36 -0
  13. package/lib/drama/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  14. package/lib/drama/skills/short-drama/references/audience-reveal.md +74 -0
  15. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +94 -0
  16. package/lib/drama/skills/short-drama/references/creator-workflow.md +82 -0
  17. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
  18. package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
  19. package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
  20. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  21. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
  22. package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
  23. package/lib/drama/skills/short-drama/references/knowhow-index.md +80 -0
  24. package/lib/drama/skills/short-drama/references/lifecycle-commands.md +130 -0
  25. package/lib/drama/skills/short-drama/references/look-development.md +52 -0
  26. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +58 -0
  27. package/lib/drama/skills/short-drama/references/production-form-profiles.md +126 -0
  28. package/lib/drama/skills/short-drama/references/reference-roles.md +142 -0
  29. package/lib/drama/skills/short-drama/references/runtime-preflight.md +27 -0
  30. package/lib/drama/skills/short-drama/scripts/project_tool.py +1963 -0
  31. package/lib/drama/skills/short-drama/scripts/selftest.py +287 -0
  32. package/lib/drama/skills/short-drama-assets/SKILL.md +187 -0
  33. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +4 -0
  34. package/lib/drama/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  35. package/lib/drama/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  36. package/lib/drama/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  37. package/lib/drama/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  38. package/lib/drama/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  39. package/lib/drama/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  40. package/lib/drama/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  41. package/lib/drama/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  42. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +89 -0
  43. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +164 -0
  44. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +123 -0
  45. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +146 -0
  46. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +84 -0
  47. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +111 -0
  48. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +107 -0
  49. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +136 -0
  50. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +171 -0
  51. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +267 -0
  52. package/lib/drama/skills/short-drama-assets/scripts/selftest.py +89 -0
  53. package/lib/drama/skills/short-drama-develop/SKILL.md +157 -0
  54. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +4 -0
  55. package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  56. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +120 -0
  57. package/lib/drama/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  58. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +181 -0
  59. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  60. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  61. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  62. package/lib/drama/skills/short-drama-develop/references/episode-design.md +509 -0
  63. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  64. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
  65. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
  66. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
  67. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
  68. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
  69. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
  70. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
  71. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
  72. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
  73. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
  74. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
  75. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
  76. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +92 -0
  77. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  78. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  79. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +211 -0
  80. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  81. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  82. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +88 -0
  83. package/lib/drama/skills/short-drama-develop/references/story-craft.md +359 -0
  84. package/lib/drama/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  85. package/lib/drama/skills/short-drama-develop/scripts/selftest.py +47 -0
  86. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +181 -0
  87. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  88. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  89. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +37 -0
  90. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  91. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +31 -0
  92. package/lib/drama/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  93. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +154 -0
  94. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +231 -0
  95. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +122 -0
  96. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +152 -0
  97. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +96 -0
  98. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +38 -0
  99. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  100. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +140 -0
  101. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  102. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +89 -0
  103. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  104. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +93 -0
  105. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +245 -0
  106. package/lib/drama/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  107. package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  108. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  109. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  110. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  111. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +141 -0
  112. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  113. package/lib/drama/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  114. package/lib/drama/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  115. package/lib/drama/skills/short-drama-produce/SKILL.md +103 -0
  116. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +4 -0
  117. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +140 -0
  118. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  119. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  120. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +40 -0
  121. package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +60 -0
  122. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +1635 -0
  123. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +964 -0
  124. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +134 -0
  125. package/lib/drama/skills/short-drama-review/SKILL.md +178 -0
  126. package/lib/drama/skills/short-drama-review/agents/openai.yaml +4 -0
  127. package/lib/drama/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  128. package/lib/drama/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  129. package/lib/drama/skills/short-drama-review/assets/verdict-template.json +32 -0
  130. package/lib/drama/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  131. package/lib/drama/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  132. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +114 -0
  133. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +270 -0
  134. package/lib/drama/skills/short-drama-review/references/project-calibration.md +85 -0
  135. package/lib/drama/skills/short-drama-review/references/review-method.md +82 -0
  136. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +115 -0
  137. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  138. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +164 -0
  139. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +166 -0
  140. package/lib/drama/skills/short-drama-review/references/stage-contract.md +87 -0
  141. package/lib/drama/skills/short-drama-review/scripts/review_check.py +325 -0
  142. package/lib/drama/skills/short-drama-review/scripts/selftest.py +87 -0
  143. package/lib/drama/skills/short-drama-storyboard/SKILL.md +264 -0
  144. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  145. package/lib/drama/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  146. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  147. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +32 -0
  148. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  149. package/lib/drama/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  150. package/lib/drama/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  151. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  152. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +241 -0
  153. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +39 -0
  154. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +169 -0
  155. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +264 -0
  156. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +70 -0
  157. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +39 -0
  158. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +157 -0
  159. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +192 -0
  160. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +29 -0
  161. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +110 -0
  162. package/lib/drama/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  163. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  164. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +245 -0
  165. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  166. package/lib/drama/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  167. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  168. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +212 -0
  169. package/lib/drama/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  170. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  171. package/lib/drama/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  172. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +46 -0
  173. package/lib/drama/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  174. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +240 -0
  175. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +255 -0
  176. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +93 -0
  177. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +304 -0
  178. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +191 -0
  179. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +312 -0
  180. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +168 -0
  181. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +110 -0
  182. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  183. package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  184. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  185. package/lib/drama/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  186. package/lib/drama/skills/short-drama-write/SKILL.md +284 -0
  187. package/lib/drama/skills/short-drama-write/agents/openai.yaml +4 -0
  188. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +2 -0
  189. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  190. package/lib/drama/skills/short-drama-write/assets/episode-card.json +55 -0
  191. package/lib/drama/skills/short-drama-write/assets/screenplay.md +36 -0
  192. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  193. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +519 -0
  194. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +273 -0
  195. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +51 -0
  196. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  197. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +260 -0
  198. package/lib/drama/skills/short-drama-write/references/script-craft.md +558 -0
  199. package/lib/drama/skills/short-drama-write/references/stage-contract.md +94 -0
  200. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +107 -0
  201. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  202. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  203. package/lib/drama/skills/short-drama-write/scripts/selftest.py +229 -0
  204. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  205. package/lib/index.js +756 -0
  206. package/lib/index.js.map +7 -0
  207. package/lib/oh-story/LICENSE.upstream +21 -0
  208. package/lib/oh-story/manifest.json +1351 -0
  209. package/lib/oh-story/roles/chapter-extractor.md +314 -0
  210. package/lib/oh-story/roles/character-designer.md +169 -0
  211. package/lib/oh-story/roles/consistency-checker.md +190 -0
  212. package/lib/oh-story/roles/narrative-writer.md +294 -0
  213. package/lib/oh-story/roles/story-architect.md +195 -0
  214. package/lib/oh-story/roles/story-explorer.md +364 -0
  215. package/lib/oh-story/roles/story-researcher.md +304 -0
  216. package/lib/oh-story/skills/browser-cdp/SKILL.md +175 -0
  217. package/lib/oh-story/skills/story/SKILL.md +116 -0
  218. package/lib/oh-story/skills/story/VERSION +1 -0
  219. package/lib/oh-story/skills/story-cover/SKILL.md +327 -0
  220. package/lib/oh-story/skills/story-cover/references/cover-styles.md +210 -0
  221. package/lib/oh-story/skills/story-deslop/SKILL.md +445 -0
  222. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +582 -0
  223. package/lib/oh-story/skills/story-deslop/references/banned-words.md +147 -0
  224. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +1371 -0
  225. package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +330 -0
  226. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +241 -0
  227. package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +410 -0
  228. package/lib/oh-story/skills/story-import/SKILL.md +634 -0
  229. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +82 -0
  230. package/lib/oh-story/skills/story-import/references/format-and-structure.md +169 -0
  231. package/lib/oh-story/skills/story-import/references/length-routing.md +134 -0
  232. package/lib/oh-story/skills/story-import/references/state-tracking.md +108 -0
  233. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +442 -0
  234. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +175 -0
  235. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +161 -0
  236. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +1139 -0
  237. package/lib/oh-story/skills/story-long-analyze/SKILL.md +329 -0
  238. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
  239. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +530 -0
  240. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +559 -0
  241. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +80 -0
  242. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +149 -0
  243. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
  244. package/lib/oh-story/skills/story-long-scan/SKILL.md +342 -0
  245. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +197 -0
  246. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +114 -0
  247. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +105 -0
  248. package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +207 -0
  249. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +78 -0
  250. package/lib/oh-story/skills/story-long-write/SKILL.md +327 -0
  251. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +582 -0
  252. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +302 -0
  253. package/lib/oh-story/skills/story-long-write/references/banned-words.md +147 -0
  254. package/lib/oh-story/skills/story-long-write/references/character-basics.md +445 -0
  255. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +428 -0
  256. package/lib/oh-story/skills/story-long-write/references/character-relations.md +385 -0
  257. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +502 -0
  258. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +62 -0
  259. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +282 -0
  260. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +426 -0
  261. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +209 -0
  262. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +188 -0
  263. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +169 -0
  264. package/lib/oh-story/skills/story-long-write/references/genre-catalog.md +480 -0
  265. package/lib/oh-story/skills/story-long-write/references/genre-core-mechanics.md +415 -0
  266. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  267. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  268. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  269. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  271. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  272. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  273. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  274. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  275. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  276. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  277. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  278. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  279. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  280. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  281. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  282. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  283. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  284. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  285. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  286. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  287. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  288. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  289. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  290. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  291. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  292. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  293. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  294. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  295. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  296. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  297. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  298. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +91 -0
  299. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +235 -0
  300. package/lib/oh-story/skills/story-long-write/references/genre-writing-formulas.md +444 -0
  301. package/lib/oh-story/skills/story-long-write/references/hooks-chapter.md +225 -0
  302. package/lib/oh-story/skills/story-long-write/references/hooks-paragraph.md +146 -0
  303. package/lib/oh-story/skills/story-long-write/references/hooks-suspense.md +352 -0
  304. package/lib/oh-story/skills/story-long-write/references/opening-design.md +349 -0
  305. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +457 -0
  306. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +287 -0
  307. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +389 -0
  308. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +326 -0
  309. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +522 -0
  310. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +354 -0
  311. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +711 -0
  312. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +622 -0
  313. package/lib/oh-story/skills/story-long-write/references/quality-checklist.md +184 -0
  314. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +109 -0
  315. package/lib/oh-story/skills/story-long-write/references/reversal-toolkit.md +349 -0
  316. package/lib/oh-story/skills/story-long-write/references/state-tracking.md +108 -0
  317. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +409 -0
  318. package/lib/oh-story/skills/story-long-write/references/style-craft.md +347 -0
  319. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +510 -0
  320. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +161 -0
  321. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +140 -0
  322. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +171 -0
  323. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +99 -0
  324. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +284 -0
  325. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +421 -0
  326. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +1371 -0
  327. package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +330 -0
  328. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +241 -0
  329. package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +410 -0
  330. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +1139 -0
  331. package/lib/oh-story/skills/story-review/SKILL.md +483 -0
  332. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +582 -0
  333. package/lib/oh-story/skills/story-review/references/banned-words.md +147 -0
  334. package/lib/oh-story/skills/story-review/references/character-relations.md +385 -0
  335. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +282 -0
  336. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +522 -0
  337. package/lib/oh-story/skills/story-review/references/quality-checklist.md +250 -0
  338. package/lib/oh-story/skills/story-review/references/quality-rubric.md +55 -0
  339. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +18 -0
  340. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +19 -0
  341. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +20 -0
  342. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +161 -0
  343. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +1371 -0
  344. package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +330 -0
  345. package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +410 -0
  346. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +1139 -0
  347. package/lib/oh-story/skills/story-setup/SKILL.md +495 -0
  348. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +582 -0
  349. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +147 -0
  350. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +445 -0
  351. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
  352. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +385 -0
  353. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +282 -0
  354. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +426 -0
  355. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-methods.md +179 -0
  356. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +169 -0
  357. package/lib/oh-story/skills/story-setup/references/agent-references/genre-catalog.md +480 -0
  358. package/lib/oh-story/skills/story-setup/references/agent-references/genre-core-mechanics.md +415 -0
  359. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  360. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  361. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  362. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  363. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  364. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  365. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  366. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  367. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  368. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  369. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  370. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  371. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  374. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  375. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  376. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  377. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  378. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  379. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  380. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  381. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  382. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  383. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  384. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  385. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  386. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  387. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  388. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  389. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  390. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  391. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
  392. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +235 -0
  393. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +444 -0
  394. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-chapter.md +225 -0
  395. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-suspense.md +352 -0
  396. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +349 -0
  397. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
  398. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +287 -0
  399. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
  400. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
  401. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +247 -0
  402. package/lib/oh-story/skills/story-setup/references/agent-references/reversal-toolkit.md +349 -0
  403. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +409 -0
  404. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
  405. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +421 -0
  406. package/lib/oh-story/skills/story-short-analyze/SKILL.md +278 -0
  407. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +582 -0
  408. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +147 -0
  409. package/lib/oh-story/skills/story-short-analyze/references/character-basics.md +453 -0
  410. package/lib/oh-story/skills/story-short-analyze/references/character-design-methods.md +438 -0
  411. package/lib/oh-story/skills/story-short-analyze/references/character-relations.md +395 -0
  412. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
  413. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +490 -0
  414. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +425 -0
  415. package/lib/oh-story/skills/story-short-analyze/references/genre-readers.md +245 -0
  416. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +453 -0
  417. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-techniques.md +475 -0
  418. package/lib/oh-story/skills/story-short-analyze/references/hooks-chapter.md +225 -0
  419. package/lib/oh-story/skills/story-short-analyze/references/hooks-paragraph.md +146 -0
  420. package/lib/oh-story/skills/story-short-analyze/references/hooks-suspense.md +352 -0
  421. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +685 -0
  422. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +165 -0
  423. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +561 -0
  424. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +242 -0
  425. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +90 -0
  426. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +54 -0
  427. package/lib/oh-story/skills/story-short-scan/SKILL.md +212 -0
  428. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +90 -0
  429. package/lib/oh-story/skills/story-short-write/SKILL.md +433 -0
  430. package/lib/oh-story/skills/story-short-write/references/banned-words.md +147 -0
  431. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +62 -0
  432. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +282 -0
  433. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +179 -0
  434. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +159 -0
  435. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
  436. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
  437. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
  438. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
  439. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
  440. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
  441. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
  442. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
  443. package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +210 -0
  444. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +444 -0
  445. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +488 -0
  446. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +225 -0
  447. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +146 -0
  448. package/lib/oh-story/skills/story-short-write/references/hooks-suspense.md +352 -0
  449. package/lib/oh-story/skills/story-short-write/references/output-contract.md +165 -0
  450. package/lib/oh-story/skills/story-short-write/references/quality-checklist.md +222 -0
  451. package/lib/oh-story/skills/story-short-write/references/reversal-toolkit.md +349 -0
  452. package/lib/oh-story/skills/story-short-write/references/short-craft.md +185 -0
  453. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +133 -0
  454. package/lib/oh-story/skills/story-short-write/references/short-format.md +167 -0
  455. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +35 -0
  456. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +158 -0
  457. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +153 -0
  458. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +1371 -0
  459. package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +330 -0
  460. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +241 -0
  461. package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +410 -0
  462. package/lib/types/client/file-activity.d.ts +30 -0
  463. package/lib/types/client/file-activity.d.ts.map +1 -0
  464. package/lib/types/client/file-tree.d.ts +20 -0
  465. package/lib/types/client/file-tree.d.ts.map +1 -0
  466. package/lib/types/client/index.d.ts +12 -0
  467. package/lib/types/client/index.d.ts.map +1 -0
  468. package/lib/types/client/jsonl-preview.d.ts +15 -0
  469. package/lib/types/client/jsonl-preview.d.ts.map +1 -0
  470. package/lib/types/client/markdown-preview.d.ts +38 -0
  471. package/lib/types/client/markdown-preview.d.ts.map +1 -0
  472. package/lib/types/index.d.ts +25 -0
  473. package/lib/types/index.d.ts.map +1 -0
  474. package/lib/types/native-hooks.d.ts +16 -0
  475. package/lib/types/native-hooks.d.ts.map +1 -0
  476. package/lib/types/role-provider.d.ts +6 -0
  477. package/lib/types/role-provider.d.ts.map +1 -0
  478. package/lib/types/role-tool.d.ts +10 -0
  479. package/lib/types/role-tool.d.ts.map +1 -0
  480. package/lib/types/skill-provider.d.ts +15 -0
  481. package/lib/types/skill-provider.d.ts.map +1 -0
  482. package/lib/types/workspace-request-trust.d.ts +13 -0
  483. package/lib/types/workspace-request-trust.d.ts.map +1 -0
  484. package/lib/types/workspace-route.d.ts +10 -0
  485. package/lib/types/workspace-route.d.ts.map +1 -0
  486. package/lib/types/workspace-security.d.ts +9 -0
  487. package/lib/types/workspace-security.d.ts.map +1 -0
  488. package/package.json +107 -0
@@ -0,0 +1,264 @@
1
+ # 生产分镜工艺:把剧本事实编成可审查镜头
2
+
3
+ ## 目录
4
+
5
+ - [贯穿原则](#一贯穿原则)
6
+ - [编号与文本](#二编号与文本分工)
7
+ - [拆分](#三拍镜拆分规则)
8
+ - [动作顺序交接](#四动作顺序交接给视频提示词环节的输入)
9
+ - [镜头叙事](#五镜头叙事学摄影决策问题)
10
+ - [戏型诊断](#六场景戏型诊断问题)
11
+ - [项目选择](#七项目选择craft_default)
12
+ - [单集时长加总](#七之二单集时长加总sht-16)
13
+ - [人物反应](#八人物反应sht-11)
14
+ - [自检](#九自检清单)
15
+ - [范例](#十范例合成决策记录不是镜头配额)
16
+ - [反模式](#十一反模式)
17
+
18
+ 来自对剧本拍、分镜、关键帧与视频提示词如何衔接的定性案例阅读,示例均为合成改写。
19
+ 方法论见 [shot-craft.md](shot-craft.md) 与 [keyframe-craft.md](keyframe-craft.md);
20
+ 本文档是生产端的转换规则和判断依据。出现的数字只有被创作者纳入项目方案
21
+ (`craft_default`)后才是验收条件,不能只因偏离示例就判为问题。
22
+
23
+ 核心认知:**分镜先说明剪辑覆盖范围和可审查的起止边界,不是下游视频提示词**。
24
+ 它说明本镜为何存在、观众能知道什么、从哪一状态到哪一状态;只有已接受的制作方案
25
+ 需要时才补充时间段意图,完整动作措辞由视频提示词环节编写。`start_boundary` 可以是
26
+ 静止关键帧,也可以是上游明确的运动中瞬间,不能把“静帧输入”误写成故事必须静止。
27
+
28
+ ## 一、贯穿原则
29
+
30
+ 1. **一镜一职责**(SHT-03 的生产表述):每镜有一个主导叙事职责。台词、反应与动作
31
+ 可同镜存在,只要镜头时长、表演负荷和注意顺序可执行;过载时按行动转向、听者后果或
32
+ 力学阶段拆镜,不按句号机械切镜。
33
+ 2. **先后顺序守住上游内容**:镜头记录必要动作与反应的相对顺序,不代写完整运动提示词。
34
+ 3. **几何要可比较**:方向、距离、占比或停留只在能消除当前歧义时量化;数值来自
35
+ 已接受的项目方案,不是每镜必填。
36
+ 4. **摄影行为有职责**(SHT-04):运镜或有意固定机位都应能说明它如何服务注意力、
37
+ 压力、观众立场、揭示或节奏,而不是给每镜强加运镜。
38
+ 5. **连续性靠已确认边界比较**:精确绑定 `Location/View`、`start_boundary` 与
39
+ `end_boundary`;下游只
40
+ 重复执行必需的局部状态,不逐镜复制整份状态表。
41
+
42
+ ## 二、编号与文本分工
43
+
44
+ - 分镜号 = `场序-镜序`。**场序按 clip 内"地点组"顺位**:换地点才递增,同地点的
45
+ 多个剧本场共用前缀;剧本自带集号时用三段式 `64-1-1`。
46
+ - 文本分工:保留该镜覆盖的剧本原文;用简短中文纲要说明谁做什么以及镜头职责,供
47
+ 人工审阅;另记录镜头目的、起止边界和摄影意图。完整时间过程由视频提示词环节编写。
48
+ **纲要写差 = 人审索引
49
+ 失效**——"开场"两个字的纲要是真实事故案例。
50
+
51
+ ## 三、拍→镜拆分规则
52
+
53
+ | 剧本形态 | 拆法 |
54
+ |---|---|
55
+ | 一拍 = 一句台词 + 一个动作 | 若同一镜头目的和边界可承担,可保留一镜;不是等式 |
56
+ | 一拍含多次行动转向或听者后果 | 按议程变化、听者反应与可执行语速拆镜;不使用固定句数/字数配额 |
57
+ | 一拍是爆发动作 | 若单镜过载,可按起势/接触/结果等力学阶段拆,切点绑定精确状态 |
58
+ | 一拍是纯反应/沉默 | 只有承担反应或选择后果时独立成镜;停留由后果与节奏决定 |
59
+
60
+ **建立镜头**是常见选择:新地点若观众尚不能定位人物、入口或冲突区域,
61
+ 用合适景别交代;若前镜已经建立地理,或上游有意让观众先迷失/延迟识别,就不为
62
+ 凑“第一镜全景”自增。任何新增镜头仍须解释它覆盖的内容与信息职责。
63
+
64
+ ## 四、动作顺序交接(给视频提示词环节的输入)
65
+
66
+ 需要把复杂动作交给视频提示词环节时,可用中性顺序草图:
67
+
68
+ ```text
69
+ 起点:<已接受镜头边界,可静止也可在运动中>
70
+ 顺序:<上游动作> → <必要反应或注意力转移> → <已接受终点>
71
+ 摄影意图:<固定/移动及其叙事职责>
72
+ ```
73
+
74
+ - 起点逐字段写入已接受的 `start_boundary`,不把静态关键帧的媒介性质改成“人物必须静止”;
75
+ - 结束状态由分镜文件记录,下一镜通过引用比较,不靠复制长篇说明获得权威;
76
+ - 并行槽只放有来源的变化:他人反应、环境压力或持续运动锚点可以
77
+ 帮助画面成立,但没有叙事/物理依据时宁可保持静止,不为满足配额发明微动态;
78
+ - 只有已接受的时长或制作方案要求时才写秒数、角度或位移;它们是当前镜头选择,
79
+ 不是跨项目动作质量公式;
80
+ - 台词保持精确引用与相对动作顺序;是否把动作展开成更多阶段取决于时长和表演负荷。
81
+
82
+ **质量问题**:不改动台词和上游顺序时,这个镜头是否仍明确谁承载信息、谁接收
83
+ 后果、画面从什么边界到什么边界,以及为什么此处需要切镜?
84
+
85
+ ## 五、镜头叙事学(摄影决策问题)
86
+
87
+ | 需要解决的问题 | 先核对 | 可选实现,不是映射答案 |
88
+ |---|---|---|
89
+ | 信息必须被读到 | 通过脸、手、道具文字、空间关系还是声音呈现?何时允许看见? | 固定机位、跟随信息所在位置、改变焦点或切到接收者 |
90
+ | 观众立场改变 | 观众此前与谁同知、此刻为何要靠近或疏离? | 保持原视点、换主观侧、拉开关系或有意拒绝切换 |
91
+ | 空间压力改变 | 谁控制入口、距离、路径或画外威胁?地理是否已经建立? | 调整机位、跟位移、用遮挡,或保持固定让调度自己改变关系 |
92
+ | 力学动作需要理解 | 起势、接触、结果中哪些必须连续看清,哪些切点已有精确状态? | 单镜保持、按力学阶段拆、补细节镜头或反应镜头 |
93
+ | 情绪后果需要落地 | 哪个可见处理或选择证明人物接收了后果? | 留在同镜、切反应、延迟到后镜;景别由信息或表演所在位置决定 |
94
+
95
+ 一场通常比它真正要演的景别先开宽一档,第二镜就落到本场的**工作景别**,之后多数切镜在
96
+ 这一档上下一格来回;宽景和特写是**离开**工作景别的标记事件,用过就回来,场尾略微放开是
97
+ 常见收法。例如两人在客厅摊牌:第 1 镜全景交代谁堵着门口,第 2 镜落到中景这个工作景别,
98
+ 之后在中景与中近景之间对切,只有她把信封推过茶几时切一次特写,随即回到中近景,场尾退回
99
+ 中景收住。一路单调收紧的场次到中段就没有余量了。也可以用细节、背影、负空间或不切镜保持
100
+ 压力;顶点后的拉远同样只是选项。选择必须回应本场注意力、观众立场和信息揭示变化,不从
101
+ “情绪顶点=大特写”“结束=上帝视角”套模板。正反打、过肩和轴线策略服从已建立地理
102
+ 与有意的视角变化。
103
+
104
+ ### 切点必须带来可见变化
105
+
106
+ 上一段拒绝的是“按情绪套景别”,不是“景别可以原地不动”。两者的分界线是**这里到底切
107
+ 不切**:
108
+
109
+ - **不切镜**:同一景别持续本身就是选择。压力累积、人物在同一构图里自己改变距离、
110
+ 观众被迫一直看着不肯变的画面,都是有效理由。
111
+ - **已经切镜**:新镜必须在景别、机位角度或人物关系里至少改变一项。相邻两镜景别相同、
112
+ 角度相同、关系也没变时,观众读到的不是节奏,是跳切或穿帮——这个切点没有存在理由。
113
+ 修法只有三种:让收放跟着注意重点走(最常见是沿阶梯相邻一格一收一放:
114
+ 中景↔中近景↔近景↔特写),换轴线侧或视点,或者干脆并成一镜、用调度在镜内改变关系。
115
+ - **新空间的第一镜**通常先给得开一些,让观众定位后再逐步收进去;但前镜已经建立地理,
116
+ 或上游有意延迟识别时,不为“第一镜要宽”自增镜头(见第三节)。
117
+
118
+ 这条规则只在已经决定切镜时生效。它不是为景别多样性增加切点的理由:切多少镜仍由动作
119
+ 边界、听者反应和信息变化解释,收放幅度也要能说出注意力或观众立场变化在哪里。
120
+
121
+ 变焦推拉(Dolly Zoom)、荷兰角或甩镜是点睛手段;只有视角、失衡或注意力突然改变时才使用。
122
+ 重复使用会让每个节点失去差异,但不能靠固定次数判断(SHT-07)。
123
+
124
+ ### 角度、机位高度与焦段:三件常被写成一件的事
125
+
126
+ 景别有受控词表,角度长期只有一句"有动机的角度",结果三种彼此独立的选择被压进同一个词。
127
+ 最常见的具体后果:写"俯拍"时其实想要的是"从她背后越过肩膀"(那是**水平角度**,不是高度),
128
+ 下游按字面给了一个从上往下的机位,权力关系当场反了。
129
+
130
+ 分三栏写,缺哪栏就说明哪栏无所谓:
131
+
132
+ | 维度 | 词表 | 它在故事里回答什么 | 记在哪 |
133
+ |---|---|---|---|
134
+ | **水平角度** | `正面 / 斜侧(四分之三)/ 正侧 / 后斜侧 / 背面` | 观众被允许读到多少表情,以及站在谁的一侧 | 镜头 `framing.angle`,同时说明在轴线哪一侧 |
135
+ | **机位高度** | `地平 / 低(仰)/ 平视 / 高(俯)/ 顶视` | 谁在这一刻大于谁;平视是**主动**表示势均力敌,不是"没选" | 镜头 `framing.camera_height` |
136
+ | **焦段意图** | `广(空间关系优先)/ 标准(接近肉眼)/ 长(压缩纵深、隔离主体)` | 人与人的距离该显得更远还是更近 | 关键帧 `camera.lens_intent`(**帧级选择**) |
137
+
138
+ 前两栏是镜头拥有的调度事实,关键帧只投影不覆盖;焦段意图是关键帧自己的选择,因为它
139
+ 决定的是这一帧怎么被看,不改变人在哪、谁大于谁。不要在镜头记录里再写一次焦段——
140
+ 同一事实两处各写一份,改动时必然只改一处。
141
+
142
+ 三者互不推导,写死一栏不代表另两栏有了答案:
143
+
144
+ - 仰拍不等于正面。从背后仰拍是"我们跟在他身后而他正在变大",从正面仰拍是"他正压向我们"。
145
+ - 长焦不等于特写。用长焦拍全景会把纵深压平,让两个人看起来贴在一起——这可能正是要的,
146
+ 也可能是把"隔着半个房间对峙"拍成了"面对面"。
147
+ - 焦段意图属于 `taste_option`(`SHT-07`):写的是**要什么效果**,不是器材参数。写"长焦"
148
+ 是意图,写具体毫米数是把创作者的器材决定替他做了。
149
+
150
+ 竖屏还有一条不能忽略:**高度变化在竖屏里比横屏更贵**。9:16 的画面纵向本来就长,俯仰会
151
+ 迅速吃掉人物所在的可用高度,同样的俯角在竖屏里读起来比横屏强得多。要靠角度表达权力时,
152
+ 先看水平角度和距离能不能承担,再动高度。
153
+
154
+ ## 六、场景戏型诊断问题
155
+
156
+ - **对峙戏**:双方议程和可用筹码是什么?哪次行动真正改变距离、证据、关系或退出
157
+ 能力?谁必须接收改变?只有这些转向需要新镜头。
158
+ - **动作戏**:观众必须理解哪条路径、接触和结果?人物选择与代价落在哪里?先保证
159
+ 地理和道具归属,再决定连续保持、拆力学阶段或切反应。
160
+ - **情绪戏**:触发是什么,人物如何可见地处理,它促成什么选择或抑制?沉默、对白、
161
+ 手部、空间距离和不切镜都可承载,不把情绪名自动匹配到特写或推拉摇移。
162
+ - **悬疑/恐怖**:观众、角色与威胁分别知道什么?`show_now/withhold_now/reveal_trigger`
163
+ 分别由什么画面或声音呈现?遮挡既不能提前泄露,也不能藏掉本镜负责交付的证据。
164
+ - **喜剧**:铺垫事实、误读和纠正由谁看到?笑点可能来自节奏时机、构图内并存或切换,
165
+ 不要求固定反应次数,也不让反应镜解释已经成立的笑点。
166
+
167
+ ## 七、项目选择(`craft_default`)
168
+
169
+ | 决策 | 如何确定 |
170
+ |---|---|
171
+ | 拍如何拆镜 | 由动作边界、听者反应、空间变化与可执行时长共同决定,不追求固定比值。 |
172
+ | 台词如何分配 | 先保证一次可表演语气与口型负载;过长时按行动转向拆分,而非机械按字数。 |
173
+ | 单镜还是镜头组 | 先把每个镜头写成可单独审查的记录,再按目标交付方式编组;编组不改变镜头身份。本环节只负责镜头本身:定清每个镜头的目的、起止边界与已接受时长。编组之后由谁承担时长加总与成员资格,属于交付环节的事,不在这里决定,也不因为将来会编组就提前合并镜头。 |
174
+ | 子镜密度 | 9:16 信息流上的注意力是按切镜买的:`craft_default` 是可看的切镜密度大致每 4–8 秒一次,爽点更紧、情感处理更松在这条带宽内浮动,每次切换仍要有注意、压力或状态理由。项目把生成单元固定在更长的一档时,这条带宽由镜内调度承担——一镜里要有景别或视点的实际变化、或一次完整的动作与反应交接,否则无论单帧多好,观众读到的都是幻灯片。 |
175
+ | 单元时长 | 先从必须保留的动作、反应、对白与最终状态反推这一镜需要多久;放不下就删减、拆镜或请求改边界。项目已经定下可用的生成长度档位时,取容得下它的最短一档;没定就按反推出的秒数写,并把用到的档位报给创作者。超过约五到八秒后,一张冻结关键帧只描述了镜头开头,其余部分实际上没有规格:更长的镜头要么按精确状态边界拆开,要么由创作者明确接受它是一个宽规格镜头。 |
176
+
177
+ ## 七之二、单集时长加总(`SHT-16`)
178
+
179
+ 创作者在项目里写下的每集目标时长,如果全流程没有一处消费它,它就只是一个愿望。
180
+ 真实的失效是这样发生的:分镜逐镜看都合理,每一镜的时长也都是有理由的,直到全集镜头
181
+ 装到一起才发现比目标长出三分之一——而此时台词、资产、关键帧提示词都已经按这些镜头
182
+ 做完了,唯一还能改的只剩硬删。
183
+
184
+ `structural_invariant`:覆盖记录带一个 `episode_duration`,它的 `shot_seconds_total`
185
+ 必须是本集镜头 `duration_seconds` 的**算术和**,且覆盖里列出的每个镜头要么贡献一个数字,
186
+ 要么出现在 `unresolved_durations` 里。这条只管账目对不对:**不允许有镜头无声地不进总和**。
187
+ 时长未定的镜头显式挂起是正常状态,静默漏掉不是。
188
+
189
+ 项目声明了 `target_seconds_per_episode` 时,记录还要绑定该字段并写出带符号的
190
+ `delta_seconds` 与一个 `disposition`:
191
+
192
+ | disposition | 含义 |
193
+ |---|---|
194
+ | `no_target_declared` | 项目没有声明目标,本项只留总和 |
195
+ | `within_creator_tolerance` | 差值在创作者可接受范围内 |
196
+ | `creator_accepted_overrun` | 超出但创作者明确接受,附理由 |
197
+ | `to_revise` | 需要回到内容层处理 |
198
+
199
+ `craft_default`:差值本身**不阻断交付**。目标时长是计划,不是质量门槛;`to_revise` 的
200
+ 处理手段是回到内容层(合并同质节拍、把说明改成传递、拆集),不是按数字均匀删镜头或
201
+ 砍台词——后者砍掉的往往正是兑现。
202
+
203
+ 这条与分集阶段的量级估算是两件事,不要互相代替:估算用项目已接受集的比值预测**还没写的
204
+ 集**,第一集因为没有基准而跳过;加总用**已经存在的镜头**做测量,第一集同样成立。第一集
205
+ 拿不到估算,但拿得到测量。
206
+
207
+ ## 八、人物反应(SHT-11)
208
+
209
+ 对白覆盖存在不等于后果被接收。关键信息改变听者的权力、关系、知识或选择时,必须
210
+ 在本镜或后续独立镜中给出可见处理与最终状态;景别、时长和是否切镜由后果重量、表演动作
211
+ 及项目节奏决定。群像可用全场与个体两级反应,但这只是表现选项,不是固定组合。
212
+
213
+ ## 九、自检清单
214
+
215
+ 只检查与当前镜头有关的项目;不要为通过清单补写无来源动作、镜头或文字。
216
+
217
+ 1. 台词、行动、证据或沉默由什么可见/可听载体承担?有没有把以对白为主的合法镜头
218
+ 误判成必须添加动作?
219
+ 2. `start_boundary` 与 `end_boundary` 是否逐字段可比较?运动中边界、停顿和静止都与上游内容相容吗?
220
+ 3. 摄影选择或有意固定机位能回答它怎样服务注意力、观众立场、信息揭示、
221
+ 空间或节奏吗?
222
+ 4. 并行微动态有上游或环境依据吗?没有时是否避免为“画面活”而硬加?
223
+ 5. 表演状态的变化或保持是否符合触发、人物策略与局部结果?克制不变是否正是选择?
224
+ 6. 当前理解若依赖新地理,是否交代了必要锚点?若有意延迟识别,是否记录观众可见边界?
225
+ 7. 台词与反应在所选时长/语速内可执行吗?对照剧本是否遗漏或改变相对动作顺序?
226
+ 8. 镜头数量能由覆盖内容、动作边界、听者反应和时长解释吗?本集时长总和是否已加出来,
227
+ 时长未定的镜头是否显式挂起而不是漏掉?
228
+ 9. 每镜人物站位与上一镜衔接吗?(位置漂移是高频退回原因)
229
+ 10. 手部与持物能否逐步执行?放下、换手、双手动作、递交/取回是否有可见来源?
230
+ 11. 上游 `exact_readable` 字段是否有显示位置和处理方式,且没有被通用 `no_text` 覆盖?
231
+
232
+ ## 十、范例(合成决策记录,不是镜头配额)
233
+
234
+ ### 对峙中的证据递交
235
+
236
+ - **上游必保内容**:甲把账页交给乙;乙读到签名后停止否认。
237
+ - **为何切镜**:递交改变道具归属,乙的停顿证明信息被接收;两项可同镜完成时不拆。
238
+ - **观众可见边界**:账页内容只需让乙可读,观众通过签名位置和乙的选择理解,不自动补
239
+ 大特写或屏显全文。
240
+ - **摄影意图**:若同一构图能同时保住交接与反应则固定机位;若手部遮掉签名位置,
241
+ 才调整焦点或切细节镜头。选择由信息所在位置决定,不由“对峙戏”标签决定。
242
+
243
+ ### 动作是否拆镜
244
+
245
+ - **上游必保内容**:角色越过桌面夺走钥匙并退到门边。
246
+ - **单镜成立条件**:路径、接触、道具归属和退路都可读,且已接受时长足以完成。
247
+ - **拆镜条件**:遮挡使钥匙易手不可读,或退到门边需要新的空间边界;切点绑定钥匙
248
+ 在谁手中、双方位置和朝向,而不是套“起势—发力—结果”固定链。
249
+
250
+ ### 保持不动也可能是有效表演
251
+
252
+ - **上游必保内容**:威胁落下后,角色拒绝给对方可利用的反应。
253
+ - **实现判断**:稳定目光、没有退让和有意固定机位可以是人物策略;不为通过
254
+ “情绪必须变化”检查添加吞咽、握拳或无来源微动作。
255
+
256
+ ## 十一、反模式
257
+
258
+ 1. 旁白切片当分镜(小说旁白按逗号切进纲要,视频提示词全是“嘴唇开合说话”空壳)。
259
+ 2. 资产管理名泄漏进画面文本(占位文件名出现在视频提示词正文里)。
260
+ 3. 图片引用标记侵入台词内文。
261
+ 4. 无动机运镜("镜头静止。"单独出现不解释)。
262
+ 5. 台词标点+句式句号叠加("血口喷人!。"——收尾句号只加在无标点台词后)。
263
+ 6. 负面约束堆砌淹没内容(防缺陷补丁头尾重复 150+ 字,正文动作被稀释——补丁
264
+ 只在目标模型确有该缺陷时使用)。
@@ -0,0 +1,70 @@
1
+ # 分镜诊断目录:可机器判定的那一部分
2
+
3
+ ## 目录
4
+
5
+ - [这份目录只收什么](#这份目录只收什么)
6
+ - [诊断目录](#诊断目录)
7
+ - [不进这份目录的东西](#不进这份目录的东西)
8
+
9
+ ## 这份目录只收什么
10
+
11
+ 本文只登记**不需要读懂戏就能判定**的分镜缺陷:时长账目的算术、关键帧声明的边界是否
12
+ 与它绑定的字段一致、边界条目有没有写成常见的回指说法、每条引用是否解析得到一个上游快照。它们由
13
+ [storyboard_check.py](../scripts/storyboard_check.py) 执行,`enforcer` 一律是 `validator`。
14
+ 脚本读引用时先取文件的 `sources` 声明,再按每条引用的 `src` 取回 `owner` 与 `artifact`。
15
+
16
+ 分成脚本与审查两条路的理由很实际:账目类错误由人来核对既慢又不可靠——覆盖里少写一个
17
+ 镜头 ID,肉眼看过去和写全了完全一样。把这类工作交给脚本,审查者的注意力才能留给
18
+ 真正需要判断的东西。
19
+
20
+ ## 诊断目录
21
+
22
+ | code | classification | enforcer | 默认 severity | owner | 含义 |
23
+ |---|---|---|---|---|---|
24
+ | REF_SRC_IS_NOT_DECLARED | structural_invariant | validator | error | storyboard | 引用的 `src` 在本文件 `sources` 里没有声明 |
25
+ | REF_HAS_NO_UPSTREAM_BINDING | structural_invariant | validator | error | storyboard | 引用既没有 `src`,也没有完整的 `owner`/`artifact` |
26
+ | REF_IS_NOT_AN_OBJECT | structural_invariant | validator | error | storyboard | 引用位置上不是一个对象 |
27
+ | SOURCE_ENTRY_IS_INCOMPLETE | structural_invariant | validator | error | storyboard | `sources` 条目缺少 `owner` 或 `artifact` |
28
+ | SHT05_BOUNDARY_ENTRY_IS_A_BACK_REFERENCE | structural_invariant | validator | error | storyboard | 边界条目整条是「同上」「位置不变」这类回指,没有写出绝对事实 |
29
+ | SHT16_RECORD_MISSING | structural_invariant | validator | error | storyboard | 覆盖记录没有 `episode_duration` |
30
+ | SHT16_RECORD_INCOMPLETE | structural_invariant | validator | error | storyboard | `episode_duration` 缺少 `counted_shot_ids` 或 `unresolved_durations` |
31
+ | SHT16_SHOT_LEFT_THE_TOTAL | structural_invariant | validator | error | storyboard | 覆盖列出的镜头既不计入总和也没被挂起 |
32
+ | SHT16_SHOT_COUNTED_AND_UNRESOLVED | structural_invariant | validator | error | storyboard | 同一镜头既算进总和又列为未定 |
33
+ | SHT16_SHOT_UNRESOLVABLE | structural_invariant | validator | error | storyboard | 时长记录点名的镜头不在镜头文件里 |
34
+ | SHT16_COUNTED_SHOT_HAS_NO_DURATION | structural_invariant | validator | error | storyboard | 计入总和的镜头没有数值 `duration_seconds` |
35
+ | SHT16_SUSPENDED_SHOT_HAS_A_DURATION | structural_invariant | validator | error | storyboard | 挂起为未定的镜头其实已有时长 |
36
+ | SHT16_TOTAL_MISSING | structural_invariant | validator | error | storyboard | `shot_seconds_total` 不是数值 |
37
+ | SHT16_TOTAL_IS_NOT_THE_SUM | structural_invariant | validator | error | storyboard | 总和不等于各计入镜头时长之和 |
38
+ | SHT16_DELTA_MISSING | structural_invariant | validator | error | storyboard | 声明了目标却没有带符号差值 |
39
+ | SHT16_DELTA_IS_WRONG | structural_invariant | validator | error | storyboard | 差值不等于总和减目标 |
40
+ | SHT16_SHOT_LISTED_TWICE | structural_invariant | validator | error | storyboard | 同一镜头在时长记录里出现多次,会被加两次 |
41
+ | SHT16_EPISODE_SHOT_LEFT_THE_TOTAL | structural_invariant | validator | error | storyboard | `shots.jsonl` 里的镜头既不计入总和也没被挂起 |
42
+ | SHT16_DISPOSITION_MISSING | structural_invariant | validator | error | storyboard | 声明了目标却没有对差值的处置 |
43
+ | SHT16_DISPOSITION_CLAIMS_A_TARGET | structural_invariant | validator | error | storyboard | 没有目标却给出了判断目标的处置 |
44
+ | SHT17_KEYFRAME_HAS_NO_ID | structural_invariant | validator | error | storyboard | 关键帧记录没有 `keyframe_id` |
45
+ | SHT17_BOUNDARY_ROLE_MISSING | structural_invariant | validator | error | storyboard | 关键帧没声明它冻结的是哪一端 |
46
+ | SHT17_BOUNDARY_REF_MISSING | structural_invariant | validator | error | storyboard | 关键帧没有绑定它投影的边界 |
47
+ | SHT17_BOUNDARY_REF_DISAGREES_WITH_ROLE | structural_invariant | validator | error | storyboard | 声明的角色与绑定的边界字段不一致 |
48
+ | SHT17_BOUNDARY_REF_UNRESOLVABLE | structural_invariant | validator | error | storyboard | 关键帧绑定的镜头不在镜头文件里 |
49
+ | SHT17_DUPLICATE_BOUNDARY_KEYFRAME | structural_invariant | validator | error | storyboard | 同一镜头的同一端有两张关键帧 |
50
+ | SHT01_BLOCK_UNCLAIMED | structural_invariant | validator | error | storyboard | 处理为 `covered`/`intentional_repeat` 的块没有镜头认领 |
51
+ | SHT01_BLOCK_CLAIMED_TWICE | structural_invariant | validator | error | storyboard | 非 `intentional_repeat` 的块被多个镜头认领 |
52
+ | SHT01_BLOCK_IS_ON_SCREEN_ANYWAY | structural_invariant | validator | error | storyboard | 记为不拍的块却有镜头认领 |
53
+ | SHT01_BLOCK_NOT_IN_SCREENPLAY | structural_invariant | validator | error | storyboard | 镜头认领的块不在剧本索引里 |
54
+ | SHT01_BLOCK_HAS_NO_DISPOSITION | structural_invariant | validator | error | storyboard | 有制作相关的块没有写处理 |
55
+ | SHT01_DISPOSITIONS_MISSING | structural_invariant | validator | error | storyboard | 覆盖表没有 `dispositions` |
56
+ | SHT01_DISPOSITION_MALFORMED | structural_invariant | validator | error | storyboard | 处理行不是对象或没点名块 |
57
+ | SHT01_DISPOSITION_UNKNOWN | structural_invariant | validator | error | storyboard | 处理不是工作流定义的四种之一 |
58
+ | SHT01_DISPOSITION_REPEATED | structural_invariant | validator | error | storyboard | 同一个块写了多行处理 |
59
+ | SHT01_DISPOSITION_NOT_IN_SCREENPLAY | structural_invariant | validator | error | storyboard | 处理点名的块不在剧本索引里 |
60
+ | SHT01_DISPOSITION_HAS_NO_REASON | structural_invariant | validator | error | storyboard | 重复或省略是决定,必须写理由 |
61
+ | SHT01_SCREENPLAY_IS_NOT_FULLY_INDEXED | structural_invariant | validator | error | storyboard | 剧本索引里还有没归类的行,覆盖检查看不到剧本的全部 |
62
+
63
+ ## 不进这份目录的东西
64
+
65
+ - **目标时长的差值本身**:`SHT-16` 只让脚本核对差值算得对不对。差值多大是创作者的判断,
66
+ 目标时长是计划而不是质量门槛,脚本不因为差值大小报错。
67
+ - **关键帧数量**:默认一张首帧,只在交付工作流真的消费尾帧时才有第二张。缺尾帧不是缺陷,
68
+ 脚本也不检查"是否该有尾帧"。
69
+ - **镜头拆得对不对、景别选得对不对、构图好不好**:这些需要读懂本场在做什么,属于审查者,
70
+ 判据在本技能的工艺参考里,不在这份目录。
@@ -0,0 +1,39 @@
1
+ # 场次视觉戏剧计划
2
+
3
+ `scene_visual_plan` 是项目级视觉方向与逐镜规格之间的可选中间层。它回答整场怎样改变观众的
4
+ 位置、空间压力、观看节奏和声音注意;它**不是第二份剧本**,也**不拥有镜头边界**。
5
+
6
+ ## 启用条件
7
+
8
+ 只在导演选择明显影响体验时使用:主要人物亮相、身份/证据揭示、关系反转、高潮/结尾、
9
+ 复杂多人调度、延迟信息的悬念场或承担视觉母题的场景。普通场景直接从原文落实进入 shots,
10
+ 不要把可选方法变成表单负担。
11
+
12
+ ## 写法
13
+
14
+ 从 `assets/scene-visual-plan.example.jsonl` 建立一条候选。场次使用 screenplay-index 中真实的
15
+ `BLK-…` heading/action 记录;再分别绑定已接受视觉方向、制作配置、Location/View 与涉及的
16
+ CHAR/LOOK、PROP/PSTATE。只有创作者选过 audition 时才加 `source_audition_ref` 与独立的
17
+ `creator_selection_ref`;没有 audition 时删除这两项,不能保留占位引用。先写:
18
+
19
+ 1. **戏剧转向**:本场哪一种公开关系、信息或选择不可逆地改变;
20
+ 2. **观众立场**:开场站在哪一方、结束被移到哪里;
21
+ 3. **空间压力**:入口、距离、占位、遮挡、让路或退路怎样承载人物策略;
22
+ 4. **视觉推进**:什么时候让信息、反应或空间先于特写落地;
23
+ 5. **摄影节奏**:固定、移动、切近和停留分别由什么变化触发;
24
+ 6. **反应落点**:结尾画面由谁的选择或空间后果承担;
25
+ 7. **声音策略**:主导声源、主动留白、距离变化、撤出/恢复和相邻场 sound bridge。
26
+
27
+ 每次景别、机位或运动变化都应对应注意、关系、信息、压力或节奏变化。高潮不默认“主角特写
28
+ + 推镜”;场尾也不只是把最后一句对白拍完。
29
+
30
+ ## 接受与投影
31
+
32
+ 先向创作者展示转向、立场、空间、摄影、关键揭示、最终落点和声音运动。创作者接受后,正式
33
+ shots 用准确 `scene_visual_plan_ref` 投影这条策略,并继续由每个 shot 自己拥有 purpose、
34
+ duration、blocking 与 start/end boundary。计划与剧本或资产冲突时退回 owner,不让计划覆盖事实。
35
+
36
+ 审查时不按字段完整度打分,而看 audience alignment、knowledge、spatial access/pressure、rhythm
37
+ 中是否至少一项产生有意变化;有意保持同一观看位置也可以成立,但要说明它怎样制造观察、困住感
38
+ 或重新解释同构画面。再看空间和声音是否共同承担同一转向,以及逐镜变化是否只是重复
39
+ 中近景—反打—推镜。
@@ -0,0 +1,157 @@
1
+ # 合成正例:从剧本段到冻结关键帧
2
+
3
+ ## 目录
4
+
5
+ - [剧本段](#剧本段)
6
+ - [原文落实](#原文落实)
7
+ - [SHOT-01](#shot-01拒绝交牌)
8
+ - [SHOT-02](#shot-02声音引导注意)
9
+ - [SHOT-03](#shot-03证据细节)
10
+ - [KEY-03](#key-03冻结瞬间)
11
+ - [连续性交接](#连续性交接)
12
+ - [(情绪)交接](#情绪交接)
13
+
14
+ 本例只演示剧本内容怎样逐步变成镜头、关键帧和准确产物引用,不是镜头数量答案。
15
+ 素材为全新合成。
16
+
17
+ ## 剧本段
18
+
19
+ ~~~md
20
+ ## EP004-SC002 内 · 社区洗衣房 · 清晨
21
+
22
+ 烘干机还在转。沈禾把一张写着“17”的取衣牌压在掌心,没有递给柜台后的蒋姨。
23
+
24
+ 蒋姨:你不是来取衣服的。
25
+
26
+ [SFX] 烘干机停转。
27
+
28
+ 沈禾摊开右手。取衣牌背面粘着一小片带血的蓝线头。
29
+ ~~~
30
+
31
+ 假设索引已经建立 H01(场景标题)、A01(持牌动作)、D01(判断)、P01(停机声)和
32
+ A02(摊手与蓝线头)。
33
+
34
+ ## 原文落实
35
+
36
+ | 剧本段 | 落实方式 | 理由 |
37
+ |---|---|---|
38
+ | H01 | 由 SHOT-01 落实 | 建立门、柜台、烘干机和双方位置 |
39
+ | A01 + D01 | 由 SHOT-01 落实 | 持牌不递与台词属于同一次策略对撞 |
40
+ | P01 | 由 SHOT-02 落实 | 声音改变注意并制造停顿 |
41
+ | A02 | 由 SHOT-02 和 SHOT-03 落实 | 前一镜交代谁摊手并守住手位,后一镜让观众读清证据;重复带来新信息 |
42
+
43
+ 这里没有“一段一镜”的公式。A02 在两镜中出现,是因为第一次说明谁摊手,第二次才让
44
+ 观众看清蓝线头。
45
+
46
+ ## SHOT-01:拒绝交牌
47
+
48
+ **镜头目的**: 建立蒋姨控制柜台、沈禾控制证物的关系,让台词成为判断,而不是说明。
49
+
50
+ - 开始:沈禾在柜台外,右拳握牌;蒋姨在柜台内;烘干机转动。
51
+ - 动作:沈禾把拳压在台沿但不越过边界,蒋姨不伸手。
52
+ - 结束:手位不变,蒋姨已经公开表示“你另有目的”。
53
+ - 构图:纵向双人中景,柜台横线分隔双方。
54
+ - 摄影机:固定机位,让“不递”这个选择持续存在。
55
+
56
+ 来源:`shots.jsonl` 首行先声明本文件用到的上游快照——
57
+
58
+ ~~~json
59
+ {"record_type": "sources", "schema_version": "1.0.0", "sources": {"screenplay-index": {"owner": "short-drama-write", "artifact": "剧集/EP004/screenplay-index.jsonl"}}}
60
+ ~~~
61
+
62
+ 镜头记录里的每条来源引用只写这个快照键和记录 ID:
63
+
64
+ ~~~json
65
+ {"src": "screenplay-index", "record_id": "BLK-EP004-SC002-A01"}
66
+ ~~~
67
+
68
+ 若为了增加动作而让沈禾把取衣牌交出去,就改写了故事,必须拒绝这种改动。
69
+
70
+ ## SHOT-02:声音引导注意
71
+
72
+ **镜头目的**: 停机声让原本被机器掩盖的沉默显出来,并把注意从两人脸上引到沈禾右手。
73
+
74
+ - 开始状态准确继承 SHOT-01 的结束状态。
75
+ - 音效准确引用 P01。
76
+ - 沈禾听见停机后先不看机器,而是决定摊开右手。
77
+ - 结束:右掌摊开,牌正面仍贴掌,背面朝向蒋姨和观众;蓝线头存在,但本镜不要求读清。
78
+ - 摄影机:从固定双人镜头有目的地下移,结束构图仍保留蒋姨的视线。
79
+
80
+ 这次摄影机移动不是为了“节奏感”,而是因为观众注意从人物判断转到证据。
81
+
82
+ ## SHOT-03:证据细节
83
+
84
+ **镜头目的**: 让观众确认牌背粘着带血的蓝线头,同时保留蒋姨已经看见的关系。
85
+
86
+ - 开始状态准确继承 SHOT-02 的结束状态。
87
+ - 细节镜头只拍右掌、牌背和蓝线头;后景保留蒋姨眼睛和视线的模糊位置。
88
+ - 文字政策:数字“17”在牌正面,本镜展示背面,因此不得临时翻牌制造可读文字。
89
+ - 结束状态与开始状态相同;观众获得了新信息,但物理状态没有变化。
90
+ - 固定机位细节镜头;停留到观众能识别颜色、血迹和附着关系。
91
+
92
+ “信息变化而物理状态不变”仍然可以成为有效的镜头目的。
93
+
94
+ ## KEY-03:冻结瞬间
95
+
96
+ ~~~text
97
+ 社区洗衣房柜台外,沈禾摊开的右掌位于画面焦点;取衣牌背面朝上,
98
+ 一小片带暗红血迹的蓝线头粘在牌背边缘。右手与牌完全静止,柜台横线
99
+ 仍分隔双方,后景保留蒋姨已经落在证物上的目光。清晨冷白顶光,已经
100
+ 停转的烘干机只是空间锚点。画面不展示牌正面的“17”,不加入递交、
101
+ 翻牌、推镜或表情变化过程。
102
+ ~~~
103
+
104
+ 冻结检查:所有事实能在同一时刻存在。摊开右手是 SHOT-02 的动作过程;KEY-03 只写
105
+ “已经摊开”。
106
+
107
+ ## 连续性交接
108
+
109
+ | 字段 | SHOT-01 结束 | SHOT-02 开始与结束 | SHOT-03 开始 |
110
+ |---|---|---|---|
111
+ | 沈禾右手 | 握牌 | 握牌 → 摊掌 | 摊掌 |
112
+ | 牌朝向 | 背面不可见 | 背面转向蒋姨 | 背面可见 |
113
+ | 蒋姨目光 | 沈禾脸 | 右手 | 牌背 |
114
+ | 烘干机 | 转 | 停 | 停 |
115
+ | 观众知道什么 | 她拒绝交牌 | 她决定展示 | 看见带血蓝线头 |
116
+
117
+ 运动规格只能实现表中的箭头,不能让蒋姨夺牌、让牌正面突然朝向摄影机,或让机器重新启动。
118
+
119
+ ## (情绪)交接
120
+
121
+ 剧本对白的表演括注是**写一次、投影两处**的来源:本技能把它投影成镜头里可见的表演
122
+ 状态,视频提示词把它投影成 `delivery`。两处绑定同一条剧本记录,谁都不另起情绪名。
123
+ 下面是另一段全新合成的示例。
124
+
125
+ ~~~md
126
+ ## EP002-SC004 内 · 老楼梯间 · 夜
127
+
128
+ 角色甲:(压着嗓子)你现在放回去,我就当没看见。
129
+
130
+ 角色乙:(笑)你确定还找得回来?
131
+ ~~~
132
+
133
+ | 位置 | 负责人 | 写什么 | 不能写什么 |
134
+ |---|---|---|---|
135
+ | 剧本括注 `(压着嗓子)` | 编剧 | 唯一情绪来源,随该对白块一起发布 | — |
136
+ | 本镜表演状态 | 本技能 | 边界里可见的收敛:下颌收紧、身体不前倾、音量压在楼道回声之下 | 不把“压着嗓子”升级成“低吼”或“怒斥” |
137
+ | 下游 `delivery` | 视频提示词 | 由同一条来源取到的语气,再落成呼吸、停顿和音量走向 | 不新起情绪词,也不与本镜表演状态相反 |
138
+
139
+ 两处引用同一条来源。各自文件先在 `sources` 里声明这份剧本索引的快照:
140
+
141
+ ~~~json
142
+ {"screenplay-index": {"owner": "short-drama-write", "artifact": "剧集/EP002/screenplay-index.jsonl"}}
143
+ ~~~
144
+
145
+ 镜头记录与运动规格里的引用都写成:
146
+
147
+ ~~~json
148
+ {"src": "screenplay-index", "record_id": "BLK-EP002-SC004-D01"}
149
+ ~~~
150
+
151
+ - 角色乙的 `(笑)` 同样同源投影:本镜写“嘴角上扬、眼睛不动、重心后靠”,下游写
152
+ “句尾带气声的短笑”,两处解释的是同一条括注,不是两次独立发明。
153
+ - 若下游认为该情绪不成立——例如楼梯间的回声让“压着嗓子”传不出信息——修订回到剧本:
154
+ 编剧改括注并重新发布,本技能与视频提示词再各自重新投影一次。**不能**在镜头写
155
+ “克制”、在运动规格写“爆发”,让同一句台词挂着两个互相冲突的情绪来源。
156
+ - 情绪来源只决定表演状态,不自动决定景别或运镜。`(压着嗓子)` 不等于必须切特写;
157
+ 本镜给什么景别,仍由观众此刻必须读到的信息决定。