Selaa lähdekoodia

docs: 更新行业价值演示平台V2.0汇报与Demo任务书

Co-authored-by: Cursor <cursoragent@cursor.com>
YY968XX 19 tuntia sitten
vanhempi
commit
3e4c5bde95

+ 43 - 0
doc/plan/行业化Ai-DOP价值演示平台/Ai-DOP行业化价值演示平台P0业务交互Demo开发执行任务书.md

@@ -10,6 +10,49 @@
 
 ---
 
+## 开发前必读:整体方案与 P0 定位
+
+### 整体要建设什么
+
+完整方案由三块组成:
+
+1. **行业运营场景实验室**:构建运营级虚拟工厂,通过批量模拟发现可能的问题,并测试不同改善措施。
+2. **场景资产中心**:校验、审核、版本化和发布健康参考、问题病例、改善分支及动态播放场景。
+3. **行业化价值演示平台**:供顾问选择行业、体量和问题,动态展示“问题发生—诊断—措施 A/B/C—恢复或反弹”,并形成价值摘要和 PoC 建议。
+
+三者共享制造业本体、工厂原型、故障与改善原语、KPI、证据和场景标准。实验室负责发现,资产中心负责治理,演示平台负责稳定展示。完整智能体属于后续增强能力,不是第一阶段前置条件。
+
+### 本次 P0 要做什么
+
+本任务**不是建设上述完整后台**,而是先完成面向业务确认的前端交互 Demo,让业务人员能够直观看到:
+
+- 页面大概是什么样子;
+- 行业、工厂原型、体量和问题如何选择;
+- 合成健康参考如何展示;
+- 一个问题如何发生、暴露并跨模块传导;
+- 措施 A/B/C 如何逐步执行;
+- 每项措施对应哪些业务事实和指标变化;
+- 最终如何恢复、部分有效或反弹;
+- 系统如何形成价值摘要和 PoC 建议。
+
+P0 的成功标准是:
+
+> **看得见、点得动、讲得通。**
+
+它用于确认产品方向、页面信息、操作路径和动态效果,不用于证明正式仿真、真实行业收益或智能体能力已经实现。
+
+### 开发防偏离原则
+
+- 优先完成**一个完整病例 + 三项改善措施 + 一条完整动态主线**,不要扩展多个不完整行业和病例。
+- 优先保证业务过程连贯,不能只做若干彼此孤立的漂亮页面。
+- 动态过程必须表现“业务事实变化 → 领先指标变化 → 结果指标变化 → 恢复/反弹”,不能只让 KPI 从红色跳为绿色。
+- 页面必须持续标识“合成演示数据/交互原型”,不得包装成真实客户数据或行业最佳值。
+- 实验室和资产中心在 P0 只需说明产品边界,不建设详细管理后台。
+- 不接后端、不建数据库、不做正式仿真、不做完整智能体;使用静态场景数据和前端状态机完成交互确认。
+- 如果范围发生冲突,优先保证主路径可完整演示,并删除非核心页面或效果。
+
+---
+
 ## 一、任务目标
 
 在现有 Ai-DOP Web 工程中建设一套可独立运行、可点击、可重复播放的行业化价值演示 Demo,完整表达以下业务故事:

BIN
doc/plan/行业化Ai-DOP价值演示平台/Ai-DOP行业化价值演示平台方案汇报_V2.0.pptx


+ 638 - 0
doc/plan/行业化Ai-DOP价值演示平台/generate_aidop_industry_value_ppt_v2.py

