@lemoncat7/dsh-partner 2.4.2 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/docs/THIRD_PARTY_LICENSES.md +13 -0
- package/docs/attachment-storage.md +18 -0
- package/docs/director-skills.md +24 -0
- package/docs/long-task-continuation.md +51 -0
- package/docs/releases/2.5.0.md +13 -0
- package/docs/releases/2.6.0.md +11 -0
- package/docs/releases/2.7.0.md +21 -0
- package/lib/agent-runtime.d.ts +9 -1
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +117 -17
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api/features/attachments-api.d.ts.map +1 -1
- package/lib/api/features/attachments-api.js +31 -1
- package/lib/api/features/attachments-api.js.map +1 -1
- package/lib/api.d.ts +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +1 -1
- package/lib/api.js.map +1 -1
- package/lib/attachments/grouped-storage.d.ts +5 -0
- package/lib/attachments/grouped-storage.d.ts.map +1 -0
- package/lib/attachments/grouped-storage.js +47 -0
- package/lib/attachments/grouped-storage.js.map +1 -0
- package/lib/attachments/service.d.ts +17 -0
- package/lib/attachments/service.d.ts.map +1 -1
- package/lib/attachments/service.js +100 -8
- package/lib/attachments/service.js.map +1 -1
- package/lib/attachments/shared-storage.d.ts +7 -0
- package/lib/attachments/shared-storage.d.ts.map +1 -0
- package/lib/attachments/shared-storage.js +44 -0
- package/lib/attachments/shared-storage.js.map +1 -0
- package/lib/attachments/storage-admin.d.ts +6 -0
- package/lib/attachments/storage-admin.d.ts.map +1 -0
- package/lib/attachments/storage-admin.js +43 -0
- package/lib/attachments/storage-admin.js.map +1 -0
- package/lib/attachments/storage-types.d.ts +33 -0
- package/lib/attachments/storage-types.d.ts.map +1 -0
- package/lib/attachments/storage-types.js +2 -0
- package/lib/attachments/storage-types.js.map +1 -0
- package/lib/attachments/tool.d.ts.map +1 -1
- package/lib/attachments/tool.js +16 -5
- package/lib/attachments/tool.js.map +1 -1
- package/lib/channels/delivery-policy.d.ts.map +1 -1
- package/lib/channels/delivery-policy.js +7 -4
- package/lib/channels/delivery-policy.js.map +1 -1
- package/lib/channels/direct/message-format.js +418 -281
- package/lib/channels/direct/message-format.js.map +4 -4
- package/lib/channels/manager.d.ts +7 -3
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +73 -38
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/weixin/api.d.ts.map +1 -1
- package/lib/channels/weixin/api.js +7 -2
- package/lib/channels/weixin/api.js.map +1 -1
- package/lib/channels/weixin/errors.d.ts +14 -0
- package/lib/channels/weixin/errors.d.ts.map +1 -0
- package/lib/channels/weixin/errors.js +29 -0
- package/lib/channels/weixin/errors.js.map +1 -0
- package/lib/channels/weixin/poll.d.ts +14 -0
- package/lib/channels/weixin/poll.d.ts.map +1 -0
- package/lib/channels/weixin/poll.js +50 -0
- package/lib/channels/weixin/poll.js.map +1 -0
- package/lib/client-api.d.ts +1 -23
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client-controller.d.ts.map +1 -1
- package/lib/client-controller.js +3 -3
- package/lib/client-controller.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1078 -679
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +32 -8
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/domain.d.ts +8 -0
- package/lib/collaboration/domain.d.ts.map +1 -1
- package/lib/collaboration/domain.js.map +1 -1
- package/lib/collaboration/service.d.ts.map +1 -1
- package/lib/collaboration/service.js +38 -5
- package/lib/collaboration/service.js.map +1 -1
- package/lib/concern-notification.d.ts.map +1 -1
- package/lib/concern-notification.js +2 -1
- package/lib/concern-notification.js.map +1 -1
- package/lib/concern-tool.js +1 -1
- package/lib/concern-tool.js.map +1 -1
- package/lib/execution/reply-progress.d.ts.map +1 -1
- package/lib/execution/reply-progress.js +4 -2
- package/lib/execution/reply-progress.js.map +1 -1
- package/lib/execution/service.d.ts +1 -1
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +4 -7
- package/lib/execution/service.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/memory-reflection.js +2 -2
- package/lib/memory-reflection.js.map +1 -1
- package/lib/message-source.d.ts +25 -0
- package/lib/message-source.d.ts.map +1 -0
- package/lib/message-source.js +8 -0
- package/lib/message-source.js.map +1 -0
- package/lib/observation-loop.js +4 -4
- package/lib/observation-loop.js.map +1 -1
- package/lib/pendant/reader.js +1 -1
- package/lib/pendant/reader.js.map +1 -1
- package/lib/pendant/settings-panel.js +1 -1
- package/lib/pendant/settings-panel.js.map +1 -1
- package/lib/persona/service.js +1 -1
- package/lib/persona/service.js.map +1 -1
- package/lib/requirements/attachments.d.ts +7 -0
- package/lib/requirements/attachments.d.ts.map +1 -0
- package/lib/requirements/attachments.js +26 -0
- package/lib/requirements/attachments.js.map +1 -0
- package/lib/requirements/domain.d.ts +1 -1
- package/lib/requirements/domain.d.ts.map +1 -1
- package/lib/requirements/service.d.ts.map +1 -1
- package/lib/requirements/service.js +4 -1
- package/lib/requirements/service.js.map +1 -1
- package/lib/scheduler/channel-origin.d.ts +7 -0
- package/lib/scheduler/channel-origin.d.ts.map +1 -0
- package/lib/scheduler/channel-origin.js +27 -0
- package/lib/scheduler/channel-origin.js.map +1 -0
- package/lib/scheduler/continuations.d.ts +29 -0
- package/lib/scheduler/continuations.d.ts.map +1 -0
- package/lib/scheduler/continuations.js +286 -0
- package/lib/scheduler/continuations.js.map +1 -0
- package/lib/scheduler/domain.d.ts +40 -0
- package/lib/scheduler/domain.d.ts.map +1 -1
- package/lib/scheduler/final-reply.d.ts +13 -0
- package/lib/scheduler/final-reply.d.ts.map +1 -0
- package/lib/scheduler/final-reply.js +21 -0
- package/lib/scheduler/final-reply.js.map +1 -0
- package/lib/scheduler/service.d.ts +2 -0
- package/lib/scheduler/service.d.ts.map +1 -1
- package/lib/scheduler/service.js +30 -1
- package/lib/scheduler/service.js.map +1 -1
- package/lib/scheduler/wakeup-context.d.ts +7 -0
- package/lib/scheduler/wakeup-context.d.ts.map +1 -0
- package/lib/scheduler/wakeup-context.js +14 -0
- package/lib/scheduler/wakeup-context.js.map +1 -0
- package/lib/scheduler/wakeup.d.ts +11 -0
- package/lib/scheduler/wakeup.d.ts.map +1 -0
- package/lib/scheduler/wakeup.js +52 -0
- package/lib/scheduler/wakeup.js.map +1 -0
- package/lib/skills/builtin-resources.d.ts +6 -0
- package/lib/skills/builtin-resources.d.ts.map +1 -0
- package/lib/skills/builtin-resources.js +47 -0
- package/lib/skills/builtin-resources.js.map +1 -0
- package/lib/skills/builtin.d.ts +2 -5
- package/lib/skills/builtin.d.ts.map +1 -1
- package/lib/skills/builtin.js +11 -0
- package/lib/skills/builtin.js.map +1 -1
- package/lib/skills/director-builtins.d.ts +8 -0
- package/lib/skills/director-builtins.d.ts.map +1 -0
- package/lib/skills/director-builtins.js +65 -0
- package/lib/skills/director-builtins.js.map +1 -0
- package/lib/skills/drama-builtin.d.ts +3 -0
- package/lib/skills/drama-builtin.d.ts.map +1 -0
- package/lib/skills/drama-builtin.js +49 -0
- package/lib/skills/drama-builtin.js.map +1 -0
- package/lib/skills/long-task-continuation.d.ts +4 -0
- package/lib/skills/long-task-continuation.d.ts.map +1 -0
- package/lib/skills/long-task-continuation.js +43 -0
- package/lib/skills/long-task-continuation.js.map +1 -0
- package/lib/skills/service.d.ts.map +1 -1
- package/lib/skills/service.js +8 -3
- package/lib/skills/service.js.map +1 -1
- package/lib/skills/viora-canvas-builtin.d.ts +3 -0
- package/lib/skills/viora-canvas-builtin.d.ts.map +1 -0
- package/lib/skills/viora-canvas-builtin.js +19 -0
- package/lib/skills/viora-canvas-builtin.js.map +1 -0
- package/lib/storage/migrate-layout.d.ts.map +1 -1
- package/lib/storage/migrate-layout.js +13 -4
- package/lib/storage/migrate-layout.js.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/tasks/context.js +1 -0
- package/lib/tasks/context.js.map +1 -1
- package/lib/tasks/continuation-yield.d.ts +4 -0
- package/lib/tasks/continuation-yield.d.ts.map +1 -0
- package/lib/tasks/continuation-yield.js +27 -0
- package/lib/tasks/continuation-yield.js.map +1 -0
- package/lib/tasks/continuation.d.ts +13 -0
- package/lib/tasks/continuation.d.ts.map +1 -0
- package/lib/tasks/continuation.js +106 -0
- package/lib/tasks/continuation.js.map +1 -0
- package/lib/tasks/domain.d.ts +2 -0
- package/lib/tasks/domain.d.ts.map +1 -1
- package/lib/tasks/scheduling.d.ts.map +1 -1
- package/lib/tasks/scheduling.js +7 -0
- package/lib/tasks/scheduling.js.map +1 -1
- package/lib/tasks/service.d.ts +2 -1
- package/lib/tasks/service.d.ts.map +1 -1
- package/lib/tasks/service.js +19 -1
- package/lib/tasks/service.js.map +1 -1
- package/lib/ui/attachment-storage.d.ts +2 -0
- package/lib/ui/attachment-storage.d.ts.map +1 -0
- package/lib/ui/attachment-storage.js +59 -0
- package/lib/ui/attachment-storage.js.map +1 -0
- package/lib/ui/capability-editor.js +1 -1
- package/lib/ui/capability-editor.js.map +1 -1
- package/lib/ui/companion-access-panel.js +1 -1
- package/lib/ui/companion-access-panel.js.map +1 -1
- package/lib/ui/companion-create.js +1 -1
- package/lib/ui/companion-create.js.map +1 -1
- package/lib/ui/companion-picker.js +1 -1
- package/lib/ui/companion-picker.js.map +1 -1
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/mcp-capabilities.js +1 -1
- package/lib/ui/mcp-capabilities.js.map +1 -1
- package/lib/ui/mcp-panel.js +1 -1
- package/lib/ui/mcp-panel.js.map +1 -1
- package/lib/ui/memory/concern-board.js +2 -2
- package/lib/ui/memory/concern-board.js.map +1 -1
- package/lib/ui/memory/concern-deletion.d.ts +1 -1
- package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
- package/lib/ui/memory/concern-deletion.js +9 -4
- package/lib/ui/memory/concern-deletion.js.map +1 -1
- package/lib/ui/memory/concern-panel.js +1 -1
- package/lib/ui/memory/concern-panel.js.map +1 -1
- package/lib/ui/memory/memory-library.js +1 -1
- package/lib/ui/memory/memory-library.js.map +1 -1
- package/lib/ui/memory/memory-panel.js +1 -1
- package/lib/ui/memory/memory-panel.js.map +1 -1
- package/lib/ui/partner-components.js +1 -1
- package/lib/ui/partner-components.js.map +1 -1
- package/lib/ui/requirement-board.js +1 -1
- package/lib/ui/requirement-board.js.map +1 -1
- package/lib/ui/requirement-dialog.js +1 -1
- package/lib/ui/requirement-dialog.js.map +1 -1
- package/lib/ui/requirement-tasks-panel.js +1 -1
- package/lib/ui/requirement-tasks-panel.js.map +1 -1
- package/lib/ui/schedule-panel.d.ts.map +1 -1
- package/lib/ui/schedule-panel.js +20 -4
- package/lib/ui/schedule-panel.js.map +1 -1
- package/lib/ui/skills-panel.js +1 -1
- package/lib/ui/skills-panel.js.map +1 -1
- package/lib/ui/storage-settings.d.ts.map +1 -1
- package/lib/ui/storage-settings.js +2 -1
- package/lib/ui/storage-settings.js.map +1 -1
- package/lib/ui/task-board-stage.js +1 -1
- package/lib/ui/task-board-stage.js.map +1 -1
- package/lib/ui/workspace-components.js +1 -1
- package/lib/ui/workspace-components.js.map +1 -1
- package/lib/ui/workspace-navigation.d.ts +16 -16
- package/lib/ui/workspace-navigation.js +1 -1
- package/lib/ui/workspace-navigation.js.map +1 -1
- package/package.json +55 -41
- package/resources/skills/cinematic-director/manifest.json +205 -0
- package/resources/skills/cinematic-director/upstream/CHANGELOG.md +213 -0
- package/resources/skills/cinematic-director/upstream/CONTRIBUTING.md +316 -0
- package/resources/skills/cinematic-director/upstream/LICENSE +21 -0
- package/resources/skills/cinematic-director/upstream/README.md +507 -0
- package/resources/skills/cinematic-director/upstream/SKILL.md +420 -0
- package/resources/skills/cinematic-director/upstream/assets/beat-sheet-template.md +97 -0
- package/resources/skills/cinematic-director/upstream/assets/director-book-template.md +254 -0
- package/resources/skills/cinematic-director/upstream/assets/edit-timeline-template.md +147 -0
- package/resources/skills/cinematic-director/upstream/assets/keyframe-prompt-template.md +334 -0
- package/resources/skills/cinematic-director/upstream/assets/qc-checklist.md +153 -0
- package/resources/skills/cinematic-director/upstream/assets/shot-plan-template.md +95 -0
- package/resources/skills/cinematic-director/upstream/assets/sound-plan-template.md +181 -0
- package/resources/skills/cinematic-director/upstream/assets/video-prompt-template.md +305 -0
- package/resources/skills/cinematic-director/upstream/evals/run.md +69 -0
- package/resources/skills/cinematic-director/upstream/references/ai-video-tool-adapters.md +527 -0
- package/resources/skills/cinematic-director/upstream/references/blocking-and-staging.md +424 -0
- package/resources/skills/cinematic-director/upstream/references/cinematic-language.md +595 -0
- package/resources/skills/cinematic-director/upstream/references/continuity-bible.md +410 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/01_spielberg.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/02_hitchcock.md +193 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/03_kubrick.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/04_kurosawa.md +196 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/05_scorsese.md +195 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/06_fellini.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/07_bergman.md +197 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/08_tarkovsky.md +184 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/09_wong_kar_wai.md +189 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/10_nolan.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/11_villeneuve.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/12_fincher.md +185 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/13_refn.md +186 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/14_bi_gan.md +188 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/15_zhang_yimou.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/16_hou_hsiao_hsien.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/17_park_chan_wook.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/18_malick.md +191 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/19_michael_mann.md +192 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/20_coen_brothers.md +194 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/README.md +89 -0
- package/resources/skills/cinematic-director/upstream/references/director_styles/example_comparisons.md +140 -0
- package/resources/skills/cinematic-director/upstream/references/editing-and-assembly.md +263 -0
- package/resources/skills/cinematic-director/upstream/references/failure-modes.md +594 -0
- package/resources/skills/cinematic-director/upstream/references/genre-playbooks.md +407 -0
- package/resources/skills/cinematic-director/upstream/references/image-model-adapters.md +290 -0
- package/resources/skills/cinematic-director/upstream/references/lighting-and-color.md +349 -0
- package/resources/skills/cinematic-director/upstream/references/product-and-macro.md +207 -0
- package/resources/skills/cinematic-director/upstream/references/production-workflow.md +238 -0
- package/resources/skills/cinematic-director/upstream/references/prompt-lexicon.md +602 -0
- package/resources/skills/cinematic-director/upstream/references/sound-and-dialogue.md +364 -0
- package/resources/skills/director-skills/manifest.json +541 -0
- package/resources/skills/director-skills/upstream/CHANGELOG.md +32 -0
- package/resources/skills/director-skills/upstream/LICENSE +21 -0
- package/resources/skills/director-skills/upstream/MANIFEST.md +366 -0
- package/resources/skills/director-skills/upstream/README.md +251 -0
- package/resources/skills/director-skills/upstream/RESEARCH_PROVENANCE.md +37 -0
- package/resources/skills/director-skills/upstream/SKILL.md +114 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/checklists/continuity_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/character_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/examples/location_continuity_update.md +9 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/continuity_system.md +21 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/golden_image_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/identity_anchors.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/references/visual_bible_system.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/character_profile.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/continuity_checklist.md +11 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/costume_profile.md +12 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/location_profile.md +14 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/prop_profile.md +13 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/templates/visual_style_bible.md +15 -0
- package/resources/skills/director-skills/upstream/skills/character-location-prop-bible/tests/continuity_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/SKILL.md +80 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/checklists/image_prompt_quality_checklist.md +10 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/examples/shot_list_to_image_prompts.md +4 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/image_prompt_components.md +22 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/character_reference_sheet_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/cinematic_still_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/keyframe_prompt.md +6 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/location_reference_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/templates/prop_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-image-prompting/tests/image_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/SKILL.md +84 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/checklists/video_prompt_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/examples/image_prompt_to_video_prompt.md +3 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/ai_film_production_pipeline.md +21 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/audio_motion_timing.md +16 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/negative_prompt_patterns.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/prompt_anatomy.md +18 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/references/video_prompt_components.md +25 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/image_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/text_to_video_prompt.md +5 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/templates/video_beat_prompt.md +9 -0
- package/resources/skills/director-skills/upstream/skills/cinematic-video-prompting/tests/video_prompt_completeness_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/checklists/model_export_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/failed_model_transfer_diagnosis.md +5 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/image_prompt_translation.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/same_scene_across_models.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/universal_prompt_to_model_specific_exports.md +14 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/examples/video_prompt_translation.md +9 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/failure_modes_by_model.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/image_model_profiles.md +226 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_capability_matrix.md +24 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/model_update_protocol.md +10 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/parameter_compatibility.md +20 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/prompt_translation_rules.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/references/video_model_profiles.md +251 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_comparison_table.md +4 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/model_specific_prompt_export.md +21 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/multi_model_export_package.md +18 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/prompt_translation_report.md +13 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/templates/universal_prompt_brief.md +25 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/model_routing_tests.md +8 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/prompt_translation_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/research_provenance_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/model-adaptation/tests/unknown_capability_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/SKILL.md +82 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/diagnostic_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/checklists/release_quality_checklist.md +9 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/failed_output_to_revised_prompt.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/examples/final_prompt_package_export.md +10 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/failure_modes.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/iteration_diagnostics.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/revision_loops.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/references/story_voice_release_qc.md +30 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/failed_output_intake.md +13 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/final_production_package.md +11 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/templates/prompt_revision_report.md +17 -0
- package/resources/skills/director-skills/upstream/skills/prompt-iteration-and-diagnostics/tests/prompt_quality_checklist_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/SKILL.md +81 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/checklists/scene_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/examples/scene_to_screenplay_excerpt.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/dialogue_and_subtext.md +15 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/fountain_workflow.md +29 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/scene_construction.md +20 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/references/screenplay_format.md +18 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/beat_sheet.md +6 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/dialogue_pass.md +9 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/fountain_scene.md +25 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/templates/screenplay_scene.md +19 -0
- package/resources/skills/director-skills/upstream/skills/screenplay-and-scene-writing/tests/screenplay_scene_tests.md +6 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/SKILL.md +83 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/checklists/concept_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/idea_to_logline.md +13 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/examples/logline_to_outline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/ai_storytelling_workflow.md +46 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/continuity_handoff.md +8 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/screenplay_structure.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/references/story_development_workflow.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/beat_sheet.md +7 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/idea_intake.md +16 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/logline.md +10 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_film_treatment.md +23 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/short_story_plan.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_premise.md +19 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/templates/story_revision_audit.md +22 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/output_format_tests.md +3 -0
- package/resources/skills/director-skills/upstream/skills/short-film-development/tests/routing_tests.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/checklists/shotlist_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/examples/screenplay_scene_to_shot_list.md +8 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/camera_plan.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/production_breakdown.md +11 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/references/shotlist_schema.md +21 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/asset_list.md +7 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/camera_plan.md +10 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/scene_breakdown.md +16 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/templates/shot_list.md +5 -0
- package/resources/skills/director-skills/upstream/skills/shotlist-and-visual-breakdown/tests/screenplay_to_shotlist_tests.md +5 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/SKILL.md +77 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/checklists/style_quality_checklist.md +8 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/examples/genre_to_visual_direction.md +15 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/camera_lens_movement.md +26 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/cinematic_language.md +32 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/genre_style_tone.md +17 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/references/lighting_and_photorealism.md +19 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/templates/visual_style_bible.md +33 -0
- package/resources/skills/director-skills/upstream/skills/style-cinematography-director/tests/style_translation_tests.md +5 -0
- package/resources/skills/director-skills/upstream/tests/master_router_tests.md +80 -0
- package/resources/skills/drama-production/manifest.json +933 -0
- package/resources/skills/drama-production/upstream/LICENSE +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/SKILL.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/app.js +1263 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/index.html +114 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/dashboard/styles.css +297 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/production-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/project-template/short-drama.json +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/audience-reveal.md +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/contract-and-ownership.md +45 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-documents.md +230 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/creator-workflow.md +98 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/knowhow-index.md +85 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/look-development.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/pickup-and-alternate.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/production-form-profiles.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/reference-roles.md +53 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/references/runtime-preflight.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/creator_markdown_check.py +1413 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/dashboard_server.py +1798 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/project_tool.py +2454 -0
- package/resources/skills/drama-production/upstream/skills/short-drama/scripts/selftest.py +287 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/SKILL.md +76 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/asset-review-checklist.md +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/character-and-look.md +190 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-delta.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/continuity-lock.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/identity-vs-variant.md +140 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/location-and-view.md +84 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/occurrence-extraction.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/prop-and-state.md +126 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/stage-contract.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/references/voice-direction.md +179 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/asset_check.py +267 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-assets/scripts/selftest.py +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/SKILL.md +157 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/creative-brief.md +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/assets/story-engine.md +181 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/adaptation-craft.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/director-brief-craft.md +113 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/episode-design.md +509 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/genre-cards.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/mechanism-loop.md +282 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/premise-devices.md +211 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/stage-contract.md +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/references/story-craft.md +359 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/episode_intake.py +699 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-develop/scripts/selftest.py +47 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/SKILL.md +146 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/README.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/package.json +15 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/cut-craft.md +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/delivery-verify.md +29 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/generated-footage.md +54 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/references/stage-contract.md +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-edit/scripts/selftest.py +520 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/SKILL.md +73 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/image-prompts.md +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/assets/lookdev-prompts.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/character-and-look.md +153 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/common-recipe.md +241 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/edit-and-revision.md +110 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/location-plate.md +151 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/look-and-state-variant.md +97 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/lookdev-frame.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/prop-plate.md +137 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/references/stage-contract.md +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-image-prompts/scripts/selftest.py +95 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/SKILL.md +245 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/chapter-extraction.md +144 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/SKILL.md +183 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/adapter-contract.md +219 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-h3-video.md +86 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/references/providers/seedance.md +64 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/fixture_adapter.py +77 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/production_tool.py +2205 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/provider_adapters.py +1747 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-produce/scripts/selftest.py +135 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/SKILL.md +118 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/finding-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/assets/verdict-template.json +32 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/examples/minimal-verdict.json +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/anti-template-repair.md +109 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/production-quality-gates.md +276 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/project-calibration.md +83 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/review-method.md +81 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-assets-prompts.md +111 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-story-script.md +264 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/rubric-visual-motion.md +184 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/references/stage-contract.md +28 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/review_check.py +325 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-review/scripts/selftest.py +87 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/SKILL.md +175 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-prompts.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/blocking-playbooks.md +216 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/coverage-audition.md +34 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/keyframe-craft.md +174 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/production-shot-grammar.md +279 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/review-and-fixtures.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/scene-visual-plan.md +30 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +155 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-craft.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/shot-revision-identity.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/references/stage-contract.md +57 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/selftest.py +191 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/SKILL.md +154 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +217 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/assets/video-prompts.md +67 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/camera-audio-continuity.md +259 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/delivery-profile.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/generability.md +93 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/minimax-h3.md +253 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/motion-recipe.md +315 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/performance-action-timing.md +209 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/production-prompt-grammar.md +304 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/review-and-fixtures.md +139 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.0.md +50 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/seedance-2.5.md +122 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/stage-contract.md +60 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/references/target-model-profile.md +116 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/SKILL.md +99 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/agents/openai.yaml +4 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/beats.jsonl +2 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/episode-card.json +55 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/screenplay.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/dialogue-craft.md +526 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/production-format-dialect.md +273 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-handoff-capsule.md +25 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/screenplay-format.md +266 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/script-craft.md +745 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/stage-contract.md +36 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/references/substitutable-realization.md +107 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/duration_estimate.py +309 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/selftest.py +229 -0
- package/resources/skills/drama-production/upstream/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
- package/resources/skills/viora-canvas-production/manifest.json +23 -0
- package/resources/skills/viora-canvas-production/references/canvas-contract.md +50 -0
- package/resources/skills/viora-canvas-production/references/creative-production.md +50 -0
- package/resources/skills/viora-canvas-production/references/generation-delivery.md +36 -0
- package/resources/skills/viora-canvas-production/references/production-ledger.md +25 -0
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
# Failure Modes: Diagnosis and Repair
|
|
2
|
+
|
|
3
|
+
Load this file when a generated clip is wrong and you need to name the cause, pick the cheapest fix, and decide whether to re-prompt or re-plan the shot.
|
|
4
|
+
|
|
5
|
+
[../assets/qc-checklist.md](../assets/qc-checklist.md) is the pass/fail gate you run before delivery. This file is the manual behind it: triage tree, failure codes F1–F19, cost ladder L1–L7, prevention. It is the sole owner of the F-code taxonomy — every other file cites a code and links here rather than restating it. Always quote the code in a repair note so the fix is traceable and so repeated codes surface as process problems.
|
|
6
|
+
|
|
7
|
+
## Order of operations
|
|
8
|
+
|
|
9
|
+
1. Run the triage tree. Collect one code per reported symptom — not one code per clip. Two or more codes in the same clip means the shot is over-scoped; go straight to L5. At three, the shot is not over-scoped, it is three shots.
|
|
10
|
+
2. Read each code's Fixes and start at the lowest L number listed. Never skip a level upward without a reason from the skip rule.
|
|
11
|
+
3. Log every generation against the shot. At three failures, stop editing the prompt and apply the three-strike rule.
|
|
12
|
+
4. After the shot is delivered, push the code through the prevention map so it does not recur on shot 12.
|
|
13
|
+
|
|
14
|
+
Repair-note format, one per failed shot:
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
Shot 07 — F5 (no end state), 2nd generation
|
|
18
|
+
Cause: prompt ends on "walks toward the door", no terminal pose; clip ran 8 s for a 3 s action.
|
|
19
|
+
Fix applied: L1 add end state + L2 duration 8 s -> 4 s.
|
|
20
|
+
Prevention: Step 6 blocking row lacked an end position.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
When one clip carries more than one code, use the multi-failure form instead. The ordering rule is: diagnose the codes independently, then find the single upstream decision that produced them all — usually duration, shot size, or an over-scoped action — and fix that before you touch any symptom. Fixing symptoms one at a time re-spends the same generation on the same root.
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
Shot 07 — three codes, 2nd generation
|
|
27
|
+
F2 no motion ............... from 0:00
|
|
28
|
+
F1 identity drift .......... onset 0:04.8
|
|
29
|
+
F19 object permanence ....... envelope gone at 0:06.2
|
|
30
|
+
Shared root: 8 s on one face-carrying, hand-heavy, occlusion-heavy shot. One decision, three symptoms.
|
|
31
|
+
Ladder: L5 — skip rule (b), triage returned more than one code.
|
|
32
|
+
Fix applied: split into three shots of 3–4 s, one prompt each (see below); no prompt edit alone reaches the root.
|
|
33
|
+
07a face, 3 s, no envelope in frame
|
|
34
|
+
07b insert on the envelope, 3 s, unoccluded, no face
|
|
35
|
+
07c reaction, 4 s
|
|
36
|
+
Parameters: motion strength one step down on 07b; seed locked across all three.
|
|
37
|
+
Cut notes: the occlusion falls between 07b and 07c, so the disappearance becomes an edit.
|
|
38
|
+
Prevention: Step 7 let one row carry a face, a hand action, and an occlusion at 8 s.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 60-second triage tree
|
|
42
|
+
|
|
43
|
+
Step 0 counts the symptoms. Step A converts a feeling into an observation. Step B converts an observation into a code.
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
STEP 0 — how many things did the user say were wrong?
|
|
47
|
+
|
|
48
|
+
One symptom ......... run A then B once. Take the first branch that matches.
|
|
49
|
+
More than one ....... run A then B once PER SYMPTOM, to exhaustion, and collect
|
|
50
|
+
EVERY code before you read a single Fixes list. The tree
|
|
51
|
+
returns one code per pass, so a clip with three failures
|
|
52
|
+
needs three passes; one pass hides the other two.
|
|
53
|
+
Two codes -> skip to L5 (skip rule b).
|
|
54
|
+
Three or more -> the shot is not over-scoped, it is three
|
|
55
|
+
shots. Re-plan it as three, then re-triage what survives.
|
|
56
|
+
Symptoms that are one symptom: "the face changed AND her coat changed" is one
|
|
57
|
+
code (F1). Count mechanisms, not sentences.
|
|
58
|
+
|
|
59
|
+
STEP A — the complaint is a mood, not a symptom. Translate it first.
|
|
60
|
+
|
|
61
|
+
"it feels fake" -> weight, contact, gravity ............ F14
|
|
62
|
+
then speed / floatiness ............. F13
|
|
63
|
+
then light that drifts .............. F12
|
|
64
|
+
then "only the face moves" .......... F2
|
|
65
|
+
"it looks like AI" -> melting geometry .................... F3
|
|
66
|
+
then hands, eyes, teeth ............. F10
|
|
67
|
+
then rubbery speed .................. F13
|
|
68
|
+
"it looks cheap" -> speed and motion strength ........... F13
|
|
69
|
+
then flat or shifting light ......... F12
|
|
70
|
+
"it isn't my film" -> palette, grain, lens feel ........... F16
|
|
71
|
+
"it's boring" -> NOT a generation failure.
|
|
72
|
+
Re-plan the shot (L5) or cut it (L6/L7).
|
|
73
|
+
|
|
74
|
+
STEP B — play once at 1x, once at 0.25x. Take the first branch that matches the
|
|
75
|
+
symptom you are on, then return to Step 0 for the next symptom.
|
|
76
|
+
|
|
77
|
+
Does anything actually move?
|
|
78
|
+
├─ Nothing moves, or only a slow zoom / parallax over a still ......... F2
|
|
79
|
+
└─ Something moves
|
|
80
|
+
│
|
|
81
|
+
├─ Is the moving thing the thing you asked to move?
|
|
82
|
+
│ ├─ Subject ignores the action entirely ......................... F4
|
|
83
|
+
│ ├─ Action begins but the clip ends before its end state ........ F5
|
|
84
|
+
│ ├─ Action happens but cheats gravity, weight, or contact ....... F14
|
|
85
|
+
│ ├─ Action happens at the wrong speed, or ramps mid-clip ........ F13
|
|
86
|
+
│ └─ Camera moves you did not ask for, or never settles .......... F6
|
|
87
|
+
│
|
|
88
|
+
├─ Does the subject stay the same subject the whole clip?
|
|
89
|
+
│ ├─ Face, body, or costume becomes a different person .......... F1
|
|
90
|
+
│ ├─ Geometry melts, limbs fuse, background breathes ............ F3
|
|
91
|
+
│ ├─ Only hands, fingers, eyes, or teeth are wrong .............. F10
|
|
92
|
+
│ └─ Person holds but palette, grain, or lens feel changes ...... F16
|
|
93
|
+
│
|
|
94
|
+
├─ Is anything in frame that should not be there?
|
|
95
|
+
│ ├─ New person, animal, duplicate, or object appears ........... F9
|
|
96
|
+
│ ├─ Letters, captions, logos, watermarks, UI ................... F11
|
|
97
|
+
│ ├─ An object that does not belong to the era or place ......... F8
|
|
98
|
+
│ └─ Light source, direction, or color changes mid-clip ......... F12
|
|
99
|
+
│
|
|
100
|
+
├─ Did something in frame stop existing?
|
|
101
|
+
│ ├─ A prop is gone, or comes back different after an occlusion . F19
|
|
102
|
+
│ └─ A garment or a wardrobe detail is gone ..................... F1
|
|
103
|
+
│
|
|
104
|
+
├─ Is the framing what you specified?
|
|
105
|
+
│ └─ Heads cropped, subject outside safe area, wrong aspect ..... F17
|
|
106
|
+
│
|
|
107
|
+
├─ Does it fail only in relation to the shots around it?
|
|
108
|
+
│ ├─ Start state contradicts the previous shot's end state ...... F7
|
|
109
|
+
│ └─ Visible seam, pose reset, or pulse at an extend point ...... F18
|
|
110
|
+
│
|
|
111
|
+
└─ Is the picture acceptable and only the sound wrong?
|
|
112
|
+
└─ Mouth and words disagree, or room tone fights the space .... F15
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Two user phrasings need splitting by hand:
|
|
116
|
+
|
|
117
|
+
- "She never falls" is three bugs. Nothing starts: F4. She starts to go and the clip ends mid-fall: F5. She goes down but floats or lands without impact: F14. Watch the last six frames to tell them apart.
|
|
118
|
+
- "It doesn't match the last shot" splits by *what* mismatches. Position, prop, or hand state: F7. Only the light: F12. Only the look or grade: F16. Only the person: F1. A hard pulse at the join: F18.
|
|
119
|
+
|
|
120
|
+
## The cost ladder
|
|
121
|
+
|
|
122
|
+
Try in order. The ladder is ordered by how much of your work each level throws away, not only by money: L1–L4 all cost at least one generation, but L1 discards a sentence, L4 discards a keyframe, L4.5 discards nothing but the delivered clip's surface, and L5 discards the plan. Most people jump to L3 (regenerate and hope) when L1 would have fixed it, and stay at L3 when L5 was the only real answer.
|
|
123
|
+
|
|
124
|
+
| Level | Move | Real cost | Usually fixes |
|
|
125
|
+
|---|---|---|---|
|
|
126
|
+
| L1 | Prompt edit | ~2 min of writing, then 1 generation | F2, F4, F5, F6, F9, F11, F13, F19 |
|
|
127
|
+
| L2 | Parameter change, where the tool exposes them: duration down, motion strength down, prompt-adherence up, seed locked, frame rate | ~1 min, then 1 generation | F1, F3, F6, F13, F19 |
|
|
128
|
+
| L3 | Regenerate unchanged (seed roulette) | 1 generation per pull, budget 2 | F10, F9, F3 when intermittent |
|
|
129
|
+
| L4 | Rebuild the keyframe | 1 image generation + 1 video generation | F1, F8, F11, F12, F16, F17 |
|
|
130
|
+
| L4.5 | Video-to-video edit pass on the delivered clip: relight, regrade, reframe | 1 generation, and the approved take survives | F12, F16, F17, framing-only F9 |
|
|
131
|
+
| L5 | Re-plan the shot: shorter, closer, simpler, split | ~10 min of planning, then 1–2 generations; saves 5+ | F14, F15, F19, sustained F10, anything irreducible |
|
|
132
|
+
| L6 | Fix in the edit: trim, cutaway, dissolve, retime, mask | no generation, costs 0.3–1.0 s of screen time | F13, F18, F5, late-onset F3 |
|
|
133
|
+
| L7 | Cut the shot | no generation, costs a beat — verify the beat survives elsewhere | Any code, once this one shot has eaten more than roughly 8% of the project's planned generation budget |
|
|
134
|
+
|
|
135
|
+
Rules that make the ladder work:
|
|
136
|
+
|
|
137
|
+
- L3 economics: if two consecutive unchanged pulls fail the *same* way, the failure is deterministic. Stop pulling. A third pull is superstition. If they fail *differently*, one more pull is rational. That budget of two applies to serial re-rolls after a diagnosis, where each pull is buying information. A parallel batch of four identical takes on a Green shot is sampling rather than roulette, and is governed by the band budgets in [production-workflow.md](production-workflow.md), which owns retry economics; the only rule it must obey is that you do not batch a shot whose keyframe or prompt you already suspect.
|
|
138
|
+
- Skip straight to L5 when any of these is true: (a) the shot needs something on the irreducible list; (b) triage returns two or more codes; (c) the action requires more than ~1.5 s of continuous precise contact between hands and an object, or between two people; (d) the clip is longer than 8 s and the failure onset is after second 5; (e) you have already spent three generations.
|
|
139
|
+
- L4.5 has a precondition no other rung has: a take that is right apart from its surface. It re-renders the clip you already have, so it inherits that clip's blocking and timing and cannot fix an action, an end state, or an angle — only how the frame is lit, graded, styled or cropped. When that is the whole defect it pre-empts L4: one generation instead of two, and the performance survives. Whether the tool exposes a video-to-video pass at all is a capability question, owned by [ai-video-tool-adapters.md](ai-video-tool-adapters.md).
|
|
140
|
+
- L6 is not defeat. A 0.5 s trim that lands the cut before the melt is a better use of the clip than a fourth generation. See [editing-and-assembly.md](editing-and-assembly.md) for what the cut can absorb. The ladder governs the decision to spend *another generation*; once a clip is in hand and its defect is localized — inside the trim handles, under 8 frames, or a grade mismatch against its neighbour — go straight to L6. That triage is owned by editing-and-assembly.md and outranks the ladder's ordering.
|
|
141
|
+
- Every number on this ladder — the two pulls at L3, the three generations in the skip rule, the 8% at L7 — is a threshold you set in advance so the decision is not made while you are frustrated. They are planning guidance, not measured success rates.
|
|
142
|
+
|
|
143
|
+
## The three-strike rule
|
|
144
|
+
|
|
145
|
+
After three failed generations of the same shot *design*, **change the shot, not the prompt**. The fourth prompt edit is almost always a re-wording of the second. Pick one of these seven moves — pick exactly one, and regenerate once. The count resets when the design changes; the per-shot ceilings across all designs are the band budgets in [production-workflow.md](production-workflow.md). An L4.5 pass does not add a strike, because it edits a delivered take instead of re-rolling the design — a shot at three strikes whose only remaining defect is light, grade or frame still has that rung.
|
|
146
|
+
|
|
147
|
+
| Move | Do this | Use when |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| Shorten | Cut duration by 40–50% (8 s → 4 s). Keep the same action, drop its tail. | Failure onset is late in the clip: F1, F3, F18 |
|
|
150
|
+
| Push in | Go one size closer, or two if the failure is anatomical: a full-figure wide becomes a medium, a medium becomes an MCU. Less body, fewer joints, fewer background objects to hallucinate. | F3, F9, F10, F17 |
|
|
151
|
+
| Simplify | Delete every motion except one. One body action, camera locked, environment still. | F4, F6, F13 |
|
|
152
|
+
| Split | Two clips joined on a cut instead of one clip containing a transition. | F5, F14, F19, any multi-code shot |
|
|
153
|
+
| First/last frame | Build both endpoints as stills and let the tool interpolate, where the tool exposes the slot. | F5, F7, F19, controlled transformation |
|
|
154
|
+
| Substitute | Replace the action shot with a reaction shot or an insert that implies it. | F10, F14, F15 |
|
|
155
|
+
| Off-screen | Let the action leave frame and show only its consequence. | F14, F10, anything violent or contact-heavy |
|
|
156
|
+
|
|
157
|
+
Worked example of Off-screen. The shot "she knocks the stool over as she stands" failed three times (F14: the stool tips without weight, then re-rights itself). Replaced with two clips: (1) locked frame on her hip and thigh with the stool beside her, floor visible at the bottom of frame — she pushes up and her body clears frame top, the stool leg scrapes and slides out of frame bottom-left, 1.5 s; (2) locked wide of the empty room, the stool already on its side, dust drifting in the window light, 2 s. The audience builds the fall. Nothing had to be simulated. See [blocking-and-staging.md](blocking-and-staging.md) for staging actions to exit frame cleanly.
|
|
158
|
+
|
|
159
|
+
## The root-cause checklist — what to infer, in descending order of yield
|
|
160
|
+
|
|
161
|
+
**These are things to work out from what the user already gave you, not questions to put to them.** A user who says "it came out bad" wants a fix, not an intake form. Read the six items against the prompt, the clip, the timecode, the named tool, and the brief; stop when you have the code; then deliver.
|
|
162
|
+
|
|
163
|
+
Where the cost ladder for that code is three rungs or fewer, give the ladder and ask nothing — it is cheaper for the user to try three rungs than to answer three questions. F2 needs no question at all: L1, L2 and L4 between them cover all three of its causes. Where an inference is load-bearing, state it as an assumption and mark what it would change: "assuming this was image-to-video from a still you already like — if it was text-to-video the code is F8/F17 instead, and the first fix moves to L4."
|
|
164
|
+
|
|
165
|
+
Only one question is ever permitted, it goes last, after the cause-agnostic fix is already on the page, and it is the one whose answer changes the **deliverable** — never the one that only changes the diagnosis. Ordered by yield, that is almost always the first item below, and failing that the second.
|
|
166
|
+
|
|
167
|
+
1. **The intended last frame.** If neither the user nor the prompt can name it in one sentence, the diagnosis is F5 and the prompt never had an end state to miss. This finds the cause more often than anything else on this list, which is why it is also the one question worth spending when the deliverable turns on it.
|
|
168
|
+
2. **Which input mode, and what the input image is like.** Image-to-video from a good input means a prompt or duration failure (F2, F4, F5, F13). Image-to-video from a soft, small, low-contrast, or already-warped input is an asset failure (F1, F3, F16) — no prompt fixes those, go to L4. Text-to-video widens the suspect list to F8, F9, F12, F17. Infer it from the request: an attached still, a mention of a keyframe, or a tool named in image-to-video mode settles it.
|
|
169
|
+
3. **Clip length, and the second at which it goes wrong.** Wrong from frame 1: keyframe or framing (F1, F16, F17). Wrong after roughly 60–70% of the duration: the model ran out of identity or geometry budget (F1, F3, F19). Wrong exactly at a join: F18. A user who says "about halfway" has already given you this.
|
|
170
|
+
4. **What the prompt actually says.** If it was supplied, count the primary verbs and the camera verbs. More than one primary verb predicts F4 or F5. More than one camera verb predicts F6. Adjectives outnumbering concrete nouns predicts F2. See [prompt-lexicon.md](prompt-lexicon.md) for the word-level rewrite. If it was not supplied, do not invent one — diagnose from the symptom and hand back the prompt *shape* to rewrite into.
|
|
171
|
+
5. **How many generations this shot design has already had.** Three or more: stop diagnosing the prompt. The answer is the three-strike rule, regardless of the code. "I've tried this a bunch of times" is the answer.
|
|
172
|
+
6. **Whether it fails the same way every time.** Same way: deterministic — the prompt, the keyframe, or the plan is wrong (L1, L4, L5). Differently: stochastic — the shot is at the edge of the model's competence; two more pulls at L3 are reasonable, then L5. If unstated, assume deterministic; it is the cheaper mistake.
|
|
173
|
+
|
|
174
|
+
## Symptom-to-code quick index
|
|
175
|
+
|
|
176
|
+
| What the user says | Code |
|
|
177
|
+
|---|---|
|
|
178
|
+
| "It looks like a slideshow / PPT / a photo with a zoom" | F2 |
|
|
179
|
+
| "Nothing happens" | F2 or F4 |
|
|
180
|
+
| "The face changed", "it stops being her" | F1 |
|
|
181
|
+
| "Her clothes changed color halfway" | F1 |
|
|
182
|
+
| "The shade is not our red", "the logo changed shape" | F1 |
|
|
183
|
+
| "Everything melts", "it turns to soup" | F3 |
|
|
184
|
+
| "The background is breathing" | F3 |
|
|
185
|
+
| "She never falls / never opens it / never turns" | F4, F5, or F14 |
|
|
186
|
+
| "It just stops in the middle" | F5 |
|
|
187
|
+
| "The camera goes crazy", "it won't hold still" | F6 |
|
|
188
|
+
| "I said locked and it pushes in anyway" | F6 |
|
|
189
|
+
| "It doesn't match the last shot" | F7 (also F1, F12, F16, F18) |
|
|
190
|
+
| "The cup jumped to her other hand" | F7 |
|
|
191
|
+
| "There's a car in my 1930s street" | F8 |
|
|
192
|
+
| "A second person walked in" | F9 |
|
|
193
|
+
| "There are three hands" | F10 or F3 |
|
|
194
|
+
| "The fingers are wrong" | F10 |
|
|
195
|
+
| "There's gibberish text on the sign" | F11 |
|
|
196
|
+
| "A watermark appeared" | F11 |
|
|
197
|
+
| "The light flips to the other side" | F12 |
|
|
198
|
+
| "It got warmer/greener as it went" | F12 |
|
|
199
|
+
| "It's in slow motion and I didn't ask" | F13 |
|
|
200
|
+
| "It speeds up at the end" | F13 |
|
|
201
|
+
| "It feels weightless / floaty" | F14 |
|
|
202
|
+
| "The glass falls but doesn't break" | F14 |
|
|
203
|
+
| "The mouth doesn't match the words" | F15 |
|
|
204
|
+
| "It doesn't look like the rest of my film" | F16 |
|
|
205
|
+
| "His head is cut off" | F17 |
|
|
206
|
+
| "The extension has a visible jump" | F18 |
|
|
207
|
+
| "The envelope vanished", 「信封也消失了」 | F19 |
|
|
208
|
+
| "The cup was gone after he turned" | F19 |
|
|
209
|
+
| "It disappeared once his hand went over it" | F19 |
|
|
210
|
+
| "It came back but it's a different bottle" | F19 |
|
|
211
|
+
|
|
212
|
+
## Failure taxonomy F1–F19
|
|
213
|
+
|
|
214
|
+
Each entry: the symptom in user language, causes ranked by likelihood with the mechanism, fixes ranked by cost, and a before/after prompt pair on the same intent.
|
|
215
|
+
|
|
216
|
+
### F1 — Identity drift(人物漂移)
|
|
217
|
+
|
|
218
|
+
Identity here covers anything the audience is asked to recognise as the same thing twice: a face, a garment, a product's colour, a brand mark.
|
|
219
|
+
|
|
220
|
+
- Symptom: "the face changed", "around second five it stops being the same person", "her coat went from grey to brown", "the shade is not our red", "the logo changed shape".
|
|
221
|
+
- Cause 1: clip length. The face holds early and degrades with frame index — nothing in the clip pulls a late frame back toward the anchor image, so error that appears at second three is still there, plus more, at second seven. Note that this is a function of frame index, not of motion: a clip that looks static still spends its full identity budget, which is why F1 and F2 co-occur routinely and why the shared fix is duration rather than motion strength.
|
|
222
|
+
- Cause 2: too much rotation or occlusion. Every degree of head turn past ~45° and every pass behind an object asks for geometry the anchor image never showed, and what comes back in those regions is invented.
|
|
223
|
+
- Cause 3: weak anchor image — subject small in frame, soft focus, low contrast, or a face under roughly 15% of frame height.
|
|
224
|
+
- Cause 4: the subject carries a brand-defined colour or mark — a specified hue, a logotype, a bottle silhouette. That is a discrete constraint handed to a continuous generator: what comes back is a plausible neighbour of the value, and a neighbour of the brand red is not the brand red. Under grade and compression it drifts again.
|
|
225
|
+
- Fix L1: restate the identity anchors as nouns, not adjectives — "same braid, same grey wool coat with the torn left cuff", not "same beautiful woman".
|
|
226
|
+
- Fix L2: cut duration to 3–5 s and lower motion strength.
|
|
227
|
+
- Fix L4: rebuild the keyframe closer (MCU or tighter) so the face occupies more pixels. See [image-model-adapters.md](image-model-adapters.md).
|
|
228
|
+
- Fix L5: split into two shots and let the cut absorb the drift.
|
|
229
|
+
- Fix L5, Cause 4 only: stop generating the product. Past a tolerance no prompt closes, composite the real pack shot or the real mark over a generated surround, or shoot it practically and generate the environment around it. Judge the hue against the swatch, never against the previous take, and never sign off a generated hue as the brand hue. A hand operating that product in the same clip is on the irreducible list at the end of this file.
|
|
230
|
+
|
|
231
|
+
```text
|
|
232
|
+
BEFORE A woman walks through the market and looks around. 10 seconds, camera follows her.
|
|
233
|
+
AFTER From the first frame, she turns her head left over 2 seconds and stops, eyes fixed off-screen left. Camera locked, medium close-up. Same face, same braid, same grey wool coat with the torn left cuff, same stall behind her. 4 seconds.
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### F2 — No motion / slideshow(PPT感)
|
|
237
|
+
|
|
238
|
+
- Symptom: "it looks like a slideshow", "it's just a photo with a zoom", "nothing happens".
|
|
239
|
+
- Cause 1: the prompt describes a picture, not an event. Adjectives and atmosphere give the model nothing to animate, so it defaults to a camera push over a static plate.
|
|
240
|
+
- Cause 2: the keyframe is a pose with no implied next instant — subject at rest, symmetrical, weight evenly distributed, nothing mid-gesture.
|
|
241
|
+
- Cause 3: the tool's motion control is turned down, or it is in a mode that preserves the input still. Check the control surface before rewriting the prompt.
|
|
242
|
+
- Fix L1: write three motion layers — body, cloth or hair, environment. Every clip needs at least two of the three.
|
|
243
|
+
- Fix L1: give the body a weight shift. A shift of weight reads as life even when nothing else happens.
|
|
244
|
+
- Fix L2: raise motion strength one step.
|
|
245
|
+
- Fix L4: rebuild the keyframe mid-gesture — hand already lifting, foot already off the ground, fabric already displaced.
|
|
246
|
+
|
|
247
|
+
```text
|
|
248
|
+
BEFORE A man stands on a rooftop at dusk, moody atmosphere, wind, cinematic.
|
|
249
|
+
AFTER His coat hem and collar lift and drop in gusts. He shifts his weight onto his right foot and lowers his chin. Steam from the vent behind him drifts right and thins. Camera locked. End with his chin down and shoulders dropped.
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### F3 — Warping and morph mush
|
|
253
|
+
|
|
254
|
+
- Symptom: "everything melts", "it turns to soup", "the background is breathing", "her arm passes through her body".
|
|
255
|
+
- Cause 1: too many simultaneous motions. Subject motion plus camera motion plus environment motion demands a parallax that stays consistent from three moving sources at once; what comes back instead is a smear that splits the difference.
|
|
256
|
+
- Cause 2: fast or rotational motion. Rotation is the single most reliable way to produce mush: every degree of turn reveals surfaces the input never showed, and those regions come back invented rather than remembered.
|
|
257
|
+
- Cause 3: too many discrete objects in frame — a wide shot with 20 background elements gives 20 things to smear.
|
|
258
|
+
- Fix L1: remove the camera move, or remove the subject move. Keep one.
|
|
259
|
+
- Fix L2: lower motion strength, shorten to 3–4 s.
|
|
260
|
+
- Fix L5: push in one shot size. Fewer objects, fewer joints, fewer failures.
|
|
261
|
+
- Fix L6: if the melt starts at second 6 of an 8 s clip, use the first 5 s and cut.
|
|
262
|
+
|
|
263
|
+
```text
|
|
264
|
+
BEFORE She spins around fast and throws her arms out, camera orbits her.
|
|
265
|
+
AFTER Medium close-up, chest up. She turns 45 degrees to her left over 2 seconds, arms staying close to her body. Camera locked. End facing the window.
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### F4 — Wrong or absent action
|
|
269
|
+
|
|
270
|
+
- Symptom: "she doesn't do it", "he just stands there", "it ignored my prompt".
|
|
271
|
+
- Cause 1: the action is a mental state, not a body mechanic. "Realizes", "remembers", "decides", "feels betrayed" have no pixels. The model animates nothing because nothing was described.
|
|
272
|
+
- Cause 2: two or more primary verbs competing. The model picks one, usually the first, or blends them into neither.
|
|
273
|
+
- Cause 3: the action contradicts the keyframe — the prompt says she sits down but the image already has her seated.
|
|
274
|
+
- Fix L1: rewrite the interior state as an observable mechanic. Ask "what would a camera see?"
|
|
275
|
+
- Fix L1: delete every verb but one.
|
|
276
|
+
- Fix L4: rebuild the keyframe so the action has somewhere to go.
|
|
277
|
+
|
|
278
|
+
```text
|
|
279
|
+
BEFORE He realizes he has been betrayed and reacts emotionally.
|
|
280
|
+
AFTER He stops chewing. He sets the glass down on the table without letting go of it. His jaw tightens. End with his hand still on the glass, eyes down.
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### F5 — No end state
|
|
284
|
+
|
|
285
|
+
- Symptom: "it just stops in the middle", "she never finishes", "it ends nowhere".
|
|
286
|
+
- Cause 1: the prompt has no terminal pose. Without a specified last frame the model spends the whole duration on the middle of the action and the clip expires mid-gesture.
|
|
287
|
+
- Cause 2: duration too long for the action, so the model stretches the same motion and never resolves it.
|
|
288
|
+
- Cause 3: the action genuinely takes longer than the clip — a 6 s walk across a room in a 4 s slot.
|
|
289
|
+
- Fix L1: append an explicit terminal sentence. "End with [body part] in [position], [what has stopped moving]."
|
|
290
|
+
- Fix L2: match duration to the action, then add the hold you want at the end. A head turn is 1.5–2 s, three deliberate steps to a stop are about 3 s, a sit-down is 2.5 s; a held final pose is another 0.5–1 s.
|
|
291
|
+
- Fix L5: switch to first/last frame(首尾帧)where the tool exposes it — the end state stops being a request and becomes a constraint.
|
|
292
|
+
- Fix L6: trim to the last coherent frame and let the cut imply completion.
|
|
293
|
+
|
|
294
|
+
```text
|
|
295
|
+
BEFORE She walks toward the door. 8 seconds.
|
|
296
|
+
AFTER She takes three steps to the door and stops with her palm flat against it, not turning the handle. End on her palm on the wood, shoulders still, breath visible. 4 seconds: about 3 for the walk and the stop, the last second held.
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### F6 — Camera chaos or unrequested move
|
|
300
|
+
|
|
301
|
+
- Symptom: "the camera goes crazy", "I said locked and it pushes in anyway", "it drifts the whole time".
|
|
302
|
+
- Cause 1: multiple camera verbs in one prompt. Pan, orbit, and push cannot be resolved together and the model improvises.
|
|
303
|
+
- Cause 2: no camera instruction at all. Where a tool has no explicit lock control, silence is commonly read as licence to drift or push rather than as a request to hold.
|
|
304
|
+
- Cause 3: the tool's camera-control widget is set separately from the text and contradicts it. Check the control surface in [ai-video-tool-adapters.md](ai-video-tool-adapters.md).
|
|
305
|
+
- Fix L1: one camera behavior per clip, named, with a magnitude. Add explicit negatives for the moves you do not want.
|
|
306
|
+
- Fix L2: set motion strength low; where a numeric camera-motion value exists, set it near zero for a lock.
|
|
307
|
+
- Fix L5: if the shot needs two moves, it needs two clips.
|
|
308
|
+
|
|
309
|
+
```text
|
|
310
|
+
BEFORE Dynamic sweeping camera, dolly zoom, epic reveal, drone move.
|
|
311
|
+
AFTER One camera behavior only: a continuous slow push-in(推镜)on the lens axis, roughly 20 cm over the full 4 seconds, starting at the first frame and ending at the last. No pan, no tilt, no roll, no zoom, no orbit, no handheld shake, no pause and restart.
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Note that the AFTER holds to one behavior for the whole clip. "Locked for two seconds, then push in" is two behaviors and reproduces Cause 1; if you want a lock followed by a move, that is two clips joined on a cut.
|
|
315
|
+
|
|
316
|
+
### F7 — Continuity break across shots
|
|
317
|
+
|
|
318
|
+
- Symptom: "it doesn't match the last shot", "the cup jumped to her other hand", "she's suddenly on the wrong side".
|
|
319
|
+
- Cause 1: shot B was generated from a fresh keyframe rather than from shot A's last frame, so nothing carried over.
|
|
320
|
+
- Cause 2: the shots were generated in different sessions with different seeds, references, or prompt phrasing.
|
|
321
|
+
- Cause 3: a screen-direction or eyeline error in planning, not in generation — see coverage geometry in [cinematic-language.md](cinematic-language.md).
|
|
322
|
+
- Fix L1: state the inherited state explicitly at the top of shot B's prompt — position, hand state, prop, light direction, gaze.
|
|
323
|
+
- Fix L4: export shot A's last frame and use it as shot B's first frame.
|
|
324
|
+
- Fix L5: re-plan the pair with an intentional cut point — an eyeline match, an insert between them, or a match cut.
|
|
325
|
+
- Fix L6: place a 1 s cutaway between them; a mismatch the audience does not see side by side is not a mismatch.
|
|
326
|
+
|
|
327
|
+
```text
|
|
328
|
+
BEFORE Interior of the same room, she sits at the table and lifts her cup.
|
|
329
|
+
AFTER First frame is the last frame of the previous clip. She is already seated, both hands flat on the table, the green enamel cup at her right elbow, window light from camera-left. She lifts the cup 10 cm and stops. Camera locked, same MCU as before.
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### F8 — Anachronism and era leak
|
|
333
|
+
|
|
334
|
+
- Symptom: "there's a car in my 1930s street", "modern signage in a period scene", "his shoes are wrong".
|
|
335
|
+
- Cause 1: the default dressing for a named location type is contemporary. Naming a decade shifts the output without clearing those defaults, so modern fixtures and materials keep arriving in frames whose costume and architecture are otherwise right.
|
|
336
|
+
- Cause 2: the era lived only in the prompt, not in the keyframe. Text-level era instructions are weak; pixel-level era instructions are strong.
|
|
337
|
+
- Cause 3: the negative list names categories ("no modern objects") the model cannot resolve into instances.
|
|
338
|
+
- Fix L1: replace category negatives with nameable ones — a material, a process, or a specific object. "No modern objects" is unresolvable; "no moulded plastic" is not. Keep it to the four-to-six-item budget in [prompt-lexicon.md](prompt-lexicon.md) and check that each item is actually anachronistic. Wristwatches and eyeglasses are wrong to exclude from a 1930s scene; moulded plastic frames and digital displays are right.
|
|
339
|
+
- Fix L1: specify light sources by period technology; lighting technology dates a frame faster than costume does.
|
|
340
|
+
- Fix L4: build the era into the keyframe with an image model, then animate. Text-level era instructions are the cheap attempt; this is the reliable one, so do not spend more than one prompt edit before coming here.
|
|
341
|
+
|
|
342
|
+
```text
|
|
343
|
+
BEFORE 1930s Shanghai street at night, crowded, period accurate.
|
|
344
|
+
AFTER Night street, 1930s Shanghai. Light comes only from gas lamps, paper lanterns, and bare filament bulbs. Cars are pre-war: upright grilles, spoked wheels, painted steel. Signage is hand-lettered on wood and hanging cloth; the road is unmarked stone; shoes are leather or cloth. Negatives, five: no LED or fluorescent light, no moulded plastic, no printed or backlit signage, no nylon or synthetic fabric, no aluminium.
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### F9 — Extra people or objects appearing
|
|
348
|
+
|
|
349
|
+
- Symptom: "a second person walked in", "there are two of her", "objects appear out of nothing".
|
|
350
|
+
- Cause 1: the background has open, walkable depth — a corridor, a concourse, a street receding — so there is somewhere for a body to be, and the model fills it. Depth plus ambiguity is the invitation; a flat surface close behind the subject is not, which is why the L4 fix below works.
|
|
351
|
+
- Cause 2: the prompt implies population — "busy station", "crowded market" — and the model keeps adding until the description is satisfied.
|
|
352
|
+
- Cause 3: camera motion reveals off-screen space, and off-screen space is generated fresh each time.
|
|
353
|
+
- Fix L1: state the count explicitly — "exactly one person in frame, no one enters frame".
|
|
354
|
+
- Fix L3: intermittent duplication often clears on one more pull.
|
|
355
|
+
- Fix L4: rebuild the keyframe with a near, occluding background — a wall, a curtain, a shallow-focus wash — so there is no readable depth to populate.
|
|
356
|
+
- Fix L4.5: where the intruder sits at the frame edge and the take is otherwise right, a v2v reframe crops it out without re-rolling the shot.
|
|
357
|
+
- Fix L5: tighten the frame so there is no room for a second body.
|
|
358
|
+
|
|
359
|
+
```text
|
|
360
|
+
BEFORE In the busy station hall she waits for the train.
|
|
361
|
+
AFTER Medium close-up. She occupies the left third of frame; behind her, a blank tiled wall and one out-of-focus pillar. Exactly one person in frame. No one enters or crosses frame. Camera locked.
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### F10 — Anatomy failure (hands, limbs, eyes, teeth)
|
|
365
|
+
|
|
366
|
+
- Symptom: "the fingers are wrong", "three hands", "her eyes go dead", "the teeth merge when he smiles".
|
|
367
|
+
- Cause 1: hands and teeth are small, high-frequency, self-occluding structures, and nothing holds their shape from one frame to the next. A hand that is correct in frame 1 has usually drifted by frame 40, and it drifts further every time it closes or crosses itself.
|
|
368
|
+
- Cause 2: the failing part is small in frame. Below roughly 8% of frame height, a hand has too few pixels to stay coherent.
|
|
369
|
+
- Cause 3: the hand is doing precision work (see the irreducible list).
|
|
370
|
+
- Fix L1: keep hands together, closed, in contact with the body, or out of frame. "Hands stay clasped at his waist" prevents more failures than any negative prompt.
|
|
371
|
+
- Fix L3: intermittent anatomy failure is the one case where seed roulette is genuinely efficient, because the defect is stochastic rather than baked into the prompt. Two pulls.
|
|
372
|
+
- Fix L5: substitute an insert — cut to the object, not the hand operating it.
|
|
373
|
+
- Fix L6: trim before the smile, mask, or cut on the reaction.
|
|
374
|
+
|
|
375
|
+
```text
|
|
376
|
+
BEFORE He counts the coins in his palm and pushes them across the counter.
|
|
377
|
+
AFTER Extreme close-up on the counter surface. His hand enters frame from the right already closed around the coins, sets the fist down, opens flat. Fingers stay together. 2 seconds, camera locked.
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### F11 — Text and watermark artifacts
|
|
381
|
+
|
|
382
|
+
- Symptom: "gibberish text on the sign", "a watermark appeared", "there are captions burned in".
|
|
383
|
+
- Cause 1: the keyframe contained text or a logo, so the video model perpetuates and degrades it.
|
|
384
|
+
- Cause 2: the scene type arrives with lettering attached whether or not you asked — storefronts, newspapers, screens, packaging.
|
|
385
|
+
- Cause 3: stock-like compositions — a centred subject, a clean gradient background, an obvious commercial framing — come back with stock furniture attached. Corner watermarks and logo blocks arrive with the look, not with anything you asked for.
|
|
386
|
+
- Fix L1: add explicit negatives for text, captions, subtitles, logos, watermarks, and UI overlays.
|
|
387
|
+
- Fix L4: rebuild the keyframe with text out of focus, occluded, at a raking angle, or removed entirely.
|
|
388
|
+
- Fix L5: if the story needs the words, deliver them by voice, by a designed title card in the edit, or by a composited still — not by generation.
|
|
389
|
+
|
|
390
|
+
```text
|
|
391
|
+
BEFORE A newspaper headline announces the factory closure.
|
|
392
|
+
AFTER Close-up of a folded newspaper on the table, headline block out of focus behind a coffee cup. Only the block shape of the type and the rhythm of the columns read; no individual letterform is legible. No captions, no watermark, no logo.
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### F12 — Lighting or color drift
|
|
396
|
+
|
|
397
|
+
- Symptom: "the light flips to the other side", "it gets warmer as it goes", "the shadows swap".
|
|
398
|
+
- Cause 1: no named light source. With nothing in the prompt to hold it to, the lighting is free, and it comes back different between generations and drifts inside a single clip.
|
|
399
|
+
- Cause 2: subject rotation. As the head turns, the light turns with it — the key stays on the same side of the *face* instead of the same side of the *room*, which is the one thing a real lamp cannot do.
|
|
400
|
+
- Cause 3: nothing in the frame anchors exposure. With no visible source, no clipped highlight, and no true black in shot, overall level and colour wander across a long clip, because each frame matches its neighbour more closely than it matches frame 1.
|
|
401
|
+
- Fix L1: name the source, its side, its quality, and forbid change — "direct sun through the window camera-left, hard-edged shadows, right side of the face stays in shadow throughout". Name the quality that the source actually produces: an undressed window is a large soft source, so "hard window light" only makes sense as direct sun or a narrow slot. Ratios and motivation live in [lighting-and-color.md](lighting-and-color.md).
|
|
402
|
+
- Fix L2: shorten; drift is cumulative.
|
|
403
|
+
- Fix L4: rebuild the keyframe with unmistakable directional light — a visible practical in frame anchors the model far better than a described one.
|
|
404
|
+
- Fix L4.5: a v2v relight pass on the delivered clip imposes one key side and one colour temperature across its whole length; take it before L4 whenever the blocking and the performance are already right.
|
|
405
|
+
- Fix L6: stabilize small drift with a grade in the edit before regenerating.
|
|
406
|
+
|
|
407
|
+
```text
|
|
408
|
+
BEFORE She sits by the window and turns toward camera.
|
|
409
|
+
AFTER Direct sun through the window camera-left as the only key, hard-edged, roughly 4:1 lit side to shadow side measured on her face — two stops down on the shadow side; the right side of her face stays in shadow the whole clip. She turns 30 degrees toward camera and the shadow edge crosses her nose. Do not change light direction, color temperature, or exposure.
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### F13 — Speed wrong (too fast, too slow, ramping)
|
|
413
|
+
|
|
414
|
+
- Symptom: "it's in slow motion and I didn't ask", "it speeds up at the end", "everything is rubbery".
|
|
415
|
+
- Cause 1: action-to-duration mismatch. A 2 s action in an 8 s clip comes back either as slow motion or as an action that finishes early and then coasts or ramps to fill the tail; a 6 s action in a 4 s clip comes back as a blur.
|
|
416
|
+
- Cause 2: no pace instruction. Left unstated, human motion returns slow and floaty far more often than brisk — the unspoken default is nearer a drift than a walk.
|
|
417
|
+
- Cause 3: the delivered frame rate was reached by interpolation rather than by generating every frame, which reads as glide — contact softens, footfalls stop landing, the whole clip feels retimed. Where the tool says what it generates versus what it delivers, check it before blaming the prompt.
|
|
418
|
+
- Fix L1: give the pace a number or a physical referent — "walking pace, one footfall roughly every 0.55 seconds", "constant speed, no ramp".
|
|
419
|
+
- Fix L2: adjust duration to the action, not the other way around.
|
|
420
|
+
- Fix L6: retime in the edit. A clip at 115% with a cut before the ramp usually beats a regeneration.
|
|
421
|
+
|
|
422
|
+
```text
|
|
423
|
+
BEFORE He runs down the corridor.
|
|
424
|
+
AFTER He runs down the corridor at a steady jog: one footfall roughly every 0.35 seconds, four footfalls, so the run lands inside 1.5 seconds. Camera tracking beside him, matching his speed. Constant speed. No slow motion, no speed ramp, no time-lapse. 2 seconds total.
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### F14 — Physics violation (gravity, weight, collision, liquid)
|
|
428
|
+
|
|
429
|
+
- Symptom: "it feels weightless", "the glass falls but doesn't break", "he pushes the door and it opens by itself", "the water is jelly".
|
|
430
|
+
- Cause 1: nothing in the pipeline simulates physics. Motion comes back by resemblance to motion that looked right, and free fall, impact, fracture, splashing, and sustained load are exactly the cases where resemblance is not enough.
|
|
431
|
+
- Cause 2: the moment of contact is the failure point. Objects interpenetrate or re-separate at the instant they touch.
|
|
432
|
+
- Cause 3: the shot asks for a full event (approach, contact, consequence) inside one clip.
|
|
433
|
+
- Fix L1: describe the *anticipation* rather than the event — the tip past balance, the weight transfer, the flinch before impact.
|
|
434
|
+
- Fix L5: split at the moment of contact. Contact happens on the cut.
|
|
435
|
+
- Fix L5: move the event off-screen and show the consequence. This is the widest-applicability move in this file — it appears in the fix list for F10, F14, and F15 — because it removes the thing being simulated instead of asking for it more precisely.
|
|
436
|
+
- Fix L6: sound sells the impact the picture failed to render. See [sound-and-dialogue.md](sound-and-dialogue.md).
|
|
437
|
+
|
|
438
|
+
```text
|
|
439
|
+
BEFORE The vase falls off the table and shatters on the floor.
|
|
440
|
+
AFTER clip A Locked on the table edge. The vase tips past its balance point and leaves frame at the bottom. 1.5 seconds.
|
|
441
|
+
AFTER clip B Locked wide of the floor. Shards already scattered, dust settling in the light, one shard still rocking to a stop. 2 seconds.
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### F15 — Audio and lip-sync mismatch
|
|
445
|
+
|
|
446
|
+
- Symptom: "the mouth doesn't match the words", "her lips move but there's no sound", "the room sounds wrong".
|
|
447
|
+
- Cause 1: mouth shapes and the audio track come back only loosely tied to each other. Sync that looks right on the first two words has usually slipped by the sixth, and the gap widens with line length. Where lip-sync is offered at all, plan for it to hold over short lines only.
|
|
448
|
+
- Cause 2: two speakers in one clip, or pronouns instead of labels, so the model cannot attribute lines.
|
|
449
|
+
- Cause 3: generated ambience does not match the visible space — an interior with exterior reverb.
|
|
450
|
+
- Fix L1: one speaker, one line, six words or fewer, mouth clearly visible, MCU or tighter, clip ≤ 4 s. Six words is the ceiling for a line you intend to lip-sync on camera, not the general dialogue limit — that lives in [sound-and-dialogue.md](sound-and-dialogue.md).
|
|
451
|
+
- Fix L5: hide the mouth. Three-quarters away, over-the-shoulder, hand at the face, or a cutaway to the listener — then the line is VO in the edit and always syncs.
|
|
452
|
+
- Fix L5: design the scene so the important lines land on listener shots. Reaction coverage is free insurance.
|
|
453
|
+
- Fix L6: replace generated ambience entirely in the edit; treat generated audio as a scratch track.
|
|
454
|
+
|
|
455
|
+
```text
|
|
456
|
+
BEFORE He says "you were never really here, and we both know it" angrily.
|
|
457
|
+
AFTER Medium close-up, he is turned three-quarters away, mouth not visible. His jaw tightens and he exhales once through the nose. Line delivered as voice-over in the edit; on-screen mouth movement is not required.
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### F16 — Style drift
|
|
461
|
+
|
|
462
|
+
- Symptom: "it doesn't look like the rest of my film", "shot 6 is glossier than shot 5", "the grade changed".
|
|
463
|
+
- Cause 1: the style lives in adjectives ("moody", "arthouse") which every generation interprets differently.
|
|
464
|
+
- Cause 2: shots generated from keyframes made in different sessions, models, or aspect settings.
|
|
465
|
+
- Cause 3: a style lens was applied in planning but never translated into prompt-level mechanics.
|
|
466
|
+
- Fix L1: convert the style into measurable mechanics — focal length, depth of field, palette by name, contrast level, grain, key quality. Mechanics reproduce; moods do not.
|
|
467
|
+
- Fix L4: regenerate keyframes from one seed and one reference image so the film shares a source look.
|
|
468
|
+
- Fix L4.5: a v2v regrade or restyle pass pulls the delivered clip onto the film's look without regenerating the take under it.
|
|
469
|
+
- Fix L6: unify in the grade. A consistent LUT across shots hides more drift than any prompt.
|
|
470
|
+
|
|
471
|
+
```text
|
|
472
|
+
BEFORE In the style of a moody arthouse film, beautiful cinematography, atmospheric.
|
|
473
|
+
AFTER 40 mm lens look at a wide stop: the subject sharp, the background soft but still readable as a place. Muted green and grey palette, soft overcast key, mid contrast, visible grain in the shadows. Exactly one saturated element in frame — a warm practical bulb; nothing else in frame is saturated.
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### F17 — Framing and crop error
|
|
477
|
+
|
|
478
|
+
- Symptom: "his head is cut off", "she's too small", "it came out square", "the subject sits dead center and I asked for the left third".
|
|
479
|
+
- Cause 1: aspect mismatch between the keyframe and the video output — the tool crops or pads to fit, and neither preserves your composition.
|
|
480
|
+
- Cause 2: composition given as a feeling rather than as frame geography.
|
|
481
|
+
- Cause 3: camera motion reframes over the clip and ends outside the intended composition.
|
|
482
|
+
- Fix L1: state framing in frame-relative terms — "eyes on the upper third line, headroom about 10% of frame height, subject on the left third, hands inside frame". Headroom scales with size: roughly 10% of frame height on a medium or MCU, closer to 5% on a full-figure wide, near zero on a close-up where you are cropping the top of the head deliberately.
|
|
483
|
+
- Fix L2: set the output aspect to the delivery aspect where the tool exposes it, before spending a generation.
|
|
484
|
+
- Fix L4: rebuild the keyframe at the delivery aspect and the intended size, and let the video model inherit it. Never crop a 16:9 keyframe into 9:16 and expect the composition to survive.
|
|
485
|
+
- Fix L4.5: a v2v reframe pass to the delivery aspect, where the framing is the only error — it re-renders picture outside the crop instead of spending the resolution you have.
|
|
486
|
+
- Fix L6: reframe in the edit only if you have resolution to spare.
|
|
487
|
+
|
|
488
|
+
```text
|
|
489
|
+
BEFORE Wide shot of the two of them talking at the table.
|
|
490
|
+
AFTER 16:9. Full-figure wide, both inside frame, headroom about 5% of frame height above the taller one, both sets of feet visible, table edge on the lower third line. Camera does not zoom or reframe; the composition at the last frame is the composition at the first.
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
### F18 — Seam or loop artifact on extend
|
|
494
|
+
|
|
495
|
+
- Symptom: "the extension has a visible jump", "there's a pulse where the clips join", "she resets to the starting pose".
|
|
496
|
+
- Cause 1: the extension behaves as though the last frame were a fresh still — motion restarts from rest instead of continuing, which reads as a stop-start pulse at the join.
|
|
497
|
+
- Cause 2: color or exposure differs slightly between segments, so the join flashes.
|
|
498
|
+
- Cause 3: the extend prompt repeats the original prompt, so the model replays the same action from the top.
|
|
499
|
+
- Fix L1: write the extension prompt as a *continuation* of a motion already in progress, naming the exact in-progress state.
|
|
500
|
+
- Fix L2: shorten each segment; short extends drift less.
|
|
501
|
+
- Fix L5: stop extending. Two designed shots joined on a cut beat one extended shot with a scar.
|
|
502
|
+
- Fix L6: hide the seam — cut away for 0.5 s, place a whip or an object wipe on the join, or lay a 4–6 frame dissolve across it. See [editing-and-assembly.md](editing-and-assembly.md) for which of these the cut can carry.
|
|
503
|
+
|
|
504
|
+
```text
|
|
505
|
+
BEFORE Continue the scene, she keeps walking down the hall.
|
|
506
|
+
AFTER The extension begins exactly where the previous clip ends: she is mid-step, right foot forward, weight still transferring, hand halfway to the rail. Complete that same step and take one more. Do not reset her pose. Do not restart the camera move. Same exposure and color.
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### F19 — Object permanence break(对象消失)
|
|
510
|
+
|
|
511
|
+
- Symptom: "the envelope vanished", "the cup was gone after he turned", "it disappeared once his sleeve went over it", "it comes back but it's a different bottle", 「信封也消失了」.
|
|
512
|
+
- Cause 1: occlusion and re-reveal. Nothing in the pipeline carries a persistent object memory. A prop that passes behind a hand, a body, a doorframe, or the frame edge is not stored and restored — the covered region is regenerated when it uncovers, and the cheapest thing to regenerate there is the surface behind it. This is the dominant cause by a wide margin, and it fires even on short clips.
|
|
513
|
+
- Cause 2: the prop is small or low-contrast in frame. Below roughly 5% of frame height, or sitting on a surface of the same value, a prop has too few pixels to survive the frames in which nothing else in the description references it.
|
|
514
|
+
- Cause 3: clip length. Object identity decays with frame index the same way face identity does. Past about 5 s a prop that is handled, small, or repeatedly re-framed softens, shifts colour, changes its count of edges, or merges into what it rests on. A large, static, continuously visible object holds far longer — which is why the environmental and product band in [ai-video-tool-adapters.md](ai-video-tool-adapters.md), which owns duration strategy, still runs to 8–12 s.
|
|
515
|
+
- Cause 4: the prop leaves frame. Off-screen space is generated fresh every frame, so anything that exits and re-enters re-enters as a new object — usually a different size, a different colour, or a different orientation.
|
|
516
|
+
- Fix L1: keep the prop continuously in frame and unoccluded, and say so as a fact of the whole clip, not as a wish: "the cream envelope stays flat in the lower right of frame for the entire shot, never covered by his hand, never leaving frame".
|
|
517
|
+
- Fix L1: name the prop with the two or three nouns the keyframe gave it — colour, material, one edge condition — every time you mention it. A generator can hold "cream paper envelope, one corner creased"; it cannot hold "the envelope".
|
|
518
|
+
- Fix L2: cut duration to 4 s or less wherever the prop is handled, occluded, or small in frame. Every second past that is budget spent holding something nothing is anchoring.
|
|
519
|
+
- Fix L5: put the occlusion on a cut. The hand covers the prop at the end of clip A; clip B opens with the prop uncovered in the state you want. The transition the model cannot survive becomes an edit the audience never questions.
|
|
520
|
+
- Fix L5: switch to first/last frame(首尾帧)where the tool exposes it, with the prop specified and visible in both stills, so its final state is a constraint rather than a request.
|
|
521
|
+
- If the prop must be occluded, re-revealed, and legible inside one continuous clip, that shot is on the irreducible list at the end of this file. Re-stage it; do not buy more generations.
|
|
522
|
+
|
|
523
|
+
```text
|
|
524
|
+
BEFORE He slips the envelope under his coat, then pulls it out again and holds it up. 8 seconds.
|
|
525
|
+
AFTER Locked medium close-up on the tabletop. The cream paper envelope, one corner creased, lies flat in the lower right of frame and stays there for the whole clip — never covered, never leaving frame, never changing colour. His hand enters from frame left, presses two fingers onto its near edge, and stops. End with the fingers still on the paper and the envelope in the same place it started. 4 seconds.
|
|
526
|
+
```
|
|
527
|
+
|
|
528
|
+
## Prevention map: failure to pipeline step
|
|
529
|
+
|
|
530
|
+
A code that appears once is a generation problem. The same code three times in a project is a process problem at the step below. Fix the step, not the prompt.
|
|
531
|
+
|
|
532
|
+
| Code | Owning step | The check that should have caught it |
|
|
533
|
+
|---|---|---|
|
|
534
|
+
| F1 | 8 Keyframe strategy | Face occupies enough of the keyframe; clip length inside the identity budget |
|
|
535
|
+
| F1, brand colour or mark | 1 Intake & scope | Hero product, brand hue and logotype identified as composite-only before any generation is budgeted |
|
|
536
|
+
| F2 | 6 Blocking & staging | Every shot row has start → motion → end, and names a cloth or environment layer |
|
|
537
|
+
| F3 | 7 Shot list & coverage | One motion source per shot; shot size tight enough for the action |
|
|
538
|
+
| F4 | 6 Blocking & staging | Action written as a body mechanic, not an interior state |
|
|
539
|
+
| F5 | 6 Blocking & staging | Every shot row states an end position, not just a start position and an action |
|
|
540
|
+
| F6 | 7 Shot list & coverage | Exactly one named camera move with a magnitude, per shot |
|
|
541
|
+
| F7 | 8 Keyframe strategy | End state of shot N is recorded as start state of shot N+1 |
|
|
542
|
+
| F8 | 1 Intake & scope | Era and forbidden-object list captured before any keyframe is generated |
|
|
543
|
+
| F9 | 6 Blocking & staging | Frame population count declared per shot |
|
|
544
|
+
| F10 | 7 Shot list & coverage | Precision hand work reassigned to an insert before generation |
|
|
545
|
+
| F11 | 8 Keyframe strategy | Keyframes audited for text and logos before animation |
|
|
546
|
+
| F12 | 5 Director's book | Named key source and side per location, carried into every prompt |
|
|
547
|
+
| F13 | 7 Shot list & coverage | Duration budgeted from the action's real length, not from the tool default; pace stated in the shot row |
|
|
548
|
+
| F14 | 6 Blocking & staging | Contact and impact moments scheduled to fall on cuts |
|
|
549
|
+
| F15 | 11 Sound & dialogue | Lines assigned to VO or to listener coverage at plan time |
|
|
550
|
+
| F16 | 4 Style lens | Style translated into mechanics before shot 1 |
|
|
551
|
+
| F17 | 1 Intake & scope | Delivery aspect fixed before keyframes are generated |
|
|
552
|
+
| F18 | 12 Edit & assembly | Long beats planned as cut sequences, not as extends |
|
|
553
|
+
| F19 | 8 Keyframe strategy | Every prop that must persist is registered in the continuity bible and either held unoccluded in frame for the whole clip, or handed to a cut — no occlusion-and-reveal inside one generation |
|
|
554
|
+
|
|
555
|
+
Track the counts in the retry log described in [production-workflow.md](production-workflow.md).
|
|
556
|
+
|
|
557
|
+
## Irreducible failures
|
|
558
|
+
|
|
559
|
+
These do not respond to prompt craft. As of writing, models across every family this file covers fail them consistently enough to plan around, and the fourth attempt costs the same as the first. Re-test rather than assume if you are reading this a year later — but plan the shot as if the failure stands. The directorial answer is to get the story value without asking for the thing that fails.
|
|
560
|
+
|
|
561
|
+
- Sustained precise hand work — tying, threading, writing, buttoning, playing an instrument, knife work.
|
|
562
|
+
- Why: hands self-occlude constantly and nothing holds their shape across frames; coherence collapses past roughly 1.5 s of continuous manipulation.
|
|
563
|
+
- Workaround: intent, then off-screen, then result. Medium shot of the person beginning, cut to an insert of the finished object, cut to their face. Or an ECU under 1.5 s with the hand entering frame already in position.
|
|
564
|
+
- Say it like this: "His hand enters frame already holding the needle. He lowers it toward the cloth. 1.2 seconds." Then cut.
|
|
565
|
+
- A hand operating a branded product in one clip — applying the lipstick, twisting the cap, tilting the bottle to camera. The most-requested commercial shot there is, and the one that most reliably fails.
|
|
566
|
+
- Why: three failures compound and each is independently sufficient. Fine manipulation collapses past roughly 1.5 s of continuous contact (the entry above). The brand mark is letterforms or a trademarked silhouette, so it comes back as its own lookalike (F11). And the hue plus the specular roll-off on lacquer, metal or glass is a discrete target a continuous generator only approximates (F1, Cause 4). Multiply three per-clip probabilities and the fourth attempt is no likelier than the first.
|
|
567
|
+
- Workaround: the product stays static and the **light** moves. Put the hero on a fixed mark, hold the camera, and travel a soft highlight across it — the shot reads as motion without asking the model to move the one thing that must not change. Give the hand its own clip: it enters already in position, holds under 1.5 s, and contact happens on the cut. Composite the real product over the generated surround wherever the mark or the hue has to be exact.
|
|
568
|
+
- Say it like this: clip A, "The tube is static at frame centre, upright, label facing camera. A soft highlight travels across it left to right over 2 seconds. Camera locked. No hand in frame." Clip B, "Her fingers enter from frame right already closed around the tube and lift it 3 cm. 1.2 seconds." Cut between them.
|
|
569
|
+
- Readable text — signage, letters, newspapers, screens, labels, numbers on a clock face.
|
|
570
|
+
- Why: what comes back is the look of letterforms without the spelling — the right rhythm of strokes, the wrong word.
|
|
571
|
+
- Workaround: text out of focus, at a raking angle, partially occluded, or under three characters. Carry the content by voice, by a cutaway you composite in the edit, or by a title card.
|
|
572
|
+
- Say it like this: "The label is soft and half-covered by his thumb; only the red band is readable."
|
|
573
|
+
- Multi-person contact choreography — handshake, hug, fight, dance, passing an object, a kiss.
|
|
574
|
+
- Why: two bodies have to stay coherent at once, and the contact frame is where it breaks — limbs interpenetrate, fuse, or pass through each other at the instant they touch.
|
|
575
|
+
- Workaround: split by person. Two singles joined on the cut, with matched eyelines and matched screen direction. Contact happens between the frames.
|
|
576
|
+
- Say it like this: Clip A, "she extends her hand toward camera-right and stops." Clip B, "his hand closes, already joined, and pulls back." Cut on the contact.
|
|
577
|
+
- Exact object permanence over long clips — one specific prop surviving 8+ s, or surviving an occlusion and re-reveal. This is the irreducible tail of **F19**; the coded entry above covers the cases prompt craft and a cut still reach.
|
|
578
|
+
- Why: an object that passes behind a body or the frame edge comes back different when it reappears — nothing carries its identity across the occlusion.
|
|
579
|
+
- Workaround: keep the prop continuously in frame, keep clips ≤ 5 s, or let the reveal be the cut rather than a camera move. Register the prop's state in [continuity-bible.md](continuity-bible.md) so the next keyframe rebuilds it correctly.
|
|
580
|
+
- Say it like this: "The green enamel cup stays in the lower right of frame for the whole shot, never occluded, never leaving frame. 4 seconds." If it has to disappear and come back, the reappearance is a new shot built from a new keyframe.
|
|
581
|
+
- Complex reflections — mirrors with a matched subject, water with a full reflected figure, glass showing both interior and exterior.
|
|
582
|
+
- Why: a mirror image is a second view of the same scene that has to agree with the first, and in practice the reflection drifts away from its source instead of tracking it.
|
|
583
|
+
- Workaround: shoot into the reflection only, with the real subject out of frame. Or break the surface — rain, steam, dust, condensation, a cracked or dark mirror that reflects a shape rather than a face.
|
|
584
|
+
- Say it like this: "Only the reflection is in frame; rain breaks the surface every second or so."
|
|
585
|
+
- Consistent crowd faces — a background of individuated people who stay themselves.
|
|
586
|
+
- Why: whatever consistency a clip has goes to the foreground; background faces change from second to second.
|
|
587
|
+
- Workaround: crowds as silhouette, backs of heads, out-of-focus bokeh, or motion blur. Keep named faces to two per frame. Crowd wides under 3 s.
|
|
588
|
+
- Say it like this: "Behind her, the crowd is backlit silhouette only — no faces resolved, no eyes, heads and shoulders as dark shapes drifting left. Two people in focus: her, and the man at her right shoulder."
|
|
589
|
+
- Exact counts and legible quantities — "seven candles", "three coins", a dial reading a specific value.
|
|
590
|
+
- Why: quantity is unstable frame to frame. Count the candles at the start and again at the end and the numbers differ, whatever the prompt said.
|
|
591
|
+
- Workaround: use one, two, or many. If a number matters to the story, put it in dialogue or in an insert built as a still image, not in generated motion.
|
|
592
|
+
- Say it like this: "A single candle burns at the centre of the table; the rest of the table is dark." If the script needs seven, the line "seven of them, one for each year" carries the number and the picture only has to show flame.
|
|
593
|
+
|
|
594
|
+
When a shot needs one of these and the story genuinely depends on it, the honest options are: build it as a still image and animate only the camera; shoot it practically; or rewrite the beat. Say so plainly rather than burning the generation budget.
|