Communitygithub.com

CleanExpo/Pi-Dev-Ops

Produce one or many consistent, on-brand faceless marketing videos from a topic: script, ElevenLabs voiceover with timestamps, one styled illustration per beat, ffmpeg stitch to 1080p, optional Unlisted YouTube upload. The look is a named style from styles.md (flat-line, hand-doodle, bold-kinetic, cinematic-photoreal, minimal-corporate, retro-print), so one command yields repeatable output per brand. The automated pipeline; distinct from faceless-video and video-director.

Pi-Dev-Ops 是什么?

Pi-Dev-Ops is a Claude Code agent skill that produce one or many consistent, on-brand faceless marketing videos from a topic: script, ElevenLabs voiceover with timestamps, one styled illustration per beat, ffmpeg stitch to 1080p, optional Unlisted YouTube upload. The look is a named style from styles.md (flat-line, hand-doodle, bold-kinetic, cinematic-photoreal, minimal-corporate, retro-print), so one command yields repeatable output per brand. The automated pipeline; distinct from faceless-video and video-director.

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/CleanExpo/Pi-Dev-Ops/tree/HEAD/skills-library/skills/brand-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

brand-video — consistent styled faceless videos, on demand

Invoke as /brand-video. One command, many looks. Built from the validated RestoreAssist run (9 videos shipped). Picks a style from styles.md, holds everything else constant so output is consistent batch-to-batch and brand-to-brand.

Inputs (ask only if missing; infer sensibly)

  • brand — RestoreAssist / Synthex / DR / NRPG / CARSI / CCW / Unite, or a client. Sets claims + CTA + voice.
  • style — a key from styles.md (default flat-line). This is the "look" / dropdown value.
  • topic(s) — one angle, or a list for a batch (one video each, parallel).
  • voice — ELEVENLABS_VOICE_ID (per-brand; from ~/.hermes/.env). CRITICAL: confirm the current value before generating — the user changes it.
  • upload? — default: render + stage only. Upload to YouTube Unlisted only when asked.

Pipeline (per video — one slug folder each, never share a dir)

  1. Script → <slug>/script.md: one clean VO paragraph, ~120–140 words, ~12–16 short sentences (one sentence = one visual beat = one image), problem→solution→CTA. Ground claims in the brand wiki; never invent features. End with the brand CTA line.
  2. Voiceover → run the bundled tts.py (reads ELEVENLABS_API_KEY + ELEVENLABS_VOICE_ID + DIR): cd <workdir> && set -a && . ~/.hermes/.env && set +a && DIR=$PWD/<slug> python3 <skill>/pipeline/tts.py Writes <slug>/voiceover.mp3 + <slug>/transcript.json (beats). Note the beat count.
  3. Images → one per beat, prompt = the chosen style's POSITIVE token + a concrete scene for that sentence + the style's NEGATIVE token, landscape 16:9, saved zero-padded <slug>/images/01.png ….
    • Prod / headless (default): python3 <skill>/pipeline/image_gen.py "<prompt>" <out.png> — Gemini gemini-2.5-flash-image ("Nano-Banana") over HTTPS, GEMINI_API_KEY from env. Works server-side; validated end-to-end. This is what app workers call (no local MCP needed).
    • Interactive (optional): mcp__margot__image_generate when running inside a Claude session; use slug-prefixed filenames to avoid parallel collisions (see [[parallel-agents-shared-output-collision]]).
  4. Stitch → python3 <skill>/pipeline/stitch.py <slug> → <slug>/final-1080p.mp4 (1920×1080@25, image timing from beats). Verify final duration ≈ voiceover duration.

Batches & new looks

  • Batch: dispatch one sub-agent per topic (parallel), each owning its slug dir. See the RestoreAssist run for the exact agent prompt shape.
  • Re-voice (voice changed, same script/images): regenerate VO, rescale list.txt durations by new_total/old_total, re-stitch. (revoice pattern.)
  • Add a look: append a block to styles.md (positive/negative token). That key immediately becomes a selectable style — this registry IS the dropdown's data source.

Upload (YouTube, optional)

Browser file-upload is dead (host paths rejected). Use the YouTube Data API path documented in [[youtube-api-upload-restoreassist]]: Desktop OAuth client → token at ~/.hermes/yt-restoreassist-token.json → videos().insert privacyStatus=unlisted, category 27, not-for-kids; guard on channel title; idempotent via uploaded.json. Requires YouTube Data API v3 enabled in the OAuth client's GCP project.

