- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
6.2 KiB
Asset Planning
新建演示文稿或大幅改写页面时,在写入 slide_plan.json 前后都可以参考本文件。目标是让 agent 主动识别有价值的图、图标、图表、流程图、时序图、架构图、装饰图案、截图或示意图需求,同时保持 deck 在没有真实素材时也能完整执行。
本文件只定义轻量资产规划。不要把它理解成素材采集流程。
Core Rules
asset_needis metadata only. It can guide page design, but it must not require web search, local download, media upload, or external tools.- Every planned asset must include a fallback visual plan so the slide can be generated with XML shapes, text, arrows, tables, simple charts, whiteboard diagrams, or placeholder regions.
- Asset needs must serve the page's
key_messageandvisual_focus. Do not add decorative assets that do not clarify the page. - Prefer a few high-value asset plans over one asset on every page. For a 6-page technical or business deck, plan assets on at least 3 pages when the content allows.
- If a real local asset already exists or the user provides one, it can be used through the normal media-upload workflow. Still keep
fallback_if_missingin the plan. - Do not leave blank image boxes in final XML. If the asset is missing, render the fallback visual.
JSON Shape
Use an object for one planned asset, or an array when a page genuinely needs multiple assets. Keep each item compact.
{
"asset_type": "architecture_diagram",
"purpose": "Show how API gateway, planner, XML generator, and Slides API interact.",
"suggested_query": "agent native slides runtime architecture diagram",
"fallback_if_missing": "Draw grouped boxes connected by arrows with short labels."
}
For a page without a meaningful asset need, use:
{
"asset_type": "none",
"purpose": "No external or simulated asset needed; the page is text-led.",
"suggested_query": "",
"fallback_if_missing": "Use typography, spacing, and simple accent shapes only."
}
Supported Asset Types
paper_figure: figure from a paper or technical article.architecture_diagram: system components, data flow, dependency map, or model structure.icon: small semantic symbol for a concept, step, role, or status.logo: brand, product, team, or customer mark.chart: line, bar, pie, radar, area, or combo data visual. Note:<chart>does not support funnel or scatter — map those to<whiteboard>SVG at generation time.infographic: composed visual explanation, usually combining labels, numbers, and simple shapes.screenshot: product UI, terminal output, workflow state, or page capture.flow_diagram: process, sequence, decision tree, or mechanism diagram.none: explicitly no asset needed.
Do not invent new asset types unless the user asks for a special visual format. If a need is close to these types, choose the closest one and explain the detail in purpose.
Planning Guidance
Match asset type to slide role:
architecture-diagramlayout usually pairs witharchitecture_diagramorflow_diagram.process-flowlayout usually pairs withflow_diagram,icon, orinfographic.comparisonlayout often works withicon,chart, orinfographic.timelinelayout often works withicon,chart, or shape-based milestone markers.big-numberlayout often works withchartorinfographic, but only if it supports the metric.image-left-text-rightandimage-right-text-leftcan usescreenshot,paper_figure,logo, orinfographic; if missing, use a large placeholder diagram or stylized panel.
suggested_query is only a future lookup hint. Write it as a short phrase a human or later workflow could search, but do not execute the search unless the user separately requests real assets.
fallback_if_missing must be concrete enough to turn into XML, for example:
- "Draw a simplified attention matrix with 5 token labels, semi-transparent cells, and arrows to output token."
- "Use three grouped boxes with arrows from client to gateway to service; add small protocol labels."
- "Render a mini bar chart with 4 bars using shapes and value labels."
- "Use a bordered placeholder panel with product area labels, not an empty image."
Weak fallbacks to avoid:
- "Use a placeholder."
- "Find another image."
- "Leave blank if unavailable."
- "Use generic decoration."
Examples
Transformer Self-Attention page:
{
"asset_type": "paper_figure",
"purpose": "Explain token-to-token attention and why each output token mixes context.",
"suggested_query": "Transformer self attention attention matrix diagram",
"fallback_if_missing": "Draw a simplified attention matrix with token labels, colored weights, and arrows from input tokens to one highlighted output token."
}
System architecture page:
{
"asset_type": "architecture_diagram",
"purpose": "Show the runtime path from user prompt to plan, XML generation, Slides API creation, and fetch verification.",
"suggested_query": "slides generation runtime architecture planner XML API verification",
"fallback_if_missing": "Draw four grouped boxes connected left-to-right with arrows; put verification as a return arrow from Slides API to agent."
}
Business comparison page:
{
"asset_type": "infographic",
"purpose": "Make before/after differences scannable without dense bullet lists.",
"suggested_query": "before after product workflow comparison infographic",
"fallback_if_missing": "Use two side-by-side panels with matching icon circles and three parallel rows of concise labels."
}
Plan To XML Contract
When generating XML:
- If an asset exists and the workflow supports it, place it in the planned visual region.
- If no asset exists, immediately render
fallback_if_missingwith XML-native shapes, text, lines, arrows, tables, whiteboard diagrams, or chart-like elements. - Size the fallback to satisfy
visual_focus; it should be a real page element, not a tiny decoration. - Keep text-density limits. Do not compensate for missing assets by adding long bullet text.
- After creation, fetch the presentation and verify asset pages are not blank and that each planned fallback is visible when no real asset was used.