AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Business Promo

skill-roeea2-hyperframes-skill-hyperframes-skill · by roeea2

>

No reviews yet
0 installs
18 views
0.0% view→install

Install

$ agentstack add skill-roeea2-hyperframes-skill-hyperframes-skill

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-roeea2-hyperframes-skill-hyperframes-skill)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Business Promo? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Business promo - the master workflow

One business, one interview, one finished post. This skill turns a customer's business into a social-ready animation plus the caption that ships with it.

It does not re-implement authoring, animation, media, or rendering. It owns the brief and the sequencing, and delegates every craft decision to the skill that owns it. Read this file top to bottom before the first question.

Deliverables

Every run produces all four, inside videos//:

| Artifact | What it is | | -------------- | ---------------------------------------------------------------------- | | BRIEF.md | The confirmed interview answers. Written once, never re-asked. | | renders/*.mp4| The animation at the chosen aspect, correct duration, last frame held. | | CAPTION.md | Post copy, CTA, and hashtags in the video language, per network. | | DELIVERY.md | What to post where, plus what the client still owes (logo, real photos).|

Never end a run with only the MP4. The caption is half the deliverable.

Hard rules

These override generic guidance from any downstream skill. They exist because this is client work: a wrong phone number or an invented opening hour is a real business harm, not a rendering bug.

  1. One question per message. Use AskUserQuestion, one field per call, max

four options, recommended option first with a one-line reason. Never batch the interview into a single wall of questions. Full protocol: hyperframes-core -> references/brief-contract.md section 3.

  1. Never invent a business fact. Opening hours, phone, address, prices,

years in business, ratings, and claims come from the user only. If a detail is missing, ask once; if still missing, omit it from the video and record the gap in DELIVERY.md. Do not guess, do not use a plausible placeholder, and never ship 555 or 03-000-0000 as if it were real.

  1. Contact details are DOM text, never generated pixels. Phone numbers,

hours, addresses, and the business name are rendered as HyperFrames text elements. Image and video models garble digits and mangle Hebrew glyphs. Generated imagery is background and b-roll only; it never carries copy.

  1. No unverifiable claims. "Best in the city", "number 1", "cheapest",

medical or legal outcome promises: only if the user supplies them and confirms they can stand behind them. Otherwise rewrite to something concrete the business controls ("open until midnight", "same-day appointments").

  1. Hebrew is a gate, not a translation. If the video language is Hebrew or

any RTL language, load /hyperframes-hebrew before writing a single line of composition HTML. Ship the hebrew font subset, set direction per element, and never put dir="rtl" on `` (it renders black frames).

  1. Vertical fills the frame. For 9:16, use the full height: scale type up,

spread beats across the whole canvas, run backgrounds edge to edge. Never center a square layout in a tall frame. Keep only text out of the platform keep-out zones (see references/formats.md).

  1. Motion doctrine first. Load /motion-doctrine before composing anything.

The film is one continuous camera move, not a stack of slides.

  1. Render is user-gated. After checks pass, ask "render now, or changes?"

Render only after the answer.

Step 1 - orient before asking

Do this silently, in one pass, before the first question:

  • Detect the chat language from the user's message and conduct the whole

interview in it. This is separate from the video language (asked in step 4).

  • Resume, do not restart. If videos//BRIEF.md exists, read it, show a

one-line summary, and ask only what changed. A returning client is an edit run.

  • Harvest answers already given. Skip any interview step the user's opening

message already answered. Inference is not an answer; an explicit statement is.

  • Catch an autonomous signal ("surprise me", "just build it", "decide for

me"). It does not skip steps 1 to 6 - those are facts only the user has. It does absorb steps 7 to 11: decide, state each choice with a one-line reason, and build.

Step 2 - run the interview

Eleven steps, in order, one message each. The exact question copy, the option sets, and the English and Hebrew phrasings are in references/interview.md. Read that file before asking question 1.

| # | Field | Asks for | | -- | -------------------- | ----------------------------------------------------------- | | 1 | business | Name and what it actually sells | | 2 | goal | The one thing the video must make a viewer do | | 3 | platform aspect | Network -> 1:1, 9:16, or 16:9 | | 4 | language | On-screen and voice language (English / Hebrew / mixed) | | 5 | details | Which of hours, phone, address, web to show, then the exact strings | | 6 | assets | Logo, photos, brand colors, website URL the client already has | | 7 | model | Generation engine and model, with plain-language trade-offs | | 8 | look | Look and feel preset | | 9 | shapes | Shape language | | 10 | sound length | Voiceover, music only, or silent-with-captions, plus duration | | 11 | storyboard flow | Review on the board? Collaborative or automated? |

Supporting catalogs, loaded when that step comes up:

  • Step 7 model options and what each is good at: references/models.md
  • Steps 8 and 9 presets, palettes, fonts, shape vocabulary: references/looks.md
  • Step 3 aspect, safe zones, per-network caption specs: references/formats.md

Before the hand-off summary, run one integration check: look for a consequence the combined answers create that no single answer showed, and raise it with a proposed fix. Common ones:

  • Hebrew copy plus a look whose font has no Hebrew subset -> propose the

Hebrew-capable equivalent from references/looks.md.

  • 9:16 plus a dense contact block -> propose splitting details across two beats.
  • 15 seconds plus voiceover plus five facts -> propose 22 seconds or fewer facts.
  • Photoreal AI model plus "must show my actual storefront" -> propose real photos

for the hero and generated imagery for texture only.

  • No logo plus a premium look -> propose a type-only lockup rather than a fake mark.

Then present the summary, splitting stated fields from inferred ones, and confirm. A correction means present the updated summary and confirm again.

Step 3 - write the brief

Scaffold the project and freeze the answers:

mkdir -p videos/
npx hyperframes init videos/

Copy assets/BRIEF.template.md to videos//BRIEF.md and fill every field. Validate before building:

node .claude/skills/business-promo/scripts/check-brief.mjs videos//BRIEF.md

It exits non-zero and names the missing fields. Do not start building on an incomplete brief; go back and ask the specific field.

Step 4 - route to the owning workflow

The brief now decides the route. Install it before reading it:

npx hyperframes skills update 

| Situation | Workflow | | ---------------------------------------------------------------- | ------------------------ | | Business has a real website URL worth crawling for brand + assets | /product-launch-video | | No website: logo, photos, and facts only (the common local case) | /general-video | | Single idea under about 10s (logo sting, "now open", one offer) | /motion-graphics | | A music track drives the whole piece | /music-to-video | | The client supplied talking-head footage of themselves | /embedded-captions or /talking-head-recut |

Pass the confirmed BRIEF.md into the workflow. It must not re-ask anything the interview already settled.

Always load, in this order, before composing:

  1. /motion-doctrine - the gateway, first, always
  2. /hyperframes-core - the composition contract
  3. /hyperframes-animation - motion rules and scene blueprints
  4. /cut-the-curve - seams, velocity matching, kinetic text entry
  5. /seam-craft - render-correct scene seams, white-flash guard
  6. /media-use - logo, photos, music, SFX, voiceover, color grade
  7. /hyperframes-hebrew - if and only if the video language is RTL

Optional by choice: /oversized-cursor when a beat shows a website or app UI, /hyperframes-keyframes for bespoke keyframe work, /dataviz for a stat beat.

Step 5 - build

The beat skeleton, the per-aspect layout rules, and the asset generation recipes are in references/build.md. The short version: hook, identity, proof, details, call to action, with a velocity-matched seam between every beat and the last frame held.

Step 6 - gate before render

Run the checks and fix everything they report:

cd videos/ && npm run check

Then walk the client-work checklist in references/build.md section 5. The two that catch the most real damage: every digit on screen matches the string the user typed, and the Hebrew font subset is actually loading rather than silently falling back.

Ask "render now, or changes?" Render only after the answer.

npm run render

Step 7 - caption and deliver

Write CAPTION.md from assets/CAPTION.template.md, in the video language, using the per-network rules in references/formats.md (hook line, body, CTA, contact line, hashtag count). Write DELIVERY.md: where to post, the aspect, the duration, and any detail the client still owes.

Report the render path, the duration, and the aspect. Show frames from the beat midpoints so the user has a review surface without opening the file.

Publishing this workspace

This skill ships no customer data. Client facts live in videos//, which is where real phone numbers and addresses land. Before pushing this workspace anywhere public, run /security-audit and confirm the client project folders are either scrubbed or ignored.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.