#!/usr/bin/env python3
import ast
from pathlib import Path

ROOT = Path(__file__).resolve().parent
SOURCE = ROOT / "build_deck.py"
TREE = ast.parse(SOURCE.read_text(encoding="utf-8"))
VALUES = {}
for node in TREE.body:
    if isinstance(node, ast.Assign) and len(node.targets) == 1 and isinstance(node.targets[0], ast.Name):
        if node.targets[0].id in {"FONT_URL", "CSS", "WEB_CSS", "WEB_JS"}:
            VALUES[node.targets[0].id] = ast.literal_eval(node.value)

FONT_URL = VALUES["FONT_URL"]
CSS = VALUES["CSS"] + r"""
.hook{font-family:var(--serif);font-size:45px;line-height:1.3;max-width:22ch}
.warn{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 19px}
.warn .ico{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--red-soft);color:var(--red);font-family:var(--mono);font-weight:700}
.warn h3{font-size:18px}.warn p{font-size:13px;line-height:1.55;color:var(--muted);margin-top:6px}
.compare{display:grid;grid-template-columns:1fr 44px 1fr;gap:12px;align-items:stretch}.compare .mid{display:grid;place-items:center;font-size:26px;color:var(--red)}
.stack{display:flex;flex-direction:column;gap:9px}.stack .row{display:grid;grid-template-columns:142px 1fr;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 15px}.stack .row b{font-family:var(--serif);font-size:16px}.stack .row span{font-size:12.5px;color:var(--muted);line-height:1.48}
.ladder{display:flex;align-items:flex-end;gap:10px;height:284px}.step{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:10px 10px 0 0;padding:15px 13px}.step strong{font-family:var(--serif);font-size:16px}.step p{font-size:11.8px;line-height:1.45;color:var(--muted);margin-top:7px}.step.on{background:#F9EEEE;border-color:#D7A8AB}
.matrix{display:grid;grid-template-columns:82px 1fr 1fr;grid-template-rows:46px 1fr 1fr;gap:8px}.matrix>div{border-radius:10px;padding:14px;background:var(--surface);border:1px solid var(--line)}.matrix .axis{display:grid;place-items:center;border:0;background:transparent;font-family:var(--mono);font-size:10.5px;color:var(--faint);text-align:center}.matrix h3{font-size:16px}.matrix p{font-size:12px;line-height:1.46;color:var(--muted);margin-top:6px}.matrix .hot{background:#F9EEEE;border-color:#D7A8AB}
.pipe{display:flex;align-items:center;gap:7px}.pipe .unit{flex:1;min-height:116px;border-radius:11px;border:1px solid var(--line);background:var(--surface);padding:14px 12px}.pipe .unit strong{display:block;font-family:var(--serif);font-size:15px}.pipe .unit p{font-size:11px;line-height:1.43;color:var(--muted);margin-top:6px}.pipe .arr{font-size:20px;color:var(--red)}
.question{font-family:var(--serif);font-size:25px;line-height:1.4;padding:13px 0;border-bottom:1px solid var(--line)}
.cover .foot{color:#514940}.cover .kicker{color:#9A1B24}.cover .kicker:before{background:#9A1B24}.cover .lead{color:#342F2A!important;font-weight:500}.cover .pill{color:#342F2A!important;border-color:#8F8173!important;background:rgba(255,255,255,.72)!important}
.dense-card{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:17px 18px}.dense-card h3{font-size:17px}.dense-card p{font-size:12.5px;line-height:1.52;color:var(--muted);margin-top:6px}
.insight-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.insight{border-top:2px solid var(--line2);padding:12px 4px 0}.insight b{font-size:13px}.insight p{font-size:11.8px;line-height:1.48;color:var(--muted);margin-top:5px}
.bio-item{padding:10px 13px;border-left:2px solid var(--line2);background:rgba(255,253,248,.6);font-size:14px;line-height:1.4}.bio-desc{font-size:12px;color:var(--muted);margin-top:3px}.appendix .pad{padding:44px 68px 46px}.appendix-cover .pad{padding-bottom:54px}.appendix .kicker{margin-bottom:12px}.appendix h2{font-size:34px;line-height:1.25}.qa-list{margin-top:15px}.qa-block{padding:18px 0 19px;border-top:1px solid #B9AA98}.qa-block:first-child{border-top:2px solid #8C191F}.qa-index{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;color:#8C191F}.qa-q{font-family:var(--serif);font-size:21px;line-height:1.38;font-weight:600;color:#201B18;margin-top:5px}.qa-answer{display:grid;grid-template-columns:76px 1fr;gap:12px;margin-top:9px;font-size:16px;line-height:1.52;color:#332D29}.qa-answer b{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:#8C191F;padding-top:3px}.appendix .foot{bottom:20px}
.agenda{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:28px}.agenda .card{min-height:205px}.agenda .card p{font-size:13px}
.evidence{display:none}.take,.insight-row{display:none}.bottom-band{position:absolute;left:68px;right:68px;bottom:48px;height:126px;display:flex;flex-direction:column;justify-content:center;z-index:3;border-top:2px solid #8C191F}.bottom-box{display:grid;grid-template-columns:150px 1fr;align-items:baseline;gap:16px;padding:12px 2px;border-bottom:1px solid #CFC4B4;background:transparent}.bottom-box.action{background:transparent;border-color:#CFC4B4}.bottom-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;color:#8C191F;text-transform:uppercase}.bottom-text{font-family:var(--serif);font-size:18px;line-height:1.42;color:#201B18;margin-top:0;font-weight:600}.slide:not(.cover):not(.bio) .pad{padding-bottom:196px}.card p{font-size:15px;color:#3F3934}.node p{font-size:14px;color:#3F3934}.warn p{font-size:14.5px;color:#3F3934}.dense-card p{font-size:14px;color:#3F3934}.stack .row span{font-size:13.5px;color:#3F3934}.pipe .unit p{font-size:12.5px;color:#3F3934}.step p{font-size:13px;color:#3F3934}.matrix p{font-size:13px;color:#3F3934}
"""
WEB_CSS = VALUES["WEB_CSS"] + r"""
.web .slide{transition:opacity .16s ease}
@media(max-width:700px){
html,body{background:var(--paper);overflow:hidden}.web .deck{height:100vh}.web .slide{left:0;top:0;transform:none!important;width:100vw;height:calc(100vh - 54px);overflow-y:auto;overflow-x:hidden;box-shadow:none;background:var(--paper)}
.web .slide.on{display:block}.slide:after{position:fixed}.pad,.slide:not(.cover):not(.bio) .pad{position:relative;inset:auto;min-height:auto;padding:24px 20px 14px;display:block}.cover .pad{min-height:calc(100vh - 54px);display:flex;padding-bottom:78px}.bio .pad{padding-bottom:24px}
h1{font-size:44px}h2{font-size:30px;line-height:1.28}h3{font-size:20px}.lead{font-size:18px;line-height:1.65}.kicker{font-size:12px}.hook{font-size:37px}.quote{font-size:31px}.question{font-size:21px}
.brands{margin-bottom:46px}.brands img:first-child{max-width:145px!important}.brands img:last-child{max-width:86px!important}.agenda,.grid2,.grid3,.grid4,.compare,.flow,.pipe,.matrix,.insight-row{grid-template-columns:1fr!important;display:grid!important;gap:12px!important}.agenda{margin-top:20px!important}.agenda .card{min-height:0}.compare .mid,.flow .arrow,.pipe .arr,.matrix .axis{display:none}.card,.warn,.dense-card,.node,.pipe .unit{padding:17px!important;min-height:0!important}.card p,.warn p,.dense-card p,.node p,.pipe .unit p,.stack .row span,.matrix p,.step p{font-size:16px!important;line-height:1.6!important;color:#302A26!important}.stack .row{grid-template-columns:1fr;padding:14px}.stack .row b{font-size:19px}.ladder{height:auto;display:grid;gap:10px}.step{height:auto!important;border-radius:10px;padding:16px}.matrix>div{padding:16px}.bottom-band{position:relative;left:auto;right:auto;bottom:auto;height:auto;display:block;margin:18px 20px 78px;border-top:2px solid #8C191F}.bottom-box{display:block;padding:14px 2px;border-bottom:1px solid #CFC4B4}.bottom-label{font-size:12px}.bottom-text{font-size:19px;line-height:1.5;margin-top:6px}.take,.insight-row,.evidence{display:none!important}.foot{display:none}.nav{opacity:1;padding:9px;background:rgba(247,243,234,.96);height:54px}.nav button{padding:7px 10px}.zone{bottom:54px;width:12%;pointer-events:none}.ring{opacity:.3}
.bio .pad>div:nth-child(2){grid-template-columns:1fr!important;gap:22px!important;margin:24px 0!important}.bio img{width:150px!important}.bio h1{font-size:44px!important}.bio-item{font-size:16px}.bio-desc{font-size:14px}.appendix .pad{padding:24px 20px 72px!important}.appendix-cover .pad{min-height:calc(100vh - 54px);display:flex;padding:26px 20px 78px}.appendix h2{font-size:29px}.qa-list{margin-top:16px}.qa-block{padding:17px 0}.qa-q{font-size:21px;line-height:1.48}.qa-answer{grid-template-columns:64px 1fr;gap:8px;font-size:16px;line-height:1.62}.qa-answer b{font-size:11px}.appendix .foot{display:none}
}
"""
WEB_JS = VALUES["WEB_JS"].replace("fit();show(i);", """let sx=0;addEventListener('touchstart',e=>sx=e.changedTouches[0].clientX,{passive:true});addEventListener('touchend',e=>{const dx=e.changedTouches[0].clientX-sx;if(Math.abs(dx)>45)show(i+(dx<0?1:-1))},{passive:true});fit();show(i);""")