Guardrails

  • Claims must be real (brand wiki / product truth). Flat-illustration + synthetic voice → YouTube AI-disclosure usually "No" (confirm at upload; flip to Yes if AI music added).
  • Keep one style per batch for consistency. Keep SKILL.md ≤200 lines per [[feedback-tight-code]].
  • Reference implementation + assets: /Users/phill-mac/restoreassist-videos/.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

CleanExpo/Pi-Dev-Ops

Produce a faceless YouTube-style video (hand-drawn doodle / simple-illustration channels like Zen, Nick Invest) end-to-end from a single topic. ASKS FACT-vs-STORY mode first (non-fiction educational vs fiction storytelling) and branches the whole run — built to serve multiple clients/channels, not one fixed format. Reverse-engineers a proven reference video's script format, writes a new script in that format, generates an ElevenLabs voiceover with timestamps, creates one styled Artlist (AI Toolkit) image per timestamp, and stitches everything with FFmpeg — fully automated, no human recording. Use when the user says "faceless video", "/faceless-video", "doodle video", "make a YouTube short/long-form in the Zen style", or wants an organic faceless-channel content piece. Composes with video-distribution-strategist (channel/launch) and video-director (when motion/edit polish is wanted instead of stills).

CleanExpo/Pi-Dev-Ops

The 15+ year brand director extension of `brand-guardian` specifically for video — frame-by-frame audit of brand-mark integrity, Gun Metal `#1a1a1a` + Candy Red `#dc143c` consistency, NO AI slop, NO Lucide icons, custom geometric marks ONLY, real logos correctly placed. PASS / FAIL gate before any client-facing video ships. Use after `video-colorist` completes the grade pass.

CleanExpo/Pi-Dev-Ops

The 15+ year Director-of-Photography persona (Roger Deakins / Emmanuel Lubezki / Hoyte van Hoytema-tier) that owns shot composition, lens psychology, motion language, and the decision of which source (Remotion / Hyperframes / stock cinematic) each scene uses. Extends the existing `remotion-designer` + `remotion-motion-language` skills with a frame-by-frame shot-language framework. Use when the user says "cinematography", "shot list", "framing", "DoP", "lens choice", or invoked by `video-director` Phase 2.

CleanExpo/Pi-Dev-Ops

The 15+ year colorist persona (Light Iron / Company 3 / The Mill-tier) that applies per-brand LUT + grade pass to every Unite-Group video. Closes the "raw Remotion render colours" gap — today Remotion outputs whatever colours BrandConfig declares with zero cinematic grade. Use when the user says "colour", "grade", "LUT", "look", "cinematic finish", or invoked by `video-director` Phase 3 (post-production) after `video-sound-designer` mixes audio.

CleanExpo/Pi-Dev-Ops

The Creative Director persona that owns brief intake, composition selection and narrative POV for every Unite-Group video. ENTRY POINT for the Video Agency: use for any video creation brief (explainer, promo, social cut, demo reel, case study, testimonial, client video). Dispatches the full production team: script-writer, cinematographer, editor, sound designer, colorist, brand-guardian.

CleanExpo/Pi-Dev-Ops

The 15+ year platform-native distribution expert (early TikTok creator economy + YouTube algorithm + LinkedIn organic reach + IG Reels native specialist) that owns per-platform aspect ratio + duration cap + caption format + hook density + thumbnail composition. Extends `remotion-marketing-strategist` with platform-native specs locked per BrandConfig. Use when the user says "which platform", "distribution", "channel-fit", "thumbnail", "captions", or invoked by `video-director` Phase 4 (QA + Delivery) for per-platform cuts.

CleanExpo/Pi-Dev-Ops

The 15+ year screenwriter persona (Pixar / Apple keynote / Nike spot tier) that engineers hooks (0-3s), retention beats (7-15s), narrative tension curves, and CTA placement. Extends the existing `remotion-screen-storyteller` skill with a structural framework lifted from Pixar's 22 Rules + Apple keynote architecture. Use when the user says "script", "voiceover", "narration", "hook", "story arc", or invoked by `video-director` Phase 2.

CleanExpo/Pi-Dev-Ops

