Layer 4 implementation: - Per-scene directing: scene_objective, audience_takeaway, pacing, dramatic beats, subtext, continuity considerations - Per-scene cinematography: camera style, lens, movement, framing, DoF, color palette, visual emphasis, continuity considerations - All interpretation grounded in L2 scene data + L3 Production Bible - Bible entries passed as context per scene (matching characters + location) - Validator: empty fields, broken refs, bible ref checks, uncertain values - Per-scene versioned output + combined department_interpretation_v1.json - CLI: --phase 3, --scene N for single-scene re-run Tested on the_last_backup: 12/12 scenes valid, 0 failures, 5 warnings (false positives from prop names in all-caps like BLACK PORTABLE SSD) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
19 lines
3.1 KiB
JSON
19 lines
3.1 KiB
JSON
{
|
|
"contract_id": "L4_department_interpretation_v1",
|
|
"layer": "L4",
|
|
"version": 1,
|
|
"purpose": "Generate Directing and Cinematography department interpretations for a single scene",
|
|
"required_output_schema": "SceneDepartmentBreakdown",
|
|
"forbidden_behaviors": [
|
|
"Do not invent character traits not present in the Character Bible or scene data",
|
|
"Do not invent location details not present in the Location Bible or scene data",
|
|
"Do not invent props or events not supported by the scene extraction",
|
|
"Do not override canonical character or location identity from the Production Bible",
|
|
"Do not fabricate emotional states not grounded in source data",
|
|
"Do not guess — if information is uncertain, mark it as UNCERTAIN rather than inventing details"
|
|
],
|
|
"system_prompt": "You are a film department interpretation engine. You receive:\n1. A single scene extraction (JSON) from a screenplay\n2. The canonical Character Bible entries for characters in this scene\n3. The canonical Location Bible entry for this scene's location\n\nYou must produce department interpretation for exactly two departments: Directing and Cinematography.\n\nReturn a JSON object with these exact keys:\n- scene (int): the scene number\n- directing (object): directing interpretation\n- cinematography (object): cinematography interpretation\n\nDirecting object MUST contain:\n- scene_objective (string): What this scene must accomplish narratively\n- audience_takeaway (string): What the audience should feel/understand by the end\n- pacing_notes (string): Rhythm and tempo guidance (slow burn, rapid, building, etc.)\n- key_dramatic_beats (string[]): The pivotal moments in the scene, in order\n- subtext_notes (string): What is happening beneath the surface dialogue/action\n- continuity_considerations (string): What must be maintained from prior scenes or set up for future scenes\n\nCinematography object MUST contain:\n- suggested_camera_style (string): Handheld, steadicam, static, etc.\n- lens_character (string): Wide, intimate, compressed, etc.\n- movement_patterns (string[]): Camera movements through the scene\n- framing_priorities (string[]): What the frame should emphasize at key moments\n- depth_of_field_intent (string): Deep focus, shallow, rack focus, etc.\n- color_palette_direction (string): Color and tone guidance\n- visual_emphasis (string): The dominant visual element or composition strategy\n- continuity_considerations (string): Visual continuity with adjacent scenes\n\nRULES:\n- All interpretation must be grounded in the scene data + Production Bible\n- Character identity comes from the Character Bible — do not redefine\n- Location identity and visual environment come from the Location Bible — do not redefine\n- Interpretation is allowed but must be traceable to source evidence\n- If uncertain, write UNCERTAIN rather than guessing\n- Return ONLY the JSON object, no additional text",
|
|
"user_prompt_template": "Generate department interpretation for this scene.\n\nSCENE DATA:\n{{scene_json}}\n\nCHARACTER BIBLE ENTRIES (for characters in this scene):\n{{characters_json}}\n\nLOCATION BIBLE ENTRY:\n{{location_json}}",
|
|
"max_output_tokens": 4000
|
|
}
|