videoclaw 3.0.0-alpha.12 → 3.0.0-alpha.13

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 (507) hide show
  1. package/CLAUDE.md +58 -21
  2. package/README.md +47 -31
  3. package/assets/review-station/index.html +10 -0
  4. package/dist/cli/handlers/character.d.ts.map +1 -1
  5. package/dist/cli/handlers/character.js +8 -0
  6. package/dist/cli/handlers/character.js.map +1 -1
  7. package/dist/cli/handlers/cinema-candidate.d.ts.map +1 -1
  8. package/dist/cli/handlers/cinema-candidate.js +6 -1
  9. package/dist/cli/handlers/cinema-candidate.js.map +1 -1
  10. package/dist/cli/handlers/cinema-image-jobs.d.ts +4 -0
  11. package/dist/cli/handlers/cinema-image-jobs.d.ts.map +1 -0
  12. package/dist/cli/handlers/cinema-image-jobs.js +25 -0
  13. package/dist/cli/handlers/cinema-image-jobs.js.map +1 -0
  14. package/dist/cli/handlers/cinema.d.ts.map +1 -1
  15. package/dist/cli/handlers/cinema.js +4 -0
  16. package/dist/cli/handlers/cinema.js.map +1 -1
  17. package/dist/cli/handlers/create.d.ts.map +1 -1
  18. package/dist/cli/handlers/create.js +1 -15
  19. package/dist/cli/handlers/create.js.map +1 -1
  20. package/dist/cli/handlers/execution.d.ts.map +1 -1
  21. package/dist/cli/handlers/execution.js +28 -3
  22. package/dist/cli/handlers/execution.js.map +1 -1
  23. package/dist/cli/handlers/project-ops.d.ts +7 -0
  24. package/dist/cli/handlers/project-ops.d.ts.map +1 -1
  25. package/dist/cli/handlers/project-ops.js +15 -19
  26. package/dist/cli/handlers/project-ops.js.map +1 -1
  27. package/dist/cli/handlers/prompt-craft.d.ts.map +1 -1
  28. package/dist/cli/handlers/prompt-craft.js +13 -4
  29. package/dist/cli/handlers/prompt-craft.js.map +1 -1
  30. package/dist/cli/handlers/reference-sheets.d.ts.map +1 -1
  31. package/dist/cli/handlers/reference-sheets.js +13 -0
  32. package/dist/cli/handlers/reference-sheets.js.map +1 -1
  33. package/dist/cli/handlers/review-portal.d.ts.map +1 -1
  34. package/dist/cli/handlers/review-portal.js +2 -1
  35. package/dist/cli/handlers/review-portal.js.map +1 -1
  36. package/dist/cli/handlers/stages.d.ts.map +1 -1
  37. package/dist/cli/handlers/stages.js +55 -10
  38. package/dist/cli/handlers/stages.js.map +1 -1
  39. package/dist/cli/handlers/vocal-guides.d.ts +2 -0
  40. package/dist/cli/handlers/vocal-guides.d.ts.map +1 -0
  41. package/dist/cli/handlers/vocal-guides.js +51 -0
  42. package/dist/cli/handlers/vocal-guides.js.map +1 -0
  43. package/dist/cli/vclaw.d.ts +1 -0
  44. package/dist/cli/vclaw.d.ts.map +1 -1
  45. package/dist/cli/vclaw.js +121 -75
  46. package/dist/cli/vclaw.js.map +1 -1
  47. package/dist/index.d.ts +4 -2
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/video/artifacts.d.ts +3 -0
  52. package/dist/video/artifacts.d.ts.map +1 -1
  53. package/dist/video/artifacts.js +7 -2
  54. package/dist/video/artifacts.js.map +1 -1
  55. package/dist/video/assemble/audio-mix-plan.d.ts +1 -1
  56. package/dist/video/assemble/audio-mix-plan.d.ts.map +1 -1
  57. package/dist/video/assemble/stitch-audio-mix.d.ts +105 -0
  58. package/dist/video/assemble/stitch-audio-mix.d.ts.map +1 -0
  59. package/dist/video/assemble/stitch-audio-mix.js +192 -0
  60. package/dist/video/assemble/stitch-audio-mix.js.map +1 -0
  61. package/dist/video/assemble/stitch-concat.d.ts +123 -0
  62. package/dist/video/assemble/stitch-concat.d.ts.map +1 -0
  63. package/dist/video/assemble/stitch-concat.js +161 -0
  64. package/dist/video/assemble/stitch-concat.js.map +1 -0
  65. package/dist/video/assemble/stitch-filters.d.ts +59 -0
  66. package/dist/video/assemble/stitch-filters.d.ts.map +1 -0
  67. package/dist/video/assemble/stitch-filters.js +84 -0
  68. package/dist/video/assemble/stitch-filters.js.map +1 -0
  69. package/dist/video/assemble/stitch.d.ts +7 -258
  70. package/dist/video/assemble/stitch.d.ts.map +1 -1
  71. package/dist/video/assemble/stitch.js +11 -410
  72. package/dist/video/assemble/stitch.js.map +1 -1
  73. package/dist/video/character-auto-create.d.ts +10 -0
  74. package/dist/video/character-auto-create.d.ts.map +1 -1
  75. package/dist/video/character-auto-create.js +90 -10
  76. package/dist/video/character-auto-create.js.map +1 -1
  77. package/dist/video/character-performance.d.ts +19 -0
  78. package/dist/video/character-performance.d.ts.map +1 -0
  79. package/dist/video/character-performance.js +39 -0
  80. package/dist/video/character-performance.js.map +1 -0
  81. package/dist/video/character-reference-prompts.d.ts +20 -0
  82. package/dist/video/character-reference-prompts.d.ts.map +1 -0
  83. package/dist/video/character-reference-prompts.js +47 -0
  84. package/dist/video/character-reference-prompts.js.map +1 -0
  85. package/dist/video/characters.d.ts +6 -0
  86. package/dist/video/characters.d.ts.map +1 -1
  87. package/dist/video/characters.js +6 -0
  88. package/dist/video/characters.js.map +1 -1
  89. package/dist/video/cinema-candidate-review.d.ts +3 -0
  90. package/dist/video/cinema-candidate-review.d.ts.map +1 -1
  91. package/dist/video/cinema-candidate-review.js +14 -2
  92. package/dist/video/cinema-candidate-review.js.map +1 -1
  93. package/dist/video/cinema-console-render.d.ts.map +1 -1
  94. package/dist/video/cinema-console-render.js +3 -2
  95. package/dist/video/cinema-console-render.js.map +1 -1
  96. package/dist/video/cinema-delivery.d.ts.map +1 -1
  97. package/dist/video/cinema-delivery.js +8 -0
  98. package/dist/video/cinema-delivery.js.map +1 -1
  99. package/dist/video/cinema-image-bindings.d.ts +5 -0
  100. package/dist/video/cinema-image-bindings.d.ts.map +1 -0
  101. package/dist/video/cinema-image-bindings.js +51 -0
  102. package/dist/video/cinema-image-bindings.js.map +1 -0
  103. package/dist/video/cinema-image-jobs.d.ts +58 -0
  104. package/dist/video/cinema-image-jobs.d.ts.map +1 -0
  105. package/dist/video/cinema-image-jobs.js +168 -0
  106. package/dist/video/cinema-image-jobs.js.map +1 -0
  107. package/dist/video/cinema-live-console.d.ts +19 -0
  108. package/dist/video/cinema-live-console.d.ts.map +1 -1
  109. package/dist/video/cinema-live-console.js +14 -3
  110. package/dist/video/cinema-live-console.js.map +1 -1
  111. package/dist/video/cinema-motion-review-form.d.ts +3 -0
  112. package/dist/video/cinema-motion-review-form.d.ts.map +1 -0
  113. package/dist/video/cinema-motion-review-form.js +8 -0
  114. package/dist/video/cinema-motion-review-form.js.map +1 -0
  115. package/dist/video/cinema-motion-review.d.ts +16 -0
  116. package/dist/video/cinema-motion-review.d.ts.map +1 -0
  117. package/dist/video/cinema-motion-review.js +36 -0
  118. package/dist/video/cinema-motion-review.js.map +1 -0
  119. package/dist/video/cinema-profile.js +1 -1
  120. package/dist/video/cinema-profile.js.map +1 -1
  121. package/dist/video/cinema-project-compiler.d.ts.map +1 -1
  122. package/dist/video/cinema-project-compiler.js +3 -2
  123. package/dist/video/cinema-project-compiler.js.map +1 -1
  124. package/dist/video/cinema-project-console.d.ts.map +1 -1
  125. package/dist/video/cinema-project-console.js +7 -1
  126. package/dist/video/cinema-project-console.js.map +1 -1
  127. package/dist/video/cinema-story-compiler.d.ts.map +1 -1
  128. package/dist/video/cinema-story-compiler.js +1 -0
  129. package/dist/video/cinema-story-compiler.js.map +1 -1
  130. package/dist/video/cinema-story-types.d.ts +1 -0
  131. package/dist/video/cinema-story-types.d.ts.map +1 -1
  132. package/dist/video/cinematic-character-recovery.d.ts +16 -0
  133. package/dist/video/cinematic-character-recovery.d.ts.map +1 -0
  134. package/dist/video/cinematic-character-recovery.js +79 -0
  135. package/dist/video/cinematic-character-recovery.js.map +1 -0
  136. package/dist/video/cinematography.d.ts +7 -204
  137. package/dist/video/cinematography.d.ts.map +1 -1
  138. package/dist/video/cinematography.js +5 -629
  139. package/dist/video/cinematography.js.map +1 -1
  140. package/dist/video/cli-schema.d.ts +38 -0
  141. package/dist/video/cli-schema.d.ts.map +1 -1
  142. package/dist/video/cli-schema.js +77 -31
  143. package/dist/video/cli-schema.js.map +1 -1
  144. package/dist/video/dynamic-register.d.ts +69 -0
  145. package/dist/video/dynamic-register.d.ts.map +1 -0
  146. package/dist/video/dynamic-register.js +104 -0
  147. package/dist/video/dynamic-register.js.map +1 -0
  148. package/dist/video/execute.d.ts.map +1 -1
  149. package/dist/video/execute.js +240 -226
  150. package/dist/video/execute.js.map +1 -1
  151. package/dist/video/execution-cancel.d.ts.map +1 -1
  152. package/dist/video/execution-cancel.js +13 -2
  153. package/dist/video/execution-cancel.js.map +1 -1
  154. package/dist/video/execution-in-flight.d.ts +20 -0
  155. package/dist/video/execution-in-flight.d.ts.map +1 -0
  156. package/dist/video/execution-in-flight.js +111 -0
  157. package/dist/video/execution-in-flight.js.map +1 -0
  158. package/dist/video/execution-prompt-validation.d.ts +5 -0
  159. package/dist/video/execution-prompt-validation.d.ts.map +1 -0
  160. package/dist/video/execution-prompt-validation.js +41 -0
  161. package/dist/video/execution-prompt-validation.js.map +1 -0
  162. package/dist/video/execution-run-marker.d.ts +84 -0
  163. package/dist/video/execution-run-marker.d.ts.map +1 -0
  164. package/dist/video/execution-run-marker.js +204 -0
  165. package/dist/video/execution-run-marker.js.map +1 -0
  166. package/dist/video/execution-runtime.d.ts.map +1 -1
  167. package/dist/video/execution-runtime.js +12 -1
  168. package/dist/video/execution-runtime.js.map +1 -1
  169. package/dist/video/execution-status.d.ts.map +1 -1
  170. package/dist/video/execution-status.js +8 -0
  171. package/dist/video/execution-status.js.map +1 -1
  172. package/dist/video/film-edit-review-store.d.ts +35 -0
  173. package/dist/video/film-edit-review-store.d.ts.map +1 -0
  174. package/dist/video/film-edit-review-store.js +98 -0
  175. package/dist/video/film-edit-review-store.js.map +1 -0
  176. package/dist/video/film-edit-review.d.ts +38 -0
  177. package/dist/video/film-edit-review.d.ts.map +1 -0
  178. package/dist/video/film-edit-review.js +65 -0
  179. package/dist/video/film-edit-review.js.map +1 -0
  180. package/dist/video/film-plan.d.ts +46 -0
  181. package/dist/video/film-plan.d.ts.map +1 -0
  182. package/dist/video/film-plan.js +109 -0
  183. package/dist/video/film-plan.js.map +1 -0
  184. package/dist/video/film-reference-evidence.d.ts +17 -0
  185. package/dist/video/film-reference-evidence.d.ts.map +1 -0
  186. package/dist/video/film-reference-evidence.js +46 -0
  187. package/dist/video/film-reference-evidence.js.map +1 -0
  188. package/dist/video/film-review-gate.d.ts +14 -0
  189. package/dist/video/film-review-gate.d.ts.map +1 -0
  190. package/dist/video/film-review-gate.js +33 -0
  191. package/dist/video/film-review-gate.js.map +1 -0
  192. package/dist/video/filmmaking-product-prompts.d.ts +20 -0
  193. package/dist/video/filmmaking-product-prompts.d.ts.map +1 -0
  194. package/dist/video/filmmaking-product-prompts.js +132 -0
  195. package/dist/video/filmmaking-product-prompts.js.map +1 -0
  196. package/dist/video/filmmaking-prompts.d.ts +17 -137
  197. package/dist/video/filmmaking-prompts.d.ts.map +1 -1
  198. package/dist/video/filmmaking-prompts.js +53 -797
  199. package/dist/video/filmmaking-prompts.js.map +1 -1
  200. package/dist/video/filmmaking-shared.d.ts +37 -0
  201. package/dist/video/filmmaking-shared.d.ts.map +1 -0
  202. package/dist/video/filmmaking-shared.js +122 -0
  203. package/dist/video/filmmaking-shared.js.map +1 -0
  204. package/dist/video/filmmaking-vocab.d.ts +15 -0
  205. package/dist/video/filmmaking-vocab.d.ts.map +1 -0
  206. package/dist/video/filmmaking-vocab.js +116 -0
  207. package/dist/video/filmmaking-vocab.js.map +1 -0
  208. package/dist/video/flow-markers.d.ts +3 -3
  209. package/dist/video/flow-markers.js +3 -3
  210. package/dist/video/hook-register.d.ts +30 -0
  211. package/dist/video/hook-register.d.ts.map +1 -0
  212. package/dist/video/hook-register.js +134 -0
  213. package/dist/video/hook-register.js.map +1 -0
  214. package/dist/video/library-clean.d.ts +1 -1
  215. package/dist/video/library-clean.d.ts.map +1 -1
  216. package/dist/video/library-clean.js +1 -1
  217. package/dist/video/lighting-grade-register.d.ts +41 -0
  218. package/dist/video/lighting-grade-register.d.ts.map +1 -0
  219. package/dist/video/lighting-grade-register.js +225 -0
  220. package/dist/video/lighting-grade-register.js.map +1 -0
  221. package/dist/video/motion-overlay/avatar-host.d.ts +1 -1
  222. package/dist/video/motion-overlay/avatar-host.js +2 -2
  223. package/dist/video/motion-overlay/avatar-host.js.map +1 -1
  224. package/dist/video/outfit-prompts.d.ts +28 -0
  225. package/dist/video/outfit-prompts.d.ts.map +1 -1
  226. package/dist/video/outfit-prompts.js +46 -0
  227. package/dist/video/outfit-prompts.js.map +1 -1
  228. package/dist/video/preview-portal/render-brand.d.ts +28 -0
  229. package/dist/video/preview-portal/render-brand.d.ts.map +1 -0
  230. package/dist/video/preview-portal/render-brand.js +191 -0
  231. package/dist/video/preview-portal/render-brand.js.map +1 -0
  232. package/dist/video/preview-portal/render-primitives.d.ts +24 -0
  233. package/dist/video/preview-portal/render-primitives.d.ts.map +1 -0
  234. package/dist/video/preview-portal/render-primitives.js +43 -0
  235. package/dist/video/preview-portal/render-primitives.js.map +1 -0
  236. package/dist/video/preview-portal/render-run.d.ts +8 -0
  237. package/dist/video/preview-portal/render-run.d.ts.map +1 -0
  238. package/dist/video/preview-portal/render-run.js +188 -0
  239. package/dist/video/preview-portal/render-run.js.map +1 -0
  240. package/dist/video/preview-portal/render-scene-contract.d.ts +19 -0
  241. package/dist/video/preview-portal/render-scene-contract.d.ts.map +1 -0
  242. package/dist/video/preview-portal/render-scene-contract.js +184 -0
  243. package/dist/video/preview-portal/render-scene-contract.js.map +1 -0
  244. package/dist/video/preview-portal/render.d.ts.map +1 -1
  245. package/dist/video/preview-portal/render.js +6 -598
  246. package/dist/video/preview-portal/render.js.map +1 -1
  247. package/dist/video/provider-platform/registry.d.ts.map +1 -1
  248. package/dist/video/provider-platform/registry.js +2 -1
  249. package/dist/video/provider-platform/registry.js.map +1 -1
  250. package/dist/video/realism-register.d.ts +103 -0
  251. package/dist/video/realism-register.d.ts.map +1 -0
  252. package/dist/video/realism-register.js +177 -0
  253. package/dist/video/realism-register.js.map +1 -0
  254. package/dist/video/review-ui-artifacts.d.ts +17 -0
  255. package/dist/video/review-ui-artifacts.d.ts.map +1 -0
  256. package/dist/video/review-ui-artifacts.js +674 -0
  257. package/dist/video/review-ui-artifacts.js.map +1 -0
  258. package/dist/video/review-ui-autopilot.d.ts +30 -0
  259. package/dist/video/review-ui-autopilot.d.ts.map +1 -0
  260. package/dist/video/review-ui-autopilot.js +248 -0
  261. package/dist/video/review-ui-autopilot.js.map +1 -0
  262. package/dist/video/review-ui-inventory.d.ts +6 -0
  263. package/dist/video/review-ui-inventory.d.ts.map +1 -0
  264. package/dist/video/review-ui-inventory.js +212 -0
  265. package/dist/video/review-ui-inventory.js.map +1 -0
  266. package/dist/video/review-ui-shared.d.ts +30 -0
  267. package/dist/video/review-ui-shared.d.ts.map +1 -0
  268. package/dist/video/review-ui-shared.js +124 -0
  269. package/dist/video/review-ui-shared.js.map +1 -0
  270. package/dist/video/review-ui.d.ts +5 -31
  271. package/dist/video/review-ui.d.ts.map +1 -1
  272. package/dist/video/review-ui.js +13 -1204
  273. package/dist/video/review-ui.js.map +1 -1
  274. package/dist/video/run-state/read.d.ts.map +1 -1
  275. package/dist/video/run-state/read.js +18 -2
  276. package/dist/video/run-state/read.js.map +1 -1
  277. package/dist/video/run-state/types.d.ts +2 -0
  278. package/dist/video/run-state/types.d.ts.map +1 -1
  279. package/dist/video/seedance-prompt.d.ts +74 -0
  280. package/dist/video/seedance-prompt.d.ts.map +1 -0
  281. package/dist/video/seedance-prompt.js +355 -0
  282. package/dist/video/seedance-prompt.js.map +1 -0
  283. package/dist/video/status.d.ts +18 -0
  284. package/dist/video/status.d.ts.map +1 -1
  285. package/dist/video/status.js +18 -0
  286. package/dist/video/status.js.map +1 -1
  287. package/dist/video/story-bible.js +3 -3
  288. package/dist/video/story-bible.js.map +1 -1
  289. package/dist/video/storyboard-markdown.d.ts +8 -0
  290. package/dist/video/storyboard-markdown.d.ts.map +1 -1
  291. package/dist/video/storyboard-markdown.js +10 -3
  292. package/dist/video/storyboard-markdown.js.map +1 -1
  293. package/dist/video/studio/execute.d.ts +16 -3
  294. package/dist/video/studio/execute.d.ts.map +1 -1
  295. package/dist/video/studio/execute.js +22 -1
  296. package/dist/video/studio/execute.js.map +1 -1
  297. package/dist/video/types.d.ts +1 -0
  298. package/dist/video/types.d.ts.map +1 -1
  299. package/dist/video/workspace.d.ts +2 -0
  300. package/dist/video/workspace.d.ts.map +1 -1
  301. package/dist/video/workspace.js.map +1 -1
  302. package/docs/AGENT_QUICKSTART.md +47 -4
  303. package/docs/AI_FILMMAKING_PROMPTS.md +7 -0
  304. package/docs/ARCHITECTURE.md +36 -9
  305. package/docs/CAPABILITIES.md +34 -16
  306. package/docs/CINEMATIC_REFERENCE_WORKFLOW.md +144 -0
  307. package/docs/CLI_REFERENCE.md +386 -78
  308. package/docs/{CLAWBOT_COVERAGE_PROMPT.md → CONCIERGE_COVERAGE_PROMPT.md} +9 -9
  309. package/docs/CONCIERGE_PROMPT.md +8 -8
  310. package/docs/DEPRECATION.md +47 -2
  311. package/docs/DIAGRAMS_SOURCE.md +29 -26
  312. package/docs/DIRECTOR_BLUEPRINT.md +1 -1
  313. package/docs/MASTER_PLAN_ALIGNMENT.md +31 -4
  314. package/docs/MIGRATION.md +7 -2
  315. package/docs/MOGRAPH.md +13 -11
  316. package/docs/MOTION_REVIEW.md +17 -0
  317. package/docs/OBSIDIAN.md +7 -7
  318. package/docs/OPERATIONS.md +18 -0
  319. package/docs/OPERATOR_HANDOFF.md +8 -2
  320. package/docs/PRODUCTION_WORKFLOW.md +26 -8
  321. package/docs/PROJECT_LAYOUT.md +11 -0
  322. package/docs/PROVIDER_PLATFORM.md +1 -1
  323. package/docs/PUBLISHING.md +8 -3
  324. package/docs/PYTHON_PIPELINE.md +15 -14
  325. package/docs/RELEASE_READINESS.md +56 -11
  326. package/docs/SEEDANCE_HARVEST.md +1 -1
  327. package/docs/SHARED_FILMMAKING_WORKFLOW.md +252 -0
  328. package/docs/SHARED_QUEUE.md +1 -1
  329. package/docs/SKILLS.md +38 -14
  330. package/docs/SKILL_COHESION_PROMPT.md +1 -1
  331. package/docs/STUDIO.md +7 -3
  332. package/docs/TEMPLATES.md +1 -1
  333. package/docs/adr/0008-one-durable-production-queue.md +12 -0
  334. package/docs/assets/diagram-architecture.jpg +0 -0
  335. package/docs/assets/diagram-assemble.jpg +0 -0
  336. package/docs/assets/diagram-lifecycle.jpg +0 -0
  337. package/docs/assets/diagram-obsidian-loop.jpg +0 -0
  338. package/docs/assets/diagram-obsidian-vault.jpg +0 -0
  339. package/docs/assets/diagram-routing.jpg +0 -0
  340. package/docs/assets/diagram-skills-ecosystem.jpg +0 -0
  341. package/docs/assets/diagram-story-bible.jpg +0 -0
  342. package/docs/assets/diagram-studio-goals.jpg +0 -0
  343. package/mcp/skills-pack/videoclaw-check-status/SKILL.md +15 -0
  344. package/mcp/skills-pack/videoclaw-create-video/SKILL.md +13 -2
  345. package/package.json +6 -2
  346. package/schemas/video/artifacts/cinema-candidate-review.schema.json +53 -0
  347. package/schemas/video/artifacts/cinema-image-job.schema.json +269 -0
  348. package/schemas/video/artifacts/cinema-story-bible.schema.json +1 -0
  349. package/schemas/video/artifacts/cinematic-character-recovery.schema.json +37 -0
  350. package/schemas/video/artifacts/filmmaking-prompts.schema.json +3 -0
  351. package/schemas/video/artifacts/reference-sheets.schema.json +1 -0
  352. package/schemas/video/artifacts/storyboard.schema.json +180 -13
  353. package/scripts/install-skill-frontdoors.mjs +1 -1
  354. package/scripts/skill-frontdoors.json +6 -6
  355. package/skills/README.md +2 -2
  356. package/skills/ad-intel/SKILL.md +1 -1
  357. package/skills/ad-intel/scripts/answer_plan.py +1 -1
  358. package/skills/ai-director/SKILL.md +2 -2
  359. package/skills/ai-filmmaking/SKILL.md +13 -3
  360. package/skills/catalog.json +9 -1
  361. package/skills/character-creator/SKILL.md +9 -8
  362. package/skills/concierge/SKILL.md +13 -13
  363. package/skills/david-sales-presenter/SKILL.md +24 -0
  364. package/skills/garden-days/references/lanes.md +1 -1
  365. package/skills/movie-director/SKILL.md +7 -0
  366. package/skills/movie-director/references/troubleshooting.md +2 -2
  367. package/skills/rap-avatar-mv/SKILL.md +328 -1905
  368. package/skills/rap-avatar-mv/_template.rap.pack +34 -12
  369. package/skills/rap-avatar-mv/references/cinematic-finish/README.md +74 -0
  370. package/skills/rap-avatar-mv/references/cinematic-finish/presets.example.json +38 -0
  371. package/skills/rap-avatar-mv/references/cinematic-finish/subtitle-grade-preset.json +21 -0
  372. package/skills/rap-avatar-mv/references/design-review.md +36 -73
  373. package/skills/rap-avatar-mv/references/finishing-and-upload.md +84 -0
  374. package/skills/rap-avatar-mv/references/historical-runbook-through-2026-09-07.md +1941 -0
  375. package/skills/rap-avatar-mv/references/lipsync-magnific.md +6 -0
  376. package/skills/rap-avatar-mv/references/production-details.md +167 -0
  377. package/skills/rap-avatar-mv/references/prompt-library-findings.md +6 -0
  378. package/skills/rap-avatar-mv/references/recording-led-lipsync.md +78 -0
  379. package/skills/rap-avatar-mv/references/repair-planner.md +171 -0
  380. package/skills/rap-avatar-mv/references/repair-review.md +42 -0
  381. package/skills/rap-avatar-mv/references/research-2026-08-29-lessons.md +6 -0
  382. package/skills/rap-avatar-mv/references/route-economics.md +8 -2
  383. package/skills/rap-avatar-mv/references/route-matrix.md +6 -0
  384. package/skills/rap-avatar-mv/references/shot-direction.md +46 -94
  385. package/skills/rap-avatar-mv/references/song-recipe.md +27 -65
  386. package/skills/rap-avatar-mv/references/source-compliance.md +6 -0
  387. package/skills/rap-avatar-mv/scripts/build_bookends.sh +13 -3
  388. package/skills/rap-avatar-mv/scripts/check_sync.py +5 -0
  389. package/skills/rap-avatar-mv/scripts/cinematic_cards.py +68 -0
  390. package/skills/rap-avatar-mv/scripts/cinematic_render.py +172 -0
  391. package/skills/rap-avatar-mv/scripts/clip_ends.py +78 -0
  392. package/skills/rap-avatar-mv/scripts/clip_vocals.py +146 -0
  393. package/skills/rap-avatar-mv/scripts/cover_mouthing.py +10 -0
  394. package/skills/rap-avatar-mv/scripts/cover_reference.py +503 -0
  395. package/skills/rap-avatar-mv/scripts/deliver.py +17 -4
  396. package/skills/rap-avatar-mv/scripts/dryrun.sh +13 -1
  397. package/skills/rap-avatar-mv/scripts/explore_queue.py +93 -452
  398. package/skills/rap-avatar-mv/scripts/fit_takes.py +168 -78
  399. package/skills/rap-avatar-mv/scripts/hf_export.py +188 -0
  400. package/skills/rap-avatar-mv/scripts/hf_import.py +191 -0
  401. package/skills/rap-avatar-mv/scripts/join_cuts.py +87 -34
  402. package/skills/rap-avatar-mv/scripts/line_subs.py +23 -9
  403. package/skills/rap-avatar-mv/scripts/make-rap-mv.sh +109 -20
  404. package/skills/rap-avatar-mv/scripts/make_plan.py +50 -7
  405. package/skills/rap-avatar-mv/scripts/needs_report.py +166 -71
  406. package/skills/rap-avatar-mv/scripts/rap_fixture.py +35 -2
  407. package/skills/rap-avatar-mv/scripts/rap_thumbnail.py +6 -3
  408. package/skills/rap-avatar-mv/scripts/rate_fit.py +263 -88
  409. package/skills/rap-avatar-mv/scripts/repair_apply.py +107 -0
  410. package/skills/rap-avatar-mv/scripts/repair_plan.py +268 -0
  411. package/skills/rap-avatar-mv/scripts/repair_preview.py +133 -0
  412. package/skills/rap-avatar-mv/scripts/repair_review.py +45 -0
  413. package/skills/rap-avatar-mv/scripts/repair_workbench.py +56 -0
  414. package/skills/rap-avatar-mv/scripts/replace_window.py +12 -0
  415. package/skills/rap-avatar-mv/scripts/requirements-cinema.txt +2 -0
  416. package/skills/rap-avatar-mv/scripts/requirements-vocal-guides.txt +3 -0
  417. package/skills/rap-avatar-mv/scripts/reuse_audit.py +41 -58
  418. package/skills/rap-avatar-mv/scripts/review_board.py +8 -0
  419. package/skills/rap-avatar-mv/scripts/sync_evidence.py +49 -0
  420. package/skills/rap-avatar-mv/scripts/sync_profile.py +17 -7
  421. package/skills/rap-avatar-mv/scripts/sync_shift.py +194 -186
  422. package/skills/rap-avatar-mv/scripts/timing_edits.py +144 -0
  423. package/skills/rap-avatar-mv/scripts/transcribe_clips.py +16 -7
  424. package/skills/rap-avatar-mv/scripts/verify_delivery.py +102 -0
  425. package/skills/rap-avatar-mv/scripts/vocal_guides.py +263 -0
  426. package/skills/rap-avatar-mv/scripts/vocal_swap.py +3 -19
  427. package/skills/rap-avatar-mv/scripts/word_sync.py +18 -3
  428. package/skills/rap-avatar-mv/scripts/word_warp.py +198 -0
  429. package/skills/story-bible-builder/SKILL.md +7 -0
  430. package/skills/video-framework/SKILL.md +4 -0
  431. package/skills/video-post/SKILL.md +6 -0
  432. package/skills/video-production-handoff/SKILL.md +8 -0
  433. package/skills/video-replicator/SKILL.md +1 -1
  434. package/skills/video-storyboard/SKILL.md +7 -0
  435. package/skills/videoclaw/SKILL.md +36 -0
  436. package/src/video/artifacts.ts +9 -2
  437. package/src/video/assemble/audio-mix-plan.ts +1 -1
  438. package/src/video/assemble/stitch-audio-mix.ts +274 -0
  439. package/src/video/assemble/stitch-concat.ts +262 -0
  440. package/src/video/assemble/stitch-filters.ts +93 -0
  441. package/src/video/assemble/stitch.ts +10 -600
  442. package/src/video/character-auto-create.ts +85 -9
  443. package/src/video/character-performance.ts +49 -0
  444. package/src/video/character-reference-prompts.ts +54 -0
  445. package/src/video/characters.ts +12 -0
  446. package/src/video/cinema-candidate-review.ts +11 -1
  447. package/src/video/cinema-console-render.ts +3 -2
  448. package/src/video/cinema-delivery.ts +10 -0
  449. package/src/video/cinema-image-bindings.ts +46 -0
  450. package/src/video/cinema-image-jobs.ts +149 -0
  451. package/src/video/cinema-live-console.ts +9 -3
  452. package/src/video/cinema-motion-review-form.ts +8 -0
  453. package/src/video/cinema-motion-review.ts +38 -0
  454. package/src/video/cinema-profile.ts +1 -1
  455. package/src/video/cinema-project-compiler.ts +3 -2
  456. package/src/video/cinema-project-console.ts +7 -1
  457. package/src/video/cinema-story-compiler.ts +1 -0
  458. package/src/video/cinema-story-types.ts +1 -0
  459. package/src/video/cinematic-character-recovery.ts +76 -0
  460. package/src/video/cinematography.ts +8 -801
  461. package/src/video/cli-schema.ts +97 -31
  462. package/src/video/dynamic-register.ts +137 -0
  463. package/src/video/execute.ts +254 -238
  464. package/src/video/execution-cancel.ts +15 -2
  465. package/src/video/execution-in-flight.ts +124 -0
  466. package/src/video/execution-prompt-validation.ts +42 -0
  467. package/src/video/execution-run-marker.ts +261 -0
  468. package/src/video/execution-runtime.ts +13 -1
  469. package/src/video/execution-status.ts +9 -0
  470. package/src/video/film-edit-review-store.ts +96 -0
  471. package/src/video/film-edit-review.ts +78 -0
  472. package/src/video/film-plan.ts +95 -0
  473. package/src/video/film-reference-evidence.ts +38 -0
  474. package/src/video/film-review-gate.ts +30 -0
  475. package/src/video/filmmaking-product-prompts.ts +169 -0
  476. package/src/video/filmmaking-prompts.ts +65 -1024
  477. package/src/video/filmmaking-shared.ts +159 -0
  478. package/src/video/filmmaking-vocab.ts +137 -0
  479. package/src/video/flow-markers.ts +3 -3
  480. package/src/video/hook-register.ts +174 -0
  481. package/src/video/library-clean.ts +1 -1
  482. package/src/video/lighting-grade-register.ts +288 -0
  483. package/src/video/motion-overlay/avatar-host.ts +2 -2
  484. package/src/video/outfit-prompts.ts +49 -0
  485. package/src/video/preview-portal/render-brand.ts +201 -0
  486. package/src/video/preview-portal/render-primitives.ts +54 -0
  487. package/src/video/preview-portal/render-run.ts +215 -0
  488. package/src/video/preview-portal/render-scene-contract.ts +203 -0
  489. package/src/video/preview-portal/render.ts +7 -653
  490. package/src/video/provider-platform/registry.ts +2 -1
  491. package/src/video/realism-register.ts +238 -0
  492. package/src/video/review-ui-artifacts.ts +792 -0
  493. package/src/video/review-ui-autopilot.ts +313 -0
  494. package/src/video/review-ui-inventory.ts +234 -0
  495. package/src/video/review-ui-shared.ts +156 -0
  496. package/src/video/review-ui.ts +17 -1444
  497. package/src/video/run-state/read.ts +19 -2
  498. package/src/video/run-state/types.ts +2 -0
  499. package/src/video/seedance-prompt.ts +435 -0
  500. package/src/video/status.ts +37 -0
  501. package/src/video/story-bible.ts +3 -3
  502. package/src/video/storyboard-markdown.ts +10 -3
  503. package/src/video/studio/execute.ts +32 -2
  504. package/src/video/types.ts +1 -0
  505. package/src/video/workspace.ts +2 -0
  506. package/skills/clawbot/SKILL.md +0 -29
  507. /package/docs/{Claude Code + Higgsfield MCP = FULL Creative Agency.md → HIGGSFIELD_MCP_CREATIVE_AGENCY.md} +0 -0
