跳到正文
cccskills
免费在 GitHub 公开

render-imessage-cascade

Assemble an iMessage notification-cascade video ad (≈14s, 9:16) from a plate of a phone lying face-up (setting chosen by the user) + 3–5 messages — authentic Apple Messages banners composited in PIL (SF Pro text, green Messages icon, warm translucent-greige fill, soft shadow) spring in one-by-one at the BOTTOM and push the stack UP, a right-aligned Show-less/X pill rides above, the X clears the stack, then a serif end card resolves. FREE assembly (PIL + ffmpeg); the recipe supplies the per-brand plate, notifications, and end-card config and gates the paid plate-clean/music calls to their own capabilities. Use for the imessage-notification-cascade format.

中文简介正在准备中。当前显示原文说明。

集成工具ElevenLabs

实测评分 未实测

查看安装方法

包含的文件(7)

  • SKILL.md6.2 KB
  • scripts/build_assets.py11.8 KB
  • scripts/compose.py7.3 KB
  • scripts/config.example.json1.6 KB
  • scripts/layout.py2.7 KB
  • skill.meta.json345 B
  • tests/smoke-test.md2.5 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Superseded: the video kit now does this with the phone-chat part, version 1.2.0, in the parts folder of this repository. Every phone-chat style is a style file that draws the same screen frame by frame from the plan's scenes, with the original sounds, in the kit's browser. This atom stays, unchanged in behaviour, for skills outside the kit until they move; its scripts still run.

render-imessage-cascade

The free, deterministic renderer for the imessage-notification-cascade video ad format — the viral iOS trend where a phone lies face-up (the source: on a desk) and Apple Messages notifications STACK IN one after another. The signature mechanic is the bottom-up push: each new banner springs in at the bottom (nearest the phone) and shoves every existing one UP a row; the iOS grouped "⌄ Show less / ✕" pill rides above the stack; the ✕ clears the stack; then a serif end card resolves.

This is a DETERMINISTIC composite — no generative video of the UI. Authentic iMessage banners are drawn in PIL and animated in FFmpeg over a Ken-Burns plate, so the notification text + wordmark stay pixel-crisp (a video model would smear type). The template recipe supplies the per-brand plate, notifications, and end_card config and gates the only paid steps — cleaning the plate (→ create-image-fal) and the music bed/pop (→ create-music-elevenlabs) — to their own capabilities. This capability itself makes no paid calls.

Choices

The creative calls are the user's, asked by the format recipe before any paid step; this renderer draws whatever the config holds.

  • setting — where the phone lies (the plate). The demo used a desk in a dim, moody home office.
  • message_story — what the messages tell (inbound leads, a friend's texts, order alerts, a group chat, a problem solved) → notifications[]. The demo used inbound leads.
  • audio — pops + swoosh only, or a bed (lo-fi / upbeat / tense) + pops → config.audio. With no bed, compose.py plays the pops + swoosh over silence; --no-audio is fully silent. The demo used a soft music bed.

Scripts (free)

  • scripts/build_assets.py — draws the assets from config: nb-1..N.png (authentic banners — green Messages icon, warm translucent-greige fill, soft box-shadow, title/body/NOW/handle), pill.png (right-aligned "⌄ Show less / ✕"), endcard.png (serif CTA + wordmark lockup + url). Fonts are load-bearing: SF Pro (SFNS.ttf) via set_variation_by_name for the banner title/body/NOW/handle (Arial fallback), Times/serif for the end-card CTA. Do NOT swap in Helvetica/Arial as the primary — the banners must read as the real iOS system font.
  • scripts/compose.py — Ken-Burns push-in on the plate → each banner springs in at the BOTTOM while later arrivals push the stack UP (FFmpeg overlay y expressions) → pill rides above → ✕-clear swipes the stack up + fades → serif end card fades in → optional audio (optional bed + pop per arrival + a free FFmpeg swoosh on the clear) → encode h264 + aac.
  • scripts/config.example.json — the shape of the brand config the recipe binds.

Geometry contract (load-bearing — build_assets.py and compose.py MUST share it)

W=1080 H=1920, SIDE=135 → banner width BODY_W=810, BANNER_H=176, PAD=60, row pitch H=214, bottom anchor YB=1200. Icon ~100px at a ~24px left inset; body text starts ~150px from the banner's left edge. Change one, change both.

Craft rules (faithful to the source molecule)

  • Keep the REAL iMessage UI: green Apple Messages icon, warm TRANSLUCENT greige banner (NOT white, no white bloom), soft dark box-shadow. Do NOT rebrand the banner to the brand's colors — the brand lives ONLY on the handle (bottom-right) + the end card.
  • SF Pro for all banner text (title Semibold ~38, body Regular ~36, NOW/handle ~25). Never AI-render text.
  • 3–5 notifications (more crowds the top / clips the pill); newest enters at the BOTTOM, so banner 1 is the oldest and ends up on TOP.
  • ✕-clear then end card (a real hand-swipe needs a paid i2v — out of scope here).

Requires

watch (QC the final master). The recipe gates create-image-fal (plate clean) and create-music-elevenlabs (bed/pop) — both paid, proxy-routed, billed to the Ads agent.

Wrapped notifications and software endings

Bodies are measured and wrap to two lines. Oversized words, excessive lines, titles/handles that do not fit and stacks outside the safe area fail with a correction request. Shorten copy or reduce the notification count; never silently truncate or shrink the type. Asset building writes shared geometry and a config signature. Compose requires that manifest and rejects changed inputs until assets are rebuilt. Single-line configs retain their established dimensions and timing.

An optional resolution object supplies title, body and handle after the stack clears, plus an optional arrival time, hold duration and supplied sound file. Omit the old explicit end-card/duration overrides when using derived resolution timing. It holds at least 1.5 seconds before the ending. Missing supplied audio fails rather than silently disappearing.

For a software ending, set the end-card layout to b2b and supply a verified quote, attribution, optional CTA, a font file and one or two logo files. Logos retain their aspect ratio and transparency. Missing fonts/assets and excessive copy fail. Neutral layout samples are not customer endorsements.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Research supported advertising promises from a specific buyer's context, current product facts, customer language and observed ads. Turn them into static, video or copy ideas; match video ideas to actual recipes and save a product-scoped angle bank for write-video-ad-script. Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

For paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's stable facts (ads/brand.md), the campaign brief, and a log of what was asked vs assumed. Use it when someone wants to run Meta ads and the brand's ad facts are not yet recorded.

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the copy, on-image or on-screen text, pictures and people. Rewrites what can be fixed honestly, adds the disclosures that are needed, and flags anything that needs a human or legal review, with one pass, fixed or flag line per ad and platform. Use alone when you already have the ad text or images and know where they will run; otherwise run the playbook for the job (e.g. make-static-ads, make-content, email-lifecycle).

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

Analyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.

中文简介正在准备中。当前显示原文说明。

gooseworks-ai/goose-skills12652026年10月24日 更新

查看 gooseworks-ai 的全部技能

报告此技能的问题