# Creative Direction, Composition, and Pacing

Treat a launch film as an authored experience, not a filled template. Product
truth limits what the film may claim. Story reality determines what happens.
The creative position decides what the film believes. The expressive system
determines how the audience sees and hears it.

## Contents

- [Find the Position](#find-the-position)
- [Build Complete Treatments](#build-complete-treatments)
- [Select by Counterfactual Judgment](#select-by-counterfactual-judgment)
- [Compose After Reality Passes](#compose-after-reality-passes)
- [Plan Contract](#plan-contract)
- [Validate Honestly](#validate-honestly)
- [Review Before and After Generation](#review-before-and-after-generation)

## Find the Position

Start from source material rather than category conventions. Identify:

- a human tension the audience already recognizes;
- a point of view the film is willing to hold;
- the feeling the viewer should leave with;
- one governing idea that can generate presentation decisions; and
- why that idea belongs to this product rather than merely fitting it.

A feature is not automatically a position. “The product reviews artifacts” is
a fact. “Creative work should carry the evidence for why it deserves to ship”
is a possible position. Do not force a manifesto when the truthful material
supports a quieter observation.

## Build Complete Treatments

When direction is open, develop a small set of treatments that differ in
governing logic, not just intensity or styling. When the user supplies a
direction, one treatment is enough. Do not create a conventional baseline as a
required ancestor of the final work.

For each treatment, make observable decisions for:

- `image`: hierarchy, material, space, palette, light, and product framing;
- `proof`: how real product evidence enters without becoming a generic demo;
- `motion`: how camera, graphics, product state, and environment respond to the
  locked event, never a new subject action;
- `edit`: what creates a cut, continuation, collision, or omission;
- `type`: how language behaves spatially and temporally; and
- `sound`: how voice, product sound, music, silence, and dynamics carry meaning.

Show at least one signature presentation moment. State what the treatment
refuses and its most important risk. Avoid prestige adjectives that do not
resolve into visible or audible direction.

## Select by Counterfactual Judgment

Do not score your own taste. Compare treatments and an unguided control when one
is useful. A guided/unguided comparison must use the same `storyReality` and
blocking; otherwise it compares different stories. Ask:

- Could a competitor replace the logo and keep the treatment intact?
- What exact frame, transition, composition, or sound might be recalled?
- Do the expressive rules reinforce one idea or merely share a palette?
- Does product proof belong inside the world rather than interrupting it?
- Is it at least as clear and appealing as the control?
- What valuable quality from a rejected treatment could be lost?

Record the decision and risk. These are review prompts, not validator scores.
Whenever possible, judge representative frames, animatics, scratch audio, or
rendered tests rather than prose alone.

## Compose After Reality Passes

When fictional action carries the film, read [Narrative Integrity](../../moonsail/references/narrative-integrity.md).
First lock causal events and believable blocking. Test them under plain neutral
coverage. Then direct composition, camera, color, light, texture, edit, type,
and sound without changing decisions, actions, props, geography, or
consequences.

Give each beat a necessary job. Narration is optional. Bind only factual claims
to the claim ledger. Let atmospheric, emotional, and connective moments remain
uncited when they imply no factual claim.

Derive duration from what the viewer must orient to, read, feel, observe, and
hear. A single shot, uniform rhythm, repeated scale, sudden break, or silence may
all be correct. Do not add variation merely to satisfy a pattern.

## Plan Contract

Write schema-version 3 JSON. Arrays may contain as many entries as the treatment
requires; the validator imposes no creative target count.

```json
{
  "schemaVersion": 3,
  "title": "Production title",
  "integrity": {
    "sources": [{ "id": "product-source", "locator": "PRODUCT.md:20" }],
    "claims": [
      {
        "id": "claim-01",
        "text": "A factual claim used by the film",
        "sourceRefs": ["product-source"]
      }
    ],
    "visuals": [
      {
        "id": "real-product-capture",
        "kind": "captured-product",
        "sourceRefs": ["product-source"]
      }
    ],
    "unsupportedClaims": ["Claims the treatment must not imply"]
  },
  "storyReality": {
    "id": "reality-v1",
    "mode": "hybrid",
    "premise": "The causal dramatic or explanatory change",
    "characters": [
      {
        "id": "character-01",
        "objective": "What they are trying to achieve",
        "knows": ["Information available before the first beat"],
        "hides": ["Information deliberately concealed"]
      }
    ],
    "invariants": [
      "Facts, behavior, geography, and prop rules every treatment must preserve"
    ]
  },
  "creativePosition": {
    "humanTension": "A recognized audience tension",
    "pointOfView": "What the film believes",
    "intendedFeeling": "The intended emotional after-state",
    "governingIdea": "The idea that generates presentation decisions",
    "productOnlyReason": "Why the position belongs to this product"
  },
  "treatments": [
    {
      "name": "Treatment name",
      "realityRef": "reality-v1",
      "viewerExperience": "How the film should feel in time",
      "governingRule": "One rule that organizes presentation",
      "expressiveSystem": {
        "image": "Observable image direction",
        "proof": "How truthful product evidence belongs in the world",
        "motion": "Camera, graphic, product, and environmental response",
        "edit": "Observable cut or continuity direction",
        "type": "Observable typography direction",
        "sound": "Observable sound direction"
      },
      "signatureMoments": [
        {
          "moment": "A representative presentation moment",
          "demonstration": "What the viewer actually sees and hears"
        }
      ],
      "refuses": ["A category default this treatment deliberately avoids"],
      "risk": "The most material creative or production risk",
      "status": "selected",
      "decisionReason": "Why this treatment was chosen"
    },
    {
      "name": "Unguided control",
      "realityRef": "reality-v1",
      "viewerExperience": "The same events under clear conventional coverage",
      "governingRule": "Prefer the clearest neutral observation",
      "expressiveSystem": {
        "image": "Conventional hierarchy and natural presentation",
        "proof": "The same truthful proof at the same causal moment",
        "motion": "Only camera and subject motion required by the locked event",
        "edit": "Continuity cutting",
        "type": "Functional product and end-card typography",
        "sound": "Natural ambience and restrained product sound"
      },
      "signatureMoments": [
        {
          "moment": "The principal proof moment",
          "demonstration": "The same event and proof shown without the guided treatment"
        }
      ],
      "refuses": ["The selected treatment's expressive rule"],
      "risk": "Clear but interchangeable",
      "status": "rejected",
      "decisionReason": "Retain as the matched-reality evaluation control"
    }
  ],
  "selectedTreatment": "Treatment name",
  "comparison": {
    "controlBasis": "matched-reality",
    "controlTreatment": "Unguided control",
    "competitorSwap": "What would stop a competitor from inheriting it",
    "recallHook": "The exact memorable presentation choice",
    "coherence": "How the expressive rules reinforce one position",
    "clarityAndAppeal": "How it compares with the control or audience need",
    "selectionRisk": "What the selection could still get wrong"
  },
  "beats": [
    {
      "id": "beat-01",
      "kind": "story",
      "job": "Why this beat must exist",
      "narration": null,
      "storyEvent": {
        "characterRefs": ["character-01"],
        "entryState": "The relevant state before the beat",
        "objective": "What the acting subject wants now",
        "trigger": "The pressure or information that causes a decision",
        "decision": "The choice made in response",
        "action": "The observable action",
        "consequence": "What changes because of the action",
        "exitState": "The state handed to the next beat",
        "causedBy": []
      },
      "blocking": {
        "subjects": "Who or what is present",
        "positions": "Plausible positions and movement",
        "sightlines": "What each subject can perceive",
        "contacts": "Physical contacts and weight",
        "propState": "Ownership, location, and handling of important props",
        "requiredBehavior": "Behavior required by the locked event",
        "forbiddenBehavior": "Behavior the treatment must not invent",
        "handoff": "How the ending state connects to the next beat"
      },
      "shotDesign": {
        "representation": "literal",
        "composition": "Framing, depth, negative space, and visual weight",
        "camera": "Position, lens, focus, and motivated camera behavior",
        "colorAndLight": "Palette, contrast, and motivated light",
        "texture": "Surface and atmosphere",
        "edit": "Cut or transition behavior",
        "sound": "Sound perspective, voice, music, effects, or silence"
      },
      "claimRefs": ["claim-01"],
      "visualRefs": ["real-product-capture"],
      "proofRefs": ["real-product-capture"],
      "systemUses": ["image", "proof", "sound"],
      "durationReason": "What determines the beat's duration",
      "estimatedDuration": 3.2
    }
  ]
}
```

Use `non-narrative`, `story-led`, or `hybrid` for `storyReality.mode`. A
non-narrative plan may use `null` for `premise`, an empty character list, and
`null` for `storyEvent`; story-led and hybrid plans need at least one `story`
beat. Beat `kind` may be `story`, `proof`, `atmosphere`, or `title`. Every story
beat requires a complete `storyEvent`. Its `causedBy` entries must identify
earlier beats.

Use `literal`, `subjective`, or `graphic` for `shotDesign.representation`.
Subjective and graphic shots may express meaning but cannot establish new story
or product facts. `shotDesign` is intentionally closed to story actions,
gestures, props, blocking, and character decisions.

Use `selected` or `rejected` for treatment status. Every treatment must bind to
the same reality ID. Use `matched-reality` for a guided/unguided comparison and
name its unselected treatment in `controlTreatment`. Use `audience-need` and a
`null` control treatment when no control artifact is made. `narration` may be a
string or `null`. `estimatedDuration` is optional until timing evidence exists.

Visual `kind` may be `captured-product`, `supplied-product`,
`labeled-reconstruction`, `illustration`, or `non-product`. Only captured or
supplied product visuals may serve as proof, and a reconstruction requires an
explicit disclosure.

## Validate Honestly

Run:

```bash
node scripts/validate-composition-plan.mjs path/to/composition-plan.json
```

The validator may reject malformed structure, unsupported schema versions,
missing sourced claims, undisclosed reconstructions, non-authoritative proof,
ambiguous treatment selection, incomplete reality or blocking, later or
dangling causal references, story fields inside shot design, incomplete
expressive systems, or invalid optional durations. It cannot infer that prose
is psychologically convincing or artistically good.

## Review Before and After Generation

Before generation, run the neutral-coverage reality pass and then the treatment
pass. After generation, review in this order:

1. Does the artifact preserve the locked decisions, actions, props, blocking,
   causal order, product truth, and consequences?
2. Are product states, claims, identities, and interactions accurate and
   legible?
3. Is the governing idea perceptible without reading the treatment document?
4. Do image, proof, motion, edit, type, and sound behave as one system?
5. Does a memorable presentation choice survive continuous playback?
6. Did the direction preserve clarity and appeal?

Reject visual invention that changes story reality. Repair the earliest cause,
then inspect the changed artifact again.

See [the structurally complete fictional example](launch-film-plan.example.json).