package/CLAUDE.md CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
4
 
5
- ## Quick orientation (read this first, then `MERGE_PLAN.md`)
5
+ ## Quick orientation (read this first)
6
6
 
7
- - **Entrypoint:** `src/cli/vclaw.ts` — a thin ~530-line dispatch shell; all command logic lives in `src/cli/handlers/*.ts` (25 modules).
7
+ - **Entrypoint:** `src/cli/vclaw.ts` — a thin ~640-line dispatch shell; all command logic lives in `src/cli/handlers/*.ts` (38 modules).
8
8
  - **Domain core:** `src/video/*` — small single-purpose modules (projects, execution, assemble, audio-platform, studio, preview-portal, motion-overlay, provider-platform, …).
9
9
  - **Contracts & state:** `schemas/video/*` JSON Schemas are the source of truth for artifact *shapes*; the on-disk `projects/<slug>/` tree is the source of truth for project *state*.
10
10
  - **Tests:** `node:test` files in `src/tests/*.test.ts`, run from compiled `dist/tests/` (`npm test`).
11
- - **Also load:** the sibling `.claude/CLAUDE.md` for the `graphify`, `improvement-run`, and `concierge`/`clawbot` skill triggers.
11
+ - **Also load:** the sibling `.claude/CLAUDE.md` for the `graphify`, `improvement-run`, and `concierge`/`videoclaw` skill triggers.
12
12
 
