SVGlide 线上可编辑协议元素穿透报告

生成时间:2026-06-26
CLI:/Users/bytedance/bd-projects/workspaces/SVGlide/.worktrees/cli-svglide-svg-private
slide:/Users/bytedance/bd-projects/workspaces/SVGlide/.worktrees/slide-svglide-chart-direct-snapshot

目标

把问题重新锚定在 SVGlide +create-svg 链路:确认 raw Satori / contract SVG 如何提交到 slide 后端,并定义如何从“视觉保真但全页图片”升级为“线上真正可编辑的协议元素”。XML 全页图片 fallback 只能作为诊断或临时视觉兜底,不是目标架构。

团队设置

角色职责结论
CLI 契约审查者检查 generate_svg 到 +create-svgprepare 当前把 artboard_satori 默认包成整页 PNG
slide parser 审查者检查后端 direct SVG parser确认 text、shape、line、image、chart marker 等可编辑路径存在
E2E 验收审查者定义线上验收矩阵必须新增 editability_gate

当前事实

generate_svg
  -> 04-artboard/raw/page-###.visual.svg
  -> 04-artboard/raw/page-###.visual.png
contract_compile
  -> 04-svg/page-###.svg
prepare
  -> 04-svg/prepared/page-###.svg
+create-svg
  -> slide 后端创建线上文档
当前丢失线上可编辑性的直接节点是 prepare:它在 artboard_satori 模式下生成单个整页 <image slide:role="image">,receipt 记录 full_page_raster_submissiononline text is not editable

slide parser 支持面

输入协议元素线上目标 block备注
<text slide:role="text">Text shape支持 Satori text style manifest
<foreignObject slide:role="text">Text shape支持部分 HTML/CSS 抽取
rect/circle/ellipse/path/polygon/polylineShape blockpath 只支持 MVP 命令
lineLine block不应伪装成 leaf shape
imageImage block必须有 file meta 或 assets metadata
g slide:role="chart"Chart/embed block需要 chart metadata 和 preparedCharts

核心结论

  1. slide parser 已经有 direct editable SVG 路径。
  2. contract_compile 已经能做 raw Satori lowering。
  3. prepare 为了线上创建成功,把 artboard 输出改成了整页图片。
  4. 现有 gate 只证明能创建和视觉相似,没有证明线上可编辑。
  5. 需要恢复可编辑提交路径,并新增 readback 后的 editability_gate

目标链路

用户需求 / 参考资产
  -> planner / theme-template selection
  -> canvas spec
  -> raw Satori visual SVG
  -> contract_compile: raw Satori lowering
  -> prepare: asset token 注入 + 协议校验 + 必要局部降级
  -> +create-svg: 提交 SVGlide protocol SVG
  -> slide direct parser: 生成 editable text/shape/line/image/chart blocks
  -> readback
  -> editability_gate
  -> snapshot_visual_fidelity

P0 防偏移原则

必须新增的验收指标

指标通过标准
full_page_raster_count可编辑线上提交必须为 0
editable_text_count有文本页面必须 >= 1
editable_shape_count内容页建议 >= 2,fixture 用精确值
raster_area_ratio无声明图片页 <= 0.05,有图片资产页建议 <= 0.20
image_only_page_count可编辑提交必须为 0

执行计划

  1. 建立 editable_online profile,拒绝整页 raster。
  2. 统一文本协议路径,以 slide parser 当前真实支持路径为准。
  3. 修正 prepare 职责边界:只做 token、metadata、hash、局部降级,不重画整页。
  4. 新增 editability_gate,readback 统计 editable text/shape/line/image/chart。
  5. 建立最小线上可编辑 smoke deck,跑通 +create-svg live create、readback、visual fidelity。

下一步建议目标

按 TDD 恢复 SVGlide artboard_satori 的线上可编辑提交路径:先建立 editable_online profile 和 editability_gate,再让 prepare 默认提交 contract SVG 而不是整页 raster,最后用最小 smoke deck 跑通 +create-svg live create、readback、editable block 统计和视觉对比。