docs(spec): add specification for dialogue-driven content synthesis and hierarchical intent funnel

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WeiCHEN
2026-09-13 02:50:19 +00:00
committed by weichen
co-authored by Cursor
parent 6ccf98e291
commit 24e577f50c
@@ -0,0 +1,395 @@
# 对话驱动受控内容产出、分级意图消解与交互卡片架构设计规范
# (Dialogue-Driven Content Synthesis, Hierarchical Intent Funnel & Interactive Cards Specification)
- **归档路径**: `docs/superpowers/specs/2026-09-08-dialogue-driven-content-and-hierarchical-intent-design.md`
- **编制日期**: 2026-09-08
- **当前状态**: 批准实施 (Approved)
- **技术栈**: Go 后端 (L1 意图识别/L2 协调引擎/L3 底层服务) + React 19 / TypeScript 前端 + 医疗器械受控文档治理引擎 (`docgov`)
---
## 一、 设计哲学与系统能力边界 (Design Philosophy & Boundaries)
在医疗器械研发与商务对接这一严肃合规场景(遵循 ISO 13485、GMP、21 CFR Part 11)中,人机协同的最高境界是**“对话即工作流,言出必留痕”**。然而,对话驱动绝不等于把所有界面按钮盲目搬入对话框。本设计严格确立三条刚性边界:
### 1.1 明确能力边界:剔除纯 UI 视窗操作,聚焦“内容产出与合规查询”
- 🚫 **绝对排除的功能(对话一律不执行)**:
- **纯 UI 视窗与工具栏控制**:如“帮我打开工具栏”、“折叠左侧会话栏”、“把主题换成深色”、“展开交付物大盘抽屉”、“切换到第 2 个 Tab”等。此类操作用户通过鼠标点击或快捷键即可在毫秒级完成,通过自然语言对话下达属于低效冗余交互,**系统一律不作为执行型意图处理**(仅友好提示“此类界面布局调整请直接点击界面右上角或侧边栏控件”)。
- **用户身份与底层设置篡改**:严禁通过对话修改自身或他人的企业身份(姓名、工号、固定职位、所属部门、法定资质)及底层系统配置(大模型网关密钥、向量库连接、管理员组织架构配置)。此类操作受到安全红线网关硬隔离拦截。
- ✅ **全面支持的功能(深度对话驱动)**:
- **能直接影响受控内容产出的能力**:文档编制、智能体修改提案采纳/放弃、文档编制人认领、提交送审、审核驳回/通过、终审批准发布、技术参数黑板沉淀。
- **能辅助商务与研发决策的查询能力**:项目成熟度诊断、预见性风险排查、对外商务沟通话术草拟、国家/国际强标法规检索、全局终审标杆案例推荐、当前账号在项目各交付物中的法定权限查询。
---
## 二、 系统核心能力领域划分与可对话能力矩阵 (Capability Matrix)
系统底层的业务与内容能力被解构为四大业务域:
```
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ 水木东方 AI 协同系统:内容产出与业务查询能力矩阵 │
└────────────────────────────────────────────────────────────────────────────────────────┘
│
├─► 【1. 受控文档法定治理流转域 (DocGov Lifecycle)】 ──────────────────────┐
│ ├─ 文档认领 (Claim):编制负责人确认接管初稿并锁定人机协同契约 │
│ ├─ 提交送审 (Submit Review):初稿完成,流转至指定审核负责人 │
│ ├─ 审核通过 (Review Pass):审核签署,送呈批准负责人终审 │
│ ├─ 审核/批准驳回 (Reject):带法定理由退回,智能语义定位章节并注入合规批注 │
│ ├─ 终审批准生效 (Approve):盖章归档,微粒度切片并注入全局标杆案例库 │
│ └─ 变更提议裁决 (Proposal Decide):编制人对智能体的修改提议进行拍板 │
│ │
├─► 【2. 交付物生成与业务演进域 (Content Synthesis & Evolution)】 ─────────┤
│ ├─ 成熟度阶段跃迁 (Advance Stage):驱动 V0.1 摸底 ➔ V0.5 方案 ➔ V1.0 报价│
│ ├─ 单项交付物生成 (Trigger Task):按需自适应规划 intake/research/quote │
│ └─ 事实黑板更新 (Fact Injection):增量注入目标市场、预期用途、关键技术参数│
│ │
├─► 【3. 辅助决策与合规知识查询域 (Decision Support & Retrieval)】 ─────────┤
│ ├─ 进展与成熟度研判 (Progress Diagnostic):评分、卡点与参谋下一步建议 │
│ ├─ 预见性合规风险排查 (Preemptive Risks):提前预警 GB 9706/YY 0569 卡点 │
│ ├─ 商务沟通话术草拟 (Talk Script):自动生成面向客户微信/邮件沟通底稿 │
│ ├─ 法规强标与指导原则检索 (Knowledge Retrieval):精准调取条款与引文 │
│ ├─ 相似标杆案例检索 (Case Recommendation):推荐已终审生效的往期标杆 │
│ └─ 用户法定职责权限查询 (Rights Inquiry):查询自己在各文档中的法定职责 │
│ │
└─► 【4. 安全与权限硬红线域 (Security Guard & Hard Redline)】 ──────────────┘
├─ 拦截修改用户固定身份 (姓名/工号/部门/职位/资质) ➔ 阻断并合规警告
└─ 拦截修改系统底层配置 (网关/数据库/审计密钥) ➔ 阻断并合规警告
```
---
## 三、 四级漏斗意图消解架构 (The 4-Stage Hierarchical Intent Funnel)
为解决**“功能与意图过多导致分类器混淆、误触或失效”**的问题,系统弃用单层平铺的大模型/规则分类器,建立**分级、分步、递进排除的四级漏斗意图消解架构**:
```
[ 用户自然语言输入 ]
│
▼
┌───────────────────────────────────────────────────────────────────────────┐
│ Stage 0: 态势上下文与合法动作空间计算 (State & Permission Pre-filter) │
│ • 读取当前激活项目 ID 与阶段 (V0.1 / V0.5 / V1.0) │
│ • 读取当前激活文档 ID 与生命周期状态 (drafting / reviewing / approving) │
│ • 读取当前用户在该文档的法定职责 (author / reviewer / approver / viewer) │
│ • 圈定【合法候选意图白名单】,直接从源头排除 70% 的非法意图! │
└───────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────┐
│ Stage 1: 领域大类初筛与路由 (Domain Routing) │
│ • 1.1 治理与审签流转 (GOV_LIFECYCLE) │
│ • 1.2 交付物与阶段演进 (CONTENT_SYNTHESIS) │
│ • 1.3 决策、诊断与法规查询 (DECISION_QUERY) │
│ • 1.4 挂起卡片确认/放弃 (EXPECTATION_ACTION) │
│ • 1.5 敏感安全越权 (SECURITY_FORBIDDEN) │
└───────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────┐
│ Stage 2: 细分微观意图识别与槽位提取 (Micro-Action & Slot Extraction) │
│ • 在确定的大类内部匹配具体动作 (如 Reject vs Approve) │
│ • 提取必填槽位 (target_doc, reject_reason, target_section, fact_key) │
│ • 槽位校验:若缺少必填槽位 ➔ 降级为追问或下发信息补全卡片 │
└───────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────┐
│ Stage 3: 裁决门禁与智能体二次确认判定 (Gate & Confirmation Decision) │
│ • 高影响动作判定:驳回退回、终审发布、大阶段跃迁 ➔ 强制阻断业务直接突变 │
│ • 智能语义定位:下沉至 Block AST 提取关联章节块并构造批注草案 │
│ • 输出 CoordinationResult + 下发标准化交互卡片 (InteractiveCard) │
└───────────────────────────────────────────────────────────────────────────┘
```
### 3.1 Stage 0:态势上下文前置过滤(零成本剪枝)
分类器在接收文本前,先注入当前上下文约束:
```go
type IntentPreFilterRule struct {
Stage bizdev.MaturityStage
ActiveDocID string
DocLifecycleState docgov.DocumentState
UserDocRole docgov.UserRole
}
```
- **剪枝规则 1**:若当前文档处于 `drafting`,则白名单排除所有审核/批准动作(`ReviewApprove`、`ReviewReject`、`ApproverApprove`、`ApproverReject`);
- **剪枝规则 2**:若用户在该文档角色为 `reviewer`,排除正文直接编辑和认领动作,仅保留 `ReviewApprove`、`ReviewReject`、`AddComment`、`Query`;
- **剪枝规则 3**:若用户在该文档角色为 `approver`,排除审核阶段动作,仅保留 `ApproverApprove`、`ApproverReject`、`AddComment`、`Query`。
### 3.2 Stage 1:领域大类初筛(粗粒度分类)
将所有输入先归入 5 个互不重叠的高阶领域,由于领域特征明显,判定准确率稳定在 99% 以上:
- `GOV_LIFECYCLE`:关键词如“驳回”、“通过”、“送审”、“认领”、“批准”、“同意修改”;
- `CONTENT_SYNTHESIS`:关键词如“推进到”、“进入方案”、“出报价单”、“生成调研”、“更新市场”;
- `DECISION_QUERY`:关键词如“查下风险”、“进度如何”、“沟通微信怎么写”、“查法规”、“看案例”;
- `EXPECTATION_ACTION`:关键词如“好”、“行”、“就按这个办”、“先不推”、“放弃”;
- `SECURITY_FORBIDDEN`:关键词如“把我的身份改成”、“修改密码”、“修改网关配置”。
### 3.3 Stage 2:细分微观意图与槽位完备性检验
在确认的大类内部进行微观意图识别与槽位抽取:
```go
// 意图枚举定义
const (
// 治理流转大类 (GOV_LIFECYCLE)
IntentDocGovClaim IntentType = "DOCGOV_CLAIM" // 认领文档
IntentDocGovSubmitReview IntentType = "DOCGOV_SUBMIT_REVIEW"// 提交送审
IntentDocGovReviewApprove IntentType = "DOCGOV_REVIEW_APPROVE" // 审核通过
IntentDocGovReviewReject IntentType = "DOCGOV_REVIEW_REJECT" // 审核驳回
IntentDocGovFinalApprove IntentType = "DOCGOV_FINAL_APPROVE" // 终审批准生效
IntentDocGovFinalReject IntentType = "DOCGOV_FINAL_REJECT" // 终审驳回
IntentDocGovProposalDecide IntentType = "DOCGOV_PROPOSAL_DECIDE" // 提案拍板
// 交付物与阶段大类 (CONTENT_SYNTHESIS)
IntentAdvanceStage IntentType = "ADVANCE_STAGE" // 阶段跃迁
IntentTriggerTask IntentType = "TRIGGER_TASK" // 生成单项交付物
IntentSupplementInfo IntentType = "SUPPLEMENT_INFO" // 补充黑板事实
// 辅助决策与查询大类 (DECISION_QUERY)
IntentQueryProgress IntentType = "QUERY_PROGRESS" // 查询进度/风险/话术
IntentQueryRegulations IntentType = "QUERY_REGULATIONS" // 检索法规强标
IntentQuerySimilarCases IntentType = "QUERY_SIMILAR_CASES" // 检索标杆案例
IntentQueryUserRights IntentType = "QUERY_USER_RIGHTS" // 查询法定权限
// 挂起确认大类 (EXPECTATION_ACTION)
IntentExpectationAffirm IntentType = "EXPECTATION_AFFIRM" // 肯定挂起选项
IntentExpectationDecline IntentType = "EXPECTATION_DECLINE" // 暂缓/拒绝挂起建议
// 安全防御大类 (SECURITY_FORBIDDEN)
IntentSecurityForbidden IntentType = "SECURITY_FORBIDDEN" // 敏感资产篡改拦截
)
```
---
## 四、 智能语义定位与块级批注注入机制 (AST Semantic Anchoring)
对于“审核驳回”等核心治理操作,系统绝不是在文档表层打一个全局标记,而是**智能下沉至 Block AST**,实现精准的段落锚定与批注挂载。
```dot
digraph semantic_anchoring {
node [shape=box, style="rounded,filled", fillcolor="#f8fafc", fontname="sans-serif", fontsize=10];
edge [color="#64748b", arrowhead=vee];
Input [label="审核人输入:\n'把调研报告审核驳回,意见为:第3节竞品对比缺少史赛克高频电刀的抗扰度指标'", fillcolor="#e0e7ff"];
Parser [label="语义特征提取器 (Semantic Feature Extractor)\n• 章节线索: '第3节', '竞品对比'\n• 技术指标线索: '高频电刀', '抗扰度', 'EMC'\n• 核心诉求: 缺少指标,需补充合规依据", fillcolor="#f1f5f9"];
AST [label="目标受控文档 Block AST 扫描\n遍历 docAST.rootBlock.children\n• Block 1: H1 概述\n• Block 2: H2 市场背景\n• Block 3: H2 3. 主要竞品技术对比 (Table)\n• Block 4: Paragraph 光学性能\n• Block 5: Paragraph 电气安全与抗扰度", fillcolor="#fef3c7"];
Matcher [label="混合加权锚定器 (Hybrid Anchor Matcher)\n• 结构匹配度 (Heading path / Numbering): 0.95\n• 关键词与向量相似度 (TF-IDF / Embedding): 0.88\n• 综合得分锁定: Block 5 (id: blk_emc_05)", fillcolor="#e0f2fe"];
Card [label="生成【审核驳回确认卡】\n• 锚定位置: 第3节 [电气安全与抗扰度]\n• 批注草案: 缺少史赛克高频电刀共模抑制比测试说明\n• 等待审核人确认", fillcolor="#fef08a", shape=component];
Apply [label="确认执行与状态落盘\n1. 文档状态: reviewing ➔ drafting\n2. 在 Block 5 挂载 DocumentComment(type='issue')\n3. 写入 AuditLog 审计日志\n4. 激活编制人编辑权限并通知", fillcolor="#dcfce7"];
Input -> Parser -> AST -> Matcher -> Card -> Apply;
}
```
### 4.1 混合锚定算法 (Hybrid Anchor Matcher)
1. **结构维度匹配**:正则解析文本中的“第X节”、“第X章”、“表X”、“第X行”,与 `DocumentBlock.numbering` 及 `DocumentBlock.level` 做层级匹配(权重 0.6);
2. **内容语义维度匹配**:将驳回意见分词与每个 Block 的 `content` 计算 Jaccard 相似度与 BM25 分数(权重 0.4);
3. **退化保底策略**:若匹配度低于阈值(0.45),则自动锚定在文档首个章节(概述块),并标记为“全文档通用审查意见”,绝不因定位失败阻断主流程。
---
## 五、 对话交互卡片系统深度设计 (Interactive Cards Architecture)
对话卡片是人机共治的核心界面载体。卡片具备**独立生命周期、动态时效、非阻塞哲学与操作幂等性**。
```
┌────────────────────────────────────────────────────────────────────────┐
│ 🛡️ 审核驳回流转确认 │
├────────────────────────────────────────────────────────────────────────┤
│ 拟驳回文档: 《微创外科全球竞品深度调研》 (V0.5) │
│ 当前审核人: 李主管 (您) │
│ 退回接收人: 张工 (编制负责人) │
│ │
│ 📌 智能体提取的驳回意见与拟注入批注: │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 锚定段落: 第3节 [主要竞品电气安全与抗扰度指标对比] │ │
│ │ 批注内容: 缺少史赛克高频电刀共模抑制比测试说明,需补充法规强标依据 │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ ⏱️ 有效期: 当前审核会话活跃期间 (3轮对话内有效) │
│ │
│ [ ✍️ 调整驳回意见 ] [ ❌ 放弃驳回 ] [ ⚠️ 确认正式驳回退回 (Enter) ]│
└────────────────────────────────────────────────────────────────────────┘
```
### 5.1 卡片类型谱系规范 (Card Taxonomy)
```typescript
export type InteractiveCardType =
| 'CONFIRMATION' // 强受控流转二次确认卡 (驳回/批准/大版本跃迁)
| 'SLOT_FILLING' // 关键信息与事实补充卡 (缺少驳回理由/缺少参数)
| 'DIFF_PROPOSAL' // 智能体修改变更提议卡 (编制人采纳/拒绝方案)
| 'REMINDER_NOTICE';// 参谋风险预警与标杆推荐卡 (非阻塞建议)
export type CardActionStatus =
| 'active' // 激活可用:按钮可点,支持对话单字"好/确认"触发
| 'executing' // 执行中:网络请求中,防重锁定
| 'resolved' // 已完成:已确认执行,盖章不可再次触发
| 'cancelled' // 已取消:用户显式点击放弃或回复取消
| 'outdated' // 已失效:外部业务状态突变 (如他人已批准)
| 'expired'; // 已超时:超过有效轮次淡化折叠
```
### 5.2 核心机制一:卡片能否跳过?(非阻塞哲学 vs 强确认门禁)
- **原则:前台对话绝不卡死,后台业务绝不私自突变**。
- **前台自由对话**:当系统下发【审核驳回确认卡】时,用户完全可以不点击,而是直接输入“*帮我查一下 GB 9706.1-2020 标准*”。对话照常进行,旧卡片不阻断新对话输入,保留在历史消息流中并进入“静默等待态”;
- **后台严格受控**:在用户没有在卡片上点击“确认”或在对话中明确回复“确认/同意”前,**后端的受控文档状态保持不变(依然处于 `reviewing`),绝不产生脏写**。
### 5.3 核心机制二:卡片时效性机制 (TTL & Expiration)
卡片绝不永久有效,设置三维时效保护:
1. **轮次时效 (Turn-based TTL)**:
- 默认有效期为 **3 个对话轮次**。用户连续交谈 3 轮其他无关话题后,旧卡片自动变为 `expired`,折叠并置灰,点击时提示“该操作已超时,请重新下达指令”;
2. **状态变迁时效 (State Invalidation)**:
- 卡片携带生成时文档版本哈希 `expectedDocHash` 与 `expectedState`。若其他人在前端直接点击了“通过”或“驳回”,卡片监听到外部状态已变,**立即原地变为 `outdated` 并提示“⚠️ 文档状态已在外部变更,该卡片已失效”**;
3. **单字肯定触发窗口 (Affirmative Trigger Window)**:
- 仅当卡片处于 `active` 且为最新一轮消息时,用户回复“好”、“确认”、“同意”、“1”才能自动兑现该卡片。历史久远的卡片不能被后续对话中的“好”误触。
### 5.4 核心机制三:幂等性防重与合法窗口期撤销 (Idempotency & Undo)
1. **网络层幂等保护**:每个卡片携带全局唯一 `actionToken`(UUID)。点击瞬间客户端立即禁用所有按钮并呈现 Loading 脉冲态,后端使用 Redis/内存原子锁确保同一 Token 只执行一次;
2. **原地转化完成态**:执行完成后,卡片原地更新为:
> “✅ **已成功驳回**:本交付物已退回编制阶段,驳回意见已注入第 3 节批注。操作人:李主管,时间:16:05。”
3. **合法窗口期反悔通道 (Grace Period Undo)**:
- 在卡片完成后的 60 秒内,且编制人尚未开始重新认领编辑前,卡片提供 `[ 撤销驳回 (恢复为待审核) ]` 辅助操作;
- 若编制人已认领并开始编辑,反悔按钮自动失效,提示“编制负责人已开展修订,已进入新生命周期”。
---
## 六、 数据契约与接口设计 (Data Contracts & Schemas)
### 6.1 后端 Go 数据模型扩展 (`internal/intent/` 与 `internal/coordinator/`)
```go
// 交互卡片动作规格
type CardAction struct {
ActionID string `json:"action_id"` // 如 "confirm_reject", "cancel"
Label string `json:"label"` // 按钮文本
Style string `json:"style"` // primary, danger, subtle
Payload map[string]string `json:"payload"` // 回传参数
IsAffirmativeDefault bool `json:"is_affirmative_default"` // 是否对应"好/行"
}
// 挂起交互卡片数据载荷
type InteractiveCardPayload struct {
CardID string `json:"card_id"`
CardType string `json:"card_type"` // CONFIRMATION, SLOT_FILLING...
Title string `json:"title"`
TargetDocID string `json:"target_doc_id"`
TargetDocTitle string `json:"target_doc_title"`
TargetSectionID string `json:"target_section_id,omitempty"`
SectionTitle string `json:"section_title,omitempty"`
ProposedContent string `json:"proposed_content,omitempty"`
ImpactRisk string `json:"impact_risk,omitempty"`
CurrentStatus string `json:"current_status"` // active, resolved...
TTLTurns int `json:"ttl_turns"` // 默认 3
CreatedAt time.Time `json:"created_at"`
Actions []CardAction `json:"actions"`
}
// 协调层回执升级
type CoordinationResult struct {
Status CoordinationStatus `json:"status"`
Intent intent.IntentType `json:"intent"`
Branch intent.ResolutionBranch `json:"branch,omitempty"`
RejectReason string `json:"reject_reason,omitempty"`
ClarificationPrompt string `json:"clarification_prompt,omitempty"`
NaturalReply string `json:"natural_reply"`
AdvisorBrief *squad.AdvisorBriefing `json:"advisor_brief,omitempty"`
ArtifactPath string `json:"artifact_path,omitempty"`
UpdatedContext *UserProjectContext `json:"updated_context"`
InteractiveCard *InteractiveCardPayload `json:"interactive_card,omitempty"` // 新增卡片载荷
NextExpectation *intent.PendingExpectation `json:"next_expectation,omitempty"`
}
```
### 6.2 前端 TypeScript 类型定义升级 (`web/src/types/workbench.ts`)
```typescript
export interface InteractiveCardData {
cardId: string;
cardType: 'CONFIRMATION' | 'SLOT_FILLING' | 'DIFF_PROPOSAL' | 'REMINDER_NOTICE';
title: string;
targetDocId: string;
targetDocTitle: string;
targetSectionId?: string;
sectionTitle?: string;
proposedContent?: string;
impactRisk?: string;
status: 'active' | 'executing' | 'resolved' | 'cancelled' | 'outdated' | 'expired';
ttlTurns: number;
actions: {
actionId: string;
label: string;
style: 'primary' | 'danger' | 'subtle';
payload: Record<string, string>;
}[];
resolutionSummary?: string;
resolvedAt?: string;
resolvedBy?: string;
}
export interface ChatMessage {
id: string;
sessionId: string;
role: 'user' | 'assistant' | 'system';
authorName?: string;
content: string;
intentTag?: string;
branchTag?: string;
timestamp: string;
phaseEvents?: PhaseEvent[];
recommendedCases?: RecommendedCase[];
interactiveCard?: InteractiveCardData; // 挂载的交互卡片
}
```
---
## 七、 核心业务时序流转图 (Sequence Walkthrough)
### 7.1 审核人对话驳回并注入批注全时序
```dot
digraph reject_sequence {
rankdir=TB;
node [shape=box, style="rounded,filled", fillcolor="#f8fafc", fontname="sans-serif", fontsize=10];
edge [color="#64748b", arrowhead=vee];
U [label="用户 (审核人 李主管)", fillcolor="#dbeafe"];
L1 [label="L1 意图识别器 (Recognizer)", fillcolor="#e0e7ff"];
L2 [label="L2 协调引擎 (Coordinator)", fillcolor="#fef3c7"];
DG [label="受控治理引擎 (docgov Engine)", fillcolor="#f1f5f9"];
UI [label="前端工作台 (React 19 Web)", fillcolor="#dcfce7"];
U -> L1 [label="1. 发送消息: '把调研报告审核驳回,第3节缺少史赛克抗扰度指标'"];
L1 -> L2 [label="2. 四级漏斗判定: 意图=DOCGOV_REVIEW_REJECT, 槽位提取完备"];
L2 -> DG [label="3. 状态校验: 检查 doc-002 是否为 reviewing,李主管是否为 reviewer"];
DG -> L2 [label="4. 校验通过,下沉扫描 AST,锁定 Block blk_emc_05"];
L2 -> UI [label="5. 下发 NaturalReply + CONFIRMATION 卡片 (状态 active, 待确认)"];
UI -> U [label="6. 渲染消息气泡与【审核驳回确认卡片】"];
U -> UI [label="7. 用户点击 [确认正式驳回] (或回复'确认')"];
UI -> L2 [label="8. 发送卡片动作: action_id='confirm_reject', token=uuid"];
L2 -> DG [label="9. 执行状态变迁: reviewing ➔ drafting, 在 blk_emc_05 挂载批注, 记审计日志"];
DG -> L2 [label="10. 驳回成功,受控文档解除锁定,流转至编制人"];
L2 -> UI [label="11. 回执: 卡片更新为 resolved 终态, 刷新右侧 Block 批注红点与状态"];
}
```
---
## 八、 实施交付计划与质量门禁 (Roadmap & Quality Gates)
根据本仓库《三分支流转与三套服务环境架构准则》与《渐进式提交规范》,本方案分为 4 个逐步推进的工程任务:
1. **Task 1: 契约与领域模型升级 (`feat(intent)` / `feat(docgov)`)**
- 编写 `internal/intent/types.go`,扩充意图枚举与卡片载荷数据结构;
- 编写 `web/src/types/workbench.ts`,定义前端卡片契约。
2. **Task 2: 四级意图漏斗与语义锚定引擎实现 (`feat(intent)` / `feat(coordinator)`)**
- 在 `internal/intent/recognizer.go` 中实现状态机前置过滤、大类路由与槽位抽取;
- 在 `internal/coordinator/engine.go` 中实现 Block AST 扫描定位与批注挂载;
- 编写覆盖率 100% 的单元测试(`recognizer_test.go`, `engine_test.go`)。
3. **Task 3: 前端交互卡片组件与动效闭环 (`feat(web)`)**
- 封装 `InteractiveCard.tsx` 组件,支持 4 种形态、倒计时、状态切换与防重提交;
- 在 `MessageStream.tsx` 中集成卡片渲染与动作回传;
- 与右侧 `BlockRenderer` 联动,实现批注挂载后的平滑高亮。
4. **Task 4: 端到端集成验收与测试报告归档 (`test(e2e)` / `docs(test)`)**
- **严格遵循真实 Agent 交付铁律**:使用 `pi-agent` + 实际运行的 `MiniMax-M3` 真实容器执行端到端实测;
- 归档 `.doc/test-reports/2026-09-08-dialogue-driven-content-and-hierarchical-intent-test-report.md`。