页面导入示范 · 标准化模板

下游 Agent / 第三方应用消费 handoff / deliverable JSON 的最简集成代码 · 全局唯一字段规范

打开讲学页(单文件离线,已注入数据) ` }, 'field-spec': { title: '④ 全局唯一字段规范', desc: 'handoff / deliverable 共用的字段命名与类型规范,禁止歧义', html: `
字段类型必填说明
projectCodestring唯一项目流水编码
stageenum'题目' / '分析' / '解答' / '总结' (中文)
regionenum'question' / 'analysis' / 'solution' / 'summary' (英文)
speechstring口播原文,仅用于字幕与校对,不用于算时长
board.contentstring板书内容,\\n 换行,支持 LaTeX 子集
board.startDelaynumber本 row 音频开始后几秒落笔(秒)
board.regionenum板书所在区(v3.0,不含坐标)
actionSpecarray动作数组,无动作为 []
action.toolenum'rough-notation' / 'rough-line' / 'rough-arrow'
action.actionenum'underline' / 'highlight' / 'circle' (rough-notation 专属)
action.ordernumber单手队列正整数顺序,全表唯一
action.target.exactTextstringrough-notation 必须锚定原文(禁止改写)
mp3 / audioBase64string真实音频(二者至少其一,缺即规格冲突)
exclusiveExecutionPlanarray单手串行执行计划 (deliverable v2.0)

禁止字段:board.startCoord / board.coord / board.x / board.y / actionSpec[].triggerAt / actionSpec[].durationMs / actionSpec[].startMs / actionSpec[].seed

📚 真相源:handoff.schema.json + deliverable.schema.json + HANDOFF_API_SPEC.md + DELIVERABLE_API_SPEC.md + truth/territory-A-agent-b.md

` } }; function render(tab) { const t = tabs[tab]; document.querySelectorAll('.tab').forEach(b => b.classList.toggle('active', b.dataset.tab === tab)); const el = document.getElementById('content'); if (t.html) { el.innerHTML = `

${t.title}

${t.desc}

${t.html}
`; } else { el.innerHTML = `

${t.title}

${t.desc}

${t.code.replace(//g,'>')}
`; } } document.getElementById('tabs').addEventListener('click', e => { if (e.target.classList.contains('tab')) render(e.target.dataset.tab); }); render('handoff');