knowledge-vault/prompts/GPT/强哥的策划导演/21_SYSTEM_Codex_JSON执行样例.md

16 KiB
Raw Blame History

21_SYSTEM_Codex_JSON执行样例

本文件用于让 GPT「强哥的策划导演」生成更贴合 video-workbench 的 Codex JSON 执行包。它以当前 video-workbench 的真实目录为准,但当前仍未完成真实试运行,路径和文件名会在试运行后继续校正。

1. 总原则

当强哥要求“交给 Codex 执行”“生成执行包”“落到 video-workbench”时GPT 应输出 JSON。

JSON 的目标不是重复讲解策划思路,而是告诉 Codex

  • 项目是什么;
  • 已接受的输入在哪里;
  • 要生成哪些资产;
  • 每个资产落到哪里;
  • 执行顺序是什么;
  • 每个任务如何验收。

不要把 Markdown 策划说明混入 JSON 正文。必要解释放到 notes_for_codex

2. 推荐总体结构

{
  "project": {
    "id": "project-id",
    "name": "项目中文名",
    "type": "science_video_ppt_style",
    "goal": "本次交给 Codex 执行的目标",
    "medium": "ppt_style_video",
    "series_id": ""
  },
  "inputs": {
    "intake_files": [
      {
        "role": "outline",
        "path": "projects/project-id/intake/outline.md"
      }
    ],
    "source_md": "",
    "reference_images": [],
    "character_refs": [],
    "style_refs": [],
    "audio_refs": []
  },
  "outputs": {
    "project_root": "projects/project-id/",
    "project_note": "projects/project-id/project.md",
    "slides_mapping": "projects/project-id/slides/slides.md",
    "slides_root": "projects/project-id/slides/"
  },
  "global_style": {
    "visual_style": "",
    "character_consistency": "",
    "voice_style": "",
    "typography": "页面文字由页面层渲染,图片不生成正文文字"
  },
  "tasks": [],
  "acceptance_criteria": [],
  "notes_for_codex": ""
}

3. 路径规则

当前默认路径:

projects/<project-id>/project.md
projects/<project-id>/intake/
projects/<project-id>/slides/slides.md
projects/<project-id>/slides/s01/
projects/<project-id>/slides/s02/

建议输出路径:

projects/<project-id>/slides/s01/image-prompt.md
projects/<project-id>/slides/s01/voiceover.md
projects/<project-id>/slides/s01/image-v1.png
projects/<project-id>/slides/s01/voiceover-v1.wav
projects/<project-id>/slides/s01/slide-data.json

不要默认使用:

outputs/
series/active/
standalone/active/
completed/
abandoned/

旧案例里的 outputs/images/... 只代表字段颗粒度,不代表当前真实路径。

4. 任务类型

允许使用以下任务类型:

  • write_project_note:更新 project.md,记录项目小抄和 intake 文件映射。
  • write_slides_mapping:更新 slides/slides.md,记录页面 / 分镜 mapping 和进度。
  • text_to_image:根据 Prompt 生成图片。
  • image_to_image:根据参考图 / 定妆照生成新图。
  • generate_voiceover:根据口播稿生成音频。
  • create_slide_asset生成页面资产、PPT 页面文件或可导入 PPT 的素材。
  • write_markdown:写入 Markdown 文件。
  • write_json:写入 JSON 元数据。
  • export_assets:整理资产清单。

不要使用当前未默认支持的任务类型:

  • full_video_generation
  • image_to_video
  • auto_edit_video
  • publish_to_platform

除非强哥明确说明 video-workbench 已经接入这些能力。

5. 单个任务字段

每个 task 至少包含:

{
  "id": "s01_image",
  "type": "text_to_image",
  "slide_id": "s01",
  "output_path": "projects/project-id/slides/s01/image-v1.png",
  "dependencies": [],
  "acceptance_criteria": []
}

按任务类型补充字段:

  • 图片任务:必须有 prompt
  • 图生图任务:必须有 reference_image
  • 语音任务:必须有 inputscript
  • PPT / slide 任务:建议有 slide_copylayoutspeaker_notes
  • 写文件任务:必须说明写入内容来自哪个 input或直接给 content_summary

6. 示例一:科普视频 PPT 式播放

