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

render-apple-notes-chat

Assemble an Apple Notes list video ad from a note + end-card JSON — a frame-accurate fake iPhone screen recording of a short list being typed into Apple Notes (character by character, key pops, blinking caret, the note scrolling up as it fills) crossfaded into a checklist end card (the note's picks as ticked rows, real product photos, logo, CTA, in the brand's colours and fonts), with an optional music bed. FREE assembly (Playwright + ffmpeg); the recipe supplies the per-brand note + end card and gates the paid music call to its own capability. The Apple Notes sibling of render-imessage-chat and render-chatgpt-chat. Use for the apple-notes format.

インストール方法を見る

含まれるファイル(13)

  • SKILL.md6.8 KB
  • scripts/config.example.json1.5 KB
  • scripts/end-card.template.html6.2 KB
  • scripts/mockup/generate.js7.8 KB
  • scripts/mockup/templates/icons.js6.4 KB
  • scripts/mockup/templates/note.css8.4 KB
  • scripts/package-lock.json1.1 KB
  • scripts/package.json331 B
  • scripts/record-notes.js12.2 KB
  • scripts/render-end-card.js4.1 KB
  • scripts/stitch.sh2.3 KB
  • skill.meta.json345 B
  • tests/smoke-test.md1.5 KB

SKILL.md(原文)

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

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-apple-notes-chat

The free renderer for the apple-notes video ad format: someone types a short, honest list into Apple Notes ("my chai cheat sheet", "chai for every mood") and every line points to a real product. It ends on a checklist end card with the products and the CTA. Deterministic Playwright + ffmpeg; no generative video of the UI, so every typed character stays pixel-crisp.

Siblings: render-imessage-chat (a peer's reply is the punchline) and render-chatgpt-chat (an AI answer is the punchline). Reach for this one when the creative is a list someone keeps for themselves.

Choices

The recipe asks these before any paid step; this renderer only draws what the config says.

  • list_angle — what the list is (a "which one should I get" cheat sheet, one pick per personality, one per mood or moment, a routine, a gift guide). Sets note.title, note.lines and end_card.head1/head2.
  • voice — how the writer types (lowercase and casual, tidy, deadpan). Sets the wording and capitalisation of note.lines.
  • clock — the time on the status bar (a 2 AM list reads differently from a 9 AM one). Sets note.status_bar.time.
  • music — the bed passed to stitch.sh --music, or none (silent).

Brand facts (logo, colours, fonts, product photos, CTA, claims) come from the brand kit.

What it renders

  1. The note (record-notes.js) — one PNG per visual state, each held for its own duration, concatenated into a 1080×1920 30fps MP4:
    • the note opens on its title with a blinking caret and the keyboard up;
    • each line types character by character at type_seconds, with a key pop on every letter, a darker space/return key, and a human rhythm (slower after spaces and punctuation);
    • between lines: return key, then pre_pause_seconds of blinking "thinking";
    • the note eases up so the caret never goes under the keyboard;
    • after post_hold_seconds the writer taps Done: the keyboard drops, the note settles back to the top and the whole list holds for finish_hold_seconds (default 2). With the keyboard up there is room for the title and about three lines, so without this the title and first lines have scrolled away by the end and the viewer never sees the list in one piece. finish_hold_seconds: 0 keeps the old ending.
  2. The end card (render-end-card.js) — a paper card slides and tilts in over the brand colour; the heading has a hand-drawn underline; each row's check draws in turn. Real product cut-outs sit above the rows; the logo (or a wordmark) and CTA pill sit below.
  3. The master (stitch.sh) — ~0.3 s crossfade into the end card, music faded in and out and normalised to −14 LUFS (peaks ≤ −1.5 dBFS). No music → silent master.

Run

cd scripts && npm install            # once — installs Playwright
npx playwright install chromium      # once
node record-notes.js    --config config.json --out-dir <work> --still-only   # free review stills
node record-notes.js    --config config.json --out-dir <work>                # → notes.mp4
node render-end-card.js --config config.json --out-dir <work>                # → endcard.png + endcard.mp4
bash stitch.sh --notes <work>/notes.mp4 --end <work>/endcard.mp4 \
     --out <work>/master.mp4 [--music <work>/music-bed.mp3]

--still-only writes note-hook.png (the opening frame), note-still.png (the last typed frame) and note-finish.png (the whole list after Done) for the review, without recording the video.

Config

See scripts/config.example.json. Two blocks:

BlockFields
notetitle, lines[] (text, type_seconds, pre_pause_seconds), post_hold_seconds, finish_hold_seconds, status_bar (time, battery_pct), keyboard_state
end_cardhead1, head2, underline (a word in head2), rows[] (label, value; max 4), products[] (src, h = height %, wide), logo (file) or wordmark, cta, fine_print, theme (bg, bg2, paper, ink, accent, label), fonts (heading, label — Google Fonts family names), seconds

Image paths are resolved relative to the config file. Pacing that reads well: ~1.6–2.8 s per line (about 18 characters a second), 1.0 s before the first line, 0.55 s between lines, 0.9 s before the last line.

Contract

  • FREE: Playwright frame capture + ffmpeg. No model draws text: the note, the end-card copy and the logo are real HTML and real files.
  • record-notes.js refuses a line with an em or en dash (people don't type them in Notes) or over 80 characters.
  • render-end-card.js refuses an end card with no rows or no logo/wordmark, and fails if the chosen fonts don't load.
  • The Apple Notes chat body is the bundled create-apple-notes-mockup generator (scripts/mockup/), so this runs standalone with no sibling fetch.
  • Requires ffmpeg/ffprobe on PATH, Node 18+, and Playwright Chromium.

Gaps

  • The phone UI uses the system font stack (-apple-system, SF Pro). It's exact on macOS; on Linux/Windows it falls back to the nearest sans.
  • No typing sound effects: Notes is silent, and the chai test ads shipped with music only.
  • Product photos must be clean cut-outs (transparent PNG). The recipe decides what to do when a product has none; this renderer only places what it's given.

Self-QC (always /watch the master)

  • The caret never sits under the keyboard; the note scrolls smoothly, never jumps.
  • Every line is fully typed before the next return; no text is cut off.
  • The end card: every check draws, nothing overlaps the logo or CTA, fonts are the brand's (not a fallback), the pad under the card matches theme.bg.
  • Audio (if any) fades in and out; no clipping.

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

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