13
13
  > **Repository status (2026-07-02):** This is `videoclaw-v3`, the current repo —
14
14
  > unified from `videoclaw-v2`, itself the merged successor of the older `videoclaw`
@@ -17,9 +17,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
17
17
  > copied from `vclaw-video-core`; presenter skills synced from
18
18
  > `video-creation-projects/video-replicator-veo-cli/.claude/skills/`; Runway
19
19
  > transport ported from `videoclaw/src/video/providers/runway-useapi.ts`.
20
- > The full merge plan, decisions, and remaining phases are in `MERGE_PLAN.md` —
21
- > **read it before starting any non-trivial work.** It is the source of truth for
22
- > the architecture and what's coming.
20
+ > `MERGE_PLAN.md` holds the merge's architecture rationale and phase history
21
+ > (all phases but source retirement are done). Current status lives in
22
+ > `docs/RELEASE_READINESS.md` and `CHANGELOG.md`; the shipped architecture in
23
+ > `docs/ARCHITECTURE.md`.
23
24
 
24
25
  ## Repository purpose
25
26
 
@@ -28,13 +29,14 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
28
29
  ## Concierge front door (user-facing requests)
29
30
 
30
31
  `skills/concierge/SKILL.md` is the user-facing front door, and it speaks as
31
- **Clawbot** — VideoClaw's mascot (`clawbot` is a persona alias of the skill).
32
+ **VideoClaw** — the product itself (`videoclaw` is a persona alias of the skill).
33
+ The on-screen mascot is VideoClaw too: Go Bananas character 291, renamed from
34
+ its earlier name on 2026-09-09; the artwork is unchanged.
32
35
  When the user asks to make a video, gives an ambiguous creative request, types
33
- `/concierge` or `/clawbot`, asks for Clawbot, or seems new to the system, read
34
- that skill and follow it before doing anything else: greet them as Clawbot,
36
+ `/concierge` or `/videoclaw`, asks for VideoClaw, or seems new to the system, read
37
+ that skill and follow it before doing anything else: greet them as VideoClaw,
35
38
  present the menu, route their choice through its lane table, and keep the
36
- plan → preview → spend order (never spend without explicit go-ahead). If their
37
- first message is just a greeting with no task, offer the concierge menu.
39
+ plan → preview → spend order (never spend without explicit go-ahead).
38
40
  Engineering and maintenance requests on this codebase itself are NOT concierge
39
41
  territory — handle those normally.
40
42
 
@@ -179,8 +181,17 @@ npm run check:skill-frontdoor # repo-local skill front door
179
181
  npm run check:artifact-schema-coverage # writers vs schemas drift (advisory)
180
182
  npm run check:artifact-schema-coverage:strict # same, but fails the build on drift (--strict)
181
183
  npm run check:release-readiness-lite # one-shot: build + tests + main smokes + guardrails
184
+ npm run acceptance:live -- --route <id> [--veo-model free] [--approve] # ONE quoted provider job per route → an audit row (dry without --approve; the repeatable form of docs/audits/*-live-acceptance.md); --kind narrate|soundtrack|image-upscale [--backend <id>] certifies an audio / Magnific backend the same way
185
+ npm run lint # eslint src --max-warnings=0 (eqeqeq, no-var, prefer-const, no-eval family)
186
+ npm run check:module-size # fails on any src/**/*.ts over 1,000 lines; legacy giants are frozen at per-file ceilings in scripts/check-module-size.mjs — lower them, never raise them
187
+ npm run check:seedance-engine # in-tree free Seedance engine present + wired + offline stub self-test (no browser, no spend)
188
+ npm run check:build-fresh # dist/ is not stale relative to src/
189
+ npm run frontdoors:check # .claude/CLAUDE.md skill front-door blocks match scripts/skill-frontdoors.json (regenerate: npm run frontdoors:install)
190
+ npm run test:coverage # build, then compiled tests under coverage
191
+ npm run demo # zero-key creator-demo quickstart in a temp workspace (providerCalls: 0)
182
192
  npm run docs:sync # regenerate docs-site/reference/ from docs/ — run after ANY docs/*.md edit (CI: check:docs-site)
183
193
  npm run graph:full # rebuild the graphify knowledge graph (graphify-out/)
