ワンクリックで
review-canvas
生成播客审查画布数据。根据当前工作区中的音频、转录、QA 报告和剪辑结果, 产出固定格式的 review_data.json,供右侧审查画布直接读取。 触发词:审查画布、review data、审查稿、生成播客审查
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
生成播客审查画布数据。根据当前工作区中的音频、转录、QA 报告和剪辑结果, 产出固定格式的 review_data.json,供右侧审查画布直接读取。 触发词:审查画布、review data、审查稿、生成播客审查
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
使用 browser-use CLI 对 PodcastCut webapp 做浏览器验收。始终使用 headed 模式,覆盖打开页面、登录、上传指定音频、触发生成审查稿、刷新审查稿、手动标记删除、确认剪辑、核对 workspace 产物。触发词:browser validation、浏览器验证、用 browser-use 跑流程、上传音频验收
语音克隆 + 播客生成完整流程。 上传音频 → 转录 → 修正文稿 → 提取声音样本 → 克隆声音模型 → TTS 合成 → 合并成品音频。 全自动执行,无需用户逐步操作。 触发词:语音克隆、声音克隆、生成播客、克隆声音
音频剪辑。根据 delete_segments.json 删除指定片段,自适应淡入淡出,可选说话人音量对齐。触发词:剪辑、cut、编辑音频
将当前 webapp 发布到 Fly.io,并在发布前后做最小健康检查。 适用于前端或后端改动后的一键上线。触发词:deploy、发布、上线、推到 fly、fly.io
使用 browser-use CLI 对 webapp 做端到端验证。覆盖登录、上传音频、生成 review_data.json、刷新审查稿、手动标记删除、确认剪辑、验证 podcast_cut.mp3。触发词:browser e2e、端到端验证、验证网页剪辑、用浏览器跑流程
金句混音。将高亮片段叠加在连续背景音乐上,人声出现时音乐自动降低。触发词:混音、片头音乐、金句背景音乐
| name | review-canvas |
| description | 生成播客审查画布数据。根据当前工作区中的音频、转录、QA 报告和剪辑结果, 产出固定格式的 review_data.json,供右侧审查画布直接读取。 触发词:审查画布、review data、审查稿、生成播客审查 |
| triggers | ["review canvas","审查画布","review data","审查稿","生成播客审查"] |
目标:在当前 workspace 根目录写出一个严格合法的
review_data.json,并与PodcastCut审查页直接兼容。
review_data.jsonreview_data.schema.jsonsentences、blocks、fineEdits 的数据模型与 podcastcutai 审查画布一致review_data.json优先读取当前 workspace 中已有文件,如果某些文件不存在就跳过:
*.mp3, *.m4a, *.wavtranscript.jsonqa_signal.json, qa_ai.json, qa_report.jsondelete_segments.json生成真实审查稿时,按下面顺序执行,不要跳成“先写空稿再说”:
*.m4a、*.mp3、*.wav/Users/lincolnwang/podcastcut-skills/webapp/backend/.venv/bin/python \
/Users/lincolnwang/podcastcut-skills/webapp/backend/skills/review_canvas/generate_review_data.py \
./你的音频文件.m4a
如果用户已经明确告诉你说话人数,再追加参数,例如:
/Users/lincolnwang/podcastcut-skills/webapp/backend/.venv/bin/python \
/Users/lincolnwang/podcastcut-skills/webapp/backend/skills/review_canvas/generate_review_data.py \
./你的音频文件.m4a \
--speakers 3
review_asr.pytranscript.jsonreview_data.jsonreview_data.json真实转录时,必须复用本 skill 目录中的实现:
/Users/lincolnwang/podcastcut-skills/webapp/backend/skills/review_canvas/review_asr.py其中:
review_asr.py 已经内置了优先级:DashScope FunASR -> OpenRouter Gemini fallbackgenerate_review_data.py;它内部只调用本 skill 目录中的模块--speakers 2;优先让 DashScope 自行分离执行 Python 时统一使用:
/Users/lincolnwang/podcastcut-skills/webapp/backend/.venv/bin/python
不要:
whispersentences: []如果需要调用这些 backend 模块,应通过项目虚拟环境显式 import 它们,然后把结果落成:
transcript.jsonreview_data.json顶层字段固定为:
{
"audio_url": "output.mp3",
"audio_duration": 111.4,
"sentences": [],
"blocks": [],
"fineEdits": []
}
idx:从 0 开始连续编号speaker:说话人名,如果未知可用 说话人1text:该句完整文本startTime / endTime:秒timeStr:m:sswords:字词级数组,格式 {t, s, e}isAiDeleted:是否建议删除deleteType:可选,例如 off_topic, tech_debug, pre_showblockId:如果属于某个粗剪块,则引用对应 block 的 idfineEdit:可选,是该句最主要的一条精剪摘要可选字段规则:
blockId 写成空字符串、0、null 或 falsedeleteType 写成空字符串fineEdit 只有在该句确实有精剪建议时才出现range 是句子索引区间,闭区间,例如 [3, 5]type / topic / reason 要可读duration 用 m:ssdurationSeconds 用秒startTime 用块起点秒数enabled 默认写 truesentenceIdx 指向 sentences[idx]type 可用 silence, stutter, consecutive_filler, repeatdeleteText / keepText 不确定时也要保留为空字符串,不能缺字段ds / de 为删除时间范围enabled 默认写 truetranscript.json / QA 文件提取事实数据transcript.json,先调用 DashScope FunASR 真实转录;若它失败,再回退 OpenRouter Geminisentences 必须优先来自真实转录结果;文本清理、删除建议、块和精剪判断由 Claude agent 自己完成;第一版允许 blocks 为空、fineEdits 为空,但不要让 sentences 为空audio_url 尽量写当前 workspace 里实际存在的音频文件名,优先:
output.mp3podcast_edited.mp3upload.mp3写完后必须再次读取并验证 review_data.json:
/Users/lincolnwang/podcastcut-skills/webapp/backend/.venv/bin/python \
/Users/lincolnwang/podcastcut-skills/webapp/backend/skills/review_canvas/validate_review_data.py \
review_data.json
如果校验失败,继续修正直到合法。