slides = []
BOTTOM = {
"今天讲三件事": ("AI 价值进入组织，要同时解决能力吸收、执行编排和人的角色迁移。", "会后选一个稳定业务闭环，明确结果、Owner、Context 和 Review 闸口。"),
"冲突钩子": ("个人速度上升，只说明工具有效；可接力、可追责、可复用才说明组织能力增强。", "检查关键员工离开后工作能否继续，同类任务再来时能否直接复用上次积累。"),
"三种组织损耗": ("AI 使用越分散，组织越容易形成流程黑箱、知识私有和责任空档。", "建立公共工作现场，同步调整授权、收益分配和风险保护。"),
"个人能力与组织能力": ("组织能力的最小标准，是成果能够跨人、跨时间、跨任务稳定复现。", "把关键 Context、过程判断、异常处理和验收证据纳入公共记录。"),
"四层演进": ("规模化价值来自任务连续性和组织连接，单次问答只能带来局部效率。", "先把一条工作流做到状态可见、交接清楚、失败可恢复，再扩大 Agent 数量。"),
"核心论点": ("执行供给扩张后，目标定义、判断、授权和验收会成为新的组织瓶颈。", "管理层开始衡量每位 Owner 能组织的并行能力，以及 Review 带宽和决策速度。"),
"新的组织单元": ("一个业务结果需要结果、责任、执行和控制四个要素共同成立。", "先写完成条件和责任边界，再配置 Agent、工具、频道与闸口。"),
"Syfo 真实链路": ("共同入口和结构化路由减少等待；公共任务和证据让过程可观察、经验可回流。", "为高频问题建立统一入口、分诊角色、承接频道和闭环回告。"),
"组织控制面": ("频道、任务、Thread 和 Artifact 共同承载 Context、状态、过程与结果。", "要求每项跨人机工作都能回答：谁负责、做到哪、卡在哪里、交付是什么。"),
"分工判断": ("可逆性和判断复杂度，比任务看起来是否简单更能决定人机分工。", "高风险动作设置人工批准；低风险高频动作允许 Agent 自动执行并保留日志。"),
"四种权利": ("没有信息权、行动权、资源权和升级权，任务委托就无法形成真实责任。", "按最小必要原则授权，明确低置信度、冲突和高风险场景的升级对象。"),
"未来没有纯执行者": ("人的价值从亲自完成动作，转向设计执行系统并对结果负责。", "人才标准加入任务拆解、Agent 编排、Context 建设、Review 和异常处理。"),
"人人学习组织管理": ("组织管理会成为通用技能，资历不再决定谁能调度复杂执行能力。", "训练员工先设计 Agent、工作现场、分工、信息流和 Review，再开始执行。"),
"管理者的五件事": ("管理者的工作重心会从催进度转向结果、分工、Context、权利和例外。", "把管理时间从逐项跟进移到目标澄清、授权设计和高风险决策。"),
"绩效变化": ("只看产出数量会奖励忙碌和隐藏自动化，无法鼓励组织能力沉淀。", "同时衡量业务结果、组织杠杆和可复用 Context，并共享效率红利。"),
"组织 Context": ("流程、物料、交付物和评判标准，是 Agent 进入真实业务的基础设施。", "从高频稳定闭环开始，每次失败都补一条 Context、规则或测试。"),
"Agent 五级演进": ("Agent 每提高一级自治程度，都要求更完整的 Context、评估、权限和恢复机制。", "按知悉、提取、建议、方案、执行逐级放权，不跨级追求全自动。"),
"人的角色迁移": ("人类的稀缺性集中在价值判断、关系、责任和复杂语境，Agent 提供速度与并行。", "把人安排在目标、例外和高风险闸口，让 Agent 承担高密度执行。"),
"Demo 导览": ("完整闭环要同时看见责任、信息、状态、Review、批准和经验回流。", "Demo 后用六个问题审视和合谷的一条真实流程，找出最先缺失的控制点。"),
"Q&A": ("组织转型应从一个高频、稳定、可衡量的闭环启动，而非从岗位裁撤启动。", "现场选定一个候选闭环，确定 Owner、当前痛点、成功指标与下一步验证。"),
}
def footer(section, page, total):
    band = ""
    if section in BOTTOM:
        takeaway, action = BOTTOM[section]
        band = f'<div class="bottom-band"><div class="bottom-box"><div class="bottom-label">Key Takeaway</div><div class="bottom-text">{takeaway}</div></div><div class="bottom-box action"><div class="bottom-label">执行建议</div><div class="bottom-text">{action}</div></div></div>'
    return band + f'<div class="foot"><span>和合谷 × ReOrc / Syfo · Part A</span><span>{section}</span><span>{page:02d} / {total:02d}</span></div>' 