194
+ npm run shared-queue:status # `vclaw video lane status` against the shared coordinator; shared-queue:setup / :verify / :dashboard / :self-test manage services/shared-lane-coordinator
184
195
  ```
185
196
 
186
197
  `npm run check:release-readiness-lite` is the preferred local pre-flight before non-trivial changes land.
@@ -189,8 +200,8 @@ npm run graph:full # rebuild the graphify knowledge graph
189
200
 
190
201
  ### Layers (read top-down)
191
202
 
192
- 1. `src/cli/vclaw.ts` — the single user-facing entrypoint, now a thin dispatch shell (~530 lines: imports, `printHelp`, the `NOUN_VERB_ALIASES` map, `resolveSubcommand`, the `VIDEO_DISPATCH` table, and `main`). The decomposition is COMPLETE (PRs #89–#120): pure arg/slug/spend helpers live in `src/cli/args.ts`, and ALL command handlers live in `src/cli/handlers/` (25 modules — `analysis`, `audio`, `batch`, `candidates`, `character`, `clone`, `create`, `execution`, `library`, `media-ops`, `media-production`, `migrate-home`, `monitor`, `motion-overlay`, `multi-shot`, `project-ops`, `prompt-craft`, `provider-registration`, `reference-sheets`, `reporting`, `review-portal`, `show`, `stages`, `studio`, `templates`), each a verbatim extraction with module-private helpers and only dispatch-facing handlers exported. ⚠️ When moving handler code, watch for position-sensitive path math (`import.meta.url` etc.) — the compiled location changes (see the documented adaptations in `handlers/studio.ts` and `handlers/motion-overlay.ts`). `src/cli/provider-adapter.ts` is the built-in adapter binary for the four `..._ADAPTER` routes (see Provider routes below). Besides `video`/`studio`, `main` also dispatches two smaller families: `vclaw mcp serve` (`src/mcp/` — a read-only stdio MCP server exposing `list_projects`, `get_project_status`, `get_artifacts`, `get_event_log`, `list_provider_routes`; writes stay CLI-only by design) and `vclaw veo <verb>` (`src/video/veo-subprocess.ts` — spawn-forwarding to the Bun-based `vclaw-cli/flow.ts`, required for Puppeteer/Google Flow verbs like `status`, `resume`, `cancel`, `useapi:*`).
193
- 2. `src/video/` — the core domain. Each file is small and single-purpose, e.g. `artifacts.ts`, `artifact-store.ts`, `checkpoints.ts`, `workspace.ts`, `projects.ts`, `status.ts`, `doctor.ts`, `doctor-portfolio.ts`, `readiness.ts`, `execution-plan.ts`, `execute.ts`, `execution-runtime.ts`, `execution-status.ts`, `execution-cancel.ts`, `director-preflight.ts`, `report.ts`, `csv-export.ts`, `obsidian-export.ts`, `project-index.ts`, `metrics.ts`, `next-actions.ts`, `template-store.ts`, `provider-status.ts`, `native-seedance.ts`, `native-veo.ts`, `multi-shot-prompt.ts`, `storyboard-grid.ts`, `cinematography.ts` (detail-leveled quantified camera/lighting/grade/audio emitters — `--detail terse|standard|rich`), `prompt-rules.ts` (standing prompt rules: visual-descriptor-not-names, brand-neutral, no-face-morph, diegetic audio), `seedance-asset-library.ts` (Asset Library character/product consistency), `story-bible.ts` (deterministic continuity bible — cast/settings/props/scene-timeline from brief + storyboard + characters), `brand-definition.ts` (locked brand system — palette/voice/typography/theme map; `filmmaking-prompts` appends a prose BRAND line when present), `assemble/media-qc.ts` (post-stitch ffprobe QC of clips + master), `assemble/narration-fit.ts` (TTS-vs-video timing planner: atempo / loop-video fit). `src/video/studio/` is the planning front door and `src/video/preview-portal/` is the review/delivery portal (both described below).
203
+ 1. `src/cli/vclaw.ts` — the single user-facing entrypoint, now a thin dispatch shell (~640 lines: imports, `printHelp`, the `NOUN_VERB_ALIASES` map, `resolveSubcommand`, the `VIDEO_DISPATCH` table, and `main`). The decomposition is COMPLETE (PRs #89–#120): pure arg/slug/spend helpers live in `src/cli/args.ts`, and ALL command handlers live in `src/cli/handlers/` (38 modules — the original 25: `analysis`, `audio`, `batch`, `candidates`, `character`, `clone`, `create`, `execution`, `library`, `media-ops`, `media-production`, `migrate-home`, `monitor`, `motion-overlay`, `multi-shot`, `project-ops`, `prompt-craft`, `provider-registration`, `reference-sheets`, `reporting`, `review-portal`, `show`, `stages`, `studio`, `templates`; plus the later families `cinema`, `cinema-archive`, `cinema-candidate`, `cinema-delivery`, `cinema-execution`, `cinema-history`, `cinema-migration`, `creator-demo`, `creator-ui`, `lane`, `mograph`, `publish-platform`, `stock`), each a verbatim extraction with module-private helpers and only dispatch-facing handlers exported. ⚠️ When moving handler code, watch for position-sensitive path math (`import.meta.url` etc.) — the compiled location changes (see the documented adaptations in `handlers/studio.ts` and `handlers/motion-overlay.ts`). `src/cli/provider-adapter.ts` is the built-in adapter binary for the five built-in adapter routes (`seedance-direct`, `veo-useapi`, `runway-useapi`, `dreamina-useapi`, `magnific-rest`; see Provider routes below). Besides `video`/`studio`, `main` also dispatches two smaller families: `vclaw mcp serve` (`src/mcp/` — a read-only stdio MCP server exposing `list_projects`, `get_project_status`, `get_artifacts`, `get_event_log`, `list_provider_routes`; writes stay CLI-only by design) and `vclaw veo <verb>` (`src/video/veo-subprocess.ts` — spawn-forwarding to the Bun-based `vclaw-cli/flow.ts`, required for Puppeteer/Google Flow verbs like `status`, `resume`, `cancel`, `useapi:*`).
204
+ 2. `src/video/` — the core domain. Each file is small and single-purpose, e.g. `artifacts.ts`, `artifact-store.ts`, `checkpoints.ts`, `workspace.ts`, `projects.ts`, `status.ts`, `doctor.ts`, `doctor-portfolio.ts`, `readiness.ts`, `execution-plan.ts`, `execute.ts`, `execution-runtime.ts`, `execution-status.ts`, `execution-cancel.ts`, `director-preflight.ts`, `report.ts`, `csv-export.ts`, `obsidian-export.ts`, `project-index.ts`, `metrics.ts`, `next-actions.ts`, `template-store.ts`, `provider-status.ts`, `native-seedance.ts`, `native-veo.ts`, `multi-shot-prompt.ts`, `storyboard-grid.ts`, `cinematography.ts` (detail-leveled quantified camera/lighting/grade/audio emitters — `--detail terse|standard|rich`; since Phase 3a the lighting/grade, hook, realism and dynamic tables live in `lighting-grade-register.ts` / `hook-register.ts` / `realism-register.ts` / `dynamic-register.ts` and are re-exported from it, so import from `cinematography.js` as before), `prompt-rules.ts` (standing prompt rules: visual-descriptor-not-names, brand-neutral, no-face-morph, diegetic audio), `seedance-asset-library.ts` (Asset Library character/product consistency), `story-bible.ts` (deterministic continuity bible — cast/settings/props/scene-timeline from brief + storyboard + characters), `brand-definition.ts` (locked brand system — palette/voice/typography/theme map; `filmmaking-prompts` appends a prose BRAND line when present), `assemble/media-qc.ts` (post-stitch ffprobe QC of clips + master), `assemble/narration-fit.ts` (TTS-vs-video timing planner: atempo / loop-video fit). `src/video/studio/` is the planning front door and `src/video/preview-portal/` is the review/delivery portal (both described below).
194
205
  3. `src/video/provider-platform/` — route descriptors (Veo / Seedance / Runway direct and useapi flavors).
195
206
  4. `src/video/pipeline-manifests/` — built-in stage definitions for the two production modes.
196
207
  5. `schemas/video/` — canonical JSON Schema contracts for artifacts and pipeline manifests. Treat these as the source of truth for artifact shapes.
@@ -221,7 +232,7 @@ Canonical stage order: **init → brief → storyboard → assets → review →
221
232
 
222
233
  ### Two production modes
223
234
 
224
- Every command accepts `--mode storyboard|director`. Pipeline manifests under `src/video/pipeline-manifests/` define the stage contract per mode. `director` mode adds a storyboard-approval gate: `produce`/`execute` export `storyboard.md` and block before provider submission unless `VIDEOCLAW_APPROVE_STORYBOARD=1` is set. `storyboard-review` (no-execution) can perform preflight + transition the project into `awaiting-approval` without starting a run.
235
+ Every command accepts `--mode storyboard|director`. Pipeline manifests under `src/video/pipeline-manifests/` define the stage contract per mode. `director` mode adds a storyboard-approval gate: `produce`/`execute` export `storyboard.md` and block before provider submission unless `VIDEOCLAW_APPROVE_STORYBOARD=1` is set or the run is `produce --approve` (the command the blocked report prints; `approve` is a deprecated spelling of it). Plain `produce` has no `--confirm-spend` gate and refuses that flag (and `--execute`) rather than ignoring it; every direct front door reaches the provider through `executeProject` (ADR 0008 amendment). `storyboard-review` (no-execution) can perform preflight + transition the project into `awaiting-approval` without starting a run.
225
236
 
226
237
  ### Studio front door (planning layer)
227
238
 
@@ -239,7 +250,7 @@ The ops layer tracks a normalized `storyboardReviewState` of `missing | current
239
250
 
240
251
  ### Review & delivery portal (`src/video/preview-portal/`)
241
252
 
242
- The portal generates the standardized HTML surfaces that used to be hand-written per project: `edit.html`/`review.html` (editor/operator human-in-the-loop, with approve/regenerate controls and `VIDEOCLAW_REVIEW_DECISIONS` copy output), `client-review.html` (lightweight client approve/decline/comment, `VIDEOCLAW_CLIENT_FEEDBACK` copy output), and `preview.html` (polished final showcase: every production image is lightbox-enabled for click-to-fullscreen, a soundtrack `<audio controls preload="none">` player renders when a soundtrack is discovered, plus downloads). The module is split into `discovery.ts` (find project assets), `generate.ts` + `templates.ts` + `shared-assets.ts` (render the surfaces), `render.ts`/`publish.ts` (emit/ship), and `audit.ts` (drift checks); `src/video/review-ui.ts` (`vclaw video review-ui`) serves the editor surface interactively. The decisions/feedback flow back through env-var copy blocks rather than a server round-trip, keeping the on-disk project the source of truth. See `docs/preview-portal-audit.md`.
253
+ The portal generates the standardized HTML surfaces that used to be hand-written per project: `edit.html`/`review.html` (editor/operator human-in-the-loop, with approve/regenerate controls and `VIDEOCLAW_REVIEW_DECISIONS` copy output), `client-review.html` (lightweight client approve/decline/comment, `VIDEOCLAW_CLIENT_FEEDBACK` copy output), and `preview.html` (polished final showcase: every production image is lightbox-enabled for click-to-fullscreen, a soundtrack `<audio controls preload="none">` player renders when a soundtrack is discovered, plus downloads). The module is split into `discovery.ts` (find project assets), `generate.ts` + `templates.ts` + `shared-assets.ts` (render the surfaces), `render.ts`/`publish.ts` (emit/ship — since Phase 3d `render.ts` keeps the surface router and imports `render-primitives.ts` (escaping, aspect, dates), `render-scene-contract.ts` (the exact-submit contract), `render-run.ts` (the run dashboard) and `render-brand.ts` (brand theming)), and `audit.ts` (drift checks); `src/video/review-ui.ts` (`vclaw video review-ui`) serves the editor surface interactively. The decisions/feedback flow back through env-var copy blocks rather than a server round-trip, keeping the on-disk project the source of truth. See `docs/preview-portal-audit.md`.
243
254
 
244
255
  ### Mission Control (`vclaw video monitor`)
245
256
 
@@ -247,7 +258,7 @@ The portal generates the standardized HTML surfaces that used to be hand-written
247
258
 
248
259
  ### Storyboard grid & multi-shot prompt handoff
249
260
 
250
- `src/video/multi-shot-prompt.ts` builds project-ready, provider-tuned multi-shot prompt packets (presets via `vclaw video multi-shot --presets`; see `references/video/multi-shot-framework.md`, especially its Anti-patterns section). `multi-shot --plan` can render through alternate composers via `--format default|seedance-paragraph|per-shot` (default = the original `{ preset, shots[] }` JSON, unchanged) and wrap the rendered text bilingually via `--lang en|zh|en+zh` (offline identity translator — the flag surfaces the two-block `en+zh` structure, not live translation); `--category <id>` drives the composed prose. On a non-`default` `--format`, `--hook <patternId>` (named `HOOK_PATTERNS` opening directive from `cinematography.ts`) prepends an `Opening hook — ...` line and `--dialogue "<speaker>: <line> [|| <speaker>: <line>]"` appends spoken dialogue to the opening via `withDialogue` — both are post-render text transforms (composers stay pure), default off / unchanged output. `--dialogue` parses a trailing `[emotion]` per speaker, and `--emotion-cues` rewrites those named emotions into physical-cue descriptors (`rewriteEmotionAsPhysical`/`EMOTION_PHYSICAL_CUE_MAP` in `emotion-cues.ts`) — advisory/additive, extremes left named, default off / byte-identical. `filmmaking-prompts --phase storyboard|video` gates the heavy video `seedancePackets` to `[]` in the `storyboard` phase (lock-the-grid step) while keeping the storyboard/camera-language portion. Joey cinematic-adaptation opt-in flags (all additive — omit = byte-identical legacy output) route through these same commands: `filmmaking-prompts` takes `--sheet 8-shot|6-panel` (`characterSheetSixPanelPrompt`), `--realism`/`--wet`/`--haze thin|light|heavy` (the `captureRealismBlock` keystone + `volumetricHaze`, at `--detail rich`), `--background mid-gray|white|black` (`backgroundPlate`), and `--lighting <id>`/`--grade <id>` (rich cinematography-suffix registers, e.g. `night-fire`/`bleach-bypass`); `multi-shot` takes `--genre <id>` (`resolveStyleLine`, Nolan fallback) and `--vfx <id>` (physical-VFX effects register, `src/video/vfx-register.ts`). Operator trigger-word map: mid-gray → `backgroundPlate`; haze → `volumetricHaze`; anti-plastic → `captureRealismBlock`; wet → moisture clause; bleach-bypass/lifted-blacks → lift/gamma grade; no-on-screen-text → `noOnScreenTextBlock`, the FIRST directive block (it moved out of Last Frame: overlay text is decided early in the frame, so the instruction has to sit early in the prompt). See `docs/CLI_REFERENCE.md` ("Joey cinematic opt-in flags") and the framework Anti-patterns.
261
+ `src/video/multi-shot-prompt.ts` builds project-ready, provider-tuned multi-shot prompt packets (presets via `vclaw video multi-shot --presets`; see `references/video/multi-shot-framework.md`, especially its Anti-patterns section). `multi-shot --plan` can render through alternate composers via `--format default|seedance-paragraph|per-shot` (default = the original `{ preset, shots[] }` JSON, unchanged) and wrap the rendered text bilingually via `--lang en|zh|en+zh` (offline identity translator — the flag surfaces the two-block `en+zh` structure, not live translation); `--category <id>` drives the composed prose. On a non-`default` `--format`, `--hook <patternId>` (named `HOOK_PATTERNS` opening directive from `hook-register.ts`, re-exported by `cinematography.ts`) prepends an `Opening hook — ...` line and `--dialogue "<speaker>: <line> [|| <speaker>: <line>]"` appends spoken dialogue to the opening via `withDialogue` — both are post-render text transforms (composers stay pure), default off / unchanged output. `--dialogue` parses a trailing `[emotion]` per speaker, and `--emotion-cues` rewrites those named emotions into physical-cue descriptors (`rewriteEmotionAsPhysical`/`EMOTION_PHYSICAL_CUE_MAP` in `emotion-cues.ts`) — advisory/additive, extremes left named, default off / byte-identical. `filmmaking-prompts --phase storyboard|video` gates the heavy video `seedancePackets` to `[]` in the `storyboard` phase (lock-the-grid step) while keeping the storyboard/camera-language portion. Joey cinematic-adaptation opt-in flags (all additive — omit = byte-identical legacy output) route through these same commands: `filmmaking-prompts` takes `--sheet 8-shot|6-panel` (`characterSheetSixPanelPrompt`), `--realism`/`--wet`/`--haze thin|light|heavy` (the `captureRealismBlock` keystone + `volumetricHaze`, at `--detail rich`), `--background mid-gray|white|black` (`backgroundPlate`), and `--lighting <id>`/`--grade <id>` (rich cinematography-suffix registers, e.g. `night-fire`/`bleach-bypass`); `multi-shot` takes `--genre <id>` (`resolveStyleLine`, Nolan fallback) and `--vfx <id>` (physical-VFX effects register, `src/video/vfx-register.ts`). Operator trigger-word map: mid-gray → `backgroundPlate`; haze → `volumetricHaze`; anti-plastic → `captureRealismBlock`; wet → moisture clause; bleach-bypass/lifted-blacks → lift/gamma grade; no-on-screen-text → `noOnScreenTextBlock`, the FIRST directive block (it moved out of Last Frame: overlay text is decided early in the frame, so the instruction has to sit early in the prompt). See `docs/CLI_REFERENCE.md` ("Joey cinematic opt-in flags") and the framework Anti-patterns.
251
262
 
