# 卡片系统(Phase 2.1) ## 原则 1. **按内容选卡,不按好看选卡**:短答不套卡;没有证据的数字不做指标卡。 2. **热点预算**:每条实质回复最多 **1 个主卡 + 1 个行动/风险卡**;全文强调块 ≤2。 3. **卡片必须可回退**:没有 GenUI 时用原生 markdown + 我们的 CSS;有 GenUI 时交互/图表卡片走 `dsh-ui`,普通卡片仍走 fallback。 4. **颜色不超过 3 个语义色**:品牌色(结论/判断/指标/下一步)、warn(风险)、success(验收)。不用第四种装饰色。 5. **清晰优先,不设硬性篇幅上限**:按信息量组织,不为了字数删信息;表格优先 ≤5 行,信息确实多时拆表或用 `dsh-ui` 大表,不硬砍内容。 ## 卡片类型 | 类型 | 何时用 | host 语法 | 客户端标记 | 图标 | | --- | --- | --- | --- | --- | | 标题卡(首卡) | 每条实质回复 1 个,第一段 | `> **一句标题**` + 下一行正文 | `card-type=statement` | ◆ | | 判断/决策卡 | 有取舍、需要拍板 | `> **判断**` + 标题/正文 | `card-type=decision` | ⇄ | | 指标卡 | 2–4 个关键数字 | `> **指标**` + 数字 | `card-type=metric` | ▦ | | 风险卡 | 风险/阻塞/未验证项 | `> **风险**` + 标题/正文 | `card-type=risk` + tone=warn | ⚠ | | 下一步卡 | 行动/待办 | `> **下一步**` + 动作 | `card-type=next` | → | | 验收卡 | 验收/通过/完成 | `> **验收**` + 结果 | `card-type=accept` + tone=success | ✓ | | 重点卡 | 单条关键提醒 | `> **重点**` + 一句话 | `card-type=key` | ★ | | 证据表 | 对比/清单/状态 | `**表格结论:** ...` + 表格 | 表格行/状态着色 | — | | 结果卡 | 工具输出、diff、文件变更 | 宿主工具卡 / `dsh-ui` | GenUI/宿主 | 由宿主 | ## 卡片 anatomy ```text [title] 一句短标题(≤60 字) ← 16px/700,无「结论」标签 [body] 1–2 行证据/动作 ← 15.5px,正文 [footer] 来源/下一步(可选) ← 仅在需要时出现 ``` - 首卡不写「结论:」标签:标题本身就是结论;这与 `AGENTS.md §7` 的 no-label 一致。 - 行动卡用 `风险` / `下一步` / `验收` 作为组件标签,不当作正文前缀。 - 卡片内最多 3 行;超过就拆成卡片 + 表格/清单。 - 风险卡必须写“影响 + 触发条件”;下一步卡必须写“动作 + 验收信号”。 ## 热点预算 | 回复类型 | 主卡 | 次卡 | 表格 | 状态 glyph | | --- | --- | --- | --- | --- | | 短答(1–2 句) | 不用卡 | 不用 | 不用 | 不用 | | 结论 + 证据 | 标题卡(无标签) | 0–1 个风险/下一步 | 有表格结论 | 有状态就加 | | 决策/方案 | 判断卡 | 1 个风险或下一步 | 对比表 | 有状态就加 | | 事故/复盘 | 标题卡 | 1 个风险卡 | 时间线/证据表 | 有状态就加 | | 工具结果 | 标题卡 | 0–1 个下一步 | 结果表 | 有状态就加 | ## GenUI 映射 | 内容 | 无 GenUI | 有 GenUI | | --- | --- | --- | | 结论/判断/风险/下一步 | markdown 卡片 + 我们的 CSS | 仍用 markdown 卡片(避免每条回复都生成 JSON) | | 图表/可排序表格/表单/大表格 | markdown 表格或文字 | ` ```dsh-ui ` 组件 | | 工具 diff/文件变更 | 宿主工具卡 | 宿主工具卡 / GenUI diff | 同一内容只渲染一次:有 `dsh-ui` fence 的区域不再套我们的卡片样式。 ## 验收 - 12 条固定 prompt:首屏出现主卡/结论 ≥80%。 - 每条回复强调块 ≤2;带表格的回复 100% 有表格结论。 - 状态行/状态表 100% 有 ✅/⚠️/❌ 或文字标签。 - 无 GenUI / 有 GenUI 两种环境都不报错;同一内容不重复渲染。