def add(section, body, cls=""):
    slides.append((section, body, cls))

add("封面", r'''<div class="topline"></div><div class="ring one"></div><div class="ring two"></div><div class="ring three"></div><div class="pad"><div class="brands"><img src="../assets/hegugu-wordmark.png" style="width:184px;height:54px;object-fit:contain"><span style="width:1px;height:38px;background:#B6A89A"></span><img src="../assets/syfo-wordmark.svg" style="width:100px;height:38px"></div><div style="margin:auto 0"><div class="kicker">AI Agent Workshop · Part A</div><h1 style="margin-top:22px;max-width:15ch">AI Agent 带来的<br><span class="accent">组织变革</span></h1><p class="lead" style="margin-top:24px;max-width:50ch">执行能力快速扩张之后，组织设计、管理责任与竞争优势如何变化。</p></div><div class="pill" style="width:max-content"><span class="dot"></span>60 分钟 · 讲解 35′ · Demo 10′ · Q&A 15′</div></div>''', "cover")

add("讲者", r'''<div class="pad"><div class="kicker">关于讲者</div><div style="display:grid;grid-template-columns:290px 1fr;gap:48px;align-items:center;margin:auto 0"><img src="../assets/tony-profile.png" style="width:290px;height:auto;border-radius:16px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(26,22,18,.18)"><div><h1 style="font-size:54px">Tony Ren</h1><p class="lead" style="margin-top:10px;max-width:48ch">长期从事 AI 研究、数据产品与全球化产品管理。</p><div style="display:flex;flex-direction:column;gap:9px;margin-top:20px;max-width:60ch"><div class="bio-item"><b>香港科技大学</b> · 计算机科学本科、硕士、博士</div><div class="bio-item"><b>研究员经历</b> · 腾讯、华为诺亚方舟 AI 实验室、日本国立情报学研究所</div><div class="bio-item"><b>一面数据 · 创始人</b><div class="bio-desc">2019 年被 Ascential plc 收购后并入 Omnicom；2026 年被 NIQ 再次收购。</div></div><div class="bio-item"><b>前 Ascential / Flywheel Omnicom</b> · 亚太区首席产品官</div><div class="bio-item"><b>反曲科技 · 创始人</b></div></div></div></div></div>''', "bio")

add("今天讲三件事", r'''<div class="pad"><div class="kicker">这 60 分钟的路径</div><h2 style="margin-top:18px">从个人使用 AI，走到组织能够<span class="accent">稳定调用执行能力</span>。</h2><div class="agenda"><div class="card"><div class="num">01 · 诊断</div><h3>个人提效为什么没有自动形成组织能力</h3><p>看清上下文零散、效率红利外流、权责失衡三类组织损耗。</p></div><div class="card red"><div class="num">02 · 设计</div><h3>组织如何编排 Agent、信息与责任</h3><p>把频道、任务、Thread、Review 和权限组成可追踪的执行系统。</p></div><div class="card"><div class="num">03 · 迁移</div><h3>人的工作如何转向组织、判断与闸口</h3><p>管理者重做目标、分工、Context、权利和绩效，员工学习组织执行能力。</p></div></div><div class="take" style="margin-top:24px"><b>带走一个判断：</b>AI 的组织价值取决于执行过程能否被看见、复用、评价并承担责任。</div></div>''')

add("冲突钩子", r'''<div class="pad"><div class="kicker">Personal Productivity ≠ Organizational Productivity</div><div style="margin:auto 0"><div class="hook">个人提效，<br><span class="accent">不等于组织提效。</span></div><p class="lead" style="margin-top:22px;max-width:53ch">员工使用 AI 的能力越强，组织能力甚至可能越弱：个人完成更多，组织却更难理解过程、接手工作和复制经验。</p><div class="insight-row"><div class="insight"><b>个人指标</b><p>速度、产量、即时结果。</p></div><div class="insight"><b>组织指标</b><p>可接力、可追责、可复用、可扩张。</p></div><div class="insight"><b>管理挑战</b><p>把个人能力沉淀进共同工作系统。</p></div></div></div><div class="take"><b>判断标准：</b>关键员工离开后，工作能否继续；同类任务再来时，团队能否直接复用上次积累。</div></div>''')

add("三种组织损耗", r'''<div class="pad"><div class="kicker">三个原因</div><h2 style="margin-top:18px">个人变快，组织能力却可能<span class="accent">持续流失</span>。</h2><div class="grid3" style="margin-top:25px"><div class="warn"><div class="ico">01</div><div><h3>上下文零散化</h3><p>Claude Code、Codex、WorkBuddy 的会话、判断和产物散落在个人环境，交接依赖口头复述。</p></div></div><div class="warn"><div class="ico">02</div><div><h3>效率红利被截留</h3><p>目标、激励与任务供给不变，多出来的时间未必投入组织目标，产能扩张停留在个人层面。</p></div></div><div class="warn"><div class="ico">03</div><div><h3>权责不对等</h3><p>组织要求更多结果，却没有同步授权、收益与风险保护，员工会回避 AI 带来的业务责任。</p></div></div></div><div class="insight-row"><div class="insight"><b>表面现象</b><p>员工都在使用 AI，产出速度上升。</p></div><div class="insight"><b>深层后果</b><p>流程黑箱、知识私有、关键人依赖增强。</p></div><div class="insight"><b>管理动作</b><p>重建共同记录、授权边界与收益分配。</p></div></div></div>''')

