Skip to content

feat(skills): recoup-internal-video-grok-1.5-imagine-facetime — FaceTime-call ads via Grok Imagine 1.5#74

Merged
sweetmantech merged 3 commits into
mainfrom
feat/grok-facetime-video-skill
Jul 2, 2026
Merged

feat(skills): recoup-internal-video-grok-1.5-imagine-facetime — FaceTime-call ads via Grok Imagine 1.5#74
sweetmantech merged 3 commits into
mainfrom
feat/grok-facetime-video-skill

Conversation

@sweetmantech

@sweetmantech sweetmantech commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Summary

New internal skill capturing today's FaceTime-ad workflow so the next run costs ~$10 and zero rediscovery, instead of $32 and a day of experiments.

Core discovery the skill is built around: xai/grok-imagine-video/v1.5/image-to-video speaks prompt-scripted dialogue verbatim with native voice and lipsync — no TTS, no lipsync pass (both were bake-off losers; HeyGen avatars read as studio ads and were disqualified).

What it encodes (every line shipped-and-burned on the Gatsby Grace × brauxelion prototype era work, reference build in strategy/.../sweetman/content/facetime-call/):

  • Take structure: 15s hard cap (validated — enqueue accepts 60, generation rejects), ~5s internal blocks prompted as timestamped beats, one-voice-per-generation, character cuts hide every take joint, extend-video chaining (input ≤15.0s) verified to 25s word-perfect.
  • Prompt grammar: action verbs in dialogue beats get performed instead of the line; lips-from-first-word; one-person/one-hand artifact guards; Whisper QC on every take.
  • Real-person likeness pipeline with the consent gate as policy (artist sign-off + AI disclosure before posting; the private preview doubles as warm-lead outreach).
  • fal queue/storage mechanics, ffmpeg assembly, hyperframes chrome handoff, ship-posts handoff.
  • Measured cost model: $0.14/s at 720p, ~$10 per debugged 50s video.

Scope seam kept clean: this skill ends at picture-locked footage + chrome pointer; hyperframes renders; recoup-internal-social-ship-posts publishes and measures.

🤖 Generated with Claude Code


Summary by cubic

Adds recoup-internal-video-grok-1.5-imagine-facetime to standardize FaceTime‑call ad production with xai/grok-imagine-video/v1.5/image-to-video. Cuts a typical run to ~$10 with repeatable steps and QC.

  • New Features

    • Workflow: script → faces → frame-approval gate → one test take per new/changed frame → 15s takes with fal-ai/whisper QC → concat/trim → FaceTime chrome via hyperframes → handoff to recoup-internal-social-ship-posts.
    • Takes and prompts: 15s cap with timestamped beats; one voice per generation with cuts between speakers; xai/grok-imagine-video/extend-video for >15s; “says” beats; lipsync from first word; one-person/one-hand guards.
    • Identity and policy: face prep via xai/grok-imagine-image and /edit (letterbox to 9:16 first, outpaint bars, strip clothing text); reuse one frame per character; consent and disclosure before posting.
    • fal mechanics and cost: queue/storage (use storage for >700KB inputs; validation failures are free), ffmpeg normalize/concat; $0.14/s at 720p ($10 per debugged 50s video).
  • Refactors

    • Compressed SKILL.md under 100 lines, merged artifact clauses; gates, prompt template, QC, and cost model unchanged.
    • Chrome step simplified to “copy the reference hyperframes project”; fal notes trimmed to the two non-obvious traps.

Written for commit a68420f. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Documentation
    • Added a new workflow guide for producing short-form two-person video ads, including script format, review checkpoints, timing limits, and final assembly steps.
    • Clarified guidance for handling likeness approval, frame consistency, and artifact cleanup during generation and editing.
    • Documented expected processing flow, output handoff, and rough cost/budget assumptions.

FaceTime-call ad production with Grok Imagine 1.5 on fal — the workflow
proven on the Gatsby Grace × brauxelion prototype (2026-07-02). Core
discovery: dialogue written in the i2v prompt is spoken verbatim with
native voice + lipsync, no TTS or lipsync model. Encodes the take
structure around the 15s cap (timestamped 5s beats, character cuts hide
voice joints, extend-video chaining), the prompt grammar (action verbs
eat lines; lipsync-from-first-word; one-person/one-hand artifact
guards), the real-person likeness pipeline (letterbox before edit,
outpaint bars, strip AI text) with the consent gate as policy, fal
queue/storage mechanics, Whisper QC, assembly, and the hyperframes
chrome + ship-posts handoffs. Measured costs: ~$10 per debugged 50s
video, $0.14/s at 720p.

Reference build: strategy sweetman/content/facetime-call/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a new skill specification document defining an internal FaceTime-call-style two-person ad video pipeline using Grok Imagine 1.5 on fal.ai, covering consent gating, script/take generation, prompt grammar, identity handling, fal API mechanics, assembly/rendering, and cost estimates.

Changes

FaceTime Video Skill Spec