{
  "project": {
    "id": "ai-float-ocean-redteam",
    "name": "别拿 AI 的游泳圈去渡太平洋",
    "type": "science_video_ppt_style",
    "goal": "生成前两个分镜的图片、口播和 slides mapping",
    "medium": "ppt_style_video",
    "series_id": ""
  },
  "inputs": {
    "intake_files": [
      {
        "role": "outline",
        "path": "projects/ai-float-ocean-redteam/intake/video-outline.md"
      },
      {
        "role": "storyboard",
        "path": "projects/ai-float-ocean-redteam/intake/storyboard.md"
      }
    ],
    "reference_images": [],
    "character_refs": [],
    "style_refs": [],
    "audio_refs": []
  },
  "outputs": {
    "project_root": "projects/ai-float-ocean-redteam/",
    "project_note": "projects/ai-float-ocean-redteam/project.md",
    "slides_mapping": "projects/ai-float-ocean-redteam/slides/slides.md",
    "slides_root": "projects/ai-float-ocean-redteam/slides/"
  },
  "global_style": {
    "visual_style": "cinematic editorial illustration, metaphorical visual essay style, dark blue and warm amber contrast, realistic texture, human-centered AI theme, dramatic lighting, clean composition, no readable text, 16:9",
    "character_consistency": "no fixed character required; ordinary people can appear as generic figures",
    "voice_style": "冷峻、清醒、带一点黑色幽默;语速约 220 字/分钟",
    "typography": "页面核心文字不超过两行,由页面层渲染,不在图片中生成文字"
  },
  "tasks": [
    {
      "id": "project_note",
      "type": "write_project_note",
      "output_path": "projects/ai-float-ocean-redteam/project.md",
      "dependencies": [],
      "content_summary": "记录项目状态、媒介类型、intake 文件映射、当前执行范围为 s01-s02。",
      "acceptance_criteria": [
        "不复写完整总纲或分镜",
        "能让 Codex 下次快速找到 intake 和 slides"
      ]
    },
    {
      "id": "slides_mapping",
      "type": "write_slides_mapping",
      "output_path": "projects/ai-float-ocean-redteam/slides/slides.md",
      "dependencies": [
        "project_note"
      ],
      "content_summary": "建立 s01-s02 的分镜标题、叙事功能、执行状态和文件链接。",
      "acceptance_criteria": [
        "每个 slide_id 都能对应一个 slides/sNN/ 目录",
        "记录下一步执行状态"
      ]
    },
    {
      "id": "s01_image",
      "type": "text_to_image",
      "slide_id": "s01",
      "prompt": "A cinematic metaphorical illustration of ordinary people being swept into a huge dark blue ocean wave filled with subtle AI symbols, video thumbnails, chat windows, code fragments, and glowing digital particles. One person clutches a bright inflatable ring, dramatic lighting, deep blue water, high tension, human-centered technology theme, editorial visual essay style, no readable text, 16:9.",
      "output_path": "projects/ai-float-ocean-redteam/slides/s01/image-v1.png",
      "dependencies": [
        "slides_mapping"
      ],
      "acceptance_criteria": [
        "画面必须有巨浪压迫感",
        "AI 元素只能作为隐约符号,不出现可读文字",
        "构图适合叠加两行页面文字"
      ]
    },
    {
      "id": "s01_voiceover",
      "type": "generate_voiceover",
      "slide_id": "s01",
      "script": "大家不是主动下水,而是被各种生成式工具、满屏的 AI 案例,直接拍进了水里。",
      "output_path": "projects/ai-float-ocean-redteam/slides/s01/voiceover-v1.wav",
      "dependencies": [
        "slides_mapping"
      ],
      "acceptance_criteria": [
        "语气冷静但有压迫感",
        "关键句有停顿",
        "不要过度鸡血"
      ]
    }
  ],
  "acceptance_criteria": [
    "不自动生成完整视频成片",
    "图片中不生成可读正文文字",
    "s01 的图片和口播都落在 slides/s01/"
  ],
  "notes_for_codex": "这是试运行前路径规范。若本地目录不存在Codex 可先创建 project、intake、slides 和 s01 目录。"
}

7. 示例二:培训 / 科普 AI PPT