add("个人能力与组织能力", r'''<div class="pad"><div class="kicker">两套完全不同的能力</div><h2 style="margin-top:18px">组织能力要求成果能够<span class="accent">跨人、跨时间、跨任务复用</span>。</h2><div class="compare" style="margin-top:26px"><div class="card"><div class="num">个人 AI 能力</div><h3>我能把这件事做出来</h3><div class="stack" style="margin-top:15px"><div class="row"><b>上下文</b><span>保存在个人会话、文件和记忆里</span></div><div class="row"><b>过程</b><span>只有操作者清楚关键判断</span></div><div class="row"><b>失败</b><span>靠个人经验临场补救</span></div></div></div><div class="mid">→</div><div class="card red"><div class="num">组织 AI 能力</div><h3>团队能稳定重复这类结果</h3><div class="stack" style="margin-top:15px"><div class="row"><b>上下文</b><span>进入公共频道、任务、知识与标准</span></div><div class="row"><b>过程</b><span>状态、交接、Review 和证据可见</span></div><div class="row"><b>失败</b><span>有升级路径、权限边界与责任人</span></div></div></div></div><div class="take" style="margin-top:20px"><b>经营含义：</b>企业购买模型能力很容易，形成稳定重复的组织闭环更难，也更能构成竞争壁垒。</div></div>''')

add("四层演进", r'''<div class="pad"><div class="kicker">从工具到组织</div><h2 style="margin-top:18px">价值沿着<span class="accent">任务连续性与组织连接</span>逐层增加。</h2><div class="flow" style="margin-top:27px"><div class="node"><div class="num">LEVEL 1</div><strong>单次问答</strong><p>人问一次，AI 答一次；价值停留在局部信息处理。</p></div><div class="arrow">→</div><div class="node"><div class="num">LEVEL 2</div><strong>任务委托</strong><p>Agent 跨工具执行并交付；开始替代完整动作。</p></div><div class="arrow">→</div><div class="node"><div class="num">LEVEL 3</div><strong>工作流</strong><p>任务有状态、交接、验收与异常；结果开始稳定。</p></div><div class="arrow">→</div><div class="node" style="border-color:#D7A8AB;background:#F9EEEE"><div class="num">LEVEL 4</div><strong>组织系统</strong><p>角色、信息流、权利、责任和绩效一起调整。</p></div></div><div class="insight-row"><div class="insight"><b>技术难点</b><p>模型、工具调用、数据访问。</p></div><div class="insight"><b>管理难点</b><p>跨角色交接、例外处理、责任归属。</p></div><div class="insight"><b>规模化门槛</b><p>从一次成功走向可重复成功。</p></div></div></div>''')

add("核心论点", r'''<div class="pad"><div class="kicker">The New Optimization Target</div><div style="margin:auto 0"><div class="quote">过去企业优化<br>“每个人做得更快”。</div><div style="height:1px;background:var(--line2);margin:23px 0;width:72%"></div><div class="quote">Agent 时代优化<br>“一个人能组织多少<span class="accent">并行执行能力</span>”。</div><div class="insight-row" style="max-width:920px"><div class="insight"><b>旧杠杆</b><p>培训、流程标准化、管理跨度。</p></div><div class="insight"><b>新杠杆</b><p>Agent 数量、任务并行度、Context 质量。</p></div><div class="insight"><b>新约束</b><p>Review 带宽、决策速度、风险承载。</p></div></div></div><div class="take"><b>高管关注点：</b>执行供给增加后，组织的瓶颈会向目标定义、判断、授权与验收迁移。</div></div>''')

add("新的组织单元", r'''<div class="pad"><div class="kicker">围绕结果动态组队</div><h2 style="margin-top:18px">一个业务结果，配置一套<span class="accent">可运行的执行系统</span>。</h2><div class="grid4" style="margin-top:25px"><div class="card red"><div class="num">结果</div><h3>清晰业务结果</h3><p>定义完成条件、时限、质量与成本。</p></div><div class="card"><div class="num">责任</div><h3>人类 Owner</h3><p>设定优先级，处理权衡，承担最终承诺。</p></div><div class="card"><div class="num">执行</div><h3>Agent 组合</h3><p>按研究、制作、检查、跟进等角色并行工作。</p></div><div class="card"><div class="num">控制</div><h3>协作与闸口</h3><p>频道承载 Context，任务承载状态，Review 控制风险。</p></div></div><div class="take" style="margin-top:24px"><b>设计顺序：</b>先定义结果与责任，再配置 Agent 和工具；否则执行能力越多，协调成本越高。</div><div class="evidence">MANAGEMENT LENS · 结果单元可按客户、Campaign、交付项目或稳定业务闭环建立</div></div>''')

add("Syfo 真实链路", r'''<div class="pad"><div class="kicker">真实研发例子</div><h2 style="margin-top:18px">一次报障如何进入<span class="accent">可追踪的研发闭环</span>。</h2><div class="pipe" style="margin-top:25px"><div class="unit"><strong>#syfo-doctor</strong><p>统一接收现象、影响、复现线索和期望结果。</p></div><div class="arr">→</div><div class="unit"><strong>Han Solo 分诊</strong><p>补信息、判断归属、识别紧急程度与风险。</p></div><div class="arr">→</div><div class="unit"><strong>研发频道承接</strong><p>携带结构化 Context 转发，减少重复解释。</p></div><div class="arr">→</div><div class="unit"><strong>创建并认领任务</strong><p>Owner、状态、依赖和下一步进入公共记录。</p></div><div class="arr">→</div><div class="unit"><strong>交付与回告</strong><p>修改、测试、Review、部署证据和结论闭环。</p></div></div><div class="grid3" style="margin-top:22px"><div class="dense-card"><h3>入口标准化</h3><p>减少“找谁”和“重新讲一遍”的等待。</p></div><div class="dense-card"><h3>过程可观察</h3><p>管理者看到卡点、风险与责任，不靠追问进度。</p></div><div class="dense-card"><h3>经验回流</h3><p>一次修复沉淀成规则、测试和下一次分诊 Context。</p></div></div></div>''')

add("组织控制面", r'''<div class="pad"><div class="kicker">Control Plane</div><h2 style="margin-top:18px">Agent 规模扩大后，需要一套<span class="accent">组织控制面</span>。</h2><div class="grid2" style="margin-top:24px"><div class="card"><div class="num">频道 / Channel</div><h3>共同上下文与协作边界</h3><p>谁参与、看见什么、围绕哪个业务主题工作。</p></div><div class="card"><div class="num">任务 / Task</div><h3>责任、状态与依赖</h3><p>谁承接、做到哪一步、被什么条件阻塞。</p></div><div class="card"><div class="num">线程 / Thread</div><h3>过程、判断与异常</h3><p>把执行讨论留在任务现场，避免信息散落。</p></div><div class="card red"><div class="num">交付 / Artifact</div><h3>结果、证据与版本</h3><p>让 Review 面向具体产物，保留来源和修改历史。</p></div></div><div class="take" style="margin-top:20px"><b>管理价值：</b>控制面不替代业务系统；它连接人、Agent 与系统，让执行状态和责任在同一现场可见。</div></div>''')