Layer / File(s) Summary
Scope, overview, and consent gate
skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Defines skill name, INTERNAL invocation scope, asset/reference locations, FAL_KEY config note, and mandatory artist likeness consent-signoff workflow.
Pipeline stages and take constraints
skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Describes ordered pipeline stages and per-generation 15s cap, voice continuity, cut placement, and Whisper-based trimming guidance.
Prompt grammar and QC rules
skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Provides prompt-grammar template for verbatim dialogue/lipsync, negative constraints, and QC re-roll criteria.
Identity pipeline and asset sourcing
skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Documents fictional/real-person face generation, edit prompts to remove artifacts, frame reuse for continuity, and photo asset sourcing.
fal mechanics, assembly, and costs
skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Specifies fal queue/storage API mechanics, assembly/render/publish flow via hyperframes and ship-posts, and cost assumptions.

Estimated code review effort: 2 (Simple) | ~10 minutes

Related PRs: None identified.

Suggested labels: documentation, skills

Suggested reviewers: None identified.

Poem

A rabbit hops through FaceTime lore,
Two faces speak, then speak once more.
Fifteen seconds, cut, and splice,
Consent checked — be safe, be nice.
Costs tallied, frames aligned,
A skill doc, neatly signed. 🐰📹

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the new internal skill for FaceTime-call-style ads using Grok Imagine 1.5.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/grok-facetime-video-skill

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md`:
- Around line 52-59: The fenced prompt example in the SKILL.md snippet is
missing a language specifier, which is causing markdownlint to flag it and
reducing readability. Update the fenced block in the prompt example to include
an appropriate language tag, keeping the existing FaceTime prompt content
intact; the relevant snippet is the one starting with the video-call description
and continuing through the three timed lines.
- Around line 15-17: The SKILL.md references external paths and secrets outside
the skill directory, which breaks the self-contained skill rule. Update the
skill documentation to use only files under this skill’s own references/ tree
and remove mentions of strategy/..., mono/api/.env.local, and other external
asset paths. Use local equivalents or copied reference material, and ensure any
guidance points to symbols or docs inside
recoup-internal-video-grok-1.5-imagine-facetime only.
- Line 2: The skill slug in the SKILL.md frontmatter does not follow the
required recoup-internal-[domain]-[verb]-[noun] pattern because it includes the
“1.5” segment. Update the name field for
recoup-internal-video-grok-1.5-imagine-facetime to a plain lowercase hyphenated
slug that matches the repo rule, keeping it aligned with the skill’s intended
domain/verb/noun identity.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bfe60735-9534-4bb5-86e9-f13052b2a2eb

📥 Commits

Reviewing files that changed from the base of the PR and between 5f76d63 and 634eaa6.

📒 Files selected for processing (1)
  • skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md

Comment thread skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md
Comment on lines +15 to +17
Reference build: `strategy/recoup-rostrum-baseline/sweetman/content/facetime-call/`
(NOTES.md = full decision log; `index.html` = the hyperframes FaceTime chrome; final:
`renders/facetime-call_*.mp4`). `FAL_KEY` lives in `mono/api/.env.local`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Keep the skill self-contained.

These references point outside skills/recoup-internal-video-grok-1.5-imagine-facetime/ (strategy/..., mono/api/.env.local, sweetman/content/*/assets/art/), which violates the repo rule that skills only read/execute files inside their own directory. Move any reusable material into this skill's references/ tree or replace the external paths with local docs. As per coding guidelines: "Each skill must be self-contained and read/execute only files inside its own directory (references/, scripts/, templates/, fixtures/). Never reference ../, ../../references/, another skill's directory, or plugin-root scripts/templates/."

Also applies to: 91-93

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md` around lines
15 - 17, The SKILL.md references external paths and secrets outside the skill
directory, which breaks the self-contained skill rule. Update the skill
documentation to use only files under this skill’s own references/ tree and
remove mentions of strategy/..., mono/api/.env.local, and other external asset
paths. Use local equivalents or copied reference material, and ensure any
guidance points to symbols or docs inside
recoup-internal-video-grok-1.5-imagine-facetime only.

Source: Coding guidelines

Comment on lines +52 to +59
```
FaceTime video call, subtle camera micro-shake, <room/lighting>, natural casual delivery
with clear enunciation. Exactly one person in the room, only <his/her> voice, <his/her> lips
move with every word <he/she> speaks starting immediately from the very first word.
(0-5s) <The character> says, speaking from the first moment: "<line>"
(5-10s) <small physical direction> and says: "<line>"
(10-15s) Looking straight into the camera <he/she> says: "<line>"
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add a language tag to the prompt example.

The fenced block is missing a language specifier, which is already tripping markdownlint and makes the snippet less readable.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md` around lines
52 - 59, The fenced prompt example in the SKILL.md snippet is missing a language
specifier, which is causing markdownlint to flag it and reducing readability.
Update the fenced block in the prompt example to include an appropriate language
tag, keeping the existing FaceTime prompt content intact; the relevant snippet
is the one starting with the video-call description and continuing through the
three timed lines.

