← back to Marketing Command Center
auto-data-snapshot: 2026-08-12T14:30:58 (20 data files) — package-lock.json videos/mcc-streamline-promo/.media/audio/narration.wav videos/mcc-streamline-promo/.media/preferences.json videos/mcc-streamline-promo/AGENTS.md videos/mcc-streamline-promo/BRIEF.md
7c9bd03833bc6a4031a627381927148873abaeda · 2026-08-12 14:31:10 -0700 · auto-commit-fleet
Files touched
M package-lock.jsonA videos/mcc-streamline-promo/.media/audio/narration.wavA videos/mcc-streamline-promo/.media/preferences.jsonA videos/mcc-streamline-promo/AGENTS.mdA videos/mcc-streamline-promo/BRIEF.mdA videos/mcc-streamline-promo/CLAUDE.mdA videos/mcc-streamline-promo/SCRIPT.mdA videos/mcc-streamline-promo/assets/img/calendar.pngA videos/mcc-streamline-promo/assets/img/compose-m.pngA videos/mcc-streamline-promo/assets/img/compose-s.pngA videos/mcc-streamline-promo/assets/img/insights.pngA videos/mcc-streamline-promo/assets/img/nav.pngA videos/mcc-streamline-promo/capture/after-nav-calendar.pngA videos/mcc-streamline-promo/capture/hub-calendar-plan.pngA videos/mcc-streamline-promo/capture/hub-compose-manual.pngA videos/mcc-streamline-promo/capture/hub-compose-suggested.pngA videos/mcc-streamline-promo/capture/hub-insights.pngA videos/mcc-streamline-promo/hyperframes.jsonA videos/mcc-streamline-promo/meta.jsonA videos/mcc-streamline-promo/package.json
Diff
commit 7c9bd03833bc6a4031a627381927148873abaeda
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date: Wed Aug 12 14:31:10 2026 -0700
auto-data-snapshot: 2026-08-12T14:30:58 (20 data files) — package-lock.json videos/mcc-streamline-promo/.media/audio/narration.wav videos/mcc-streamline-promo/.media/preferences.json videos/mcc-streamline-promo/AGENTS.md videos/mcc-streamline-promo/BRIEF.md
---
package-lock.json | 4 +-
.../.media/audio/narration.wav | Bin 0 -> 1994830 bytes
.../mcc-streamline-promo/.media/preferences.json | 41 +++++++++
videos/mcc-streamline-promo/AGENTS.md | 95 +++++++++++++++++++++
videos/mcc-streamline-promo/BRIEF.md | 44 ++++++++++
videos/mcc-streamline-promo/CLAUDE.md | 95 +++++++++++++++++++++
videos/mcc-streamline-promo/SCRIPT.md | 8 ++
.../mcc-streamline-promo/assets/img/calendar.png | Bin 0 -> 385128 bytes
.../mcc-streamline-promo/assets/img/compose-m.png | Bin 0 -> 1030739 bytes
.../mcc-streamline-promo/assets/img/compose-s.png | Bin 0 -> 249210 bytes
.../mcc-streamline-promo/assets/img/insights.png | Bin 0 -> 134959 bytes
videos/mcc-streamline-promo/assets/img/nav.png | Bin 0 -> 336073 bytes
.../capture/after-nav-calendar.png | Bin 0 -> 336073 bytes
.../capture/hub-calendar-plan.png | Bin 0 -> 385128 bytes
.../capture/hub-compose-manual.png | Bin 0 -> 1030739 bytes
.../capture/hub-compose-suggested.png | Bin 0 -> 249210 bytes
.../mcc-streamline-promo/capture/hub-insights.png | Bin 0 -> 134959 bytes
videos/mcc-streamline-promo/hyperframes.json | 13 +++
videos/mcc-streamline-promo/meta.json | 5 ++
videos/mcc-streamline-promo/package.json | 11 +++
20 files changed, 314 insertions(+), 2 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 2968c52..cec41f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "marketing-command-center",
- "version": "1.9.0",
+ "version": "1.9.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "marketing-command-center",
- "version": "1.9.0",
+ "version": "1.9.1",
"dependencies": {
"express": "^4.22.2",
"pg": "^8.22.0"
diff --git a/videos/mcc-streamline-promo/.media/audio/narration.wav b/videos/mcc-streamline-promo/.media/audio/narration.wav
new file mode 100644
index 0000000..1f1f7e4
Binary files /dev/null and b/videos/mcc-streamline-promo/.media/audio/narration.wav differ
diff --git a/videos/mcc-streamline-promo/.media/preferences.json b/videos/mcc-streamline-promo/.media/preferences.json
new file mode 100644
index 0000000..da5b0c7
--- /dev/null
+++ b/videos/mcc-streamline-promo/.media/preferences.json
@@ -0,0 +1,41 @@
+{
+ "version": 1,
+ "preferences": {
+ "aspect": {
+ "value": "1080x1920",
+ "confirmed_in": [
+ "mcc-streamline-promo"
+ ],
+ "updated_at": "2026-08-12T21:25:28.977Z"
+ },
+ "language": {
+ "value": "en",
+ "confirmed_in": [
+ "mcc-streamline-promo"
+ ],
+ "updated_at": "2026-08-12T21:25:29.025Z"
+ },
+ "flow": {
+ "value": "automation",
+ "confirmed_in": [
+ "mcc-streamline-promo"
+ ],
+ "updated_at": "2026-08-12T21:25:29.071Z"
+ },
+ "storyboard": {
+ "value": "yes",
+ "confirmed_in": [
+ "mcc-streamline-promo"
+ ],
+ "updated_at": "2026-08-12T21:25:29.119Z"
+ },
+ "voice": {
+ "value": "cloned",
+ "confirmed_in": [
+ "mcc-streamline-promo"
+ ],
+ "updated_at": "2026-08-12T21:25:29.166Z"
+ }
+ },
+ "sightings": {}
+}
diff --git a/videos/mcc-streamline-promo/AGENTS.md b/videos/mcc-streamline-promo/AGENTS.md
new file mode 100644
index 0000000..5c8126a
--- /dev/null
+++ b/videos/mcc-streamline-promo/AGENTS.md
@@ -0,0 +1,95 @@
+# HyperFrames Composition Project
+
+## Skills — USE THESE FIRST
+
+**Always invoke the relevant skill before writing or modifying compositions.** Skills encode framework-specific patterns (e.g., `window.__timelines` registration, `data-*` attribute semantics, shader-compatible CSS rules) that are NOT in generic web docs. Skipping them produces broken compositions.
+
+**Doing anything with HyperFrames?** Start at `/hyperframes` — it tells you what HyperFrames can do and which skill or workflow handles your intent (make a video, TTS / BGM, prep footage, author / animate, render, install blocks), confirms your brief up front (the intent layer), and routes every "make me a…" request (a video, a deck, a composition port) to the right workflow. Read it first, especially when there's no project context to orient you. The workflows it routes to:
+
+- `/product-launch-video` — any **website** URL or brief / script → a product launch / SaaS / promo video, or a site tour / showcase featuring the site's own captured visuals.
+- `/faceless-explainer` — arbitrary text (topic / article / notes), **no URL, no website capture** → 60-90s faceless explainer.
+- `/embedded-captions` — an existing talking-head video (MP4) → the same footage with captions / subtitles added (rail + embed, or pure-cinematic embed); the footage itself is untouched.
+- `/talking-head-recut` — an existing talking-head / interview / podcast video (MP4) → the same footage **packaged with designed graphic overlays** (kinetic titles, lower-thirds, data callouts, pull-quotes, side panels, pip) synced to the transcript; the clip plays unchanged underneath. (Plain captions/subtitles → `/embedded-captions`.)
+- `/pr-to-video` — a GitHub PR (URL / `owner/repo#N` / "this PR") → 30-90s code-change explainer (changelog / feature reveal / fix / refactor).
+- `/motion-graphics` — a short (typically under 10s) design-led **motion graphic**, motion-is-the-message, no narration: kinetic type, a stat / number count-up, a chart, a logo sting, a lower-third / overlay, or an animated tweet / headline / captured-page highlight; rendered to MP4 or a transparent overlay. Longer / narrated / custom → `/general-video`.
+- `/music-to-video` — a **music track** (audio file, video to pull audio from, or one generated from a mood brief) → beat-synced video (lyric / slideshow / kinetic promo). Music drives pacing; user-supplied images / videos are cut onto the same beat grid.
+- `/slideshow` — a **presentation / pitch deck / interactive deck** — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode. Output is a navigable deck, not a rendered video.
+- `/general-video` — fallback for any other video (title card, longer brand / sizzle reel, multi-scene montage, static loop, custom composition) and the home of **companion mode** — co-create with the full HyperFrames toolbox; the original hyperframes authoring flow, any length.
+
+**Porting an existing composition?** `/remotion-to-hyperframes` translates a Remotion (React) composition into HyperFrames HTML — a source migration, separate from the creation workflows above.
+
+The domain skills (`/hyperframes-core`, `/hyperframes-animation`, `/hyperframes-keyframes`, `/hyperframes-creative`, `/hyperframes-cli`, `/media-use`, `/hyperframes-registry`, `/figma`) and the full capability map live inside `/hyperframes` — it is the single source of truth for which skill handles which intent.
+
+**Changing how real footage or images look or reveal?** Load `/media-use` and read its `references/media-treatments.md` before editing, even when the request only says dark, flat, boring, retro, private, or “make the reveal cooler.” It governs how footage is treated, never whether media may be used. Use canonical media treatments and seek-safe motion; do not improvise equivalent CSS/SVG filters or overlays.
+
+> **Tailwind v4 projects** (`hyperframes init --tailwind`): see `/hyperframes-core` → `references/tailwind.md`.
+
+> **Skill missing or stale?** Run `npx hyperframes skills update <name>` to install/refresh
+> the specific skill you need (the `/hyperframes` router does this automatically before
+> entering a workflow), or bare `npx hyperframes skills update` to refresh the core set plus
+> everything already installed — neither pulls the full set. Restart the agent session so
+> newly installed skills load.
+
+## Commands
+
+```bash
+npm run dev # start the preview server (long-running — keep it alive in background)
+npm run check # lint + runtime + layout + motion + contrast (one command)
+npm run render # render to MP4
+npm run publish # publish and get a shareable link
+npx hyperframes lint --verbose # include info-level findings
+npx hyperframes lint --json # machine-readable output for CI
+npx hyperframes docs <topic> # reference docs in terminal
+```
+
+> **`npm run dev` is a long-running server, not a one-shot command.** It blocks until stopped.
+> In Claude Code, always run it with `run_in_background: true`. Never run it as a foreground
+> command — it will time out and the server will die, breaking the browser preview.
+
+> **Pinned CLI version.** These scripts pin an exact `hyperframes@X.Y.Z` so this project re-renders identically over time. Weeks later that pin lags fixes shipped since. To move up: `npx hyperframes@latest upgrade --project . --check` (shows the delta), then `npx hyperframes@latest upgrade --project .` to rewrite the pins. Always unpinned — the pinned script re-runs the old version against itself.
+
+## Documentation
+
+**For quick reference**, use the local CLI docs command (no network required):
+
+```bash
+npx hyperframes docs <topic>
+```
+
+Topics: `data-attributes`, `gsap`, `compositions`, `rendering`, `examples`, `troubleshooting`
+
+**For full documentation**, discover pages via the machine-readable index — do NOT guess URLs:
+
+```
+https://hyperframes.heygen.com/llms.txt
+```
+
+## Project Structure
+
+- `index.html` — main composition (root timeline)
+- `compositions/` — sub-compositions referenced via `data-composition-src`
+- `meta.json` — project metadata (id, name)
+- `transcript.json` — whisper word-level transcript (if generated)
+
+## Linting — ALWAYS RUN AFTER CHANGES
+
+After creating or editing any `.html` composition, **always** run the full check before considering the task complete:
+
+```bash
+npm run check
+```
+
+Fix all errors before presenting the result. Warnings should be reviewed before rendering.
+
+## Key Rules
+
+1. Every timed element needs `data-start`, `data-duration`, and `data-track-index`
+2. Elements with timing **MUST** have `class="clip"` — the framework uses this for visibility control
+3. Timelines must be paused and registered on `window.__timelines`:
+ ```js
+ window.__timelines = window.__timelines || {};
+ window.__timelines["composition-id"] = gsap.timeline({ paused: true });
+ ```
+4. Videos use `muted` with a separate `<audio>` element for the audio track
+5. Sub-compositions use `data-composition-src="compositions/file.html"` to reference other HTML files
+6. Only deterministic logic — no `Date.now()`, no `Math.random()`, no network fetches
diff --git a/videos/mcc-streamline-promo/BRIEF.md b/videos/mcc-streamline-promo/BRIEF.md
new file mode 100644
index 0000000..53ca1f0
--- /dev/null
+++ b/videos/mcc-streamline-promo/BRIEF.md
@@ -0,0 +1,44 @@
+---
+workflow: product-launch-video
+flow: automation
+storyboard: yes
+message: "We took the marketing command center from 28 tabs to 6 — everything a click or two away"
+destination: social-vertical
+aspect: 1080x1920
+language: en
+length: 30s
+angle: before-after reveal (28 tabs → 6 calendar-led groups + 3 smart hubs)
+voice: cloned
+---
+
+## Intent
+
+A short, punchy social promo/tour of the newly streamlined Marketing Command
+Center (marketing.designerwallcoverings.com). Show-it-as-is: the video features
+the app's own captured screens, not invented UI. The story is a before→after
+reveal — a sprawling 28-tab dashboard collapses into 6 clean, calendar-led
+groups (Calendar · Plan · Compose · Library · Accounts & Email · Insights) with
+three "smart hubs" that merge related tools behind one tab (Compose = Suggested +
+Manual, Calendar = Timeline + Plan, Insights = 8 preview views under one door).
+Luxe Designer Wallcoverings aesthetic — cream/ink/gold, Cormorant Garamond
+display + Inter — confident and calm, not hypey. Narrated in Steve's cloned voice
+with burned-in captions so it reads muted on autoplay.
+
+## Assets
+
+- /tmp/mcc-streamlined.png — the 6-group nav + Calendar landing (the "after" hero)
+- /tmp/mcc-insights.png — the Insights hub (8 preview panels behind one entry)
+- capture/ — additional live frames captured for this build (Compose Suggested/Manual, Calendar Timeline/Plan) at 1080×1920-friendly crops
+
+## Customizations
+
+- Primary render 9:16 (1080×1920) for TikTok, Instagram Reels, and IG/Facebook Stories.
+- ALSO export a 1:1 (1080×1080) variant for the Instagram feed and Facebook Page feed posts (same narration + beats, reframed).
+- Big "28 → 6" before/after number beat as the hook.
+- Burned-in captions (muted-safe), DW gold accent.
+
+## Notes
+
+- The site is Basic-Auth gated (401), so automated URL capture won't work — use the provided/captured screenshots as the featured assets (no-capture / provided-screens path).
+- Do NOT post to any social account — deliver the MP4 files only; publishing is Steve-gated.
+- Stay ≤ the $0.75/video cost cap; local render + one cloned-voice narration reused across both aspects.
diff --git a/videos/mcc-streamline-promo/CLAUDE.md b/videos/mcc-streamline-promo/CLAUDE.md
new file mode 100644
index 0000000..5c8126a
--- /dev/null
+++ b/videos/mcc-streamline-promo/CLAUDE.md
@@ -0,0 +1,95 @@
+# HyperFrames Composition Project
+
+## Skills — USE THESE FIRST
+
+**Always invoke the relevant skill before writing or modifying compositions.** Skills encode framework-specific patterns (e.g., `window.__timelines` registration, `data-*` attribute semantics, shader-compatible CSS rules) that are NOT in generic web docs. Skipping them produces broken compositions.
+
+**Doing anything with HyperFrames?** Start at `/hyperframes` — it tells you what HyperFrames can do and which skill or workflow handles your intent (make a video, TTS / BGM, prep footage, author / animate, render, install blocks), confirms your brief up front (the intent layer), and routes every "make me a…" request (a video, a deck, a composition port) to the right workflow. Read it first, especially when there's no project context to orient you. The workflows it routes to:
+
+- `/product-launch-video` — any **website** URL or brief / script → a product launch / SaaS / promo video, or a site tour / showcase featuring the site's own captured visuals.
+- `/faceless-explainer` — arbitrary text (topic / article / notes), **no URL, no website capture** → 60-90s faceless explainer.
+- `/embedded-captions` — an existing talking-head video (MP4) → the same footage with captions / subtitles added (rail + embed, or pure-cinematic embed); the footage itself is untouched.
+- `/talking-head-recut` — an existing talking-head / interview / podcast video (MP4) → the same footage **packaged with designed graphic overlays** (kinetic titles, lower-thirds, data callouts, pull-quotes, side panels, pip) synced to the transcript; the clip plays unchanged underneath. (Plain captions/subtitles → `/embedded-captions`.)
+- `/pr-to-video` — a GitHub PR (URL / `owner/repo#N` / "this PR") → 30-90s code-change explainer (changelog / feature reveal / fix / refactor).
+- `/motion-graphics` — a short (typically under 10s) design-led **motion graphic**, motion-is-the-message, no narration: kinetic type, a stat / number count-up, a chart, a logo sting, a lower-third / overlay, or an animated tweet / headline / captured-page highlight; rendered to MP4 or a transparent overlay. Longer / narrated / custom → `/general-video`.
+- `/music-to-video` — a **music track** (audio file, video to pull audio from, or one generated from a mood brief) → beat-synced video (lyric / slideshow / kinetic promo). Music drives pacing; user-supplied images / videos are cut onto the same beat grid.
+- `/slideshow` — a **presentation / pitch deck / interactive deck** — discrete slides, fragment reveals, branching, hotspot navigation, presenter mode. Output is a navigable deck, not a rendered video.
+- `/general-video` — fallback for any other video (title card, longer brand / sizzle reel, multi-scene montage, static loop, custom composition) and the home of **companion mode** — co-create with the full HyperFrames toolbox; the original hyperframes authoring flow, any length.
+
+**Porting an existing composition?** `/remotion-to-hyperframes` translates a Remotion (React) composition into HyperFrames HTML — a source migration, separate from the creation workflows above.
+
+The domain skills (`/hyperframes-core`, `/hyperframes-animation`, `/hyperframes-keyframes`, `/hyperframes-creative`, `/hyperframes-cli`, `/media-use`, `/hyperframes-registry`, `/figma`) and the full capability map live inside `/hyperframes` — it is the single source of truth for which skill handles which intent.
+
+**Changing how real footage or images look or reveal?** Load `/media-use` and read its `references/media-treatments.md` before editing, even when the request only says dark, flat, boring, retro, private, or “make the reveal cooler.” It governs how footage is treated, never whether media may be used. Use canonical media treatments and seek-safe motion; do not improvise equivalent CSS/SVG filters or overlays.
+
+> **Tailwind v4 projects** (`hyperframes init --tailwind`): see `/hyperframes-core` → `references/tailwind.md`.
+
+> **Skill missing or stale?** Run `npx hyperframes skills update <name>` to install/refresh
+> the specific skill you need (the `/hyperframes` router does this automatically before
+> entering a workflow), or bare `npx hyperframes skills update` to refresh the core set plus
+> everything already installed — neither pulls the full set. Restart the agent session so
+> newly installed skills load.
+
+## Commands
+
+```bash
+npm run dev # start the preview server (long-running — keep it alive in background)
+npm run check # lint + runtime + layout + motion + contrast (one command)
+npm run render # render to MP4
+npm run publish # publish and get a shareable link
+npx hyperframes lint --verbose # include info-level findings
+npx hyperframes lint --json # machine-readable output for CI
+npx hyperframes docs <topic> # reference docs in terminal
+```
+
+> **`npm run dev` is a long-running server, not a one-shot command.** It blocks until stopped.
+> In Claude Code, always run it with `run_in_background: true`. Never run it as a foreground
+> command — it will time out and the server will die, breaking the browser preview.
+
+> **Pinned CLI version.** These scripts pin an exact `hyperframes@X.Y.Z` so this project re-renders identically over time. Weeks later that pin lags fixes shipped since. To move up: `npx hyperframes@latest upgrade --project . --check` (shows the delta), then `npx hyperframes@latest upgrade --project .` to rewrite the pins. Always unpinned — the pinned script re-runs the old version against itself.
+
+## Documentation
+
+**For quick reference**, use the local CLI docs command (no network required):
+
+```bash
+npx hyperframes docs <topic>
+```
+
+Topics: `data-attributes`, `gsap`, `compositions`, `rendering`, `examples`, `troubleshooting`
+
+**For full documentation**, discover pages via the machine-readable index — do NOT guess URLs:
+
+```
+https://hyperframes.heygen.com/llms.txt
+```
+
+## Project Structure
+
+- `index.html` — main composition (root timeline)
+- `compositions/` — sub-compositions referenced via `data-composition-src`
+- `meta.json` — project metadata (id, name)
+- `transcript.json` — whisper word-level transcript (if generated)
+
+## Linting — ALWAYS RUN AFTER CHANGES
+
+After creating or editing any `.html` composition, **always** run the full check before considering the task complete:
+
+```bash
+npm run check
+```
+
+Fix all errors before presenting the result. Warnings should be reviewed before rendering.
+
+## Key Rules
+
+1. Every timed element needs `data-start`, `data-duration`, and `data-track-index`
+2. Elements with timing **MUST** have `class="clip"` — the framework uses this for visibility control
+3. Timelines must be paused and registered on `window.__timelines`:
+ ```js
+ window.__timelines = window.__timelines || {};
+ window.__timelines["composition-id"] = gsap.timeline({ paused: true });
+ ```
+4. Videos use `muted` with a separate `<audio>` element for the audio track
+5. Sub-compositions use `data-composition-src="compositions/file.html"` to reference other HTML files
+6. Only deterministic logic — no `Date.now()`, no `Math.random()`, no network fetches
diff --git a/videos/mcc-streamline-promo/SCRIPT.md b/videos/mcc-streamline-promo/SCRIPT.md
new file mode 100644
index 0000000..026e726
--- /dev/null
+++ b/videos/mcc-streamline-promo/SCRIPT.md
@@ -0,0 +1,8 @@
+# Narration (Steve, cloned voice)
+
+Designer Wallcoverings' marketing command center just got a serious cleanup.
+Twenty-eight tabs — gone. Now, six calendar-led groups.
+Compose merges your suggested and manual posts into one.
+The calendar unifies your whole timeline.
+And eight preview tools tuck behind a single Insights tab.
+Everything you need — a click or two away.
diff --git a/videos/mcc-streamline-promo/assets/img/calendar.png b/videos/mcc-streamline-promo/assets/img/calendar.png
new file mode 100644
index 0000000..57bd5af
Binary files /dev/null and b/videos/mcc-streamline-promo/assets/img/calendar.png differ
diff --git a/videos/mcc-streamline-promo/assets/img/compose-m.png b/videos/mcc-streamline-promo/assets/img/compose-m.png
new file mode 100644
index 0000000..1194141
Binary files /dev/null and b/videos/mcc-streamline-promo/assets/img/compose-m.png differ
diff --git a/videos/mcc-streamline-promo/assets/img/compose-s.png b/videos/mcc-streamline-promo/assets/img/compose-s.png
new file mode 100644
index 0000000..d647b23
Binary files /dev/null and b/videos/mcc-streamline-promo/assets/img/compose-s.png differ
diff --git a/videos/mcc-streamline-promo/assets/img/insights.png b/videos/mcc-streamline-promo/assets/img/insights.png
new file mode 100644
index 0000000..d75b228
Binary files /dev/null and b/videos/mcc-streamline-promo/assets/img/insights.png differ
diff --git a/videos/mcc-streamline-promo/assets/img/nav.png b/videos/mcc-streamline-promo/assets/img/nav.png
new file mode 100644
index 0000000..4823906
Binary files /dev/null and b/videos/mcc-streamline-promo/assets/img/nav.png differ
diff --git a/videos/mcc-streamline-promo/capture/after-nav-calendar.png b/videos/mcc-streamline-promo/capture/after-nav-calendar.png
new file mode 100644
index 0000000..4823906
Binary files /dev/null and b/videos/mcc-streamline-promo/capture/after-nav-calendar.png differ
diff --git a/videos/mcc-streamline-promo/capture/hub-calendar-plan.png b/videos/mcc-streamline-promo/capture/hub-calendar-plan.png
new file mode 100644
index 0000000..57bd5af
Binary files /dev/null and b/videos/mcc-streamline-promo/capture/hub-calendar-plan.png differ
diff --git a/videos/mcc-streamline-promo/capture/hub-compose-manual.png b/videos/mcc-streamline-promo/capture/hub-compose-manual.png
new file mode 100644
index 0000000..1194141
Binary files /dev/null and b/videos/mcc-streamline-promo/capture/hub-compose-manual.png differ
diff --git a/videos/mcc-streamline-promo/capture/hub-compose-suggested.png b/videos/mcc-streamline-promo/capture/hub-compose-suggested.png
new file mode 100644
index 0000000..d647b23
Binary files /dev/null and b/videos/mcc-streamline-promo/capture/hub-compose-suggested.png differ
diff --git a/videos/mcc-streamline-promo/capture/hub-insights.png b/videos/mcc-streamline-promo/capture/hub-insights.png
new file mode 100644
index 0000000..d75b228
Binary files /dev/null and b/videos/mcc-streamline-promo/capture/hub-insights.png differ
diff --git a/videos/mcc-streamline-promo/hyperframes.json b/videos/mcc-streamline-promo/hyperframes.json
new file mode 100644
index 0000000..ec2e3c2
--- /dev/null
+++ b/videos/mcc-streamline-promo/hyperframes.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/hyperframes.json",
+ "registry": "https://raw.githubusercontent.com/heygen-com/hyperframes/main/registry",
+ "paths": {
+ "blocks": "compositions",
+ "components": "compositions/components",
+ "assets": "assets"
+ },
+ "media": {
+ "autoProxy": true
+ },
+ "authoringSkill": "product-launch-video"
+}
diff --git a/videos/mcc-streamline-promo/meta.json b/videos/mcc-streamline-promo/meta.json
new file mode 100644
index 0000000..b70d004
--- /dev/null
+++ b/videos/mcc-streamline-promo/meta.json
@@ -0,0 +1,5 @@
+{
+ "id": "mcc-streamline-promo",
+ "name": "mcc-streamline-promo",
+ "createdAt": "2026-08-12T21:24:22.051Z"
+}
\ No newline at end of file
diff --git a/videos/mcc-streamline-promo/package.json b/videos/mcc-streamline-promo/package.json
new file mode 100644
index 0000000..24f5ace
--- /dev/null
+++ b/videos/mcc-streamline-promo/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "mcc-streamline-promo",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "npx --yes hyperframes@0.7.107 preview",
+ "check": "npx --yes hyperframes@0.7.107 check",
+ "render": "npx --yes hyperframes@0.7.107 render",
+ "publish": "npx --yes hyperframes@0.7.107 publish"
+ }
+}
← 189b7f7 MCC deploy: protect remote linkedin-feed.json harvest output
·
back to Marketing Command Center
·
HyperFrames social promo for streamlined MCC (9:16 + 1:1, cl 2a3f00f →