252
263
  `src/video/storyboard-grid.ts` (`vclaw video storyboard-grid`, `renderStoryboardGrid`) renders a **deterministic shot-spec sheet** — a 3×3 SVG→PNG of CAM/MOVE/MOOD annotation panels — **not** a cinematic storyboard with character imagery. It is the *layout/intent contract*, not the finished reference image. The intended two-step is: (1) `storyboard-grid` to lock panel order + camera language, then (2) generate the real cinematic 3×3 grid via an image model (always `openai-gpt-image-2` for multi-panel composites) and re-attach it with `vclaw video filmmaking-prompts --storyboard-grid <path>`, which feeds it into the Seedance/Veo/Runway prompt packets.
253
264
 
@@ -286,6 +297,25 @@ The repeatable cartoon-SHOW production system (from the Jack-Vs-AI workflow). `v
286
297
 
287
298
  `src/video/batch-queue.ts` + the `vclaw video batch-submit` / `batch-monitor` / `batch-status` commands queue many independent video jobs to run unattended overnight. The default route is the **free** `runway-useapi` explore mode (low-res, slow — backfill drafts); target `dreamina-useapi` (or `seedance-direct`) for paid hi-res. An operator-authored manifest (`schemas/video/artifacts/batch-queue-manifest.schema.json` — an input-only artifact, allowlisted in `check-artifact-schema-coverage.mjs`) compiles via the pure `buildBatchPayload()` into a single `VideoExecutionPayload` with N tasks, so it reuses the existing native route transports (`native-runway`/`native-dreamina`/`native-seedance`) and their job-state — no duplicate submit/poll logic. `batch-submit` persists `<dir>/batch-queue.json`; `batch-monitor` polls once (the transport downloads to `<dir>/scene-<i>.mp4`), copies each completed scene to `<dir>/clips/<jobId>.mp4`, and writes `<dir>/batch-status.json`. It is **resumable/idempotent**: re-running only advances pending→done/failed and never re-downloads completed clips, so `batch-monitor --out <dir> --once` is safe to schedule via launchd (one pass per tick). Opt-in wedge handling: `--stall-minutes <n>` (0=off) flags scenes the provider has left `submitted` past the stall window as **wedged** (`detectWedgedScenes`/`applyWedgeHandling` in `batch-queue.ts`), and `--fail-wedged` marks them `failed` so the queue reaches terminal and the monitor exits instead of polling a stuck job to the deadline. The monitor also backs off automatically when the explore queue is throttled (`isExploreThrottled`/`nextBackoffMs`), and the opt-in `--auto-resubmit` (with `--stall-minutes <n>`, bounded by `--max-resubmits <n>`, default 2) re-submits wedged scenes as fresh single-scene jobs (`planResubmits`/`runResubmitPass`) — **only on the free `runway-useapi` route** (refused on paid routes up front, and the resubmit path self-guards, so it never spends credits). See `docs/CLI_REFERENCE.md` ("Overnight batch video queue").
288
299
 
300
+ ### Cinema production queue + render lanes (the durable execution layer)
301
+
302
+ ADR 0008 converges every generated-work front door (`produce --auto-chain`, `pool`, `batch-submit`, `mograph-render --enqueue` (its `--emit-batch` still writes the legacy batch manifest), fallback rendering) onto ONE durable, dependency-aware production queue owned by the `src/video/cinema-*` store family (~60 small modules: `cinema-production-queue.ts`, `cinema-production-contract-*`, `cinema-provider-*`, `cinema-evidence*`, `cinema-review-*`, `cinema-preflight*`, `cinema-retry-policy.ts`, `cinema-file-lock.ts`, …). The queued path is `compile → exact quote → authorise → cinema-work → reconcile → review → delivery`, driven by the `vclaw video cinema-*` verbs (handlers `cinema*.ts`: `cinema-create`/`-compile`/`-preflight`/`-quote`/`-authorize`/`-work`/`-work-quote`/`-ingest`/`-review`/`-promote`/`-deliver`/`-status`/`-console`/`-console-live`/`-archive`/`-restore`/`-migrate`/`-history-import`). Workers act on SAVED state (the quote, the immutable request, and the provider job id must survive interruption); an ambiguous submission is resolved before any replacement work is authorised, never re-submitted blindly. ADR 0009 makes the Cinema console (`cinema-console` / `cinema-console-live`, `cinema-project-console*.ts`, `cinema-live-console.ts`) the one authoritative live review surface that review-ui, the preview portal and monitor detail pages converge on. Cinema route ids are a separate id space from the core `ProviderRouteId`s (ADR 0001 + 0007: unlimited Higgsfield, paid xskill API and the official Higgsfield CLI — `cinema-higgsfield-cli-*.ts` — are distinct routes and never silently swap).
303
+
304
+ **Render lanes** (`src/video/lane-queue.ts`, `lane-coordinator.ts`; `vclaw video lane <acquire|await|heartbeat|release|status>` in `handlers/lane.ts`) are the cross-process slot leases every driver — in any language — must take before submitting. The lane key is `route:account` (provider limits are per ACCOUNT), one lane per transport so different engines run in parallel. The local queue is the external `sqlite3` CLI (not `node:sqlite`); the shared multi-computer authority is a Cloudflare Durable Object per lane deployed from `services/shared-lane-coordinator/` (`docs/SHARED_QUEUE.md`). It is a lease, not a task queue: the agent still runs its own render, it only waits its turn. Two drivers on one lane look exactly like moderation failures and have the opposite fix (serialise vs redraw) — check `lane status` before diagnosing rejections.
305
+
306
+ ### Free Seedance engine, vendored in-tree (`engines/seedance-direct/`)
307
+
308
+ ADR 0006 (supersedes 0005): the free, unlimited Higgsfield Seedance engine is a ~600-line Python adapter (`adapter.py`, `run.sh`, `bootstrap.sh`, `test_adapter.py`) living OUTSIDE `src/` — it does not touch `tsc`, `node:test` or the npm tarball. It speaks the same stdin/stdout SUBMIT/POLL/CANCEL JSON contract as every `..._ADAPTER`. `resolveAdapterCommand` prefers it for `seedance-direct` only when the engine is fully bootstrapped; the readiness verdict is `describeFreeInTreeSeedanceEngine` in `src/video/execution-adapter.ts`, which requires the `.vclaw-engine-ready.json` marker (`FREE_SEEDANCE_ENGINE_MARKER`) that ONLY a successful signed-in cookie import writes inside the browser-session directory — an existing venv + an empty profile directory is NOT ready and falls through to the PAID `native-seedance.ts` transport (`SUTUI_API_KEY`), per ADR 0001. The venv and the `.cloak-profile` browser session are local, secret and git-ignored; `engines/seedance-direct/bootstrap.sh` creates them. Before any `--confirm-spend` on `seedance-direct`, read `activeTransport` in `vclaw video providers` output — `in-tree-engine` is free, anything else is paid. `VCLAW_SEEDANCE_DIRECT_NATIVE=1` forces the paid path.
309
+
310
+ ### Smaller newer families (each self-contained under `src/video/`)
311
+
312
+ - `creator-ui/` (`vclaw video creator-ui`, `creator-demo`; `docs/CREATOR_DEMO.md`) — the zero-key product-shell: `capabilities.ts` probes which stock/TTS/music/generative routes this machine can actually use, `read-model.ts` + `server.ts` serve a local creator surface, and `creator-demo` (also `vclaw studio --goal creator-demo`, `npm run demo`) builds a full project + preview with `providerCalls: 0`, `networkCalls: 0`, never marking it publish-ready.
313
+ - `stock-platform/` (`vclaw video stock-search` / `stock-import`) — stock footage providers (`providers/pexels.ts`) behind a registry; `rights.ts` records licence/provenance (sha256 + source) per imported asset and `store.ts` keeps imports inside the project.
314
+ - `publish-platform/` (`vclaw video publish-metadata` / `publish-package`) — versioned, source-cited platform profiles (`profiles.ts`: YouTube Shorts etc. with max duration, aspect, codec, title/description limits, synthetic-media disclosure) and `validate.ts` checks a final cut + metadata against the chosen profile before packaging. Distinct from `publish-preview` / `publish-portal-index` (the preview portal) and from `docs/PUBLISHING.md` (releasing the npm package itself).
315
+ - `reframe/` — the shot-plan engine behind `make-vertical`: `--write-plan-template` detects cuts and writes UNVERIFIED subject-anchor suggestions; `--strict` refuses to render until every anchor is verified (or `--quick-center-crop` is explicit); `captions.ts` renders portrait-native captions and `qc.ts` audits the crop.
316
+ - `run-state/` — `readProjectRunState` normalises candidates + storyboard + execution report into one derived run view (stale `pending` candidates are treated as abandoned); the read model that monitor/console surfaces share.
317
+ - `magnific/` + `providers/` — the Magnific REST route (`magnific-rest`, one of the five built-in adapter routes) and the thin useapi/xskill/Flow transport clients the native routes call.
318
+
289
319
  ### Director Blueprint (director layer)
290
320
 
291
321
  `src/video/project-blueprint.ts` + `blueprint-prompt.ts` + `director-defaults.ts` (`vclaw video director-blueprint --project <slug> (--from-json <path> [--write] | --show)`) persist a project-level **visual bible** (`artifacts/project-blueprint.json`): color system, lighting grammar, per-character camera language, forbidden moves, "the one rule". It is distinct from the story bible (continuity); the blueprint locks **visual direction** above the execution layer. Authoring is creative and lives in the `ai-director` skill (`skills/ai-director/SKILL.md`); the CLI half is deterministic (validate/normalize/persist). `filmmaking-prompts` auto-appends a prose DIRECTOR block and flags forbidden-move violations when a blueprint exists; no blueprint → byte-identical legacy output. See `docs/DIRECTOR_BLUEPRINT.md`.
@@ -304,7 +334,7 @@ The repeatable cartoon-SHOW production system (from the Jack-Vs-AI workflow). `v
304
334
 
305
335
  ### Media production & local post-production
306
336
 