add("分工判断", r'''<div class="pad"><div class="kicker">先分工作，再分权利</div><h2 style="margin-top:18px">用<span class="accent">可逆性 × 判断复杂度</span>决定执行方式。</h2><div class="matrix" style="margin-top:22px"><div class="axis"></div><div class="axis">判断复杂度低</div><div class="axis">判断复杂度高</div><div class="axis">容易回退</div><div><h3>Agent 自动执行</h3><p>整理、格式化、例行检查、信息同步；保留日志与抽检。</p></div><div><h3>Agent 先做，人抽检</h3><p>研究、初稿、分类、方案比较；人关注例外与偏差。</p></div><div class="axis">难以回退</div><div><h3>Agent 准备，人批准</h3><p>批量发布、客户触达、预算调整；执行前设置闸口。</p></div><div class="hot"><h3>人主导，Agent 辅助</h3><p>重大承诺、法律风险、品牌危机、关键人事与资本决策。</p></div></div><div class="take" style="margin-top:18px"><b>原则：</b>风险来自“做错后能否恢复”和“判断是否依赖隐性语境”，不能只按任务难度划分。</div></div>''')

add("四种权利", r'''<div class="pad"><div class="kicker">Delegation Needs Rights</div><h2 style="margin-top:18px">任务委托必须同步配置<span class="accent">四种权利</span>。</h2><div class="grid4" style="margin-top:25px"><div class="card"><div class="num">信息权</div><h3>能看什么</h3><p>数据、客户资料、历史记录与知识范围。</p></div><div class="card"><div class="num">行动权</div><h3>能做什么</h3><p>调用工具、修改内容、发送消息与触发系统。</p></div><div class="card"><div class="num">资源权</div><h3>能花什么</h3><p>预算、算力、额度、外部供应商与人力。</p></div><div class="card red"><div class="num">升级权</div><h3>何时停下来</h3><p>遇到冲突、低置信度和高风险时找谁决策。</p></div></div><div class="insight-row"><div class="insight"><b>授权不足</b><p>Agent 频繁等待，人重新接管执行。</p></div><div class="insight"><b>授权过度</b><p>错误影响扩大，责任边界模糊。</p></div><div class="insight"><b>成熟状态</b><p>最小必要权限、全程记录、清晰升级。</p></div></div></div>''')

add("未来没有纯执行者", r'''<div class="pad"><div class="kicker">Role Redesign</div><h2 style="margin-top:18px">未来公司里，<span class="accent">纯执行岗位会持续减少</span>。</h2><div class="compare" style="margin-top:27px"><div class="card"><div class="num">传统执行者</div><h3>接任务，亲自完成动作</h3><p>价值集中在熟练度、速度、信息记忆和个人经验。</p><div class="take" style="margin-top:18px"><b>典型工作：</b>搜集、整理、制作、搬运、跟进。</div></div><div class="mid">→</div><div class="card red"><div class="num">Agent 时代执行者</div><h3>设计执行系统并对结果负责</h3><p>价值集中在拆解、编排、补充 Context、Review 和异常处理。</p><div class="take" style="margin-top:18px"><b>典型工作：</b>建 Agent、拉频道、分角色、设闸口、验结果。</div></div></div><div class="take" style="margin-top:22px"><b>人才含义：</b>应届生也需要掌握基本组织管理；资历不再决定谁能调度复杂执行能力。</div></div>''')

add("人人学习组织管理", r'''<div class="pad"><div class="kicker">Management Becomes a General Skill</div><h2 style="margin-top:18px">完成一件事之前，先设计<span class="accent">谁与谁怎样协作</span>。</h2><div class="grid3" style="margin-top:25px"><div class="dense-card"><div class="num">01</div><h3>建几个 Agent</h3><p>按能力差异和并行价值分角色，避免一个万能 Agent 承担所有判断。</p></div><div class="dense-card"><div class="num">02</div><h3>拉几个工作现场</h3><p>频道承载长期 Context，任务承载结果，Thread 承载执行过程。</p></div><div class="dense-card"><div class="num">03</div><h3>怎样分工</h3><p>明确输入、输出、完成标准、依赖与可调用资源。</p></div><div class="dense-card"><div class="num">04</div><h3>信息怎样传导</h3><p>结构化交接，减少摘要失真、重复说明与上下文丢失。</p></div><div class="dense-card"><div class="num">05</div><h3>怎样 Review</h3><p>按风险设置抽检、双人复核、自动测试和人工批准。</p></div><div class="dense-card"><div class="num">06</div><h3>怎样管过程</h3><p>看状态、阻塞、例外和证据，减少追问式管理。</p></div></div><div class="evidence">能力升级：从“会使用 AI 工具”走向“会组织一支人机混合团队”</div></div>''')

add("管理者的五件事", r'''<div class="pad"><div class="kicker">Manager's New Work</div><h2 style="margin-top:18px">管理者要重做<span class="accent">五项基础工作</span>。</h2><div class="stack" style="margin-top:22px"><div class="row"><b>定义结果</b><span>把模糊要求转成完成条件、质量、时限、成本和不可触碰的边界。</span></div><div class="row"><b>设计分工</b><span>决定哪些工作由人、Agent 或组合承担，安排交接与并行关系。</span></div><div class="row"><b>建设 Context</b><span>把流程、材料、案例、标准和判断依据变成 Agent 可使用的组织资产。</span></div><div class="row"><b>配置权利</b><span>设置数据、行动、资源和升级权限，让委托与责任保持一致。</span></div><div class="row"><b>管理例外</b><span>把精力放在冲突、风险、低置信度和跨部门权衡，而非逐项催进度。</span></div></div><div class="take" style="margin-top:18px"><b>管理跨度变化：</b>管理者直接管理的人数未必增加，但可以组织的并行执行能力显著增加。</div></div>''')

add("绩效变化", r'''<div class="pad"><div class="kicker">Performance System</div><h2 style="margin-top:18px">绩效要衡量<span class="accent">结果、杠杆与组织沉淀</span>。</h2><div class="grid3" style="margin-top:25px"><div class="card"><div class="num">业务结果</div><h3>交付了什么</h3><p>结果质量、客户价值、收入影响、时效与成本。</p></div><div class="card red"><div class="num">组织杠杆</div><h3>组织了多少能力</h3><p>并行度、自动化覆盖、Review 效率与异常处理能力。</p></div><div class="card"><div class="num">能力沉淀</div><h3>留下了什么</h3><p>可复用 Context、流程、测试、模板、知识和改进规则。</p></div></div><div class="insight-row"><div class="insight"><b>避免奖励忙碌</b><p>动作数量不等于业务价值。</p></div><div class="insight"><b>避免隐藏自动化</b><p>让 AI 杠杆成为公开能力。</p></div><div class="insight"><b>共享效率红利</b><p>个人与组织共同获得产能提升收益。</p></div></div></div>''')