@@ -0,0 +1,638 @@
+#!/usr/bin/env python3
+"""Generate V2.0 of the Ai-DOP industry value demonstration platform deck.
+
+The V1 deck and its generator are intentionally left unchanged.
+"""
+
+from pathlib import Path
+
+from pptx import Presentation
+from pptx.dml.color import RGBColor
+from pptx.enum.text import MSO_ANCHOR, PP_ALIGN
+from pptx.util import Inches
+
+from generate_aidop_industry_value_ppt import (
+    BLUE,
+    GREEN,
+    GREEN_2,
+    H,
+    INK,
+    LINE,
+    MUTED,
+    ORANGE,
+    PALE_BLUE,
+    PALE_GREEN,
+    PALE_GREEN_2,
+    PALE_ORANGE,
+    PALE_RED,
+    RED,
+    W,
+    WHITE,
+    add_notes,
+    bullets,
+    card,
+    flow_boxes,
+    footer,
+    line,
+    pill,
+    rect,
+    set_bg,
+    text,
+    title,
+)
+
+
+BASE_DIR = Path(__file__).resolve().parent
+OUTPUT = BASE_DIR / "Ai-DOP行业化价值演示平台方案汇报_V2.0.pptx"
+V2_NOTE = "V2.0 讨论稿|合成场景用于产品与PoC假设,不代表真实行业收益"
+
+
+def v2_footer(slide, note=V2_NOTE):
+    footer(slide, note)
+
+
+def build_deck():
+    prs = Presentation()
+    prs.slide_width = Inches(W)
+    prs.slide_height = Inches(H)
+
+    # 1. Cover
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide, GREEN)
+    rect(slide, 0, 0, W, 0.1, ORANGE, ORANGE, False)
+    text(slide, "Ai-DOP", 0.75, 0.55, 2.0, 0.45, 17, PALE_GREEN, True)
+    text(slide, "行业化价值演示平台", 0.75, 1.45, 9.5, 0.95, 39, WHITE, True)
+    text(slide, "顶层方案汇报 V2.0", 0.78, 2.48, 6.5, 0.55, 25, RGBColor(211, 226, 216), True)
+    rect(slide, 0.78, 3.27, 2.0, 0.06, ORANGE, ORANGE, False)
+    text(
+        slide,
+        "用运营级虚拟工厂发现合成问题,用场景资产治理可信版本,用动态演示讲清从问题到改善的全过程",
+        0.78,
+        3.58,
+        10.8,
+        0.88,
+        17,
+        WHITE,
+    )
+    flow_boxes(
+        slide,
+        ["场景实验室", "资产审核发布", "健康参考", "问题病例", "动态改善", "推动PoC"],
+        0.78,
+        5.18,
+        11.75,
+        0.76,
+        [BLUE, ORANGE, GREEN_2, RED, GREEN, ORANGE],
+        11,
+    )
+    text(slide, "独立新版本|保留原V1方案|2026.10", 0.78, 6.62, 5.8, 0.28, 10, RGBColor(196, 216, 205))
+    pill(slide, "合成场景 ≠ 行业事实|模拟改善 ≠ 客户真实收益", 8.2, 6.48, 4.25, ORANGE, WHITE, 10.5)
+    add_notes(slide, "V2.0 的核心变化:将实验室、资产中心和演示平台分开,演示现场只消费已发布场景。")
+
+    # 2. Why V2
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "为什么升级 V2.0:现实中没有足够样本,不能靠编故事", 2, "把“案例准备”升级为可持续产生、验证和发布合成场景的产品机制")
+    card(
+        slide,
+        "现实约束",
+        "没有足够行业样本\n没有完整问题清单\n不知道每种改善过程\n缺少措施对应的详细数据\n没有专家和真实客户持续校准",
+        0.55,
+        1.82,
+        3.72,
+        3.55,
+        RED,
+        PALE_RED,
+        1,
+        12,
+    )
+    card(
+        slide,
+        "V2.0 解法",
+        "生成虚拟工厂健康基线\n自动注入故障扰动\n批量实验发现候选问题\n反事实测试改善措施\n编译为可重复动态场景",
+        4.47,
+        1.82,
+        4.0,
+        3.55,
+        GREEN,
+        PALE_GREEN,
+        2,
+        12,
+    )
+    card(
+        slide,
+        "可信边界",
+        "先得到模型内可验证假设\n不宣称真实行业规律\n显示来源、假设与可信度\n未来用公开资料和PoC校准\n演示结果服务于设计与验证",
+        8.67,
+        1.82,
+        4.1,
+        3.55,
+        BLUE,
+        PALE_BLUE,
+        3,
+        12,
+    )
+    rect(slide, 0.55, 5.68, 12.22, 0.82, INK, INK)
+    text(
+        slide,
+        "目标不是穷举现实世界,而是在明确模型边界内,系统化发现“可能的问题、可能的改善方案和对应数据过程”。",
+        0.86,
+        5.87,
+        11.6,
+        0.42,
+        16,
+        WHITE,
+        True,
+        PP_ALIGN.CENTER,
+        MSO_ANCHOR.MIDDLE,
+    )
+    v2_footer(slide)
+
+    # 3. Product split
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "产品体系:实验、治理、演示必须分开", 3, "共享本体和场景标准,隔离草稿实验与客户现场")
+    flow_boxes(
+        slide,
+        ["行业运营场景实验室", "场景资产中心", "行业化价值演示平台"],
+        0.75,
+        1.76,
+        11.85,
+        0.9,
+        [BLUE, ORANGE, GREEN],
+        14,
+    )
+    card(
+        slide,
+        "负责发现",
+        "虚拟工厂生成\n批量实验与扰动\n候选问题发现\n改善措施搜索\n反事实与多目标评价",
+        0.75,
+        3.02,
+        3.62,
+        2.7,
+        BLUE,
+        PALE_BLUE,
+        None,
+        11.8,
+    )
+    card(
+        slide,
+        "负责发布",
+        "自动校验与审核\n版本、签名和兼容\n可信度与适用范围\n发布、撤回和废止\n不可变场景包分发",
+        4.85,
+        3.02,
+        3.62,
+        2.7,
+        ORANGE,
+        PALE_ORANGE,
+        None,
+        11.8,
+    )
+    card(
+        slide,
+        "负责展示",
+        "行业/体量选择\n合成健康参考\n问题病例与传导\n措施A/B/C动态播放\n价值报告与PoC建议",
+        8.95,
+        3.02,
+        3.62,
+        2.7,
+        GREEN,
+        PALE_GREEN,
+        None,
+        11.8,
+    )
+    pill(slide, "现场演示不依赖实验室在线|演示平台只读取已发布场景", 2.1, 6.2, 9.2, INK, WHITE, 12)
+    v2_footer(slide)
+
+    # 4. Five-question value chain
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "业务展示主线:从健康参考到动态改善验证", 4, "页面、数据、播放轨道和业务沟通统一使用同一条价值链")
+    labels = ["选择行业/体量", "合成健康参考", "问题发生与传导", "诊断与根因假设", "措施A/B/C", "恢复/反弹验证"]
+    flow_boxes(slide, labels, 0.55, 1.72, 12.2, 0.78, [ORANGE, GREEN, RED, BLUE, ORANGE, GREEN_2], 10.4)
+    cards = [
+        ("当前状态", "订单、工单、物料、采购、生产、质量、交付和数据状态。", BLUE, PALE_BLUE),
+        ("有什么问题", "偏差、贡献对象、上下游传导、影响范围与不处理趋势。", RED, PALE_RED),
+        ("好的是什么", "合成健康参考、合理区间、稳定运行和保护指标。", GREEN_2, PALE_GREEN_2),
+        ("怎么改善", "措施的作用对象、直接表征、生效延迟、副作用和失效条件。", ORANGE, PALE_ORANGE),
+        ("如何验证", "业务事实、KPI、S8、任务、保护指标和反弹共同验证。", GREEN, PALE_GREEN),
+    ]
+    for i, (head, body, accent, fill) in enumerate(cards):
+        card(slide, head, body, 0.55 + i * 2.45, 2.95, 2.22, 2.65, accent, fill, i + 1, 10.6)
+    rect(slide, 0.55, 5.95, 12.2, 0.55, WHITE, GREEN)
+    text(slide, "同一场景版本|同一 runId|同一虚拟业务日|同一批业务事实|同一可信度标识", 0.8, 6.05, 11.7, 0.32, 12.5, GREEN, True, PP_ALIGN.CENTER)
+    v2_footer(slide)
+
+    # 5. Scenario lab
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "行业运营场景实验室:自动实验发现问题与改善候选", 5, "不暴力穷举;通过约束、抽样、敏感性和优化控制组合空间")
+    flow_boxes(
+        slide,
+        ["工厂原型", "健康基线", "故障扰动", "批量实验", "问题聚类", "改善搜索", "稳健性验证"],
+        0.5,
+        1.65,
+        12.3,
+        0.72,
+        [GREEN, GREEN_2, RED, BLUE, ORANGE, GREEN, INK],
+        9.8,
+    )
+    card(
+        slide,
+        "实验输入",
+        "制造业本体与流程\n工厂原型和体量参数\n业务约束与KPI\n故障原语和动作原语\n参数范围、种子和预算",
+        0.55,
+        2.78,
+        3.65,
+        2.82,
+        BLUE,
+        PALE_BLUE,
+        None,
+        11.4,
+    )
+    card(
+        slide,
+        "自动发现",
+        "对照实验与单因素消融\n敏感性和稳定区间\n对象、事件与影响路径\n相似问题轨迹聚类\n排除数据闭包和模型错误",
+        4.45,
+        2.78,
+        4.0,
+        2.82,
+        ORANGE,
+        PALE_ORANGE,
+        None,
+        11.4,
+    )
+    card(
+        slide,
+        "改善搜索",
+        "不处理 / A / B / C\nA+B / A+C / B+C / A+B+C\n比较不同执行顺序\n交付、库存、质量、成本平衡\n保留失败、副作用和反弹",
+        8.7,
+        2.78,
+        4.05,
+        2.82,
+        GREEN,
+        PALE_GREEN,
+        None,
+        11.2,
+    )
+    pill(slide, "实验室输出:合成问题原型 + 因果路径 + 候选改善组合 + 数据轨迹 + 适用/失效条件", 1.0, 6.05, 11.3, INK, WHITE, 11.2)
+    v2_footer(slide)
+
+    # 6. Health samples and trust
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "合成健康参考:没有真实样本时,先建立可解释的内部基线", 6, "“模型内可行且稳定”不等于“行业最佳”")
+    card(
+        slide,
+        "匹配维度",
+        "行业与二级行业\nETO/MTO/MTS等工厂原型\n订单量、SKU、产线与人员体量\n产品复杂度和供应网络\n库存、提前期和质量波动",
+        0.55,
+        1.78,
+        3.45,
+        3.7,
+        BLUE,
+        PALE_BLUE,
+        None,
+        11.5,
+    )
+    card(
+        slide,
+        "健康判断",
+        "主数据和业务键闭包\n数量守恒与时间合理\n运行在设定健康区间\n趋势稳定、异常可控\n结果/驱动/保护指标平衡",
+        4.25,
+        1.78,
+        3.85,
+        3.7,
+        GREEN,
+        PALE_GREEN,
+        None,
+        11.5,
+    )
+    card(
+        slide,
+        "可信度分级",
+        "S0 模型生成\nS1 内部验证\nS2 公开资料校准\nS3 客户数据校准\nS4 多客户验证",
+        8.35,
+        1.78,
+        4.4,
+        3.7,
+        ORANGE,
+        PALE_ORANGE,
+        None,
+        12,
+    )
+    rect(slide, 0.55, 5.83, 12.2, 0.78, PALE_RED, RED)
+    text(slide, "当前无专家和真实客户:正式演示资产主要处于 S1/S2;页面必须显示假设、来源、适用范围和可信度。", 0.85, 6.02, 11.6, 0.38, 14, RED, True, PP_ALIGN.CENTER)
+    v2_footer(slide)
+
+    # 7. Scenario package and asset center
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "场景资产中心:把实验结果变成稳定、可审核、可回放的产品资产", 7, "实验室可以失败,演示平台只能消费已发布版本")
+    flow_boxes(slide, ["实验草稿", "模型内校验", "正式链路验证", "内部审核", "发布签名", "演示分发"], 0.65, 1.7, 12.0, 0.76, [BLUE, GREEN_2, GREEN, ORANGE, INK, GREEN], 10.5)
+    card(
+        slide,
+        "场景包内容",
+        "行业/原型/体量\n本体、规则和生成器版本\n参数、随机种子和可信度\n业务事件与反事实分支\n检查点、断言和播放轨道",
+        0.65,
+        2.86,
+        3.75,
+        2.9,
+        GREEN,
+        PALE_GREEN,
+        None,
+        11.3,
+    )
+    card(
+        slide,
+        "发布门禁",
+        "业务键闭包和数量守恒\n时间、状态和因果检查\nKPI/S8/诊断正式链路\n重复运行与稳健性\n签名、校验值和兼容范围",
+        4.75,
+        2.86,
+        3.75,
+        2.9,
+        ORANGE,
+        PALE_ORANGE,
+        None,
+        11.3,
+    )
+    card(
+        slide,
+        "产品边界",
+        "草稿与发布资产隔离\n失败实验不进入演示\n已发布版本不可变\n支持撤回、废止和回滚\n演示不依赖实验室在线",
+        8.85,
+        2.86,
+        3.75,
+        2.9,
+        BLUE,
+        PALE_BLUE,
+        None,
+        11.3,
+    )
+    pill(slide, "场景资产是实验室与演示平台之间唯一受治理的交付物", 2.25, 6.2, 8.8, INK, WHITE, 12)
+    v2_footer(slide)
+
+    # 8. Dynamic demo
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "动态改善演示:不是固定视频,而是数据驱动的确定性回放", 8, "业务看到页面大概样式、操作路径和措施效果")
+    flow_boxes(
+        slide,
+        ["健康", "恶化", "暴露", "诊断", "措施A", "措施B", "措施C", "恢复/反弹"],
+        0.45,
+        1.62,
+        12.42,
+        0.68,
+        [GREEN, ORANGE, RED, BLUE, ORANGE, GREEN_2, BLUE, GREEN],
+        9.2,
+    )
+    card(
+        slide,
+        "播放器",
+        "播放/暂停/单步\n1倍/2倍\n检查点跳转\n从头播放/安全重置\n虚拟业务日期",
+        0.55,
+        2.72,
+        2.8,
+        2.88,
+        BLUE,
+        PALE_BLUE,
+        None,
+        11.4,
+    )
+    card(
+        slide,
+        "每项措施",
+        "作用对象与前置条件\n直接业务动作\n直接表征\n生效延迟\n副作用与失效条件",
+        3.58,
+        2.72,
+        2.95,
+        2.88,
+        ORANGE,
+        PALE_ORANGE,
+        None,
+        11.4,
+    )
+    card(
+        slide,
+        "同步变化",
+        "业务事实\n领先指标\n结果指标\n保护指标\nS8异常与任务",
+        6.76,
+        2.72,
+        2.75,
+        2.88,
+        GREEN,
+        PALE_GREEN,
+        None,
+        11.4,
+    )
+    card(
+        slide,
+        "三态对比",
+        "病例初始状态\n当前改善状态\n合成健康参考\n不处理趋势\n反事实分支",
+        9.74,
+        2.72,
+        3.03,
+        2.88,
+        RED,
+        PALE_RED,
+        None,
+        11.4,
+    )
+    pill(slide, "表现方式:应用内自动导航、高亮和讲解|不使用录屏、鼠标宏或直改图表", 1.2, 6.05, 10.9, INK, WHITE, 11.3)
+    v2_footer(slide)
+
+    # 9. Demo journey
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "顾问演示体验:选得出、看得懂、点得动、讲得通", 9, "同一场景同时服务管理层、业务负责人和IT")
+    timeline = [
+        ("0–8", "客户画像\n问题地图", ORANGE),
+        ("8–15", "合成健康\n适用范围", GREEN),
+        ("15–30", "问题发生\n跨域传导", RED),
+        ("30–40", "诊断依据\n根因假设", BLUE),
+        ("40–52", "措施A/B/C\n动态变化", GREEN_2),
+        ("52–60", "技术可行\nPoC建议", INK),
+    ]
+    x = 0.55
+    for tm, label, color in timeline:
+        w = 1.87
+        rect(slide, x, 1.75, w, 1.12, color, color)
+        text(slide, tm + "分钟", x + 0.08, 1.88, w - 0.16, 0.25, 9.5, WHITE, True, PP_ALIGN.CENTER)
+        text(slide, label, x + 0.08, 2.2, w - 0.16, 0.5, 11, WHITE, True, PP_ALIGN.CENTER, MSO_ANCHOR.MIDDLE)
+        x += 2.04
+    card(slide, "管理视图", "结果、风险、措施、价值和PoC决策", 0.55, 3.3, 3.75, 1.55, GREEN, PALE_GREEN, None, 11.8)
+    card(slide, "业务视图", "订单、工单、物料、采购、任务和证据", 4.55, 3.3, 4.15, 1.55, BLUE, PALE_BLUE, None, 11.8)
+    card(slide, "技术视图", "数据身份、场景版本、来源通道和实现边界", 8.95, 3.3, 3.82, 1.55, ORANGE, PALE_ORANGE, None, 11.8)
+    flow_boxes(slide, ["自动讲解模式", "交互决策模式", "检查点模式"], 1.0, 5.35, 11.3, 0.82, [GREEN, ORANGE, BLUE], 12.5)
+    text(slide, "业务确认重点:页面样式|信息是否看懂|操作是否顺畅|动态改善是否有说服力", 0.8, 6.43, 11.7, 0.32, 12.5, GREEN, True, PP_ALIGN.CENTER)
+    v2_footer(slide)
+
+    # 10. Agent boundary
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "智能体路线:第一阶段不依赖,底层契约提前就绪", 10, "核心价值来自可信模拟、正式计算和动态演示,不来自模型临场编故事")
+    card(
+        slide,
+        "第一阶段必须有",
+        "制造业本体与对象契约\n虚拟工厂与实验机制\n场景资产发布\n确定性动态播放器\n来源、证据和可信度",
+        0.55,
+        1.85,
+        3.72,
+        3.65,
+        GREEN,
+        PALE_GREEN,
+        1,
+        11.8,
+    )
+    card(
+        slide,
+        "后续可增加",
+        "实验助手组织下一轮实验\n顾问助手推荐场景和讲解\n诊断助手生成改善草稿\n角色智能体模拟任务交接\n所有能力走受控工具",
+        4.52,
+        1.85,
+        4.0,
+        3.65,
+        BLUE,
+        PALE_BLUE,
+        2,
+        11.8,
+    )
+    card(
+        slide,
+        "永久禁止",
+        "模型自行计算正式KPI\n把合成假设说成客户事实\n自由生成生产SQL\n直接写库或绕审批\n用模型输出证明因果正确",
+        8.77,
+        1.85,
+        4.0,
+        3.65,
+        RED,
+        PALE_RED,
+        3,
+        11.8,
+    )
+    pill(slide, "智能体是体验和效率增强项,不是实验正确性、数据真相和基础演示的前置条件", 1.15, 6.0, 11.0, INK, WHITE, 11.5)
+    v2_footer(slide)
+
+    # 11. Phases
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "阶段路线:先确认业务体验,再形成发现—发布—演示闭环", 11, "P0 时间明确;P1–P5 在详细设计和工作量评估后排期")
+    phases = [
+        ("P0", "业务交互确认", "3天制作\n第4天业务展示\n静态场景动态回放", INK),
+        ("P1", "语义与标准", "最小本体\n故障/改善原语\n场景包与播放契约", GREEN),
+        ("P2", "最小实验室", "健康基线\n批量实验\n问题与改善候选", BLUE),
+        ("P3", "资产发布", "正式链路验证\n审核签名\n发布首批L3场景", ORANGE),
+        ("P4", "动态演示平台", "场景选择\n播放器与三视图\n价值报告与PoC", GREEN_2),
+        ("P5", "增强与复制", "更多原型/行业\n真实数据校准\n受控智能体", RED),
+    ]
+    for i, (phase, heading, body, color) in enumerate(phases):
+        x = 0.4 + i * 2.1
+        rect(slide, x, 1.82, 1.9, 4.35, WHITE, color)
+        pill(slide, phase, x + 0.55, 2.02, 0.8, color, WHITE, 10)
+        text(slide, heading, x + 0.13, 2.65, 1.64, 0.74, 13, INK, True, PP_ALIGN.CENTER, MSO_ANCHOR.MIDDLE)
+        line(slide, x + 0.25, 3.5, x + 1.65, 3.5, color, 1.3)
+        text(slide, body, x + 0.14, 3.77, 1.62, 1.62, 9.8, MUTED, False, PP_ALIGN.CENTER)
+        if i < len(phases) - 1:
+            text(slide, "›", x + 1.91, 3.72, 0.18, 0.45, 18, GREEN, True, PP_ALIGN.CENTER)
+    rect(slide, 0.9, 6.47, 11.52, 0.38, PALE_GREEN, PALE_GREEN, False)
+    text(slide, "阶段门:交互确认 → 契约冻结 → 发现有效 → 发布可控 → 演示稳定 → 校准复制", 1.05, 6.5, 11.2, 0.3, 10.8, GREEN, True, PP_ALIGN.CENTER)
+    v2_footer(slide)
+
+    # 12. Penultimate: overall architecture + phased outcome
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "一图看懂:三产品体系、共享底座与分阶段成果", 12, "整体架构图|V2.0 重点更新页")
+
+    # Stage outcome bands
+    stage_defs = [
+        (0.5, 3.0, INK, "P0", "页面与交互确认", "看得见|点得动|讲得通"),
+        (3.68, 4.12, BLUE, "P1–P3", "场景生产与发布", "能发现|能验证|能治理"),
+        (7.98, 2.48, GREEN, "P4", "动态价值演示", "可选择|可回放|可报告"),
+        (10.64, 2.19, ORANGE, "P5", "智能与行业扩展", "可校准|可复制|可增强"),
+    ]
+    for x, w, color, phase, outcome, desc in stage_defs:
+        rect(slide, x, 1.62, w, 0.88, color, color)
+        text(slide, phase, x + 0.12, 1.72, 0.62, 0.22, 9.3, WHITE, True)
+        text(slide, outcome, x + 0.12, 1.95, w - 0.24, 0.28, 14, WHITE, True)
+        text(slide, desc, x + 0.12, 2.25, w - 0.24, 0.2, 8.7, WHITE)
+
+    # Main product architecture
+    card(slide, "行业运营场景实验室", "虚拟工厂\n自动实验\n问题发现\n改善搜索", 0.55, 2.85, 3.15, 2.42, BLUE, PALE_BLUE, None, 11.2)
+    text(slide, "›", 3.76, 3.72, 0.35, 0.5, 24, GREEN, True, PP_ALIGN.CENTER)
+    card(slide, "场景资产中心", "校验审核\n版本签名\n可信度\n发布分发", 4.12, 2.85, 3.05, 2.42, ORANGE, PALE_ORANGE, None, 11.2)
+    text(slide, "›", 7.23, 3.72, 0.35, 0.5, 24, GREEN, True, PP_ALIGN.CENTER)
+    card(slide, "行业化价值演示平台", "健康参考\n问题病例\n动态措施\n价值报告", 7.6, 2.85, 3.15, 2.42, GREEN, PALE_GREEN, None, 11.2)
+    text(slide, "›", 10.81, 3.72, 0.35, 0.5, 24, GREEN, True, PP_ALIGN.CENTER)
+    card(slide, "客户 PoC", "确认问题\n接入数据\n校准模型\n验证价值", 11.17, 2.85, 1.6, 2.42, RED, PALE_RED, None, 9.7)
+
+    # Shared foundation
+    rect(slide, 0.55, 5.58, 12.22, 0.85, PALE_GREEN_2, GREEN)
+    text(slide, "共享底座", 0.75, 5.83, 1.05, 0.3, 11, GREEN, True, PP_ALIGN.CENTER)
+    text(
+        slide,
+        "制造业本体|工厂原型与体量|故障/改善原语|KPI与证据|正式数据链|租户/Domain/runId|版本与审计",
+        1.95,
+        5.76,
+        10.45,
+        0.42,
+        10.7,
+        INK,
+        True,
+        PP_ALIGN.CENTER,
+        MSO_ANCHOR.MIDDLE,
+    )
+    pill(slide, "原则:实验可以失败|发布必须受控|演示必须稳定|智能体不是第一阶段前置", 1.3, 6.6, 10.75, INK, WHITE, 10.8)
+    v2_footer(slide, "V2.0 整体架构总览|本页用于统一产品边界与阶段目标")
+
+    # 13. Final: work plan
+    slide = prs.slides.add_slide(prs.slide_layouts[6])
+    set_bg(slide)
+    title(slide, "近期工作计划:先完成业务交互 Demo,再决定正式建设范围", 13, "第一周只确认页面、操作和效果,不用前端动画替代后续正式能力")
+    rect(slide, 0.55, 1.68, 5.1, 4.65, WHITE, GREEN)
+    rect(slide, 0.55, 1.68, 5.1, 0.72, GREEN, GREEN, False)
+    text(slide, "P0|3天制作 + 第4天业务展示", 0.78, 1.84, 4.65, 0.32, 16, WHITE, True)
+    bullets(
+        slide,
+        [
+            "选择行业/原型/体量与一个完整问题病例",
+            "展示合成健康参考与问题传导",
+            "动态播放措施 A/B/C、直接表征与延迟结果",
+            "支持恢复、部分有效和反弹",
+            "确认页面样式、操作路径、业务表达和价值摘要",
+            "形成已确认/需修改/暂缓及P1范围建议",
+        ],
+        0.85,
+        2.72,
+        4.55,
+        3.25,
+        10.9,
+        INK,
+        GREEN,
+        5,
+    )
+    rect(slide, 5.95, 1.68, 6.82, 4.65, WHITE, BLUE)
+    rect(slide, 5.95, 1.68, 6.82, 0.72, BLUE, BLUE, False)
+    text(slide, "业务确认后|按阶段门进入正式建设", 6.18, 1.84, 6.35, 0.32, 16, WHITE, True)
+    rows = [
+        ("P1", "冻结本体、原语、实验和场景包标准", GREEN),
+        ("P2", "建设最小场景实验室,产生问题与改善候选", BLUE),
+        ("P3", "跑通正式链路,审核发布首批合成场景", ORANGE),
+        ("P4", "建设稳定动态演示平台与价值报告", GREEN_2),
+        ("P5", "扩工厂原型/行业,校准真实数据,增加智能体", RED),
+    ]
+    for i, (phase, body, color) in enumerate(rows):
+        y = 2.67 + i * 0.62
+        pill(slide, phase, 6.3, y, 0.7, color, WHITE, 9.5)
+        text(slide, body, 7.22, y + 0.02, 5.1, 0.34, 10.7, INK, i == 0)
+    rect(slide, 6.25, 5.9, 6.2, 0.22, PALE_BLUE, PALE_BLUE, False)
+    text(slide, "P1–P5 工期在对象模型、仿真范围和现有链路核查后估算", 6.38, 5.66, 5.9, 0.32, 9.6, BLUE, True, PP_ALIGN.CENTER)
+    pill(slide, "下一步决策:首个工厂原型|订单交付主线|故障/改善原语|首批合成场景", 1.0, 6.62, 11.3, INK, WHITE, 10.8)
+    v2_footer(slide, "V2.0 工作计划|P0先确认业务体验,正式能力按阶段门推进")
+
+    prs.save(OUTPUT)
+    return OUTPUT
+
+
+if __name__ == "__main__":
+    output = build_deck()
+    print(output)