307
- Two handler families cover the finishing lane. `handlers/media-production.ts`: `assemble` (FFmpeg stitch, incl. `--from-clips`), `gen-image` (diegetic prop/screen/overlay stills; Flow image models via `gen-image-flow.ts`), `overlay` (graphic/alert/lower-third motion graphics with a drawtext preflight), `music-video` (vocal-synced beat-exact assembler, plan/dry by default), `title-card` (Pillow+RAQM title overlays), `stitch-ad`, `animation-styles` (shared `animation-styles.json` registry), `finish` (`src/video/finish.ts` — upscale a rendered cut to an HD/QHD master via hosted Topaz (spend-gated) or local Real-ESRGAN/Topaz CLI; the anti-plastic recipe is baked in: photoreal model, denoise/sharpen DISABLED, film grain kept, and Topaz `grain` clamps to 0.1 because the published schema overstates the range), and `lipsync` (OmniHuman, spend-gated). `assemble`'s stitch layer also supports opt-in **reading-holds** (`assemble/stitch.ts`, `readingHold`) — readable pre-roll holds on dense motion-comic segments. `handlers/media-ops.ts` is local-FFmpeg-only post-production on a finished cut — `make-vertical`/`make-square`/`make-loop`, `thumbnail`, `burn-subtitles`, `verify-final`, and `qc` (recursively scans `projects/<slug>/final/` + `outputs/` for clips and runs the assemble media-QC probe: missing-audio, nonstandard codec, duration drift; graceful `status: 'skipped'` when no clips) — real file I/O but NO provider calls and NO spend. Two adjacent quality/finishing tools: `vclaw video image-ops` (`src/video/image-ops.ts` + `native-magnific.ts`) is still-image post-processing, currently the Magnific precision-v2 image upscaler (pure planning core + injectable runner; `--dry-run` plans without spending; the IMAGE endpoint is live-verified, a different service from the video upscaler), and `vclaw video consistency-audit` (`src/video/consistency-audit.ts`) is an automated character-consistency VISION audit across rendered scenes/keyframes — the engine-side forcing function that catches wardrobe/face drift on recurring characters BEFORE a render is presented as done.
337
+ Two handler families cover the finishing lane. `handlers/media-production.ts`: `assemble` (FFmpeg stitch, incl. `--from-clips`), `gen-image` (diegetic prop/screen/overlay stills; Flow image models via `gen-image-flow.ts`), `overlay` (graphic/alert/lower-third motion graphics with a drawtext preflight), `music-video` (vocal-synced beat-exact assembler, plan/dry by default), `title-card` (Pillow+RAQM title overlays), `stitch-ad`, `animation-styles` (shared `animation-styles.json` registry), `finish` (`src/video/finish.ts` — upscale a rendered cut to an HD/QHD master via hosted Topaz (spend-gated) or local Real-ESRGAN/Topaz CLI; the anti-plastic recipe is baked in: photoreal model, denoise/sharpen DISABLED, film grain kept, and Topaz `grain` clamps to 0.1 because the published schema overstates the range), and `lipsync` (OmniHuman, spend-gated). `assemble`'s stitch layer also supports opt-in **reading-holds** (`assemble/stitch.ts`, `readingHold`) — since Phase 3c the stitch constants/filter register, the concat/prep argv builders and the multi-layer audio mix live in `assemble/stitch-filters.ts` / `stitch-concat.ts` / `stitch-audio-mix.ts` and are re-exported from `stitch.ts`, so import from `stitch.js` as before — readable pre-roll holds on dense motion-comic segments. `handlers/media-ops.ts` is local-FFmpeg-only post-production on a finished cut — `make-vertical`/`make-square`/`make-loop`, `thumbnail`, `burn-subtitles`, `verify-final`, and `qc` (recursively scans `projects/<slug>/final/` + `outputs/` for clips and runs the assemble media-QC probe: missing-audio, nonstandard codec, duration drift; graceful `status: 'skipped'` when no clips) — real file I/O but NO provider calls and NO spend. Two adjacent quality/finishing tools: `vclaw video image-ops` (`src/video/image-ops.ts` + `native-magnific.ts`) is still-image post-processing, currently the Magnific precision-v2 image upscaler (pure planning core + injectable runner; `--dry-run` plans without spending; the IMAGE endpoint is live-verified, a different service from the video upscaler), and `vclaw video consistency-audit` (`src/video/consistency-audit.ts`) is an automated character-consistency VISION audit across rendered scenes/keyframes — the engine-side forcing function that catches wardrobe/face drift on recurring characters BEFORE a render is presented as done.
308
338
 
309
339
  ### Gemini key pool
310
340
 
@@ -315,6 +345,12 @@ Two handler families cover the finishing lane. `handlers/media-production.ts`: `
315
345
  - `execution-plan` ↔ `plan`
316
346
  - `execute` ↔ `produce`
317
347
 
348
+ These two are supported spellings: the product itself emits `vclaw video execute` (`create.ts`, `execute.ts`, `storyboard-markdown.ts`, the studio recipes), so they never print a notice.
349
+
350
+ ### Declared aliases on their way out (notice-only, dispatch preserved until removal)
351
+
352
+ `template-create` → `template-save`, `clone-ad` → `clone-execute`, `analyze-template` → `analyze`, `preflight` → `director-preflight`, `library find` → `find-library` — all marked `deprecatedAliases` since 3.0.0-alpha.13, as are the one-shot and historical-only commands listed in `docs/DEPRECATION.md` "Marked as of 3.0.0-alpha.13". Each alias is an `aliases` entry on the canonical `CommandSpec` in `src/video/cli-schema.ts` (one schema entry, one handler); marking one deprecated is `deprecatedAliases: [{ name, since }]` on that entry, which makes `main` print one stderr line and run the command unchanged. Lifecycle: `docs/DEPRECATION.md` "Command lifecycle". `src/tests/cli-dispatch-table.test.ts` fails on a dispatch key that shares a handler but is declared nowhere. The command `approve` is marked `deprecated` (not an alias: its own dispatch key) as a spelling of `produce --approve`; its handler forwards to the produce handler.
353
+
318
354
  (The old `omx` wrapper binary has been removed entirely — don't reintroduce it.)
319
355
 
320
356
  ## Conventions that are not obvious
@@ -327,9 +363,10 @@ Two handler families cover the finishing lane. `handlers/media-production.ts`: `
327
363
  - Tests use `node:test` with `assert/strict`. Prefer `mkdtemp`/`tmpdir` for temp-directory isolation. Put CLI end-to-end tests under `src/tests/cli-*.test.ts` and module-contract tests under `src/tests/*.test.ts`.
328
364
  - When adding a new CLI subcommand: add the handler in the appropriate `src/cli/handlers/*.ts` module (or a new one following the verbatim-move pattern) and register the dispatch-table entry (plus any alias) in `src/cli/vclaw.ts`; update the relevant `src/video/*` module(s), a schema under `schemas/video/` if it introduces or changes an artifact, register the command in the `COMMANDS` array of `src/video/cli-schema.ts` (bump the hardcoded command-count assertion in `cli-schema.test.ts` to match), add a `cli-*.test.ts`, and update `README.md` + `docs/CLI_REFERENCE.md`. The `check:cleanroom-docs` guardrail watches docs drift.
329
365
  - Project slugs are validated by `isProjectSlug` (`src/video/projects.ts`); both `parseProjectSlug` and `handleVideoInit` (`validateInitSlug`) enforce it so flag-looking values (e.g. `--project`) cannot be silently accepted as slugs. Preserve this guard when adding new slug-accepting commands.
330
- - Architecture diagrams under `docs/assets/*.jpg` are generated from Mermaid sources in `docs/DIAGRAMS_SOURCE.md`. Edit the Mermaid blocks there and regenerate the images via the Go Bananas Pro model — never hand-edit the JPGs.
366
+ - Architecture diagrams under `docs/assets/*.jpg` are generated from the Mermaid sources in `docs/DIAGRAMS_SOURCE.md`. Edit the Mermaid block there, then `npm run diagrams:mirror && npm run diagrams:render` (mermaid-cli with the brand config — the deterministic render the existing JPGs came from; `npm run diagrams:lint` fails when a mirror drifts). Never hand-edit the JPGs.
331
367
  - `check:skill-frontdoor` deliberately ignores `skills/seedance-prompts/SKILL.md` and the three presenter skills (`bunty`, `davendra-presenter`, `nex-presenter`) because their docs legitimately reference the legacy Python pipeline scripts. Don't "fix" the ignore list — it's load-bearing.
332
- - Do not commit secrets, `.env.local`, provider cookies, or `.omx/` state (already gitignored).
368
+ - Do not commit secrets, `.env.local`, provider cookies, `engines/*/.cloak-profile/`, or `.omx/` state (already gitignored).
369
+ - `.cursor/rules/codegraph.mdc` (alwaysApply) is the CodeGraph MCP usage guide: prefer `codegraph_context` / `codegraph_trace` / `codegraph_impact` for structural questions (callers, callees, blast radius) and grep only for literal text. Skills that touch many modules (the cinema store, provider routes) are where this pays off most.
333
370
 
334
371
  ## Start in your own worktree
335
372
 
@@ -358,9 +395,9 @@ Proceed by default on obvious next steps. Keep work scoped to this repository an
358
395
 
359
396
  ## Recommended reading order
360
397
 
361
- `docs/ARCHITECTURE.md` → `docs/CLI_REFERENCE.md` → `docs/STUDIO.md` → `docs/ASSEMBLE.md` → `docs/PRODUCTION_WORKFLOW.md` → `docs/REVIEW_UI_STORYBOARD_WORKFLOW.md` → `docs/preview-portal-audit.md` → `docs/STORY_BIBLE.md` → `docs/DIRECTOR_BLUEPRINT.md` → `docs/MOTION_OVERLAY.md` → `docs/MOGRAPH.md` → `docs/REFERENCE_SHEETS.md` → `docs/SCENE_CANDIDATES.md` → `docs/OPERATIONS.md` → `docs/GENERATION_TELEMETRY.md` → `docs/OBSIDIAN.md` → `docs/TEMPLATES.md` → `docs/MIGRATION.md` → `docs/DEPRECATION.md` → `docs/RELEASE_READINESS.md` → `docs/MASTER_PLAN_ALIGNMENT.md` → `docs/DIAGRAMS_SOURCE.md`.
398
+ `docs/AGENT_QUICKSTART.md` (install → first free render; `vclaw schema --json` + `skills/catalog.json` are the live command/skill indexes) → `docs/ARCHITECTURE.md` → `docs/PROJECT_LAYOUT.md` → `docs/CLI_REFERENCE.md` → `docs/STUDIO.md` → `docs/SHARED_QUEUE.md` → `docs/CREATOR_DEMO.md` → `docs/PUBLISHING.md` → `docs/ASSEMBLE.md` → `docs/PRODUCTION_WORKFLOW.md` → `docs/REVIEW_UI_STORYBOARD_WORKFLOW.md` → `docs/preview-portal-audit.md` → `docs/STORY_BIBLE.md` → `docs/DIRECTOR_BLUEPRINT.md` → `docs/MOTION_OVERLAY.md` → `docs/MOGRAPH.md` → `docs/REFERENCE_SHEETS.md` → `docs/SCENE_CANDIDATES.md` → `docs/OPERATIONS.md` → `docs/GENERATION_TELEMETRY.md` → `docs/OBSIDIAN.md` → `docs/TEMPLATES.md` → `docs/MIGRATION.md` → `docs/DEPRECATION.md` → `docs/RELEASE_READINESS.md` → `docs/MASTER_PLAN_ALIGNMENT.md` → `docs/DIAGRAMS_SOURCE.md`.
362
399
 
363
- Architecture decision records live in `docs/adr/` (no-silent-fallback across routes, on-disk project as source of truth, Seedance identity via Asset Library, director-mode approval gate) — consult them before relitigating those decisions.
400
+ Architecture decision records live in `docs/adr/` — 0001 no-silent-fallback across routes, 0002 on-disk project as source of truth, 0003 Seedance identity via Asset Library, 0004 director-mode approval gate, 0005→0006 free Higgsfield Seedance engine vendored in-tree, 0007 unlimited / paid-API / official-CLI Higgsfield are separate routes, 0008 one durable production queue, 0009 one HTML5 production review console. Consult them before relitigating those decisions.
364
401
 
365
402
  ## Agent skills
366
403
 
package/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  **Turn a one-line idea into a finished AI video — step by step, in the open, with a human approval before anything expensive runs and automated QC before anything ships.**
8
8
 
9
- A command-line tool (`vclaw`) that takes a plain-English idea like *"a 15-second ad for my coffee brand"* and walks it all the way to a reviewed, published video — using AI video services like **Veo, Seedance, and Runway**. Every step is saved to a file you can read, so nothing is hidden and you can stop, inspect, or replay any stage. It also **checks its own output** — a vision pass that catches the motion defects a still-frame glance misses (breath vapour, morphing, vanishing props, character drift) before a clip is called done.
9
+ A command-line tool (`vclaw`) that takes a plain-English idea like *"a 15-second ad for my coffee brand"* and walks it all the way to a reviewed, published video — using AI video services like **Veo, Seedance, and Runway**. Every step is saved to a file you can read, so nothing is hidden and you can stop, inspect, or replay any stage. Optional vision QC can inspect motion defects such as breath vapour, morphing, vanishing props and character drift. It requires a configured vision backend; final playback review remains separate.
10
10
 
