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.
- package/CLAUDE.md +58 -21
- package/README.md +47 -31
- package/assets/review-station/index.html +10 -0
- package/dist/cli/handlers/character.d.ts.map +1 -1
- package/dist/cli/handlers/character.js +8 -0
- package/dist/cli/handlers/character.js.map +1 -1
- package/dist/cli/handlers/cinema-candidate.d.ts.map +1 -1
- package/dist/cli/handlers/cinema-candidate.js +6 -1
- package/dist/cli/handlers/cinema-candidate.js.map +1 -1
- package/dist/cli/handlers/cinema-image-jobs.d.ts +4 -0
- package/dist/cli/handlers/cinema-image-jobs.d.ts.map +1 -0
- package/dist/cli/handlers/cinema-image-jobs.js +25 -0
- package/dist/cli/handlers/cinema-image-jobs.js.map +1 -0
- package/dist/cli/handlers/cinema.d.ts.map +1 -1
- package/dist/cli/handlers/cinema.js +4 -0
- package/dist/cli/handlers/cinema.js.map +1 -1
- package/dist/cli/handlers/create.d.ts.map +1 -1
- package/dist/cli/handlers/create.js +1 -15
- package/dist/cli/handlers/create.js.map +1 -1
- package/dist/cli/handlers/execution.d.ts.map +1 -1
- package/dist/cli/handlers/execution.js +28 -3
- package/dist/cli/handlers/execution.js.map +1 -1
- package/dist/cli/handlers/project-ops.d.ts +7 -0
- package/dist/cli/handlers/project-ops.d.ts.map +1 -1
- package/dist/cli/handlers/project-ops.js +15 -19
- package/dist/cli/handlers/project-ops.js.map +1 -1
- package/dist/cli/handlers/prompt-craft.d.ts.map +1 -1
- package/dist/cli/handlers/prompt-craft.js +13 -4
- package/dist/cli/handlers/prompt-craft.js.map +1 -1
- package/dist/cli/handlers/reference-sheets.d.ts.map +1 -1
- package/dist/cli/handlers/reference-sheets.js +13 -0
- package/dist/cli/handlers/reference-sheets.js.map +1 -1
- package/dist/cli/handlers/review-portal.d.ts.map +1 -1
- package/dist/cli/handlers/review-portal.js +2 -1
- package/dist/cli/handlers/review-portal.js.map +1 -1
- package/dist/cli/handlers/stages.d.ts.map +1 -1
- package/dist/cli/handlers/stages.js +55 -10
- package/dist/cli/handlers/stages.js.map +1 -1
- package/dist/cli/handlers/vocal-guides.d.ts +2 -0
- package/dist/cli/handlers/vocal-guides.d.ts.map +1 -0
- package/dist/cli/handlers/vocal-guides.js +51 -0
- package/dist/cli/handlers/vocal-guides.js.map +1 -0
- package/dist/cli/vclaw.d.ts +1 -0
- package/dist/cli/vclaw.d.ts.map +1 -1
- package/dist/cli/vclaw.js +121 -75
- package/dist/cli/vclaw.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/video/artifacts.d.ts +3 -0
- package/dist/video/artifacts.d.ts.map +1 -1
- package/dist/video/artifacts.js +7 -2
- package/dist/video/artifacts.js.map +1 -1
- package/dist/video/assemble/audio-mix-plan.d.ts +1 -1
- package/dist/video/assemble/audio-mix-plan.d.ts.map +1 -1
- package/dist/video/assemble/stitch-audio-mix.d.ts +105 -0
- package/dist/video/assemble/stitch-audio-mix.d.ts.map +1 -0
- package/dist/video/assemble/stitch-audio-mix.js +192 -0
- package/dist/video/assemble/stitch-audio-mix.js.map +1 -0
- package/dist/video/assemble/stitch-concat.d.ts +123 -0
- package/dist/video/assemble/stitch-concat.d.ts.map +1 -0
- package/dist/video/assemble/stitch-concat.js +161 -0
- package/dist/video/assemble/stitch-concat.js.map +1 -0
- package/dist/video/assemble/stitch-filters.d.ts +59 -0
- package/dist/video/assemble/stitch-filters.d.ts.map +1 -0
- package/dist/video/assemble/stitch-filters.js +84 -0
- package/dist/video/assemble/stitch-filters.js.map +1 -0
- package/dist/video/assemble/stitch.d.ts +7 -258
- package/dist/video/assemble/stitch.d.ts.map +1 -1
- package/dist/video/assemble/stitch.js +11 -410
- package/dist/video/assemble/stitch.js.map +1 -1
- package/dist/video/character-auto-create.d.ts +10 -0
- package/dist/video/character-auto-create.d.ts.map +1 -1
- package/dist/video/character-auto-create.js +90 -10
- package/dist/video/character-auto-create.js.map +1 -1
- package/dist/video/character-performance.d.ts +19 -0
- package/dist/video/character-performance.d.ts.map +1 -0
- package/dist/video/character-performance.js +39 -0
- package/dist/video/character-performance.js.map +1 -0
- package/dist/video/character-reference-prompts.d.ts +20 -0
- package/dist/video/character-reference-prompts.d.ts.map +1 -0
- package/dist/video/character-reference-prompts.js +47 -0
- package/dist/video/character-reference-prompts.js.map +1 -0
- package/dist/video/characters.d.ts +6 -0
- package/dist/video/characters.d.ts.map +1 -1
- package/dist/video/characters.js +6 -0
- package/dist/video/characters.js.map +1 -1
- package/dist/video/cinema-candidate-review.d.ts +3 -0
- package/dist/video/cinema-candidate-review.d.ts.map +1 -1
- package/dist/video/cinema-candidate-review.js +14 -2
- package/dist/video/cinema-candidate-review.js.map +1 -1
- package/dist/video/cinema-console-render.d.ts.map +1 -1
- package/dist/video/cinema-console-render.js +3 -2
- package/dist/video/cinema-console-render.js.map +1 -1
- package/dist/video/cinema-delivery.d.ts.map +1 -1
- package/dist/video/cinema-delivery.js +8 -0
- package/dist/video/cinema-delivery.js.map +1 -1
- package/dist/video/cinema-image-bindings.d.ts +5 -0
- package/dist/video/cinema-image-bindings.d.ts.map +1 -0
- package/dist/video/cinema-image-bindings.js +51 -0
- package/dist/video/cinema-image-bindings.js.map +1 -0
- package/dist/video/cinema-image-jobs.d.ts +58 -0
- package/dist/video/cinema-image-jobs.d.ts.map +1 -0
- package/dist/video/cinema-image-jobs.js +168 -0
- package/dist/video/cinema-image-jobs.js.map +1 -0
- package/dist/video/cinema-live-console.d.ts +19 -0
- package/dist/video/cinema-live-console.d.ts.map +1 -1
- package/dist/video/cinema-live-console.js +14 -3
- package/dist/video/cinema-live-console.js.map +1 -1
- package/dist/video/cinema-motion-review-form.d.ts +3 -0
- package/dist/video/cinema-motion-review-form.d.ts.map +1 -0
- package/dist/video/cinema-motion-review-form.js +8 -0
- package/dist/video/cinema-motion-review-form.js.map +1 -0
- package/dist/video/cinema-motion-review.d.ts +16 -0
- package/dist/video/cinema-motion-review.d.ts.map +1 -0
- package/dist/video/cinema-motion-review.js +36 -0
- package/dist/video/cinema-motion-review.js.map +1 -0
- package/dist/video/cinema-profile.js +1 -1
- package/dist/video/cinema-profile.js.map +1 -1
- package/dist/video/cinema-project-compiler.d.ts.map +1 -1
- package/dist/video/cinema-project-compiler.js +3 -2
- package/dist/video/cinema-project-compiler.js.map +1 -1
- package/dist/video/cinema-project-console.d.ts.map +1 -1
- package/dist/video/cinema-project-console.js +7 -1
- package/dist/video/cinema-project-console.js.map +1 -1
- package/dist/video/cinema-story-compiler.d.ts.map +1 -1
- package/dist/video/cinema-story-compiler.js +1 -0
- package/dist/video/cinema-story-compiler.js.map +1 -1
- package/dist/video/cinema-story-types.d.ts +1 -0
- package/dist/video/cinema-story-types.d.ts.map +1 -1
- package/dist/video/cinematic-character-recovery.d.ts +16 -0
- package/dist/video/cinematic-character-recovery.d.ts.map +1 -0
- package/dist/video/cinematic-character-recovery.js +79 -0
- package/dist/video/cinematic-character-recovery.js.map +1 -0
- package/dist/video/cinematography.d.ts +7 -204
- package/dist/video/cinematography.d.ts.map +1 -1
- package/dist/video/cinematography.js +5 -629
- package/dist/video/cinematography.js.map +1 -1
- package/dist/video/cli-schema.d.ts +38 -0
- package/dist/video/cli-schema.d.ts.map +1 -1
- package/dist/video/cli-schema.js +77 -31
- package/dist/video/cli-schema.js.map +1 -1
- package/dist/video/dynamic-register.d.ts +69 -0
- package/dist/video/dynamic-register.d.ts.map +1 -0
- package/dist/video/dynamic-register.js +104 -0
- package/dist/video/dynamic-register.js.map +1 -0
- package/dist/video/execute.d.ts.map +1 -1
- package/dist/video/execute.js +240 -226
- package/dist/video/execute.js.map +1 -1
- package/dist/video/execution-cancel.d.ts.map +1 -1
- package/dist/video/execution-cancel.js +13 -2
- package/dist/video/execution-cancel.js.map +1 -1
- package/dist/video/execution-in-flight.d.ts +20 -0
- package/dist/video/execution-in-flight.d.ts.map +1 -0
- package/dist/video/execution-in-flight.js +111 -0
- package/dist/video/execution-in-flight.js.map +1 -0
- package/dist/video/execution-prompt-validation.d.ts +5 -0
- package/dist/video/execution-prompt-validation.d.ts.map +1 -0
- package/dist/video/execution-prompt-validation.js +41 -0
- package/dist/video/execution-prompt-validation.js.map +1 -0
- package/dist/video/execution-run-marker.d.ts +84 -0
- package/dist/video/execution-run-marker.d.ts.map +1 -0
- package/dist/video/execution-run-marker.js +204 -0
- package/dist/video/execution-run-marker.js.map +1 -0
- package/dist/video/execution-runtime.d.ts.map +1 -1
- package/dist/video/execution-runtime.js +12 -1
- package/dist/video/execution-runtime.js.map +1 -1
- package/dist/video/execution-status.d.ts.map +1 -1
- package/dist/video/execution-status.js +8 -0
- package/dist/video/execution-status.js.map +1 -1
- package/dist/video/film-edit-review-store.d.ts +35 -0
- package/dist/video/film-edit-review-store.d.ts.map +1 -0
- package/dist/video/film-edit-review-store.js +98 -0
- package/dist/video/film-edit-review-store.js.map +1 -0
- package/dist/video/film-edit-review.d.ts +38 -0
- package/dist/video/film-edit-review.d.ts.map +1 -0
- package/dist/video/film-edit-review.js +65 -0
- package/dist/video/film-edit-review.js.map +1 -0
- package/dist/video/film-plan.d.ts +46 -0
- package/dist/video/film-plan.d.ts.map +1 -0
- package/dist/video/film-plan.js +109 -0
- package/dist/video/film-plan.js.map +1 -0
- package/dist/video/film-reference-evidence.d.ts +17 -0
- package/dist/video/film-reference-evidence.d.ts.map +1 -0
- package/dist/video/film-reference-evidence.js +46 -0
- package/dist/video/film-reference-evidence.js.map +1 -0
- package/dist/video/film-review-gate.d.ts +14 -0
- package/dist/video/film-review-gate.d.ts.map +1 -0
- package/dist/video/film-review-gate.js +33 -0
- package/dist/video/film-review-gate.js.map +1 -0
- package/dist/video/filmmaking-product-prompts.d.ts +20 -0
- package/dist/video/filmmaking-product-prompts.d.ts.map +1 -0
- package/dist/video/filmmaking-product-prompts.js +132 -0
- package/dist/video/filmmaking-product-prompts.js.map +1 -0
- package/dist/video/filmmaking-prompts.d.ts +17 -137
- package/dist/video/filmmaking-prompts.d.ts.map +1 -1
- package/dist/video/filmmaking-prompts.js +53 -797
- package/dist/video/filmmaking-prompts.js.map +1 -1
- package/dist/video/filmmaking-shared.d.ts +37 -0
- package/dist/video/filmmaking-shared.d.ts.map +1 -0
- package/dist/video/filmmaking-shared.js +122 -0
- package/dist/video/filmmaking-shared.js.map +1 -0
- package/dist/video/filmmaking-vocab.d.ts +15 -0
- package/dist/video/filmmaking-vocab.d.ts.map +1 -0
- package/dist/video/filmmaking-vocab.js +116 -0
- package/dist/video/filmmaking-vocab.js.map +1 -0
- package/dist/video/flow-markers.d.ts +3 -3
- package/dist/video/flow-markers.js +3 -3
- package/dist/video/hook-register.d.ts +30 -0
- package/dist/video/hook-register.d.ts.map +1 -0
- package/dist/video/hook-register.js +134 -0
- package/dist/video/hook-register.js.map +1 -0
- package/dist/video/library-clean.d.ts +1 -1
- package/dist/video/library-clean.d.ts.map +1 -1
- package/dist/video/library-clean.js +1 -1
- package/dist/video/lighting-grade-register.d.ts +41 -0
- package/dist/video/lighting-grade-register.d.ts.map +1 -0
- package/dist/video/lighting-grade-register.js +225 -0
- package/dist/video/lighting-grade-register.js.map +1 -0
- package/dist/video/motion-overlay/avatar-host.d.ts +1 -1
- package/dist/video/motion-overlay/avatar-host.js +2 -2
- package/dist/video/motion-overlay/avatar-host.js.map +1 -1
- package/dist/video/outfit-prompts.d.ts +28 -0
- package/dist/video/outfit-prompts.d.ts.map +1 -1
- package/dist/video/outfit-prompts.js +46 -0
- package/dist/video/outfit-prompts.js.map +1 -1
- package/dist/video/preview-portal/render-brand.d.ts +28 -0
- package/dist/video/preview-portal/render-brand.d.ts.map +1 -0
- package/dist/video/preview-portal/render-brand.js +191 -0
- package/dist/video/preview-portal/render-brand.js.map +1 -0
- package/dist/video/preview-portal/render-primitives.d.ts +24 -0
- package/dist/video/preview-portal/render-primitives.d.ts.map +1 -0
- package/dist/video/preview-portal/render-primitives.js +43 -0
- package/dist/video/preview-portal/render-primitives.js.map +1 -0
- package/dist/video/preview-portal/render-run.d.ts +8 -0
- package/dist/video/preview-portal/render-run.d.ts.map +1 -0
- package/dist/video/preview-portal/render-run.js +188 -0
- package/dist/video/preview-portal/render-run.js.map +1 -0
- package/dist/video/preview-portal/render-scene-contract.d.ts +19 -0
- package/dist/video/preview-portal/render-scene-contract.d.ts.map +1 -0
- package/dist/video/preview-portal/render-scene-contract.js +184 -0
- package/dist/video/preview-portal/render-scene-contract.js.map +1 -0
- package/dist/video/preview-portal/render.d.ts.map +1 -1
- package/dist/video/preview-portal/render.js +6 -598
- package/dist/video/preview-portal/render.js.map +1 -1
- package/dist/video/provider-platform/registry.d.ts.map +1 -1
- package/dist/video/provider-platform/registry.js +2 -1
- package/dist/video/provider-platform/registry.js.map +1 -1
- package/dist/video/realism-register.d.ts +103 -0
- package/dist/video/realism-register.d.ts.map +1 -0
- package/dist/video/realism-register.js +177 -0
- package/dist/video/realism-register.js.map +1 -0
- package/dist/video/review-ui-artifacts.d.ts +17 -0
- package/dist/video/review-ui-artifacts.d.ts.map +1 -0
- package/dist/video/review-ui-artifacts.js +674 -0
- package/dist/video/review-ui-artifacts.js.map +1 -0
- package/dist/video/review-ui-autopilot.d.ts +30 -0
- package/dist/video/review-ui-autopilot.d.ts.map +1 -0
- package/dist/video/review-ui-autopilot.js +248 -0
- package/dist/video/review-ui-autopilot.js.map +1 -0
- package/dist/video/review-ui-inventory.d.ts +6 -0
- package/dist/video/review-ui-inventory.d.ts.map +1 -0
- package/dist/video/review-ui-inventory.js +212 -0
- package/dist/video/review-ui-inventory.js.map +1 -0
- package/dist/video/review-ui-shared.d.ts +30 -0
- package/dist/video/review-ui-shared.d.ts.map +1 -0
- package/dist/video/review-ui-shared.js +124 -0
- package/dist/video/review-ui-shared.js.map +1 -0
- package/dist/video/review-ui.d.ts +5 -31
- package/dist/video/review-ui.d.ts.map +1 -1
- package/dist/video/review-ui.js +13 -1204
- package/dist/video/review-ui.js.map +1 -1
- package/dist/video/run-state/read.d.ts.map +1 -1
- package/dist/video/run-state/read.js +18 -2
- package/dist/video/run-state/read.js.map +1 -1
- package/dist/video/run-state/types.d.ts +2 -0
- package/dist/video/run-state/types.d.ts.map +1 -1
- package/dist/video/seedance-prompt.d.ts +74 -0
- package/dist/video/seedance-prompt.d.ts.map +1 -0
- package/dist/video/seedance-prompt.js +355 -0
- package/dist/video/seedance-prompt.js.map +1 -0
- package/dist/video/status.d.ts +18 -0
- package/dist/video/status.d.ts.map +1 -1
- package/dist/video/status.js +18 -0
- package/dist/video/status.js.map +1 -1
- package/dist/video/story-bible.js +3 -3
- package/dist/video/story-bible.js.map +1 -1
- package/dist/video/storyboard-markdown.d.ts +8 -0
- package/dist/video/storyboard-markdown.d.ts.map +1 -1
- package/dist/video/storyboard-markdown.js +10 -3
- package/dist/video/storyboard-markdown.js.map +1 -1
- package/dist/video/studio/execute.d.ts +16 -3
- package/dist/video/studio/execute.d.ts.map +1 -1
- package/dist/video/studio/execute.js +22 -1
- package/dist/video/studio/execute.js.map +1 -1
- package/dist/video/types.d.ts +1 -0
- package/dist/video/types.d.ts.map +1 -1
- package/dist/video/workspace.d.ts +2 -0
- package/dist/video/workspace.d.ts.map +1 -1
- package/dist/video/workspace.js.map +1 -1
- package/docs/AGENT_QUICKSTART.md +47 -4
- package/docs/AI_FILMMAKING_PROMPTS.md +7 -0
- package/docs/ARCHITECTURE.md +36 -9
- package/docs/CAPABILITIES.md +34 -16
- package/docs/CINEMATIC_REFERENCE_WORKFLOW.md +144 -0
- package/docs/CLI_REFERENCE.md +386 -78
- package/docs/{CLAWBOT_COVERAGE_PROMPT.md → CONCIERGE_COVERAGE_PROMPT.md} +9 -9
- package/docs/CONCIERGE_PROMPT.md +8 -8
- package/docs/DEPRECATION.md +47 -2
- package/docs/DIAGRAMS_SOURCE.md +29 -26
- package/docs/DIRECTOR_BLUEPRINT.md +1 -1
- package/docs/MASTER_PLAN_ALIGNMENT.md +31 -4
- package/docs/MIGRATION.md +7 -2
- package/docs/MOGRAPH.md +13 -11
- package/docs/MOTION_REVIEW.md +17 -0
- package/docs/OBSIDIAN.md +7 -7
- package/docs/OPERATIONS.md +18 -0
- package/docs/OPERATOR_HANDOFF.md +8 -2
- package/docs/PRODUCTION_WORKFLOW.md +26 -8
- package/docs/PROJECT_LAYOUT.md +11 -0
- package/docs/PROVIDER_PLATFORM.md +1 -1
- package/docs/PUBLISHING.md +8 -3
- package/docs/PYTHON_PIPELINE.md +15 -14
- package/docs/RELEASE_READINESS.md +56 -11
- package/docs/SEEDANCE_HARVEST.md +1 -1
- package/docs/SHARED_FILMMAKING_WORKFLOW.md +252 -0
- package/docs/SHARED_QUEUE.md +1 -1
- package/docs/SKILLS.md +38 -14
- package/docs/SKILL_COHESION_PROMPT.md +1 -1
- package/docs/STUDIO.md +7 -3
- package/docs/TEMPLATES.md +1 -1
- package/docs/adr/0008-one-durable-production-queue.md +12 -0
- package/docs/assets/diagram-architecture.jpg +0 -0
- package/docs/assets/diagram-assemble.jpg +0 -0
- package/docs/assets/diagram-lifecycle.jpg +0 -0
- package/docs/assets/diagram-obsidian-loop.jpg +0 -0
- package/docs/assets/diagram-obsidian-vault.jpg +0 -0
- package/docs/assets/diagram-routing.jpg +0 -0
- package/docs/assets/diagram-skills-ecosystem.jpg +0 -0
- package/docs/assets/diagram-story-bible.jpg +0 -0
- package/docs/assets/diagram-studio-goals.jpg +0 -0
- package/mcp/skills-pack/videoclaw-check-status/SKILL.md +15 -0
- package/mcp/skills-pack/videoclaw-create-video/SKILL.md +13 -2
- package/package.json +6 -2
- package/schemas/video/artifacts/cinema-candidate-review.schema.json +53 -0
- package/schemas/video/artifacts/cinema-image-job.schema.json +269 -0
- package/schemas/video/artifacts/cinema-story-bible.schema.json +1 -0
- package/schemas/video/artifacts/cinematic-character-recovery.schema.json +37 -0
- package/schemas/video/artifacts/filmmaking-prompts.schema.json +3 -0
- package/schemas/video/artifacts/reference-sheets.schema.json +1 -0
- package/schemas/video/artifacts/storyboard.schema.json +180 -13
- package/scripts/install-skill-frontdoors.mjs +1 -1
- package/scripts/skill-frontdoors.json +6 -6
- package/skills/README.md +2 -2
- package/skills/ad-intel/SKILL.md +1 -1
- package/skills/ad-intel/scripts/answer_plan.py +1 -1
- package/skills/ai-director/SKILL.md +2 -2
- package/skills/ai-filmmaking/SKILL.md +13 -3
- package/skills/catalog.json +9 -1
- package/skills/character-creator/SKILL.md +9 -8
- package/skills/concierge/SKILL.md +13 -13
- package/skills/david-sales-presenter/SKILL.md +24 -0
- package/skills/garden-days/references/lanes.md +1 -1
- package/skills/movie-director/SKILL.md +7 -0
- package/skills/movie-director/references/troubleshooting.md +2 -2
- package/skills/rap-avatar-mv/SKILL.md +328 -1905
- package/skills/rap-avatar-mv/_template.rap.pack +34 -12
- package/skills/rap-avatar-mv/references/cinematic-finish/README.md +74 -0
- package/skills/rap-avatar-mv/references/cinematic-finish/presets.example.json +38 -0
- package/skills/rap-avatar-mv/references/cinematic-finish/subtitle-grade-preset.json +21 -0
- package/skills/rap-avatar-mv/references/design-review.md +36 -73
- package/skills/rap-avatar-mv/references/finishing-and-upload.md +84 -0
- package/skills/rap-avatar-mv/references/historical-runbook-through-2026-09-07.md +1941 -0
- package/skills/rap-avatar-mv/references/lipsync-magnific.md +6 -0
- package/skills/rap-avatar-mv/references/production-details.md +167 -0
- package/skills/rap-avatar-mv/references/prompt-library-findings.md +6 -0
- package/skills/rap-avatar-mv/references/recording-led-lipsync.md +78 -0
- package/skills/rap-avatar-mv/references/repair-planner.md +171 -0
- package/skills/rap-avatar-mv/references/repair-review.md +42 -0
- package/skills/rap-avatar-mv/references/research-2026-08-29-lessons.md +6 -0
- package/skills/rap-avatar-mv/references/route-economics.md +8 -2
- package/skills/rap-avatar-mv/references/route-matrix.md +6 -0
- package/skills/rap-avatar-mv/references/shot-direction.md +46 -94
- package/skills/rap-avatar-mv/references/song-recipe.md +27 -65
- package/skills/rap-avatar-mv/references/source-compliance.md +6 -0
- package/skills/rap-avatar-mv/scripts/build_bookends.sh +13 -3
- package/skills/rap-avatar-mv/scripts/check_sync.py +5 -0
- package/skills/rap-avatar-mv/scripts/cinematic_cards.py +68 -0
- package/skills/rap-avatar-mv/scripts/cinematic_render.py +172 -0
- package/skills/rap-avatar-mv/scripts/clip_ends.py +78 -0
- package/skills/rap-avatar-mv/scripts/clip_vocals.py +146 -0
- package/skills/rap-avatar-mv/scripts/cover_mouthing.py +10 -0
- package/skills/rap-avatar-mv/scripts/cover_reference.py +503 -0
- package/skills/rap-avatar-mv/scripts/deliver.py +17 -4
- package/skills/rap-avatar-mv/scripts/dryrun.sh +13 -1
- package/skills/rap-avatar-mv/scripts/explore_queue.py +93 -452
- package/skills/rap-avatar-mv/scripts/fit_takes.py +168 -78
- package/skills/rap-avatar-mv/scripts/hf_export.py +188 -0
- package/skills/rap-avatar-mv/scripts/hf_import.py +191 -0
- package/skills/rap-avatar-mv/scripts/join_cuts.py +87 -34
- package/skills/rap-avatar-mv/scripts/line_subs.py +23 -9
- package/skills/rap-avatar-mv/scripts/make-rap-mv.sh +109 -20
- package/skills/rap-avatar-mv/scripts/make_plan.py +50 -7
- package/skills/rap-avatar-mv/scripts/needs_report.py +166 -71
- package/skills/rap-avatar-mv/scripts/rap_fixture.py +35 -2
- package/skills/rap-avatar-mv/scripts/rap_thumbnail.py +6 -3
- package/skills/rap-avatar-mv/scripts/rate_fit.py +263 -88
- package/skills/rap-avatar-mv/scripts/repair_apply.py +107 -0
- package/skills/rap-avatar-mv/scripts/repair_plan.py +268 -0
- package/skills/rap-avatar-mv/scripts/repair_preview.py +133 -0
- package/skills/rap-avatar-mv/scripts/repair_review.py +45 -0
- package/skills/rap-avatar-mv/scripts/repair_workbench.py +56 -0
- package/skills/rap-avatar-mv/scripts/replace_window.py +12 -0
- package/skills/rap-avatar-mv/scripts/requirements-cinema.txt +2 -0
- package/skills/rap-avatar-mv/scripts/requirements-vocal-guides.txt +3 -0
- package/skills/rap-avatar-mv/scripts/reuse_audit.py +41 -58
- package/skills/rap-avatar-mv/scripts/review_board.py +8 -0
- package/skills/rap-avatar-mv/scripts/sync_evidence.py +49 -0
- package/skills/rap-avatar-mv/scripts/sync_profile.py +17 -7
- package/skills/rap-avatar-mv/scripts/sync_shift.py +194 -186
- package/skills/rap-avatar-mv/scripts/timing_edits.py +144 -0
- package/skills/rap-avatar-mv/scripts/transcribe_clips.py +16 -7
- package/skills/rap-avatar-mv/scripts/verify_delivery.py +102 -0
- package/skills/rap-avatar-mv/scripts/vocal_guides.py +263 -0
- package/skills/rap-avatar-mv/scripts/vocal_swap.py +3 -19
- package/skills/rap-avatar-mv/scripts/word_sync.py +18 -3
- package/skills/rap-avatar-mv/scripts/word_warp.py +198 -0
- package/skills/story-bible-builder/SKILL.md +7 -0
- package/skills/video-framework/SKILL.md +4 -0
- package/skills/video-post/SKILL.md +6 -0
- package/skills/video-production-handoff/SKILL.md +8 -0
- package/skills/video-replicator/SKILL.md +1 -1
- package/skills/video-storyboard/SKILL.md +7 -0
- package/skills/videoclaw/SKILL.md +36 -0
- package/src/video/artifacts.ts +9 -2
- package/src/video/assemble/audio-mix-plan.ts +1 -1
- package/src/video/assemble/stitch-audio-mix.ts +274 -0
- package/src/video/assemble/stitch-concat.ts +262 -0
- package/src/video/assemble/stitch-filters.ts +93 -0
- package/src/video/assemble/stitch.ts +10 -600
- package/src/video/character-auto-create.ts +85 -9
- package/src/video/character-performance.ts +49 -0
- package/src/video/character-reference-prompts.ts +54 -0
- package/src/video/characters.ts +12 -0
- package/src/video/cinema-candidate-review.ts +11 -1
- package/src/video/cinema-console-render.ts +3 -2
- package/src/video/cinema-delivery.ts +10 -0
- package/src/video/cinema-image-bindings.ts +46 -0
- package/src/video/cinema-image-jobs.ts +149 -0
- package/src/video/cinema-live-console.ts +9 -3
- package/src/video/cinema-motion-review-form.ts +8 -0
- package/src/video/cinema-motion-review.ts +38 -0
- package/src/video/cinema-profile.ts +1 -1
- package/src/video/cinema-project-compiler.ts +3 -2
- package/src/video/cinema-project-console.ts +7 -1
- package/src/video/cinema-story-compiler.ts +1 -0
- package/src/video/cinema-story-types.ts +1 -0
- package/src/video/cinematic-character-recovery.ts +76 -0
- package/src/video/cinematography.ts +8 -801
- package/src/video/cli-schema.ts +97 -31
- package/src/video/dynamic-register.ts +137 -0
- package/src/video/execute.ts +254 -238
- package/src/video/execution-cancel.ts +15 -2
- package/src/video/execution-in-flight.ts +124 -0
- package/src/video/execution-prompt-validation.ts +42 -0
- package/src/video/execution-run-marker.ts +261 -0
- package/src/video/execution-runtime.ts +13 -1
- package/src/video/execution-status.ts +9 -0
- package/src/video/film-edit-review-store.ts +96 -0
- package/src/video/film-edit-review.ts +78 -0
- package/src/video/film-plan.ts +95 -0
- package/src/video/film-reference-evidence.ts +38 -0
- package/src/video/film-review-gate.ts +30 -0
- package/src/video/filmmaking-product-prompts.ts +169 -0
- package/src/video/filmmaking-prompts.ts +65 -1024
- package/src/video/filmmaking-shared.ts +159 -0
- package/src/video/filmmaking-vocab.ts +137 -0
- package/src/video/flow-markers.ts +3 -3
- package/src/video/hook-register.ts +174 -0
- package/src/video/library-clean.ts +1 -1
- package/src/video/lighting-grade-register.ts +288 -0
- package/src/video/motion-overlay/avatar-host.ts +2 -2
- package/src/video/outfit-prompts.ts +49 -0
- package/src/video/preview-portal/render-brand.ts +201 -0
- package/src/video/preview-portal/render-primitives.ts +54 -0
- package/src/video/preview-portal/render-run.ts +215 -0
- package/src/video/preview-portal/render-scene-contract.ts +203 -0
- package/src/video/preview-portal/render.ts +7 -653
- package/src/video/provider-platform/registry.ts +2 -1
- package/src/video/realism-register.ts +238 -0
- package/src/video/review-ui-artifacts.ts +792 -0
- package/src/video/review-ui-autopilot.ts +313 -0
- package/src/video/review-ui-inventory.ts +234 -0
- package/src/video/review-ui-shared.ts +156 -0
- package/src/video/review-ui.ts +17 -1444
- package/src/video/run-state/read.ts +19 -2
- package/src/video/run-state/types.ts +2 -0
- package/src/video/seedance-prompt.ts +435 -0
- package/src/video/status.ts +37 -0
- package/src/video/story-bible.ts +3 -3
- package/src/video/storyboard-markdown.ts +10 -3
- package/src/video/studio/execute.ts +32 -2
- package/src/video/types.ts +1 -0
- package/src/video/workspace.ts +2 -0
- package/skills/clawbot/SKILL.md +0 -29
- /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
|
|
5
|
+
## Quick orientation (read this first)
|
|
6
6
|
|
|
7
|
-
- **Entrypoint:** `src/cli/vclaw.ts` — a thin ~
|
|
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`/`
|
|
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
|
-
>
|
|
21
|
-
>
|
|
22
|
-
> the architecture
|
|
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
|
-
**
|
|
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 `/
|
|
34
|
-
that skill and follow it before doing anything else: greet them as
|
|
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).
|
|
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 (~
|
|
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
|
|
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/`
|
|
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.
|
|
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
|
-
[](https://github.com/davendra/videoclaw-v3/actions/workflows/ci.yml)
|
|
12
12
|
[](./package.json)
|
|
13
13
|
[](./tsconfig.json)
|
|
14
14
|
[](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
|
|
26
|
-
> Once you're in Claude Code in this repo, just type **`/concierge`** (or **`/
|
|
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
|
-
- **
|
|
90
|
-
- **
|
|
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
|
-
- **
|
|
94
|
-
- **
|
|
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` |
|
|
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,
|
|
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`
|
|
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
|
|
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/>(
|
|
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 (`@
|
|
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`
|
|
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** | `
|
|
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> (
|
|
604
|
+
<summary><strong>⚙️ Workflow skills</strong> (9 — click to expand)</summary>
|
|
603
605
|
|
|
604
606
|
| Group | Skills |
|
|
605
607
|
|---|---|
|
|
606
|
-
| **
|
|
607
|
-
| **
|
|
608
|
-
| **Review & governance** | [`
|
|
609
|
-
| **
|
|
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
|
|
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,
|
|
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":"
|
|
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"}
|