Marketing Video pro · skill pública Open Skill

Marketing Video pro

Marketing Video pro é uma Open Skill pública no Digen. Abra para ver o que este fluxo cria.

@mapotiy814

营销广告

58 8 47

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/dev/admin/166/2026-08-19/uz6zyfrv.jpg

# Marketing Video pro

Turn a spoken-ad / product-selling idea into **one portrait marketing cut**. There is no structured project state. Progress lives in the conversation, `write_todos`, and canvas assets.

## Global Language Lock (mandatory, highest priority — overrides every reference)

[Language Protocol] Follow the language of the **user's typed sentences**, not platform chrome.

**Slash-invoke trap (usual English-to-zh bug):** the platform often prepends a heading that says the user invoked this Skill via "/" (that heading may be CJK even when the user typed English), then dumps this Skill inside `<untrusted_skill_content>`. **Both are system text.** They do **not** set `response_language` to `zh-CN`, and the Skill dump does **not** set `response_language` to English. After deleting those blocks, if the remaining typed request has **zero Han characters**, lock `response_language=en` (or another Latin/etc. language). Then **every** user-visible string this session has **zero CJK** (replies, tables, todos, asset names, canvas documents except narration quotes). Replying in `zh-CN` to an English typed request is a language-lock failure — rewrite in English before send.

**Three layers, never mixed:** `response_language` (everything the user can read), `narration_language` (spoken VO / TTS only), MODEL English (`generate_image` / `generate_video` / `generate_music` / `voice_instruction` / shot `description` / `panel_brief`). Full algorithm: `references/language.md`.

On the **first user message**, silently `read_skill_file` `references/language.md` once, then lock both languages **before any user-visible sentence**. Do not re-read it every stage. Do not re-detect after tools, English files, or "next episode".

**No process narration (hard):** a turn that only calls `read_skill` / `read_skill_file` / `write_todos` / `memory_whoami` / `memory_query` / `list_models` must output **zero user-visible text**. Do not say you are locking language, confirming channels, or building a task list.

The first user-visible sentence must already be in `response_language` and must be about **product / person / scene / lines / the cut**.

This Skill and `references/` are English (handbook only) and must contain **zero CJK characters**. Handbook English is not a reason to avoid English replies. If the user typed English, reply in English.

| Layer | Scope | Language |
|---|---|---|
| **User-facing** | Replies, buttons, todos, asset `name`, canvas document body | `response_language` (spoken lines use `narration_language`) |
| **Narration / TTS** | Verbatim script, TTS `text`, shot-table dialogue column | `narration_language` original; never translate then TTS |
| **Video / image / music / voice design** | Prompts, timeline, `description`, `panel_brief`, `voice_instruction` | **English always** |

`zh-CN` vs `zh-TW` is a lock. One turn = one `response_language`. English `response_language` → zero CJK. Other `response_language` → no leftover English production jargon. If a mix is found, rewrite before send; do not announce a language switch.

**Hard rules (always):**

1. **Language consistency (highest priority with the Global Language Lock):** follow `references/language.md`. User-facing = `response_language` (one turn, one language); image/video/music/`voice_instruction` = English; spoken VO and TTS stay `narration_language`. Do not paste Skill English examples. Do not mix layers.
2. **Do not generate storyboard images.** Never use `generate_image` for grids, storyboard stills, or contact sheets. Do not call `split_image` / `upscale_image`.
3. **Video is ref2v only:** `generate_video(model='ref2v', gen_mode='reference_to_video')`. Forbidden: `i2v` / `ai2v` / `t2v` / `director`.
4. **Audio-driven cut (hard gate).** Never call `generate_video` without `audio_url`. `audio_url` MUST be this episode's **full-narration TTS** (the `generate_tts` whose `text` equals `narration_script_verbatim`). Forbidden: omitting `audio_url`; using the short voice-de