add("组织 Context", r'''<div class="pad"><div class="kicker">Context Is Infrastructure</div><h2 style="margin-top:18px">组织 Context 决定 Agent 能否<span class="accent">进入真实业务</span>。</h2><div class="grid4" style="margin-top:24px"><div class="card"><div class="num">流程</div><h3>工作如何流动</h3><p>触发条件、步骤、角色、依赖和升级路径。</p></div><div class="card"><div class="num">物料</div><h3>基于什么工作</h3><p>数据、模板、案例、客户资料和历史记录。</p></div><div class="card"><div class="num">交付物</div><h3>产出长什么样</h3><p>格式、颗粒度、版本、证据和接收方式。</p></div><div class="card red"><div class="num">评判标准</div><h3>如何判断好坏</h3><p>质量、品牌、合规、绩效和业务取舍标准。</p></div></div><div class="take" style="margin-top:22px"><b>建设方法：</b>从高频稳定闭环开始，把隐性经验逐次外化；每次失败都补一条 Context、规则或测试。</div><div class="evidence">组织资产的变化：文档用于“给人阅读”，Context 还要能被 Agent 检索、引用、执行和验证</div></div>''')

add("Agent 五级演进", r'''<div class="pad"><div class="kicker">Maturity Path</div><h2 style="margin-top:18px">Agent 对组织 Context 的使用，从<span class="accent">理解走向行动</span>。</h2><div class="ladder" style="margin-top:20px"><div class="step" style="height:150px"><strong>知悉</strong><p>知道组织术语、角色、业务与边界。</p></div><div class="step" style="height:180px"><strong>信息提取</strong><p>从资料中找到事实、案例与历史判断。</p></div><div class="step" style="height:210px"><strong>主动建议</strong><p>结合当前任务提出下一步和风险提示。</p></div><div class="step" style="height:240px"><strong>方案制定</strong><p>拆任务、调资源、形成计划和备选方案。</p></div><div class="step on" style="height:270px"><strong>自动化执行</strong><p>在权限边界内持续行动、记录状态并升级异常。</p></div></div><div class="take" style="margin-top:18px"><b>升级条件：</b>每提高一级，都要增加 Context 完整度、评估机制、权限控制和失败恢复能力。</div></div>''')

add("人的角色迁移", r'''<div class="pad"><div class="kicker">Human Role Shift</div><h2 style="margin-top:18px">人的工作重心沿着<span class="accent">执行 → 组织 → 决策</span>迁移。</h2><div class="flow" style="margin-top:28px"><div class="node"><div class="num">过去</div><strong>亲自执行</strong><p>搜索、整理、制作、搬运、跟进；时间消耗在动作本身。</p></div><div class="arrow">→</div><div class="node"><div class="num">现在</div><strong>组织执行</strong><p>配置 Agent、频道、任务、信息流和 Review；管理并行工作。</p></div><div class="arrow">→</div><div class="node" style="border-color:#D7A8AB;background:#F9EEEE"><div class="num">未来</div><strong>决策岗与闸口</strong><p>定义目标、补 Context、处理例外，对高风险动作和最终结果负责。</p></div></div><div class="insight-row"><div class="insight"><b>人的优势</b><p>价值判断、关系、责任、复杂语境。</p></div><div class="insight"><b>Agent 的优势</b><p>速度、并行、记忆、持续执行。</p></div><div class="insight"><b>组织设计</b><p>让两者在同一闭环中互补。</p></div></div><div class="take" style="margin-top:18px"><b>稀缺能力：</b>能判断、能负责、能组织人和 Agent 持续把结果做出来。</div></div>''')

add("Demo 导览", r'''<div class="pad"><div class="kicker">10 分钟真实 Demo</div><h2 style="margin-top:18px">看 <span class="mono">#syfo-doctor</span> 如何把一次报障<br>转成<span class="accent">可追踪研发闭环</span>。</h2><div class="grid2" style="margin-top:22px"><div class="card red"><div class="num">链路</div><h3>入口 → 分诊 → 路由 → 任务</h3><p>Han Solo 补信息、判断归属，把问题连同 Context 交给正确研发频道和负责人。</p></div><div class="card"><div class="num">执行</div><h3>Thread → 修改 → 测试 → Review</h3><p>过程公开、依赖显式、风险升级，生产发布由有权限的人批准。</p></div><div class="card"><div class="num">交付</div><h3>commit → 测试 → 部署证据</h3><p>交付物和验证证据挂回任务，状态可以独立验收。</p></div><div class="card"><div class="num">学习</div><h3>回告 → 规则 → 记忆</h3><p>结论回到报障者，一次修正成为下一次任务的组织 Context。</p></div></div><div class="take" style="margin-top:18px"><b>Demo 观察框架：</b>谁负责？信息在哪里？做到哪一步？谁 Review？谁能批准？结果如何回流？</div></div>''')

add("Q&A", r'''<div class="pad"><div class="kicker">15 分钟高管深聊</div><h2 style="margin-top:18px">用四个问题定位<span class="accent">和合谷的组织起点</span>。</h2><div style="margin-top:15px"><div class="question">01 · 哪类门店—区域—总部工作，最受等待和信息重述拖累？</div><div class="question">02 · 如果执行能力增加十倍，运营、营销、供应链或人才管理哪个瓶颈会先暴露？</div><div class="question">03 · 涉及食品安全、价格、客户承诺和资金的哪些决定必须由人保留？</div><div class="question">04 · 老团队最可能抵触哪种职责、权利或评价方式变化？</div></div><div class="take" style="margin-top:18px"><b>讨论目标：</b>选出一个高频、稳定、可衡量的餐饮业务闭环，作为后续验证组织设计的起点。</div></div>''')

add("结束", r'''<div class="topline"></div><div class="ring one"></div><div class="ring two"></div><div class="ring three"></div><div class="pad"><div class="brands"><img src="../assets/hegugu-wordmark.png" style="width:184px;height:54px;object-fit:contain"><span style="width:1px;height:38px;background:#B6A89A"></span><img src="../assets/syfo-wordmark.svg" style="width:100px;height:38px"></div><div style="margin:auto 0"><h1 style="max-width:18ch">个人 AI 能力进入<br><span class="accent">共同的工作系统</span>，<br>才能形成组织能力。</h1><p class="lead" style="margin-top:24px;max-width:55ch">把执行组织起来，把过程留在现场，把经验变成 Context，把决策与责任放在清晰的闸口。</p></div><div class="pill" style="width:max-content"><span class="dot"></span>下一步：选择一个稳定业务闭环，验证新的组织方式</div></div>''', "cover")

def add_qa(section, title, pairs):
    blocks = []
    for index, (question, judgment, action) in enumerate(pairs, start=1):
        blocks.append(f'<div class="qa-block"><div class="qa-index">QUESTION {index:02d}</div><div class="qa-q">{question}</div><div class="qa-answer"><b>核心判断</b><span>{judgment}</span></div><div class="qa-answer"><b>执行建议</b><span>{action}</span></div></div>')
    add(section, f'<div class="pad"><div class="kicker">Appendix · 现场问题</div><h2>{title}</h2><div class="qa-list">{"".join(blocks)}</div></div>', "appendix")