The 15+ year sound designer persona (Skywalker Sound / Sound Lounge / Audio Network-tier) that mixes ElevenLabs voiceover with music bed, sound effects, ambient texture, and audio polish. Closes the single biggest gap in the existing Remotion pipeline — today voiceover is the ONLY audio; this skill adds music + SFX + mix. Use when the user says "sound design", "audio mix", "music bed", "SFX", "score this", or invoked by `video-director` Phase 3 (post-production).

CleanExpo/Pi-Dev-Ops

Converts a BrandResearch dossier into THREE artifacts — (1) typed BrandConfig TypeScript at Synthex/packages/brand-config/src/brands/{slug}.ts (runtime/behaviour — voice, voiceover, motion, audience, channel, forbiddenWords); (2) spec-conformant {slug}.design.md at Synthex/packages/brand-config/src/brands/{slug}.design.md (visual tokens — colour, typography, spacing, components, layout, elevation); (3) human-readable 9-section .md projection at Pi-Dev-Ops/remotion-studio/src/brands/{slug}.md derived from BOTH. Boundary contract at Pi-Dev-Ops/remotion-studio/src/brands/CONTRACT.md. Triggered after remotion-brand-research, or when the user pastes brand assets and says "codify". PRs are auto-merge:false — a human reviews before merge.

CleanExpo/Pi-Dev-Ops

Researches a portfolio company's visual identity from public sources (homepage, about page, marketing copy, GitHub README) and produces a structured BrandResearch dossier. Triggered when `Synthex/packages/brand-config/src/brands/{slug}.ts` (canonical home per RA-1985 / Synthex SYN-897) is missing, older than 90 days, or the user explicitly says "refresh brand for {brand}". Output feeds remotion-brand-codify.

CleanExpo/Pi-Dev-Ops

Generates a complete, accessible palette (primary, secondary, accent, 4-step neutral, semantic, and dark variant) from one to three hex anchors plus a colour-family classification. Validates WCAG-AA contrast for all text-on-background pairs. Triggered when a BrandConfig has fewer than 5 defined colours or contrast fails.

CleanExpo/Pi-Dev-Ops

Authors or extends a Remotion composition (.tsx) wired to BrandConfig + Storyboard + layout spec + motion. The actual builder skill — runs as a Sonnet-tier worker. Triggered after brand, storyboard, designer, and motion-language outputs are ready. Produces the file under remotion-studio/src/compositions/ and registers it in src/Root.tsx.

CleanExpo/Pi-Dev-Ops

Visual-design specialist for Remotion compositions. Sets layout grid, typography hierarchy, white-space, scene framing, and visual rhythm for a given composition + brand. Triggered after remotion-composition-builder for QA, or upfront when authoring a new composition type. Produces a layout spec consumed by remotion-composition-builder.

CleanExpo/Pi-Dev-Ops

Use when a Remotion video needs creative direction — hook, visual sequence, scene purpose, motion restraint, and CTA direction before render.

CleanExpo/Pi-Dev-Ops

Use when a Remotion video has timing, sync, transition, caption, pacing, or audio-fit risk and needs editing discipline before render.

CleanExpo/Pi-Dev-Ops

Use when /remotion-video needs existing Synthex ElevenLabs, brand-config, Remotion, output storage, Claude, or Hermes integration without adding vendors.

CleanExpo/Pi-Dev-Ops

Tunes a video's format and message for the target channel — LinkedIn, YouTube, Instagram Reel, internal training. Sets aspect ratio, total duration, hook timing, CTA timing, and pacing. Triggered when the brief mentions a specific channel or campaign goal. Output feeds remotion-screen-storyteller and remotion-composition-builder.

CleanExpo/Pi-Dev-Ops

Designs a brand-specific motion vocabulary — easing curves, default scene durations, signature entry/exit, transition frames. Each brand gets one signature move (rise / sweep / pulse / iris / whip) that recurs across compositions to build motion-recognition. Triggered when BrandConfig.motion is empty.

CleanExpo/Pi-Dev-Ops

/remotion-video one-shot Remotion command skill and ENTRY POINT for the Remotion Skills Package. Use for video, explainer, ad, promo, reel, intro, social cut, marketing, training, or launch videos. Reads the brief, classifies intent, enforces one single Synthex ElevenLabs voice, emits a production/wave plan, and dispatches the right sub-skills in topological order. Always invoked first.

CleanExpo/Pi-Dev-Ops

Use when a Remotion video job needs production gates, render evidence, output discipline, and pass/fail validation before it can be called shippable.

相关技能