11
- [![Tests](https://img.shields.io/badge/tests-2800%2B%20passing-brightgreen)](https://github.com/davendra/videoclaw-v3/blob/main/.github/workflows/ci.yml)
11
+ [![CI](https://github.com/davendra/videoclaw-v3/actions/workflows/ci.yml/badge.svg)](https://github.com/davendra/videoclaw-v3/actions/workflows/ci.yml)
12
12
  [![Node](https://img.shields.io/badge/node-20%2B-brightgreen)](./package.json)
13
13
  [![TypeScript](https://img.shields.io/badge/typescript-strict%20%7C%20NodeNext%20ESM-3178c6)](./tsconfig.json)
14
14
  [![Status](https://img.shields.io/badge/status-active%20development-orange)](https://videoclaw-docs.vercel.app/reference/MASTER_PLAN_ALIGNMENT)
@@ -22,8 +22,8 @@ The complete, idiot-proof **and** agent-ready docs: an [interactive guide](https
22
22
 
23
23
  > **New here?** The easiest path is to **[drive it by talking to Claude Code](https://videoclaw-docs.vercel.app/guide/with-claude-code)** (or any agent host); there's a dedicated [how-it-works page for agents](https://videoclaw-docs.vercel.app/for-agents/) too.
24
24
  >
25
- > **Agents working in this repo:** read [`docs/CAPABILITIES.md`](docs/CAPABILITIES.md) (or [`llms.txt`](llms.txt)) — a one-read capability manifest: what videoclaw can produce, the provider routes, the spend-safety model, and the full command index. Run `vclaw schema --json` for exact flags.
26
- > Once you're in Claude Code in this repo, just type **`/concierge`** (or **`/clawbot`**) — or say *"make me a video"* — and **Clawbot**, VideoClaw's mascot and concierge, walks you from idea to finished film, with a preview and your approval before anything costs money.
25
+ > **Agents working in this repo:** read [`docs/CAPABILITIES.md`](docs/CAPABILITIES.md) (or [`llms.txt`](llms.txt)) — a one-read capability manifest: what videoclaw can produce, the provider routes, the spend-safety model, and a command map that names every registered command (exact flags: `vclaw schema --json` and `docs/CLI_REFERENCE.md`). Run `vclaw schema --json` for exact flags.
26
+ > Once you're in Claude Code in this repo, just type **`/concierge`** (or **`/videoclaw`**) — or say *"make me a video"* — and **VideoClaw**, speaking as its own concierge, walks you from idea to finished film, with a preview and your approval before anything costs money.
27
27
 
28
28
  <a href="https://videoclaw-docs.vercel.app/"><img src="./docs/assets/docsite-preview.png" alt="videoclaw documentation site — make AI videos by just talking" width="100%" /></a>
29
29
 
@@ -86,12 +86,12 @@ Three things make it different from the usual *"type a prompt, get a video"* too
86
86
 
87
87
  - **Go from idea → finished video** without leaving the terminal.
88
88
  - **Use several AI video engines** (Veo, Seedance, Runway) through one consistent set of commands — no need to learn each provider's quirks.
89
- - **Keep characters consistent** — the same person, outfit, set, and props look the same in every scene (via character profiles, reference sheets, and the *story bible*).
90
- - **Approve in your browser** before any expensive render runs — open the Review UI, look at the stills, click approve or regenerate.
89
+ - **Manage character consistency** — character profiles, reference sheets and the *story bible* carry identity and continuity between scenes; inspect generated results for drift.
90
+ - **Review storyboard stills in your browser** — use the Review UI to inspect and select them. Director approval and exact queued spend authorisation are distinct gates; plain `produce` is live by default.
91
91
  - **Add the finishing touches** — narration, background music, subtitles, thumbnails, and vertical / square / looping variants for different platforms.
92
92
  - **Run many projects at once** and see them all on a dashboard: what's blocked, what's stale, what needs review, what's ready to publish.
93
- - **Trust the result** — a project is only "ready" when its review report literally says `pass`. No guessing.
94
- - **Rehearse for free** — almost every command has a `--dry-run` that plans the whole thing without spending a credit.
93
+ - **Record delivery evidence** — publish readiness requires a passing review report and `metrics.publishReady: true`; planned or previously film-reviewed projects also need current passing film-edit evidence.
94
+ - **Preview the intended operation** — use each command’s documented planning or `--dry-run` path. There is no universal dry-run flag; queue compilation and direct rendering have different contracts.
95
95
 
96
96
  ---
97
97
 
@@ -108,9 +108,11 @@ Here is the whole assembly line in plain words. Each step is a command, and each
108
108
  | 5 | `plan` | Pick the AI provider and prepare the exact request to send. |
109
109
  | 6 | `produce` | Actually generate the clips. (Add `--dry-run` to rehearse for free.) |
110
110
  | 7 | `assemble` | Stitch clips + narration + music into one MP4, then quality-check it. |
111
- | 8 | `review` | A human (or the Review UI) approves the result. |
111
+ | 8 | `review` | Record final review; explicit film plans require current full-playback evidence bound to the actual edit. Storyboard approval in the Review UI is a separate gate. |
112
112
  | 9 | `publish` | Mark it done and hand it off. |
113
113
 
114
+ For new agent-led films, add a [structured film plan](./docs/SHARED_FILMMAKING_WORKFLOW.md) at storyboard time. It records format, purpose, shot action and performance; compiled prompts and final edit reviews detect relevant changes before reuse. The host agent manages phases and progress.
115
+
114
116
  You don't always run these by hand — `vclaw video create` can do the whole front of the line in one shot — but this is the path everything follows underneath.
115
117
 
116
118
  ---
@@ -132,7 +134,7 @@ videoclaw is made of a few moving pieces. Here's each one in everyday terms:
132
134
  | **Obsidian workspace** | The same project data, rendered as browsable notes you can read in Obsidian instead of the terminal. |
133
135
  | **Skills** | Pre-built, ready-to-run workflows for common jobs (make a presenter video, clone an ad, build a character) that an AI agent can invoke. |
134
136
 
135
- That's the whole picture. Everything below is **reference detail** for power users, operators, and AI agents — you can stop here and still use the tool.
137
+ That's the whole picture. Everything below is **reference detail** for power users, people running vclaw day to day, and AI agents — you can stop here and still use the tool.
136
138
 
137
139
  ---
138
140
 
@@ -196,7 +198,7 @@ node dist/cli/vclaw.js video status --project demo
196
198
 
197
199
  > **Discovery and authoring need no provider keys.** Planning/direct dry-run can report blocked readiness when assets or a locally configured route are missing; that is diagnostic output, not a successful render. Keep `--dry-run` on plain `produce` while exploring, read the blockers, and configure only the route you intend to use. A zero-call queue compiler and a direct execution preview have different prerequisites.
198
200
 
199
- Add `--auto-chain` to `produce`/`execute` to compile the whole storyboard as a continuity chain into the durable Cinema queue — zero provider calls: the first pending scene is `awaiting-quote`, every later scene stays `blocked` behind its predecessor's selected video, and each link enters exact quotation only when that source exists. `--enqueue` is the explicit spelling of the same thing; `--execute`, `--dry-run` and `--confirm-spend` are refused. Each queued task is then quoted, authorized and run one at a time with `vclaw video cinema-work --task <id>` — for `veo-useapi` the shipped `dist/cli/flow-quote-adapter.js` quotes from the account's own Flow price table, so the 0-credit free model authorizes at `--maximum-spend 0`; only `runway-useapi` explore submits provider-free with `--confirm-provider-call`. See "Draining a queued Flow task" in `docs/CLI_REFERENCE.md`.
201
+ Add `--auto-chain` to `produce`/`execute` to compile the whole storyboard as a continuity chain into the durable Cinema queue — zero provider calls: the first pending scene is `awaiting-quote`, every later scene stays `blocked` behind its predecessor's selected video, and each link enters exact quotation only when that source exists. `--enqueue` can be added alongside `--auto-chain` (it does not replace it); `--execute`, `--dry-run` and `--confirm-spend` are refused. Each queued task is then quoted, authorized and run one at a time with `vclaw video cinema-work --task <id>` — for `veo-useapi` the shipped `dist/cli/flow-quote-adapter.js` quotes from the account's own Flow price table, so the 0-credit free model authorizes at `--maximum-spend 0`; only `runway-useapi` explore submits provider-free with `--confirm-provider-call`. See "Draining a queued Flow task" in `docs/CLI_REFERENCE.md`.
200
202
 
201
203
  `vclaw video pool --project <slug> [--max-concurrent <N>] [--scenes <csv>]` compiles pending scenes as independent tasks into the durable Cinema queue. The concurrency cap is recorded on the queue lane; compilation itself submits nothing. `--dry-run` previews without writing. `--execute` is retired and `--confirm-spend` is rejected for enqueueing. Quote, authorise and run the returned tasks through `cinema-work`, then review their candidates. Plain `produce` without `--auto-chain` retains its direct live execution path: use `--dry-run` to preview that path, and do not assume its director approval gate is the same as an exact Cinema spend authorisation.
202
204
 
@@ -302,7 +304,7 @@ flowchart TB
302
304
 
303
305
  - **CLI layer** — argparse + dispatch only; no business logic.
304
306
  - **Domain layer** (`src/video/*`) — small, single-purpose modules. Each file owns one concept (artifacts, checkpoints, readiness, execution-plan, execution-runtime, doctor, metrics, next-actions, project-index, obsidian-export, etc.).
305
- - **Provider platform** — route descriptors for `veo-useapi`, `seedance-direct`, `runway-useapi`, `dreamina-useapi`, `magnific-rest`.
307
+ - **Provider platform** — route descriptors for `veo-useapi`, `seedance-direct`, `runway-useapi`, `dreamina-useapi` (registered, not pursued since 2026-09-09), `magnific-rest`.
306
308
  - **Adapter layer** — three resolution strategies (custom binary → built-in adapter with command shim → native in-process transport). Explicit fall-through, never silent.
307
309
  - **Schemas** — JSON Schema contracts under `schemas/video/` are the source of truth for every artifact shape.
308
310
 
@@ -396,11 +398,11 @@ flowchart TD
396
398
  Start[["route ∈ { veo-useapi · seedance-direct · runway-useapi ·<br/>dreamina-useapi · magnific-rest }"]]
397
399
  Start --> Q1{"VCLAW_*_ADAPTER set?"}
398
400
  Q1 -->|yes| Custom[["Custom adapter binary<br/>stdin → JSON, stdout → JSON"]]
399
- Q1 -->|no| Q2{"Built-in adapter supports route?<br/>(seedance-direct · veo-useapi · runway-useapi)"}
401
+ Q1 -->|no| Q2{"Built-in adapter supports route?<br/>(all five routes ship one)"}
400
402
  Q2 -->|no| Fail([["❌ hard fail<br/>no silent fallback"]])
401
403
  Q2 -->|yes| Q3{"_SUBMIT_CMD / _POLL_CMD set?"}
402
404
  Q3 -->|yes| Shim[["Command shim<br/>through built-in adapter"]]
403
- Q3 -->|no| Q4{"Native creds available?<br/>SUTUI_API_KEY (seedance) · local vclaw-cli (veo) · USEAPI_API_TOKEN (runway)"}
405
+ Q3 -->|no| Q4{"Native creds available?<br/>SUTUI_API_KEY or the free Higgsfield engine (seedance) · local vclaw-cli (veo) · USEAPI_API_TOKEN (runway, dreamina) · MAGNIFIC_API_KEY (magnific)"}
404
406
  Q4 -->|yes| Native[["✅ Native in-process transport"]]
405
407
  Q4 -->|no| Fail
406
408
  ```
@@ -441,7 +443,7 @@ useapi.net's Google Flow v1 API (blog 260609) accepts **inline `@`-mention marke
441
443
 
442
444
  Markers are **case-insensitive** and **opt-in** (a slot without a marker is fine; a marker without a matching body slot makes the API 400). The grammar is reserved through videoclaw's prompt pipeline (`@Name` tag resolution preserves the tokens verbatim, like `@imageN`) and is **veo-useapi-route-only** — on any other route the tokens are stripped from the scene prompt with a warning. V2V deliberately has **no** marker (`referenceVideo_1` stays flag-only via `--ref-video`). Helper module: `src/video/flow-markers.ts`; full details in [`docs/CLI_REFERENCE.md`](https://videoclaw-docs.vercel.app/reference/CLI_REFERENCE).
443
445
 
444
- **Auto-injection:** on veo-useapi, when a scene's prompt tags a character that has a registered Flow ref (`flow-characters.json`), `buildExecutionPayload` rewrites the `@Name` tag into its canonical `@character_N` marker automatically. Slot order = scene cast order first, then tag-only characters (capped at 7, overflow warned); hand-authored markers pass through untouched. Cast-name matching stays **exact-case** (the legacy lookup, verbatim) — which is exactly why a tagless prompt produces a byte-identical payload; only `@Name` **tag** matching is case-insensitive (`@clawbot` resolves to a registered `Clawbot`). Note that a ref-registered character's tag no longer also attaches its loose portrait image — the saved Flow character bundles its identity images. Characters without a Flow ref keep the normal descriptor substitution (including portrait collection).
446
+ **Auto-injection:** on veo-useapi, when a scene's prompt tags a character that has a registered Flow ref (`flow-characters.json`), `buildExecutionPayload` rewrites the `@Name` tag into its canonical `@character_N` marker automatically. Slot order = scene cast order first, then tag-only characters (capped at 7, overflow warned); hand-authored markers pass through untouched. Cast-name matching stays **exact-case** (the legacy lookup, verbatim) — which is exactly why a tagless prompt produces a byte-identical payload; only `@Name` **tag** matching is case-insensitive (`@mascot` resolves to a registered `Mascot`). Note that a ref-registered character's tag no longer also attaches its loose portrait image — the saved Flow character bundles its identity images. Characters without a Flow ref keep the normal descriptor substitution (including portrait collection).
445
447
 
446
448
  ---
447
449
 
@@ -483,10 +485,10 @@ regenerated automatically on every `produce`/`execute` and `execute-status` poll
483
485
  (`VCLAW_NO_RUN_SURFACE=1` opts out).
484
486
 
485
487
  ### Templates · cloning · storyboard templates
486
- `analyze` · `analyze-template` · `template-create` · `template-save` · `template-list` · `template-show` · `template-validate` · `clone-plan` · `clone-init` · `clone-ad` · `clone-execute` · `storyboard-from-clone` · `storyboard-template-list` · `storyboard-template-show`
488
+ `analyze` (`analyze-template` is a deprecated spelling) · `template-save` (`template-create` is a deprecated spelling) · `template-list` · `template-show` · `template-validate` · `clone-plan` · `clone-init` · `clone-execute` (`clone-ad` is a deprecated spelling) · `storyboard-from-clone` · `storyboard-template-list` · `storyboard-template-show`
487
489
 
488
490
  ### Character subsystem
489
- `character-add` · `character-list` · `character-show` · `character-consistency` · `consistency-audit` · `motion-qc` · `clip-qc` · `keyframe-qc` · `character-auto-create` · `environment-auto-create` · `character-import-library` · `find-library` · `library find` · `library clean` · `list-library` · `seedance-register-assets` · `flow-register-characters` · `flow-register-voices` · `flow-r2v` · `voice-clone` · `show-bible` · `show-preflight`
491
+ `character-add` · `character-list` · `character-show` · `character-consistency` · `consistency-audit` · `motion-qc` · `clip-qc` · `keyframe-qc` · `character-auto-create` · `environment-auto-create` · `character-import-library` · `find-library` · `library find` (deprecated spelling of `find-library`) · `library clean` · `list-library` · `seedance-register-assets` · `flow-register-characters` · `flow-register-voices` · `flow-r2v` · `voice-clone` · `show-bible` · `show-preflight`
490
492
 
491
493
  `consistency-audit` is the **automated character identity/costume vision audit**: for each rendered scene it extracts a representative mid-frame and asks an (injectable, Gemini-backed) vision client whether each registered scene character still matches its locked reference face/hair AND costume/colours, plus a deterministic dark-border check and an extra-figure flag — catching wardrobe/identity drift (a dhoti rendering crimson in one scene and tan in another) BEFORE a render is presented as done. It writes `consistency-audit.json` and also runs advisory/non-fatal at the end of a real `produce`/`execute` run when a Gemini key is configured.
492
494
 
@@ -501,10 +503,10 @@ regenerated automatically on every `produce`/`execute` and `execute-status` poll
501
503
 
502
504
  ### Mission Control
503
505
  - `vclaw video monitor` — Mission Control: a live localhost cockpit across every project and provider.
504
- - `vclaw video migrate-home [--confirm] [--root <home>]` — consolidate scattered projects (`~/.videoclaw-*` roots) into the one canonical workspace home (`~/videoclaw`) via `mv` + a symlink left at the old path. Dry-run by default; `--confirm` performs the moves. Collision-safe and idempotent.
506
+ - `vclaw video migrate-home [--confirm] [--root <home>]` — (deprecated since 3.0.0-alpha.13, one-shot) consolidate scattered projects (`~/.videoclaw-*` roots) into the one canonical workspace home (`~/videoclaw`) via `mv` + a symlink left at the old path. Dry-run by default; `--confirm` performs the moves. Collision-safe and idempotent.
505
507
 
506
508
  ### Metadata
507
- `set-meta` · `set-execution-profile` · `import-legacy`
509
+ `set-meta` · `set-execution-profile` · `import-legacy` (deprecated, historical v2 import)
508
510
 
509
511
  ### Post-production
510
512
  `remix-narrated` · `verify-final` · `qc` · `make-vertical` · `make-square` · `make-loop` · `thumbnail` · `archive-project` · `motion-overlay` · subtitle burn-in
@@ -565,15 +567,15 @@ sane.
565
567
  |---|---|---|
566
568
  | **Canonical entry** | `video-framework`, `brand-presenter` | Generic / unspecified video request — the entry skill routes into a specialist. |
567
569
  | **Specialist** | `video-storyboard`, `video-clone-ad`, `movie-director`, `video-post`, ... | The mode is clearly known up front. |
568
- | **Compatibility alias** | `davendra-presenter`, `nex-presenter`, `bunty` | Personal/brand presets that delegate into `brand-presenter`. |
569
- | **Workflow** | `doctor`, `pipeline`, `worker`, `studio-mode`, ... | Orchestration, debugging, ops — independent of any one production mode. |
570
+ | **Compatibility alias** | `davendra-presenter`, `david-sales-presenter`, `nex-presenter`, `bunty` | Personal/brand presets that delegate into `brand-presenter`. |
571
+ | **Workflow** | `concierge`, `improvement-run`, `deepsearch`, `graphify`, ... | Orchestration, repo ops, search — independent of any one production mode. |
570
572
 
571
573
  **Rule of thumb:** start at a canonical entry, specialize only when the mode is clearly known.
572
574
 
573
575
  ### Quick skill map
574
576
 
575
577
  <details>
576
- <summary><strong>🎬 Video skills</strong> (15 — click to expand)</summary>
578
+ <summary><strong>🎬 Video skills</strong> (a curated 15 of 40 — click to expand; the <a href="https://videoclaw-docs.vercel.app/skills/video">docs site lists all 40</a>)</summary>
577
579
 
578
580
  | Skill | Role | One-liner |
579
581
  |---|---|---|
@@ -594,23 +596,21 @@ sane.
594
596
  | [`ugc`](./skills/ugc) | imported | Belief-driven UGC campaign generator (E5 method). |
595
597
 
596
598
  **Compatibility aliases** (all delegate into `brand-presenter`):
597
- [`davendra-presenter`](./skills/davendra-presenter) · [`nex-presenter`](./skills/nex-presenter) · [`bunty`](./skills/bunty)
599
+ [`davendra-presenter`](./skills/davendra-presenter) · [`david-sales-presenter`](./skills/david-sales-presenter) · [`nex-presenter`](./skills/nex-presenter) · [`bunty`](./skills/bunty)
598
600
 
599
601
  </details>
600
602
 
601
603
  <details>
602
- <summary><strong>⚙️ Workflow skills</strong> (13 — click to expand)</summary>
604
+ <summary><strong>⚙️ Workflow skills</strong> (9 — click to expand)</summary>
603
605
 
604
606
  | Group | Skills |
605
607
  |---|---|
606
- | **Multi-agent orchestration** | [`worker`](./skills/worker) · [`pipeline`](./skills/pipeline) · [`studio-mode`](./skills/studio-mode) |
607
- | **Diagnostics & exploration** | [`doctor`](./skills/doctor) · [`build-fix`](./skills/build-fix) · [`deepsearch`](./skills/deepsearch) · [`deep-interview`](./skills/deep-interview) |
608
- | **Review & governance** | [`review`](./skills/review) |
609
- | **Operational utilities** | [`ai-slop-cleaner`](./skills/ai-slop-cleaner) · [`configure-notifications`](./skills/configure-notifications) · [`skill`](./skills/skill) · [`note`](./skills/note) · [`help`](./skills/help) · [`web-clone`](./skills/web-clone) |
608
+ | **Front door & orchestration** | [`concierge`](./skills/concierge) (speaks as VideoClaw; alias [`videoclaw`](./skills/videoclaw)) · [`improvement-run`](./skills/improvement-run) |
609
+ | **Search & knowledge** | [`deepsearch`](./skills/deepsearch) · [`graphify`](./skills/graphify) · [`web-clone`](./skills/web-clone) |
610
+ | **Review & governance** | [`ai-slop-cleaner`](./skills/ai-slop-cleaner) · [`skills-auditor`](./skills/skills-auditor) |
611
+ | **Design utilities** | [`ui-ux-pro-max`](./skills/ui-ux-pro-max) |
610
612
 
611
- Generic orchestration skills (`autopilot`, `ralph`/`ralph-init`/`ralplan`, `team`, `cancel`,
612
- `trace`, `hud`, `git-master`, `code-review`, `security-review`, `omx-setup`) were culled —
613
- they duplicated the global plugin set with zero repo-specific content.
613
+ Generic orchestration skills that duplicated the global plugin set were culled from the repo; use the global versions.
614
614
 
615
615
  </details>
616
616
 
@@ -780,6 +780,7 @@ Current status: **`npm test` green · `check:release-readiness-lite` passing.**
780
780
  | 15 | [Deprecation](https://videoclaw-docs.vercel.app/reference/DEPRECATION) | Alias + deprecation status |
781
781
  | 16 | [Release readiness](https://videoclaw-docs.vercel.app/reference/RELEASE_READINESS) | Release checklist |
782
782
  | 17 | [Master plan alignment](https://videoclaw-docs.vercel.app/reference/MASTER_PLAN_ALIGNMENT) | What's shipped + remaining gaps |
783
+ | 18 | [Shared filmmaking workflow](https://videoclaw-docs.vercel.app/reference/SHARED_FILMMAKING_WORKFLOW) | Structured film plans, contextual acting, reference freshness and full-playback edit evidence |
783
784
 
784
785
  Skill deep-dives (also indexed in [`docs/SKILLS.md`](https://videoclaw-docs.vercel.app/skills/)):
785
786
 
@@ -787,6 +788,21 @@ Skill deep-dives (also indexed in [`docs/SKILLS.md`](https://videoclaw-docs.verc
787
788
  - [`skills/video-storyboard/SKILL.md`](./skills/video-storyboard/SKILL.md) · [`skills/video-clone-ad/SKILL.md`](./skills/video-clone-ad/SKILL.md) · [`skills/video-analyze-template/SKILL.md`](./skills/video-analyze-template/SKILL.md) — clean-room native specialists
788
789
  - Full catalog in [`skills/README.md`](./skills/README.md) · machine-readable in [`skills/catalog.json`](./skills/catalog.json)
789
790
 
791
+ ### Working notes & prompts (internal)
792
+
793
+ Not published to the site; kept in `docs/` for the sessions that use them:
794
+ [`AI_FILMMAKING_PROMPTS`](./docs/AI_FILMMAKING_PROMPTS.md) ·
795
+ [`CODEBASE_REVIEW_PROMPT`](./docs/CODEBASE_REVIEW_PROMPT.md) ·
796
+ [`CONCIERGE_PROMPT`](./docs/CONCIERGE_PROMPT.md) ·
797
+ [`CONCIERGE_COVERAGE_PROMPT`](./docs/CONCIERGE_COVERAGE_PROMPT.md) ·
798
+ [`IMPROVE_PROMPT`](./docs/IMPROVE_PROMPT.md) ·
799
+ [`INFOGRAPHICS_PROMPT`](./docs/INFOGRAPHICS_PROMPT.md) ·
800
+ [`SKILL_COHESION_PROMPT`](./docs/SKILL_COHESION_PROMPT.md) ·
801
+ [`UPDATE_DOCS_PROMPT`](./docs/UPDATE_DOCS_PROMPT.md) ·
802
+ [`ENGINE_ESCAPE_AUDIT`](./docs/ENGINE_ESCAPE_AUDIT.md) ·
803
+ [`SEEDANCE_HARVEST`](./docs/SEEDANCE_HARVEST.md) ·
804
+ [`HIGGSFIELD_MCP_CREATIVE_AGENCY`](./docs/HIGGSFIELD_MCP_CREATIVE_AGENCY.md)
805
+
790
806
  ---
791
807
 
792
808
  ## 🧬 Where it came from
@@ -1712,6 +1712,7 @@
1712
1712
 
1713
1713
  const inventory = {
1714
1714
  root: "",
1715
+ filmReview: null,
1715
1716
  remoteMediaIds: {},
1716
1717
  projects: [
1717
1718
  { id: "fresh-proof", name: "fresh-proof", path: "projects/fresh-proof", status: "empty scaffold" }
@@ -1823,6 +1824,7 @@
1823
1824
  function normalizeApiInventory(api) {
1824
1825
  const next = {};
1825
1826
  next.root = api.root || "";
1827
+ next.filmReview = api.filmReview || null;
1826
1828
  const projects = Array.isArray(api.projects) && api.projects.length
1827
1829
  ? api.projects
1828
1830
  : [api.projectSlug].filter(Boolean);
@@ -3153,7 +3155,15 @@
3153
3155
  ["balanced", "Balanced story cut", "Best voiceover fit and readable transitions."],
3154
3156
  ["cinematic", "Cinematic polish", "Slower timing and stronger logo reveal."]
3155
3157
  ];
3158
+ const filmReview = inventory.filmReview;
3159
+ const reviewMessage = !filmReview ? "Connect to the project to check its film review."
3160
+ : !filmReview.required ? "No saved full-film review is required for this legacy project."
3161
+ : filmReview.status === "pass" ? "The current film has a recorded full-playback review."
3162
+ : filmReview.status === "stale" ? "The film has changed since review. Watch the current edit with sound and record a fresh review."
3163
+ : filmReview.status === "fail" ? "The current film has unresolved review findings. Resolve them and record the result."
3164
+ : "Watch the complete edit with sound and record its film review before marking it complete. Draft decisions can still be saved.";
3156
3165
  return `${renderHandoffSummary()}
3166
+ <div class="quality-panel"><h3>Complete film review</h3><p>${reviewMessage}</p></div>
3157
3167
  <h3 style="margin-top:28px">Assembly plan</h3>
3158
3168
  <div class="cards-grid">${plans.map(([id, title, desc], index) => card({
3159
3169
  key: "assemblyPlan",
@@ -1 +1 @@
1
- {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/character.ts"],"names":[],"mappings":"AA2BA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3E;AAED,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DlF;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCpF;AAED,wBAAsB,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BrF;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5E;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF"}
1
+ {"version":3,"file":"character.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/character.ts"],"names":[],"mappings":"AA2BA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC3E;AAED,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsElF;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCpF;AAED,wBAAsB,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BrF;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5E;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU5E;AAED,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnF"}
@@ -68,6 +68,9 @@ export async function handleVideoCharacterAutoCreate(args) {
68
68
  // reference sheet by default; `--no-sheet` opts out, `--sheet-preset <id>`
69
69
  // overrides the Go Bananas style preset (default the cinematic sheet).
70
70
  const referenceSheet = !args.includes('--no-sheet');
71
+ const referenceProfile = parseFlagValue(args, '--reference-profile');
72
+ if (referenceProfile && !['legacy', 'cinematic-face-first'].includes(referenceProfile))
73
+ throw new VclawError('invalid_flag_value', '--reference-profile must be legacy or cinematic-face-first');
71
74
  // Bind to an existing same-named character even when its description differs.
72
75
  // Off by default: a silent rebind renders someone else entirely.
73
76
  const reuseExisting = args.includes('--reuse-existing');
@@ -91,6 +94,10 @@ export async function handleVideoCharacterAutoCreate(args) {
91
94
  return [{
92
95
  name,
93
96
  description,
97
+ approvedFaceImageId: entry.approvedFaceImageId,
98
+ approvedOutfitImageId: entry.approvedOutfitImageId,
99
+ outfit: entry.outfit,
100
+ sheetAspectRatio: entry.sheetAspectRatio,
94
101
  ...(entry.style?.trim() ? { style: entry.style.trim() } : {}),
95
102
  }];
96
103
  }), {
@@ -99,6 +106,7 @@ export async function handleVideoCharacterAutoCreate(args) {
99
106
  ...(apiUrl ? { apiUrl } : {}),
100
107
  dryRun,
101
108
  referenceSheet,
109
+ ...(referenceProfile ? { referenceProfile: referenceProfile } : {}),
102
110
  reuseExisting,
103
111
  ...(sheetPresetId !== undefined ? { sheetPresetId } : {}),
104
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"character.js","sourceRoot":"","sources":["../../../src/cli/handlers/character.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character.js","sourceRoot":"","sources":["../../../src/cli/handlers/character.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cinema-candidate.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/cinema-candidate.ts"],"names":[],"mappings":"AAMA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3E;AAmBD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC3E;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5E"}
1
+ {"version":3,"file":"cinema-candidate.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/cinema-candidate.ts"],"names":[],"mappings":"AAQA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB3E;AAmBD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC3E;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5E"}