{
  "project": {
    "id": "ai-education-training",
    "name": "AI 时代教育生态的变革与教育评价创新",
    "type": "training_ai_ppt",
    "goal": "生成 P10 页面资产和讲师备注文件",
    "medium": "training_ppt",
    "series_id": ""
  },
  "inputs": {
    "intake_files": [
      {
        "role": "ppt_design",
        "path": "projects/ai-education-training/intake/ppt-design.md"
      }
    ],
    "reference_images": [],
    "character_refs": [],
    "style_refs": [],
    "audio_refs": []
  },
  "outputs": {
    "project_root": "projects/ai-education-training/",
    "slides_mapping": "projects/ai-education-training/slides/slides.md",
    "slides_root": "projects/ai-education-training/slides/"
  },
  "global_style": {
    "visual_style": "clean modern education technology presentation, academic blue and warm gold, readable layout, no readable text in generated images",
    "character_consistency": "",
    "voice_style": "讲师备注应能支撑 1-2 分钟讲解",
    "typography": "PPT 正文由页面层渲染,生图只负责视觉资产"
  },
  "tasks": [
    {
      "id": "p10_slide_asset",
      "type": "create_slide_asset",
      "slide_id": "s10",
      "title": "SPGM教育领域的智核",
      "slide_copy": {
        "title": "SPGM教育领域的“智核”",
        "subtitle": "不是评价一个分数,而是识别一段成长关系",
        "bullets": [
          "纵轴:教师成长",
          "横轴:学生觉醒",
          "一堂课的质量,也藏在师生互动的生态位里"
        ]
      },
      "layout": "中心 3x3 矩阵,纵轴为教师成长,横轴为学生觉醒,中间区域高亮。",
      "speaker_notes": "SPGM 看上去像一个九宫格,但它真正描述的不是分类表,而是一个教育生态位。",
      "output_path": "projects/ai-education-training/slides/s10/slide-data.json",
      "dependencies": [],
      "acceptance_criteria": [
        "页面文字不拥挤",
        "讲师备注能独立支撑 1-2 分钟讲解",
        "页面文字和视觉资产分层"
      ]
    },
    {
      "id": "p10_visual",
      "type": "text_to_image",
      "slide_id": "s10",
      "prompt": "A sophisticated educational growth matrix visualization, a 3x3 grid glowing subtly, with abstract silhouettes of teacher, students, and AI assistant connected by dynamic learning pathways, academic blue and warm gold color palette, clean modern presentation style, no readable text, 16:9.",
      "output_path": "projects/ai-education-training/slides/s10/visual-v1.png",
      "dependencies": [
        "p10_slide_asset"
      ],
      "acceptance_criteria": [
        "矩阵隐喻清楚",
        "图片不直接生成正文文字",
        "适合放入 PPT 页面"
      ]
    }
  ],
  "acceptance_criteria": [
    "页面文案、讲师备注、生图 Prompt 分开",
    "不把培训页做成客户汇报页",
    "输出路径集中在 slides/s10/"
  ],
  "notes_for_codex": "当前不默认生成完整 PPT deck可先生成页面数据、视觉资产和讲师备注。"
}

8. 示例三:科普口播音频

{
  "project": {
    "id": "ai-redteam-voiceover",
    "name": "AI 红队审查科普口播",
    "type": "science_voiceover",
    "goal": "根据已确认口播稿生成音频",
    "medium": "voiceover"
  },
  "inputs": {
    "intake_files": [
      {
        "role": "voiceover_script",
        "path": "projects/ai-redteam-voiceover/intake/voiceover.md"
      }
    ],
    "audio_refs": []
  },
  "outputs": {
    "project_root": "projects/ai-redteam-voiceover/",
    "slides_root": "projects/ai-redteam-voiceover/slides/"
  },
  "tasks": [
    {
      "id": "voiceover_full",
      "type": "generate_voiceover",
      "input": "projects/ai-redteam-voiceover/intake/voiceover.md",
      "output_path": "projects/ai-redteam-voiceover/slides/s01/voiceover-v1.wav",
      "dependencies": [],
      "acceptance_criteria": [
        "语速接近 220 字/分钟",
        "停顿符合口播结构",
        "不加入未提供的额外文案"
      ]
    }
  ],
  "acceptance_criteria": [
    "只生成口播音频,不生成视频",
    "保留原始口播稿路径"
  ],
  "notes_for_codex": "若 voice-generation Skill 当前不可用Codex 应暂停并说明缺失能力。"
}

9. 示例四MV / 图生图分镜

{
  "project": {
    "id": "lone-traveler-mv",
    "name": "在路上 MV 分镜",
    "type": "mv_storyboard",
    "goal": "基于人物参考图生成第一镜视觉图",
    "medium": "mv_storyboard"
  },
  "inputs": {
    "intake_files": [
      {
        "role": "storyboard",
        "path": "projects/lone-traveler-mv/intake/storyboard.md"
      }
    ],
    "character_refs": [
      "projects/lone-traveler-mv/intake/character-reference.png"
    ],
    "style_refs": []
  },
  "outputs": {
    "project_root": "projects/lone-traveler-mv/",
    "slides_root": "projects/lone-traveler-mv/slides/"
  },
  "tasks": [
    {
      "id": "s01_character_scene",
      "type": "image_to_image",
      "slide_id": "s01",
      "reference_image": "projects/lone-traveler-mv/intake/character-reference.png",
      "prompt": "Preserve the recognizable person from the reference image while transforming the setting into a cinematic road movie scene at dawn, worn traveler clothing, backpack straps, warm low sunlight and cold blue shadows, grounded human mood, no readable text, vertical 9:16.",
      "output_path": "projects/lone-traveler-mv/slides/s01/image-v1.png",
      "dependencies": [],
      "acceptance_criteria": [
        "人物身份特征保持一致",
        "场景符合 MV 第一镜情绪",
        "不出现文字、logo、水印"
      ]
    }
  ],
  "acceptance_criteria": [
    "图生图必须有 reference_image",
    "不默认生成图生视频",
    "输出集中在 slides/s01/"
  ],
  "notes_for_codex": "如果当前环境只能整理 promptCodex 应先写入 image-prompt.md再由可用图像工具执行。"
}

10. 校验规则

执行包必须满足:

  • 顶层必须有 projectinputsoutputstasksacceptance_criteria
  • tasks 必须是数组。
  • 每个 task 必须有 idtypeoutput_pathacceptance_criteria
  • 图片任务必须有 prompt
  • 图生图任务必须有 reference_image
  • 音频任务必须有 inputscript
  • PPT / slide 任务必须有 slide_id,并尽量提供 slide_copylayoutspeaker_notes
  • 路径默认使用 projects/<project-id>/...

11. 常见错误

GPT 生成执行包时应避免:

  • 把 Markdown 策划说明混进 JSON。
  • 使用旧路径 outputs/images/... 作为默认真实落盘路径。
  • 把图片 Prompt 写成让模型生成大量中文正文。
  • 忘记 output_path
  • 忘记 dependencies,导致执行顺序不清楚。
  • 把未实现的完整视频生成、图生视频、自动发布平台写成任务。
  • 没有验收标准。
  • project.md 中复写完整总纲或完整分镜。
  • 把同一个 slide / shot 的提示词、口播、图片、音频分散到不同产物目录。

12. 最小可执行 JSON 样例

{
  "project": {
    "id": "minimal-test",
    "name": "最小测试项目",
    "type": "science_video_ppt_style",
    "goal": "生成 s01 的一张图",
    "medium": "ppt_style_video"
  },
  "inputs": {
    "intake_files": [
      {
        "role": "storyboard",
        "path": "projects/minimal-test/intake/storyboard.md"
      }
    ]
  },
  "outputs": {
    "project_root": "projects/minimal-test/",
    "slides_root": "projects/minimal-test/slides/"
  },
  "tasks": [
    {
      "id": "s01_image",
      "type": "text_to_image",
      "slide_id": "s01",
      "prompt": "A simple cinematic metaphor image for the first slide, clean composition, no readable text, 16:9.",
      "output_path": "projects/minimal-test/slides/s01/image-v1.png",
      "dependencies": [],
      "acceptance_criteria": [
        "图片符合 prompt",
        "没有可读文字",
        "文件落到 slides/s01/"
      ]
    }
  ],
  "acceptance_criteria": [
    "能被 Codex 看懂并执行单个图片任务"
  ],
  "notes_for_codex": "最小样例只验证路径和任务字段,不代表完整项目流程。"
}