- 商品详情页核心卖点:编辑态原是纯静态文本、且 save 不提交 selling_points, 既改不了也存不了;改为可改/删/回车增,save 带 selling_points 一起 PATCH。 - 去掉详情页 name/cat/target/卖点 的「设计稿假数据」fallback —— 商品没卖点 时不再凭空显示护肤品卖点,空值显示「未填写」。 - 出图成功后 submitAndPollAsset 不再整页全量 loadData(十几个 setState 触发 全页大重渲染),只刷当前项目详情 + 轻量刷余额。 - TOS 上传对象加 Cache-Control: immutable 长效强缓存,重渲染不再重拉图。 - products 序列化器内嵌商品图/封面 preview_url(并修回错位的 read_only_fields)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
输出前自检清单
输出 JSON 之前必读。逐条内部过一遍,命中问题先改再输出。 自检过程不展示给用户。 任一"硬校验"不通过 = 不合格,必须修。
A. 输出契约校验(硬,必须全过)
- 最终只输出一个 JSON 对象,无 schema 外的多余文字/注释。
tone∈{种草, 测评, 剧情, 痛点}。aspect_ratio存在;输入指定了就用输入值,未指定为"9:16"。total_duration∈{15, 30, 60, 90}。segment_count == total_duration / 15,且segments数组长度等于它。- 每个
segment.duration == 15;index从 0 连续递增无跳号。 - 每个
segment.role∈{钩子, 痛点, 卖点, CTA}。 - 首镜
role == 钩子;末镜收 CTA(独立 CTA 镜,或末镜旁白末尾含明确行动指令)。 entities每项type∈{character, scene, product},id全局唯一。entity_refs与speaker引用的 id 都已在 entities 中声明(无悬空引用)。- 每个声明的 entity 至少被一个 segment 引用(无孤儿 entity)。
- 至少声明 1 个
type==scene实体;每个 segment 的entity_refs恰好引用一个 scene(同环境复用同一 scene id,换环境才新建;产品特写镜也要绑所处环境的 scene)。 speaker要么为null,要么指向一个type==character的 id。- 必填字段无缺失:顶层
hook/tone/aspect_ratio/total_duration/segment_count/entities/segments; 每 entity 有id/type/name/visual_prompt/ref_index; 每 segment 有index/duration/role/narration/visual/product_exposure/entity_refs。
B. 内容质检(钩子 / 结构 / 一致性)
- 钩子镜第一句在前 3 秒抛出钩子,套用了
hook-library.md的某个公式。 - 顶层
hook与钩子镜口径一致。 - 卖点镜的卖点挂在前面铺的痛点上,不是干罗列参数。
- CTA 给了明确动作(点小黄车/领券/主页链接)。
- 档位映射正确:role 序列符合
methodology.md「档位 × 黄金结构映射」表。 - 90s 的多个卖点镜各有侧重不重复。
- 同一角色/场景/商品全程复用同一 entity(没有给同一对象写出两份 visual_prompt)。
- 每个
visual_prompt信息足够喂图模型(角色/场景/商品的外观特征写清)。 - 每镜
product_exposure自然、与 role 匹配(参考方法论露出表)。
C. 旁白红线扫描(逐镜)
- 每镜
narration≤ 55 字(硬上限;目标 ≤50 留缓冲,逐字数一遍,别凭感觉)。 - 口语化,无书面腔/AI 腔("综上""不仅…而且""值得一提"等已清除)。
- 违规词扫描:无医疗功效词(治疗/根治/抗癌/消炎/排毒/速效…)。
- 绝对化用语扫描:无 最/第一/唯一/100%/国家级/永久/绝对/史上 等。
- 无虚假承诺(三天见效/永不反弹/包治…)。
通过标准
A 区全部通过 + B/C 区无红线命中 → 可输出。 任何一条不过:先改,再重跑本清单,直到全过,才输出最终 JSON。