## The bug, layer by layer

### Layer 1 — the "folder" prefix is fiction

    COMP_ID="Production/Landscape-16x9/ReleaseNotes/RN-v${SAFE_VERSION}"
    fallback="Templates/TPL-ReleaseNotes"

Remotion Studio's left-panel folder tree is cosmetic only. The CLI's `render <id>` resolves the bare `id` attribute — the `<Folder name="...">` wrappers are never part of it. Every path-with-slashes has always been a typo.

### Layer 2 — no per-version composition ever gets registered

The workflow first tries `RN-v${SAFE_VERSION}` (e.g. `RN-v7600`) before falling back to the template. The only per-version registration in `Root.tsx` is `RN-v602`, hand-rolled for v6.0.2. Nobody's added new ones. Every release since has cold-started into the fallback.

### Layer 3 — the fallback was also wrong AND no square template existed

The landscape fallback said `Templates/TPL-ReleaseNotes` (still with the fictional prefix). Even worse, the square render fell back to the same landscape ID, relying on `--width 1080 --height 1080` overrides to reshape a 1920×1080 composition — that doesn't actually work; Remotion renders at the composition's declared dimensions.

## The fix

### release-video.yml — use bare composition IDs

    # landscape
    -  SAFE_VERSION=$(echo "$VERSION" | tr -d '.')
    -  COMP_ID="Production/Landscape-16x9/ReleaseNotes/RN-v${SAFE_VERSION}"
    -  npx remotion render "$COMP_ID" ... || npx remotion render "Templates/TPL-ReleaseNotes" ...
    +  npx remotion render "TPL-ReleaseNotes" \
    +    --props=/tmp/landscape-props.json --output=../out/landscape-raw.mp4 ...

    # square — same simplification
    +  npx remotion render "TPL-ReleaseNotesSquare" \
    +    --props=/tmp/square-props.json --output=../out/square-raw.mp4 ...

### orchestkit-demos/src/Root.tsx — register the missing square template

    <Folder name="Templates">
      ...
      <Composition id="TPL-ReleaseNotes" component={ReleaseNotes} ... />
    + <Composition id="TPL-ReleaseNotesSquare" component={ReleaseNotesSquare}
    +   durationInFrames={FPS * 12} fps={FPS} width={1080} height={1080}
    +   schema={releaseNotesSquareSchema} defaultProps={releaseNotesV602SquareConfig} />
    </Folder>

## Local verification (before commit)

Step | Command | Result
--- | --- | ---
1 | `npx remotion compositions` | confirms `TPL-ReleaseNotes` + new `TPL-ReleaseNotesSquare` both registered
2 | `node scripts/changelog-to-props.mjs 7.60.0 --landscape` | generates valid JSON, 5 highlights from release-please CHANGELOG
3 | `remotion render TPL-ReleaseNotes --props=... --frames=0-29` | 1.7 MB MP4 @ 1920×1080, exit 0
4 | `remotion render TPL-ReleaseNotesSquare --props=... --frames=0-29` | 1.1 MB MP4 @ 1080×1080, exit 0

So the workflow is one git push away from going green for the first time. Previous releases (v7.58.0, v7.59.0, v7.60.0) will remain video-less — fix is forward-only.