Source: Linters/SAST tools

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md">

<violation number="1" location="skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md:2">
P2: The skill slug contains `1.5`, which isn't a plain-English hyphenated token and may break skill registration/routing that expects the `recoup-internal-[domain]-[verb]-[noun]` pattern. Consider normalizing to something like `recoup-internal-video-grok-imagine-facetime` or `recoup-internal-video-grok-15-imagine-facetime`.</violation>

<violation number="2" location="skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md:15">
P2: This line references paths outside the skill's own directory (`strategy/recoup-rostrum-baseline/...`, `mono/api/.env.local`), which violates the self-containment rule for skills. Each skill must only read/execute files inside its own directory tree (`references/`, `scripts/`, `templates/`, `fixtures/`). Move these references into a local `references/` tree or replace with inline documentation.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

spoken verbatim, with the speaker's own voice and correct lipsync**. No TTS, no lipsync pass —
both were bake-off losers (a lipsync pass deadens the face; HeyGen avatars read as studio ads).

Reference build: `strategy/recoup-rostrum-baseline/sweetman/content/facetime-call/`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This line references paths outside the skill's own directory (strategy/recoup-rostrum-baseline/..., mono/api/.env.local), which violates the self-containment rule for skills. Each skill must only read/execute files inside its own directory tree (references/, scripts/, templates/, fixtures/). Move these references into a local references/ tree or replace with inline documentation.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md, line 15:

<comment>This line references paths outside the skill's own directory (`strategy/recoup-rostrum-baseline/...`, `mono/api/.env.local`), which violates the self-containment rule for skills. Each skill must only read/execute files inside its own directory tree (`references/`, `scripts/`, `templates/`, `fixtures/`). Move these references into a local `references/` tree or replace with inline documentation.</comment>

<file context>
@@ -0,0 +1,119 @@
+spoken verbatim, with the speaker's own voice and correct lipsync**. No TTS, no lipsync pass —
+both were bake-off losers (a lipsync pass deadens the face; HeyGen avatars read as studio ads).
+
+Reference build: `strategy/recoup-rostrum-baseline/sweetman/content/facetime-call/`
+(NOTES.md = full decision log; `index.html` = the hyperframes FaceTime chrome; final:
+`renders/facetime-call_*.mp4`). `FAL_KEY` lives in `mono/api/.env.local`.
</file context>

@@ -0,0 +1,119 @@
---
name: recoup-internal-video-grok-1.5-imagine-facetime

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The skill slug contains 1.5, which isn't a plain-English hyphenated token and may break skill registration/routing that expects the recoup-internal-[domain]-[verb]-[noun] pattern. Consider normalizing to something like recoup-internal-video-grok-imagine-facetime or recoup-internal-video-grok-15-imagine-facetime.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/recoup-internal-video-grok-1.5-imagine-facetime/SKILL.md, line 2:

<comment>The skill slug contains `1.5`, which isn't a plain-English hyphenated token and may break skill registration/routing that expects the `recoup-internal-[domain]-[verb]-[noun]` pattern. Consider normalizing to something like `recoup-internal-video-grok-imagine-facetime` or `recoup-internal-video-grok-15-imagine-facetime`.</comment>

<file context>
@@ -0,0 +1,119 @@
+---
+name: recoup-internal-video-grok-1.5-imagine-facetime
+description: INTERNAL — Recoup staff tooling, gated by the recoup-internal keyword. Invoke ONLY when the request explicitly includes "recoup-internal" (e.g. "recoup-internal make a FaceTime ad"). Never use for customer-facing or artist requests. Produce a FaceTime-call-style ad — two people on a screen-recorded video call — where every talking-head clip is generated by Grok Imagine 1.5 on fal.ai speaking a scripted dialogue verbatim, with native voice and lipsync (no TTS, no lipsync model). Use when the user wants a FaceTime call ad, a two-person conversation video, a Grok Imagine video, or an AI-talking-artist clip. Covers script/take structure around Grok's 15s cap, the prompt grammar that gets word-perfect dialogue, the real-person likeness pipeline and its consent gate, fal mechanics, QC, assembly, and the handoff to hyperframes (chrome/render) and recoup-internal-social-ship-posts (publish/measure).
+---
</file context>

sweetmantech and others added 2 commits July 2, 2026 17:30
Human OK on every character frame before the first i2v call, and
first-take QC before batching a character's remaining turns. Frames
cost $0.022 to fix; takes ~$2 — skipping this gate roughly doubled the
prototype's video spend (squished frames were caught only after ~$8-9
of takes had been generated on them).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cut without losing a burned lesson: chrome description collapsed to
'copy the reference project' (the project is the documentation), fal
mechanics reduced to the two non-discoverable traps (storage for >700KB
inputs, free validation failures), intro/prose compressed, artifact
clauses merged into one keep-them-all bullet. Every gate, the prompt
template, the cost model, and all QC rules survive.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sweetmantech sweetmantech merged commit 9cc3dc1 into main Jul 2, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant