图像与设计
需要把任意 URL 或自由主题做成 60…
在具备 Pika/Kling 付费 MCP 时,从 URL、repo、文章或自由主题生成 1 分钟双人播客视频,原生音频交付并默认跳过字幕。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要把任意 URL 或自由主题做成 60特定
解决思路
- 解析 `$ARGUMENTS`:剥离 flags(如 `--yes`、`--no-captions`)和 `key=value` 参数;若剩余为空或空白,原样输出空参数菜单并停止等待用户下一条消息,不调用任何工具、不进入 Step 1、不虚构主题或 URL;若剩余非空(URL 或任何 prose),静默跳过 Step 0 并进入 Step 1。
- 成本透明门:在任何付费 MCP 调用前调用 `identity_balance({verbose: true})` 一次;展示当前余额、近期燃烧率和剩余 runway;用指定消息说明预计 6,000-9,000 credits(约 $60-$90)覆盖四个 Kling v3-omni pro 15s acts、缺失资产图像生成、一次 act 纠正重试、concat 和 post-flight analyze_media QA,因超过 $5 要求用户回复 `proceed` 或 `cancel`;在用户回复 `proceed` 前不调用任何付费 MCP 工具;若回复 `cancel` 则停止且不生成;这是唯一 yes/no 门,`proceed` 后直接渲染四幕并返回 URL。
- 默认语音静默使用:`voice_a` 默认 Kling preset `876341503281471517`,`voice_b` 默认 `829837252279803904`;不要在开火前询问 which voice;只尊重显式覆盖 `voice_a=`、`voice_b=`。
- 默认静默自动生成任何缺失主持肖像:不要问 should I generate a host image,直接按 Step 1 的 archetype prompts 生成。
- 唯一需要 `proceed` 的是成本透明门;`proceed` 后提交、渲染 4 acts、返回 URL;账户信用余额和 provider failover 是规范护栏;`--yes` 作为向后兼容的 no-op 接受。
- Topic 模式命名真实公众人物时静默遵循 Step 4:默认 archetype portrait,不自动生成照片 likeness,不问用户 likeness rights。
- 预生成墙钟守卫:技能开始并在 podcast input 解析且成本门控通过后启动计时器;第一个付费生成调用是 `generate_image` 生成缺失 background/host assets;若所有 assets 已提供,第一个付费生成调用是 `generate_reference_video`;第一个付费生成调用必须在技能开始后 5 分钟内发起;若未发起,在任何付费生成调用前停止并报告 `failed_pre_generation_timeout`,附 input mode、asset status、voice status、URL capture/WebFetch status、script draft status 和精确 blocker;不要继续润色 host archetypes、factual grounding、jokes 或 act wording。
- 每个 prep 阶段后和紧接付费生成调用前打印单行进度检查点:`Stage 1/4 done — input resolved and cost gate passed, locking missing-asset image prompts.`;`Stage 2/4 done — missing asset prompts ready, calling image generation now.`(若所有图像已提供则改发 `Stage 2/4 done — assets and voices ready, collecting URL/topic facts.` 并跳过图像生成继续);`Stage 3/4 done — script draft locked, preparing first act.`;`Stage 4/4 done — first act prompt ready, calling Kling now.`
- 缺失资产图像 prompt 迭代最多 2 轮,然后送 `generate_image`;之后不要继续打磨 host archetypes、studio background details 或 persona styling。
- 脚本和 act-prompt 迭代最多 2 轮,然后送 `generate_reference_video`;之后不要继续打磨 jokes、interruptions、persona framing 或 camera wording。
- Claude Desktop 本地图片:Claude Desktop 尚不能把内联粘贴图片传给 MCP 工具;若用户内联粘贴照片或提到本地文件要作为 `host_a_img`/`host_b_img`,暂停 Step 1 并告知用户可粘贴已托管 URL(Imgur、S3、站点)或附图片文件以上传;本地文件到达后用 `upload_asset` 转成 public URL 并在 Step 1 前使用返回的 `public_url`;已托管 `https://...` URL 直接使用并跳过。
- 若用户命名真实公众人物但未附任何内容,不要自动生成其 likeness;Step 4 使用 archetype portrait。
- 长任务轮询:任何长时生成或编辑调用返回 `task_id` 时(包括仅有 `{task_id}`、`{task_id, status: queued}` 或初始 `queued`/`running`/`processing`),立即记录 task id 和开始时间。
- 轮询:紧密循环调用 `task_status({task_id})` 直到 terminal(`completed | failed | cancelled`);不要手动 sleep,不要用 Bash polling;worker 会保持每次状态调用打开。
- 轮询进度:当状态为 `queued`、`running` 或 `processing` 时每 60s 发 ONE 可见进度行:`Seedance i2v queued for {N}m {S}s... still processing`;轮询 Kling、图像生成、clone voice 或 concat 时替换 provider/stage label。
- 轮询完成:`completed` 时展开返回的结果 URL 并继续。
- 轮询失败:`failed` 或 `cancelled` 时向用户展示 `task_id`、status 和 last status message。
- 轮询超时:从原始 submit 起总计 15 分钟后,若任务仍非 terminal,调用 `task_cancel({task_id})`,然后向用户展示失败;若 cancel 报告任务已 terminal,再调用 status 一次并报告该 terminal 结果。
- 不要在原任务仍 `queued`、`running` 或 `processing` 时提交重复请求。
- Step 0 空参数:剥离 flags 和 `key=value` 后若为空或只有空白,逐字打印空参数菜单作为完整回复,然后停止等待用户下一条消息,不调用工具、不进入 Step 1、不虚构主题/URL。
- Step 0 非空:剥离后非空则静默跳过 Step 0 并进入 Step 1。
- Step 1 生成缺失资产(并行):只生成未提供的资产;默认 archetype prompts:`bg_img` 为 modern podcast studio, two chairs, warm lighting, no people, 16:9;`host_a_img` 为 enthusiastic host, studio portrait, left-side framing, 1:1;`host_b_img` 为 pragmatic skeptic host, studio portrait, right-side framing, 1:1;若输入提到具体 personas,按 Step 4 调整 archetype 匹配 persona vibe。
- Step 2 解析 voice IDs:使用给定 `voice_a`/`voice_b`;否则回退默认 Kling presets `876341503281471517`/`829837252279803904`;若用户通过 `voice_a=`/`voice_b=` 提供 cloned voice ID,直接使用。
- Step 3 解析输入模式:剥离 flags(如 `--yes`、`--no-captions`)和 key=value 参数,检查剩余内容。
- URL 模式:若输入含 `https?://` URL,调用 `capture_website` 仅用于视觉 grounding:产品/页面名称、可见布局、截图、b-roll cues 和一个可开玩笑视觉细节。
- URL 模式:对同一 URL 调用 `WebFetch`,用整页文本作为脚本事实来源;不要只依赖截图获取事实。
- URL 模式:从组合输入提取产品名、价值主张、2-3 个具体功能或事实、定价、一个可开玩笑细节、任何具体引语或声明。
- URL 模式:对长文页(Wikipedia、docs、blog posts、articles),扫描 WebFetch 全文中的深层章节;当至少 3 个实质深层章节存在时,脚本必须提到至少 3 个 beyond lede 的不同章节(例如 architecture、training、hallucinations、limitations、deployment、safety),不能只写开头摘要。
- URL 模式:用 WebFetch 文本作为事实锚点,用 `capture_website` 作为视觉参考;若冲突,事实声明优先 WebFetch,截图仅作视觉参考。
- Topic 模式:若输入为自由 prose(无 URL),把整个输入当 brief;解析 Subject(谈什么)、Hosts(若提到则显式,如 I and Elon Musk、two scientists、Joe and Sarah,否则默认 enthusiastic host + skeptic host)、Angle(debate/interview/explainer/casual)、Concrete facts(用户给的具体声明、数字、日期、引语)。
- Topic 模式:若未给具体事实,使用 2-3 个明确定义的观察或假设来锚定笑话和 wait, actually... pivot;不要把编造声明当事实;若主题需要事实准确性,要求 source 或 URL。
- Topic 模式:若用户说 I and X 或 me and X,Host A = 用户(若提供 `host_a_img=` 则用,否则生成主持肖像),Host B = X。
- Step 4 真实人物处理(仅 topic 模式):若解析输入把特定真实公众人物命名为 host(如 Elon Musk、Taylor Swift、Joe Rogan),默认不要自动生成该人的照片 likeness;生成匹配 persona vibe 的 archetype portrait(如 Elon-style 用 tech-billionaire-energy CEO at a podcast desk,Taylor-style 用 pop-star aesthetic),明确是 inspired-by 而非 impersonation。
- Step 4 覆盖:若用户显式提供 `host_a_img=<url>` 或 `host_b_img=<url>`,原样使用提供的图像;用户对 likeness rights 负责。
- Step 4 voices:默认使用通用 Kling preset;仅当用户提供 cloned voice(`voice_a=`/`voice_b=`)才使用。
- Step 4 脚本语气:对话可以 riff 命名 persona 已知公开立场或 vibe(如 Elon-style 的 Mars 热情),公开记录意见可用;不要把具体诽谤、非角色、编造私生活声明放入其口中。
- CJK/non-Latin handling:当 URL、topic、产品名、host 名、quote 或必需脚本细节包含中文、日文、韩文、阿拉伯文、Devanagari、Cyrillic、带重音拉丁、emoji 或其他非拉丁文本时启用。
- CJK 脚本保留:在脚本状态和任何 factual recap 中精确保留用户提供的非拉丁字符;除非用户明确要求,不要罗马化、转写或翻译产品名、人名、口号或引用短语;若需要发音辅助,放在附近英文 prose 中,不替代原字符。
- CJK Kling voice IDs:`voice_a=` 和 `voice_b=` 仍须是有效 Kling voice ID;中文/日文/韩文对话优先使用已知会说该语言的 Kling voice ID 或 cloned voice sample;若无语言匹配 Kling voice,保留原字符在对话中并说明发音可能有口音,不要静默换成无关 TTS provider。
- CJK 混合语言对话:保持每个 host 的 line 短且无歧义;避免让 Kling 发音长混合语言段落;把复杂名字或 quote 拆分到多个 acts,并保持周围英文简单。
- CJK captions/font fallback:本技能默认跳过 `add_captions`,因为播客对话会误转写 jargon;若用户仍明确要求 captions,传作者脚本的手动 `subtitles[]` 而非自动转写,中文/日文/韩文设置 `font: noto-cjk`,并精确保留原非拉丁文本。
- CJK QA:交付前在最终 verdict 加一行说明,若存在非拉丁文本,说明原字符是否在脚本中保留,以及所选 voice 是语言匹配还是 best-effort。
- Jargon-heavy native audio handling:当 URL、topic、产品名、quote 或必需脚本细节是领域重或 jargon 重时启用,尤其是 finance、law、medicine、AI/crypto、acronyms、coined terms、不寻常产品名、长数字或多词复合词;Kling-omni native TTS 可能在 spoken native audio 中乱码生造词,不只在自动 captions 中,因此在付费 Kling 调用前降低风险。
- Jargon 风险扫描:当一行会包含多个领域术语、acronyms、长数字或嵌套/多从句 economist-style phrasing 时标记为 jargon-heavy;把 stablecoins、unbundle、reassure 等例子视为必须保持可懂的 load-bearing terms。
- Jargon 脚本重写:在脚本状态和最终 recap 中保留 canonical term,但缩短其周围 spoken line;使用短行,拆分长从句,每个 host line 最多 1-2 个高风险术语,避免嵌套从句导致 Kling 推断相似发音填充词。
- Jargon 发音 aid:为每个 act 的高风险术语创建小的发音 aid,例如 `stablecoins = STAY-bul coins`、`unbundle = un-BUN-dul`、`reassure = ree-uh-SHOOR`;发音 aid 仅作为 prompt metadata,不要替换 dialogue、captions、facts 或 final recap 中的 canonical term。
- Jargon 已知难词纠正:若某术语已知会漂移,或 post-flight 定位到近邻误听,不要重试同一独立难词;在 act metadata 保留 canonical term(`canonical_terms: [unbundle]`),把修正后的 voice-token line 改成带 speakable cue/micro-pause 的短上下文短语,例如 `we un-bundle payments`;把观察到的错误形式加为负向发音 guard,例如 `unbundle = un-BUN-dul, not un-bumble`。
- Jargon 已知难词可发布 fallback:在付费 Kling 调用前,当先前 E2E 或当前 post-flight 发现漂移(如 `unbundle` -> `unbubble`、`un-bumble`、`unbundable`)时,把观察到 hard terms 标记为 known-hard;记录 `canonical_terms` 和 `observed_wrong_forms`;不要用 Kling native audio 渲染 known-hard spoken terms。
- Jargon fallback 渲染:改为生成受影响的 visual act 或 final video,其 native voice-token lines 不包含 spoken known-hard term;然后用 `generate_speech(text=<spoken-only script>, provider: minimax-tts, minimax_model: speech-2.8-hd, language: en)` 使用 canonical spelling(`unbundle`,不是 hyphen cue)生成受控 narration。
- Jargon fallback spoken-only script:必须保留作者编写的 host-turn order,但不得包含 HOST_A/HOST_B labels、metadata、pronunciation aids 或 observed wrong-form spellings。
- Jargon fallback 预替换 QA:对 TTS audio 运行 `transcribe_audio(audio=<tts_audio_url>)` 和 `analyze_media(media=<tts_audio_url>)`;每个必需 `canonical_terms` 条目必须出现在 `transcribe_audio` 文本中和 `analyze_media` 观察 transcript 中;若缺失、被任何 observed wrong form 替换、或被新近邻替换,拒绝 TTS。
- Jargon fallback 替换:调用 `edit_audio_replace(video_url=<final_mp4>, audio_url=<tts_audio_url>, duration_policy: video)` 丢弃 native audio 并替换为 controlled TTS track。
- Jargon fallback 后替换 QA:对 replaced MP4 运行 `transcribe_audio(audio=<replaced_mp4_url>)` 和 `analyze_media(media=<replaced_mp4_url>)`;每个必需 `canonical_terms` 条目必须出现在两个最终检查中,`analyze_media` 还必须验证 host-turn order 和可接受的 audio/video sync。
- Jargon fallback 判定:若任何最终检查听到错误形式、漏掉 canonical term,或说 fallback 破坏 podcast turn structure,返回 `not publish-ready`;若两项检查通过,fallback 输出即使使用 controlled TTS 而非 Kling native speech 也是 publish-ready。
- Jargon 数字和缩写:用口语友好形式写重要内容:`$175B` 变成 `one hundred seventy-five billion dollars`;`API` 变成 `A P I`,除非品牌通常读作单词。
- Jargon act prompt:把 per-act pronunciation aid 放在 voice-token lines 附近,并指示它不是对话、不要逐字朗读;要求清晰发音 canonical terms 且不要即兴相似词。
- Step 5 写脚本:写 4 acts × 2 lines(HOST_A / HOST_B),每行约 10–12s spoken dialogue。
- 脚本必需:一个具体笑话 tied to concrete detail(URL 模式用 scraped fact;topic 模式用 topic-derived claim)。
- 脚本必需:一个 wait, actually... skeptic-flip moment。
- 脚本必需:至少一个 mid-sentence interruption。
- 脚本必需:自然 filler,如 okay so、wait、right?、i mean、honestly。
- 脚本必需:真实反应,不是 generic praise。
- 脚本必需:引用至少一个实际 feature name、price、claim 或 quote。
- 脚本必需:自然结尾,不要强加 bye!。
- 脚本必需:当主题 domain-heavy、jargon-heavy 或使用 coined terms 时,在最终化 act lines 前应用 Jargon-heavy native audio handling。
- 脚本结构:Acts 为 Hook → Feature deep-dive → The Turn → Verdict;topic 模式对应 Hook → Substance → The Pivot → Verdict。
- Step 6 生成视频 acts:委派 subagent,携带所有 resolved assets 和 script;subagent 顺序运行 acts 1→2→3→4,不要并行。
- Step 6 subagent:必须遵循 Long-running task_status polling contract,并在等待 Kling、图像生成、voice clone 或 concat 任务时向 parent 转发每 60s 进度行。
- 每个正常 act:一次 `generate_reference_video` 调用(`kling-v3-omni`、`duration=15`、`sound=true`、`quality_mode: pro`)。
- 每个正常 act:传 `reference_images=[bg_img, host_a_img, host_b_img]`、`voice_ids=[voice_a, voice_b]`,并传 `quality_mode: pro`;必须传 `quality_mode: pro`,因为成本门控按 pro-tier 15s act 计价;可选 knob `kling_model` 固定特定 kling family member 以跨运行复现。
- 每个正常 act 三镜头:Wide 5s 两位 host,无 voice token;MCU-A 5s `<<<voice_1>>> '<HOST_A line>'`;MCU-B 5s `<<<voice_2>>> '<HOST_B line>'`。
- 每 act 情绪节拍:Act 1 A excited、B skeptical;Act 2 A gesturing/explaining、B questioning;Act 3 A firm、B surprised and reconsidering;Act 4 A satisfied、B conceding。
- Known-hard fallback exception:含 known-hard spoken terms 的 acts 用 `sound=false` 渲染受影响 visual act,且受影响 lines 不加 voice tokens;不要把 canonical known-hard terms 放入任何 `<<<voice_*>>>` native voice-token line;controlled TTS replacement 稍后提供这些词。
- Jargon-heavy 但非 known-hard 的 acts:在 act prompt 中包含 Step 5 的 per-act pronunciation aid 作为 non-dialogue metadata,并在 quoted `<<<voice_*>>>` lines 保留 canonical terms。
- Act 4 后:subagent 调 `edit_concat([act1, act2, act3, act4])`,向 parent 转发任何 async polling 进度,并返回最终 video URL。
- 保留四个 act URL 在 state 中,以便 post-flight quality gate 最多花一次 targeted act correction 而不重新生成 clean acts。
- Step 7 输出:返回最终 video URL 和一句 verdict。
- 默认不要调用 `add_captions`:Whisper 自动转写对播客对话常见 domain-specific terms(产品名、persona 名、技术 jargon)不可靠。
- 若用户明确要求 captions:从作者脚本传手动 `subtitles[]` 而非自动转写;对 CJK / non-Latin text 遵循上述 font 和 preservation guidance;默认交付 native Kling Omni audio。
- Post-flight quality gate:宣布成功前,对最终 video URL 调用 `analyze_media`,要求结构化 JSON verdict:`verdict` 为 `clean | degraded | catastrophic`,另有 `observations`、`quality_warning`、`re_roll_suggestion`。
- Post-flight 检查:Host A 保持左侧,Host B 保持右侧,产品名/persona 名/topic-specific terms 可见不 garbled,四幕播客结构存在,无黑帧或错主持镜头。
- Post-flight 检查 spoken audio,不只 captions 或可见文本:产品名、persona 名、topic-specific terms、coined terms 和 jargon 必须 intelligible;标记 garbled 或 mispronounced native audio,例如 stablecoins 听起来像 stable kinds,unbundle 像 un-bumble 或 unbundable,reassure 丢音节。
- Post-flight clean:先检查脚本状态是否包含 known-hard spoken term;若有,在接受 clean verdict 前运行 Known-hard publishable fallback 及其 pre-replacement 加 post-replacement `transcribe_audio`/`analyze_media` 检查;只有 replaced MP4 检查通过才返回成功;若无 known-hard spoken terms,正常返回最终 URL 和一句 verdict。
- Post-flight degraded(普通非阻塞视觉问题):返回最终 URL 加 `quality_warning`,让用户发布前 review。
- Post-flight degraded(spoken audio 乱 jargon、coined terms 或其他 domain-specific terms):视为 not publish-ready,而不是静默成功。
- Post-flight known-hard 或 observed hard-term drift:跳过 native-audio act correction,不要把 targeted act correction 预算花在另一个 Kling native-audio prompt;直接用 Known-hard publishable fallback:`generate_speech(...)`,pre-replacement `transcribe_audio` 和 `analyze_media`,`edit_audio_replace(...)` 替换最终 MP4 audio,post-replacement `transcribe_audio` 和 `analyze_media`;若通过返回 replaced URL;若仍报 spoken jargon garble 或 garble 不够局部化可纠正/替换,不要称 podcast complete,返回 URL 加 `not publish-ready`、affected terms 和 `quality_warning`。
- Post-flight 非 known-hard garble:若 observations 或 `re_roll_suggestion` 定位问题到一个 act,花一次 targeted act correction 预算:实质改变该 act payload(缩短受影响 line、拆分多从句、添加/细化 phonetic pronunciation aid、改 shot prompt、reference image、voice ID 或其他导致失败的 stage-specific input);提交一个 corrected act,`quality_mode: pro`,重新 concat 四个 acts,并再跑一次 analyze_media 检查;若第二次 verdict 仍报 spoken jargon garble,不要称 podcast complete,返回 `not publish-ready`。
- Post-flight catastrophic:仅当 observations 或 `re_roll_suggestion` 识别单个坏 act、错主持镜头、黑帧或局部视觉/音频失败时,花一次 targeted act correction 预算;kling-v3-omni 无 seed,相同 act payload 可能解析到相同 job/asset,因此不要提交相同 Kling payload。
- Post-flight catastrophic 重试前:实质改变坏 act payload,调整 script line、shot prompt、reference image、voice ID、pronunciation aid 或其他导致失败的 stage-specific input;提交一个 corrected act,`quality_mode: pro`,重新 concat 四个 acts,并再跑一次 analyze_media 检查。
- Post-flight catastrophic 上限:不要超过 cost-gate 范围;若第二次 verdict 仍 catastrophic,或失败无法归因到单个 act,不要称 podcast complete;改为 surface verdict 和 `re_roll_suggestion`。
- Rules:`voice_ids` 必须是有效 Kling voice IDs,绝不要用 name-style 字符串如 `Calm_Man`。
- Rules:Host A 总是 LEFT(`<<<image_2>>>`),Host B 总是 RIGHT(`<<<image_3>>>`),绝不交换。
- Load-bearing phrases:保留 Host A always LEFT, Host B always RIGHT 用于 layout 和 shot prompts,防止四个独立 act render 之间 host identity 交换。
- Load-bearing phrases:保留 4 acts × 15s each 作为整体结构,保持 concat 可预测,避免 act pacing 不均。
- Load-bearing phrases:保留 Hook → Feature deep-dive → The Turn → Verdict 脚本结构,给 episode 对话弧,而不是四个断开的反应。
- Load-bearing phrases:保留 wait, actually... skeptic-flip moment 作为脚本要求,制造 pivot,让播客像真实交流。
- Load-bearing phrases:保留 Do not call add_captions 作为输出规则,默认避免低质量 burned captions;明确 caption 请求使用手动 `subtitles[]` 和 font fallback,而非自动转写。
- Engine choice:四个 acts 使用 Kling v3-omni,因为它支持 native dialogue with two reference hosts and voice tokens in a single shot plan;tradeoff 是 acts 顺序运行以保持一致且可能比纯 edit/composite 流程更久;默认不要加单独 caption 或 music layer,本技能价值是 native spoken exchange。
- Runtime expectations:完整 4-act render 典型 wall-clock 为 24-32 分钟,~25 分钟现实,~32 分钟 P95;四个 acts 顺序通过 Kling Omni,是主导 runtime,不应描述为并行工作。
- Runtime expectations:若用户或执行 harness 预算低于 32 分钟,提前警告 full render 可能不完成,并提供 2-act / 30s fallback;否则保持正常 no-confirmation flow。
- Runtime 表格:Missing asset generation 30-90s(提供 background/host refs 时跳过);URL/topic parse + script 1-3 min(URL 模式取决于 page fetch quality);Four Kling acts 24-32 min(4 × ~8 min sequential Kling Omni calls,主导成本);Concat + return 30-90s(仅最终 URL;默认跳过 captions)。
- Failure mode 5xx:若任何 MCP 调用返回 `code: provider_5xx` 且 `retry_class: retry_after_backoff`,或任何上游 provider(Kling、voice clone、capture、storage)返回 HTTP 502/503/504:等 5 秒。
- Failure mode 5xx:重新调用完全相同的 MCP 工具和完全相同参数;不要重写脚本、改 voices、改 host refs、改 act order 或提交不同 prompt。
- Failure mode 5xx:若重试也 5xx,abort 并向用户 surface:Provider returned a transient upstream error twice. Try again in 1-2 minutes; this usually clears on its own.;不要重试超过一次;5xx 是 transient outage,不是 podcast topic、voices 或 script 错误的证据。
- Failure mode 4xx/moderation_blocked:若上游 4xx 或 `moderation_blocked` 发生在可选 `generate_image` helper、host asset 或 Kling act:不要重试相同输入;moderation 和多数 4xx validation failures 是确定性的。
- Failure mode 4xx/moderation_blocked:仅当该阶段明确有 fallback provider 才使用;默认 Kling v3-omni two-host act path 没有等价 fallback provider;不要用无关 captions 或 single-voice TTS 伪造 podcast。
- Failure mode 4xx/moderation_blocked:向用户 surface:Provider declined this podcast input. Try a different host reference, less recognizable public figure/brand wording, or a safer topic angle.。
- Failure mode 429:若任何上游返回 HTTP 429 且有 backoff hint:等 hinted backoff,或无 hint 时等 30 秒。
- Failure mode 429:重新调用完全相同的 MCP 工具和完全相同参数;不要重试超过一次;若仍 429,abort 并 surface rate-limit message。
- Failure mode capture_website 空/未加载:若 URL 模式调用 `capture_website` 返回 200 但 `action_bboxes` 为空或 `recording_viewport` 为 0x0:不要重试 `capture_website`;页面在 capture 环境渲染失败。
- Failure mode capture_website 空/未加载:若 `WebFetch` 返回可用 full-page text,继续而不重试 `capture_website`:用 WebFetch 作为事实锚点,用通用或生成视觉替代破损 capture,不要假装破损 capture 含页面细节。
- Failure mode capture_website 空/未加载:若 capture 和 WebFetch 都失败无法暴露可用 source material,surface:Could not capture <url>. The page may be blocked / paywalled / require auth. Please provide a text brief or paste the source material instead.。
- Failure mode capture_website 空/未加载:若 captured page 明显只有 above-the-fold navigation 无 article/content body,仅当 WebFetch 返回足够 full-page text grounding 脚本才继续;此时用 capture 做视觉、WebFetch 做事实;若两者都失败,要求粘贴 source material 而不是幻觉深页细节。
- Failure mode upload_asset 网络/认证失败:若 `upload_asset` 转换本地 host refs、voice samples 或 source media 到 hosted URL 时失败,不要继续使用本地文件系统路径;仅对上述 5xx 或 429 类重试一次;对 `auth_error`、不支持 MIME、网络失败或重复 upload failure,要求 hosted URL 或支持的替代文件。
- Failure mode task_status 超 ceiling:每个 async MCP 调用返回 inline result 或 `{task_id, status}` 用于轮询;使用 ceilings 判断 stuck:Kling Omni act 15 min per call;Voice clone 5 min per call;Edit/concat 5 min per call。
- Failure mode task_status 超 ceiling:使用 provider ceiling × 1.5 或任何 skill-specific hard polling cap(包括上述 Long-running task_status polling contract 的 15 min total cap)中较早者;若 `task_status` 在该更早限制后仍返回 `processing` 或 `queued`,调用 `task_cancel({task_id})` 并 surface:Provider taking unusually long; aborting. Try again.。
适用边界 · 注意事项
- 没有 Pika/Kling 等付费 MCP、credits 账号或 identity_balance 可用时不要使用;本技能依赖特定工具链和付费调用。
- 预算低于成本门控约 6,000-9,000 credits(约 $60-$90)或用户不愿回复 proceed 时不要运行完整流程。
- 需要高可靠自动字幕/自动转写,或没有手动 subtitles[] 可用时不要默认交付;本技能默认跳过 add_captions,且 Whisper 对领域术语易误转写。