本文へ移動
cccskills
無料GitHub で公開

render-logo-equation-card

Render the logo-equation card ad (7s, 9:16) — partner icon + brand icon joined by a plus sign as an equation, a two-line "= outcome" headline, four numbered steps, and a CTA that hard-cuts in at 2s, on a static black card over timelapse b-roll, no voice. render_card.py draws the two card plates with measured geometry and hard guardrails (the user must confirm the integration is real, no partnership/endorsement/ranking words, no comment-bait CTA, no dashes); compose.py lays the card over the b-roll sped up to read as a timelapse, with an optional bed; measure_motion.py gates the b-roll (a real-time shot reads as a photo). Free, local.

インストール方法を見る

含まれるファイル(7)

  • SKILL.md4.6 KB
  • scripts/_fonts.py1.8 KB
  • scripts/compose.py3.6 KB
  • scripts/measure_motion.py3.2 KB
  • scripts/render_card.py11.3 KB
  • skill.meta.json324 B
  • tests/smoke-test.md522 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

render-logo-equation-card

A card-led format: everything the viewer reads is on a static black card in the top third; under it, b-roll moves like a timelapse to stop the scroll. One animated event: the CTA line hard-cuts in at 2.0s. No voice, no captions, no cuts.

Run

python render_card.py card.json --out-dir work/            # card-no-cta.png, card-with-cta.png
python compose.py --broll broll.mp4 --cards work/ --out ad.mp4 --in 3 --speed 4 [--bed bed.mp3]
python measure_motion.py ad.mp4 --cta-at 2.0              # exit 1 = reject

card.json:

{"logos": ["partner-icon.png", "brand-icon.png"],
 "partner": {"name": "Slack", "integration_confirmed": true},
 "headline": ["= your standup, written", "before anyone opens Slack"],
 "steps": ["1. Connect your Slack workspace", "2. ...", "3. ...", "4. ..."],
 "cta": "Try it free at example.com"}

The Slack standup card above is an illustration of the schema, not a default: the headline, the partner and the steps come from the user's brand and choices.

Choices

The recipe asks these before any paid step; this renderer only draws what card.json and the flags say. The demo's value is an example, never a default:

  • headline_angle — what the "= …" headline promises (time saved, a pain removed, a new ability, one workflow in one place). Sets card.json headline + steps. Demo: time saved ("= your standup, written before anyone opens Slack").
  • broll_subject — what the timelapse b-roll shows (the product in use, the team working, a workspace, customers). Picks the --broll clip and window. Demo: the brand's own footage of work happening.
  • music — the optional --bed (built from the music choice, instrumental, no artist names) or none (ship silent). Demo: driving minimal electronic, ~144 BPM.

Guardrails (enforced by render_card.py)

Two logos side by side already imply a link between the companies. The platform names another brand only as plain co-existence ("works with"), never as an endorsement, partnership or ranking. So:

  1. partner.integration_confirmed: true or no card. Only when the user confirms the product really works with the partner (an integration, a plugin, an import).
  2. No relationship words: partner, partnership, official, endorsed, certified, approved by, recommended by, #1, best. Say what the product does with the partner.
  3. The CTA is the brand's own, never names the partner, and is never comment-bait ("comment X and I'll send the link"): nothing replies to comments.
  4. Exactly two logos (square app icons, partner left), two headline lines starting "= ", four steps of 5-8 words, no em or en dashes. The renderer fails on any of these and on copy that does not fit the card at its real size.
  5. Icons are real files the user supplied or confirmed: the partner's own app icon (from their site or press kit), the brand's from its kit. Never draw or generate a logo.

Rules for the b-roll

  1. It is a TIMELAPSE. A locked-off real-time shot measures ~18x less motion than the reference and reads as a still photo. Use --speed (3-8x) on real footage: the brand's own clip of the product in use, a team at work, a workspace. measure_motion.py rejects a mean under 1.5.
  2. Never use footage lifted from another company's ad, and never restyle one.
  3. Text-to-video cannot make this shot: it renders one moment, so screens and people never change over the clip. If there is no real footage, ask the user for some.
  4. Cover the band (--fit cover, the default); width leaves black around a landscape clip.
  5. Flat, high-contrast screens survive; photographic wallpapers and thumbnail grids smear if the clip was ever generated or restyled.

Audio

Optional --bed (e.g. create-music-elevenlabs, instrumental, 8s), normalised to -15 LUFS with a short fade. An organic post can go out silent and take a track in-platform.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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-skills1,2452026年10月13日 更新

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-skills1,2452026年10月13日 更新

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-skills1,2452026年10月13日 更新

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-skills1,2452026年10月13日 更新

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-skills1,2452026年10月13日 更新

Turn a brand's facts, a campaign brief and the product into a one-minute Meta ad strategy with its reasoning — goal, audience, objective and placements, budget split, how many ads and how different they must be (generate 3x so the user can choose), the test frame, the success metric, and safety rules for the user to accept. Decides what launch-meta-ad-campaign then executes, and re-reads the strategy after a deep check to show which assumption changed. Use it after intake and before any creative is generated or any campaign is built.

日本語の概要は準備中です。原文の説明を表示しています。

gooseworks-ai/goose-skills1,2452026年10月13日 更新

gooseworks-ai のスキルをすべて見る

このスキルの問題を報告する