add("Appendix", r'''<div class="topline"></div><div class="pad"><div class="kicker">Appendix · 26 Questions</div><div style="margin:auto 0"><h1>现场问题<br><span class="accent">逐题回答</span></h1><p class="lead" style="margin-top:22px;max-width:50ch">六类问题：场景选择、生产化准入、Workflow、人机介入、责任治理、人才与组织能力。</p></div><div class="pill" style="width:max-content"><span class="dot"></span>每题包含：核心判断 · 判断标准 · 执行建议</div></div>''', "appendix-cover")

add_qa("Appendix · 场景选择 01", "01 · 场景选择与 Agent 化判断", [
("判断一个业务是否值得 Agent 化，通常看哪些指标？", "用“价值潜力－实施与风险成本”评估。价值看频率、人工时长、流程等待和规模；可行性看输入是否数字化、结果能否验证、错误能否发现；成本看集成、返工、风险暴露与维护。", "优先选择高频、高耗时、结果可验证、错误可回退的场景。先建立当前人工基线，再比较 Agent 后的周期、质量、成本与异常率。"),
("变化快或早期业务中，如何平衡 AI Native 投入与业务验证进度？", "早期业务需要保留探索速度。此时应稳定记录、评估和接口，不急于固化完整流程；业务假设尚未验证时，重平台投入容易把错误流程自动化。", "采用人主导、Agent 辅助的轻量闭环，完整记录真实案例。连续出现相同输入、判断和交付标准后，再把重复部分产品化。"),
])
add_qa("Appendix · 场景选择 02", "01 · 场景选择与 Agent 化判断", [
("自动化和 AI Native 的边界在哪里？", "规则稳定、输入结构化、异常少的工作用传统自动化更便宜可靠；输入非结构化、需要上下文判断、要动态选择工具或处理例外时，Agent 更合适。成熟方案通常是确定性流程骨架加 Agent 判断节点。", "先用规则覆盖确定部分，只把模糊分类、信息理解、方案生成和动态路由交给 Agent；避免用大模型替代一个简单判断表。"),
("AI 员工适合独立承担什么任务？哪些必须保留人工判断？", "独立执行适合低风险、可逆、可观测、完成标准明确的任务。外部承诺、资金权限、品牌危机、法律合规、关键人事和不可逆操作必须保留人工决策。", "按影响范围、可逆性、判断复杂度和置信度设置权限；高风险动作由 Agent 准备材料，人类批准后执行。"),
])
add_qa("Appendix · 生产化 01", "02 · AI Native 成熟度与生产化准入", [
("Agentic AI 项目从 POC 到生产最常见的断层在哪里？", "断层通常不在模型效果，而在缺少真实评估集、数据与权限治理、异常 Owner、监控回滚和成本边界。POC 展示平均能力，生产系统必须管理长尾失败。", "上线前明确业务基线、验收指标、错误预算、灰度范围、人工接管、日志审计和责任 Owner；这些条件缺一项，就仍是试验。"),
("从辅助分析到自动决策，可分哪些阶段？每阶段如何放权？", "可分为只读分析、建议、人批准后执行、边界内自动执行四级。放权依据是风险、可逆性、置信度校准、异常可发现性和历史稳定度。", "每一级先运行影子模式，对比人与 Agent 结果；达到错误预算并具备监控和回退后，才扩大动作权与覆盖范围。"),
])
add_qa("Appendix · 生产化 02", "02 · AI Native 成熟度与生产化准入", [
("企业的数据、权限、指标口径和治理达到什么状态，才足以支撑生产？", "无需等到所有数据完美，但目标流程必须有可信数据源、稳定主键、统一指标定义、最小必要权限、访问日志和明确的数据 Owner。Agent 无法弥补来源冲突与责任空缺。", "先为目标闭环建立小型数据契约：来源、字段、口径、刷新频率、权限、质量阈值和异常联系人，再接入 Agent。"),
("离线、跨系统流程需要哪些前期准备？", "先看关键事件能否被数字化、系统之间是否有统一对象 ID 和状态、动作是否能通过 API 或受控 RPA 执行。线下判断与口头交接必须先外化。", "画出现状流程和系统地图，标记数据源、人工判断、权限、异常与交接；优先打通最短闭环，不要一次性集成所有系统。"),
])
add_qa("Appendix · Workflow 01", "03 · Workflow、任务拆解与跨系统协作", [
("业务模式、流程和岗位分工都不清晰时，如何设计 Agent Workflow？", "先做流程发现，不从画理想流程开始。选取真实案例，追踪触发、信息、判断、动作、等待和返工，找到事实上的工作流；初期由人担任总协调者。", "连续复盘 10–20 个真实任务，形成事件与决策地图。先固定输入、输出和升级点，再逐步拆出 Agent 节点。"),
("引入多个 Agent 后，如何判断任务拆解方案是好的？", "好的拆解让每个角色输入清楚、输出可验、依赖最少、可并行、失败可隔离、上下文不过载。Agent 数量越多不代表设计越先进。", "用五项检查拆解：接口清晰、结果可验、并行有价值、失败不扩散、交接信息最小充分。达不到就合并角色。"),
])
add_qa("Appendix · Workflow 02", "03 · Workflow、任务拆解与跨系统协作", [
("从人拼接多系统信息到 Agent 协作，核心缺口是什么？", "Prompt、知识组织和工具接口都重要，但常见瓶颈先后是：对象与状态不统一、工具动作不可靠、Context 无结构，最后才是 Prompt。没有数据与工具契约，模型能力无法稳定落地。", "先定义对象 ID、状态机、字段口径和工具输入输出，再建设检索 Context 与评估集；Prompt 放在这套基础设施之上迭代。"),
("自主性高的 Agent 能进入核心流程吗？", "可以，但自主性应被限定在清晰边界内。生产系统往往收敛为确定性 Workflow 骨架、Agent 判断节点和人工风险闸口的组合。", "为每个 Agent 标明目标、工具白名单、预算、超时、停止条件和升级对象；核心流程先小范围灰度，再扩大自治范围。"),
])
add_qa("Appendix · 人机介入 01", "04 · 人机判断、验收与介入机制", [
("审美、人物理解和内容创作等主观任务，如何定义完成标准？", "主观不等于无法评估。可以用评价维度、参考样本、成对比较、硬性否决项和接受区间，把隐性偏好转成可讨论的评审协议。", "建立小型黄金样本集，定义 4–6 个评分维度和必须避免的错误；先让多人校准评分，再评估 Agent。"),
("人的判断放得太早或太晚，如何动态决定介入节点？", "比较预期损失与审核成本：错误概率 × 影响 × 返工代价高于审核成本时，人应提前介入。置信度必须经过校准，不能直接相信模型自报。", "在高分支、高承诺和不可逆动作前设检查点；低风险步骤采用抽检，持续用真实错误更新阈值。"),
])
add_qa("Appendix · 人机介入 02", "04 · 人机判断、验收与介入机制", [
("准确率很高但每单仍需人工确认，怎样才算真正跑通？", "如果人工只是重复确认，系统没有释放产能。成熟机制应按风险与置信度分流：高置信低风险自动通过，中间区抽检或快速确认，高风险全量审核。", "记录每次人工修改的原因，按漏检率、审核时长、自动通过率和下游缺陷共同调阈值，而非只看准确率。"),
("人的选择如何沉淀为 Agent 的长期能力？", "把选择结果、理由、上下文和最终业务反馈结构化，形成版本化样本、规则与评估集；原始聊天记录本身不会自动成为可靠能力。", "建立反馈、标注、评估、更新、回归测试闭环，分别更新 Context、Prompt、Policy、工具或模型，并比较更新前后表现。"),
])
add_qa("Appendix · 责任治理 01", "05 · 责任、风险与容错治理", [
("AI 或 Agent 上岗后犯错，责任应该如何界定？", "责任跟随决策权和控制权。业务 Owner 对结果负责，系统 Owner 对控制机制负责，操作人按制度执行，高风险批准人承担批准责任；模型或供应商不能替代企业责任主体。", "为每条 Workflow 建立 RACI，明确结果 Owner、系统 Owner、执行者、审核者和升级负责人，并与权限配置保持一致。"),
("不同任务的犯错代价差别很大，容错边界如何分级？", "按影响范围、可逆性、客户暴露、合规风险和恢复时间分级。零容错事项要求预防性闸口；可恢复事项可以设置错误预算和监控。", "建立 L0 禁止自动执行、L1 人工批准、L2 自动执行加抽检、L3 自动执行加监控四级，并按事故数据调整。"),
])
add_qa("Appendix · 责任治理 02", "05 · 责任、风险与容错治理", [
("问题被下游发现时，责任在 Workflow、审核环节还是使用者？", "不应只追最后触点。应判断哪个控制点本可合理发现或阻止问题：设计缺陷、数据缺陷、执行错误、审核失效、权限配置或违规使用分别归责。", "统一事故分类和根因分析，区分触发点、未拦截点和影响扩大点；整改系统控制，避免把系统问题转化为个人背锅。"),
("Agent 出错时，系统如何支持定位、纠正和人工接管？", "需要随时停止、保留现场、重放链路、隔离版本、切换人工和验证修复。没有可观察性与接管机制，准确率再高也不具备生产资格。", "配置 kill switch、人工接管队列、输入输出与版本追踪、回归测试；修复后再调整权限和覆盖范围。"),
])
add_qa("Appendix · 责任治理 03", "05 · 责任、风险与容错治理", [
("长链路任务如何设计日志、状态、审计、回滚和介入点？", "每个任务需要唯一关联 ID，每一步记录输入、输出、模型、Prompt、工具版本、状态、耗时、费用和操作者；关键动作要幂等，无法回滚时准备补偿动作。", "采用任务级状态机和事件日志，在外部承诺、资金、发布与高风险分支前设置检查点；超时、重复失败和低置信度自动升级人工。"),
])
add_qa("Appendix · 人才组织 01", "06 · 人才、组织与可复用能力", [
("如何识别一个人只是会用 AI，还是具备 AI Native 工作方式？", "会用工具关注一次输出；AI Native 工作方式会外化 Context、拆解任务、配置角色、设计验收、管理例外，并留下可复用资产和完整证据。", "用真实工作样本评估：让候选人组织一项任务，说明分工、风险、验证和沉淀；不要只考 Prompt 技巧。"),
("年轻员工跳过底层肌肉记忆时，如何重构面试与硬性准入？", "允许使用 AI 后，更应测试问题定义、事实核验、口头答辩和对错误的敏感度。关键岗位仍需保留无工具基础测试，确认候选人理解底层原理。", "采用有 AI 工作样本、现场答辩、关键基础无 AI 测试三段式；硬门槛按岗位风险设置，不做统一禁用。"),
])
add_qa("Appendix · 人才组织 02", "06 · 人才、组织与可复用能力", [
("如何重设计年轻员工成长路径，避免丢失底层能力？", "成长路径应同时积累专业判断与组织杠杆。先亲自经历典型案例和失败，再学习自动化与编排；不能只会调用，也不能长期停留在手工执行。", "采用手工理解、Agent 辅助、组织 Agent、负责闸口的阶梯，配合轮岗、复盘、师徒 Review 和周期性基础能力校验。"),
("业务理解 AI、技术理解业务都困难，如何建立共建机制？", "单向需求交付会造成翻译损失。需要小型跨职能 POD：业务 Owner、领域专家、AI 或产品工程师、平台与风险角色共同对同一业务指标负责。", "用真实任务共创，每周看失败案例和指标；业务负责结果与规则，技术负责系统与控制，双方共同维护评估集。"),
])
add_qa("Appendix · 人才组织 03", "06 · 人才、组织与可复用能力", [
("如何把评估、知识治理和 Workflow 模板沉淀为可复用能力？", "复用对象不只是 Prompt，还包括评估集、数据契约、权限策略、连接器、状态机、审核规则和事故模式。需要版本、Owner、适用范围和使用反馈。", "建立能力注册表与平台负责人，项目交付时强制提交可复用资产；用 80% 通用组件加 20% 场景配置，避免每次从零定制。"),
])

TOTAL = len(slides)
sections = [f'<section class="slide {cls}">{body}{footer(section, index, TOTAL)}</section>' for index, (section, body, cls) in enumerate(slides, start=1)]
html = f'''<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="robots" content="noindex,nofollow"><title>和合谷｜AI Agent 带来的组织变革 · Part A</title><link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22><rect width=%2264%22 height=%2264%22 rx=%2214%22 fill=%22%23B4202A%22/><path d=%22M18 20h8l6 18 6-18h8L35 48h-6z%22 fill=%22white%22/></svg>"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="{FONT_URL}" rel="stylesheet"><style>{CSS}{WEB_CSS}</style></head><body class="web"><div class="deck">{"".join(sections)}</div><div class="bar" id="bar"></div><div class="zone left" onclick="show(i-1)"></div><div class="zone right" onclick="show(i+1)"></div><div class="nav"><button onclick="show(i-1)">‹ 上一页</button><span id="count"></span><button onclick="show(i+1)">下一页 ›</button></div>{WEB_JS}</body></html>'''
out = ROOT / "part1"
out.mkdir(exist_ok=True)
(out / "index.html").write_text(html, encoding="utf-8")
print(f"wrote {TOTAL} slides to {out / 'index.html'}")
