feat: content strategy, image posts and a posting plan for the films

Adds twelve image posts made the same way as the films: six posters
(one picture of each film with its idea in two lines) and six cards
that answer a question clients ask before the first call. The answers
come from the questions and principles on the website.

The posting plan is data (six weeks, film, card and poster per week),
and the export writes the library in that order, by language, week and
day, with the text to post. All video posts now open with the hook of
their film. The reasoning is in plans/content-strategy.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-05 10:00:28 +02:00
co-authored by Claude Opus 5.5
parent 2dab728129
commit 5cbcb2eac4
26 changed files with 964 additions and 219 deletions
+18 -3
View File
@@ -1,6 +1,6 @@
---
name: video-film
description: Make or change a social media film in apps/video (Remotion) in the approved mintel.me style - one continuous shot, minimal, with a camera pull-back as the reveal, in German and English. Use when asked for a new video, a new topic, changes to an existing film, new formats, or to re-render the video library.
description: Make or change a social media film or image post in apps/video (Remotion) in the approved mintel.me style - one continuous shot, minimal, with a camera pull-back as the reveal, in German and English. Use when asked for a new video, a new topic, changes to an existing film, new formats, or to re-render the video library.
---
# Making a film for mintel.me
@@ -87,9 +87,24 @@ Frame 0 is the preview image: it must already look good and carry the hook line.
- **Do not name a helper script `copy.py`, `json.py` or similar**: it shadows the Python module.
- **Text from an old worktree is stale.** The website changed language and wording during this work.
## Image posts
Every film gets a poster, and the plan pairs it with a card (see `apps/web/plans/content-strategy.md`).
- Poster: add an entry to `src/content/images.ts` with `poster: { video, frame }`. Pick the frame where the
whole picture is in view and the problem is obvious (around frame 250 to 300). Two lines, as short as
possible: "Kein Pingpong." / "Ihr Büro."
- Card: a question a client asks before the first call (`label`) and the answer in two or three lines.
The answer must be on the website already.
- Add the new posts to `src/content/plan.ts`, run `pnpm test`, then `node scripts/export.ts --images`
and look at the PNGs in `feed` and `square`.
- A poster is not a frozen frame inside a one-frame image: `Freeze` did not work there. The poster is a
composition as long as the film, rendered at that frame.
## Formats and output
Compositions are `<VideoId>-<de|en>-<feed|wide|square|story>`. `node scripts/export.ts` renders
`feed` (4:5, LinkedIn) and `wide` (16:9, YouTube and ads) in both languages into
`out/library/<VideoId>/<lang>/`, with `post.txt` and an overview page `out/library/index.html`.
`out/` is not committed.
`out/library/<lang>/week-<n>/<slot>-<day>-<id>/`, with `post.txt` and an overview page
`out/library/index.html`. `out/` is not committed. Keep it tidy: check frames, contact sheets and logs
go into `out/tmp`, nothing loose into `out/`, and `out/tmp` is emptied before you report.