3.5 KiB
3.5 KiB
title, status, created, updated, owner, branch, worktree, mutex
| title | status | created | updated | owner | branch | worktree | mutex |
|---|---|---|---|---|---|---|---|
| 意图填槽工作流作用域修复 | done | 2026-09-21 | 2026-09-21 | Cursor | fix/intent-workflow-scoping-2026-09-21 | - | intent+web+docgov |
意图填槽工作流作用域修复
目标
意图识别填槽(target_doc / target_task)只命中当前激活工作流的文档与任务;显式点名其他工作流的文档时拦截并引导切换工作流,不误触、不执行。
背景
用户反馈:填「要修改的文档」等槽位时可能命中其他工作流的文档。根因链(2026-09-21 调研):
intent.ContextSnapshot无 workflow 字段,ToSnapshot()丢弃Project.ActiveWorkflowKey;server 默认上下文硬编码CurrentWorkflow: "intake"extractDocName词表全是 main(bd_)流文档名,无按流归属约束- 消费端匹配池
ListWorkflowDocumentsByProject仅按 project_id 过滤(跨工作流全量),selectReadableWorkflowDocument双向 contains 模糊匹配取首个命中 - 前端
resolveTaskTemplateForMessage匹配池currentProjectDeliverables仅按 projectId 过滤;activeWorkflowKey只用于徽标展示
范围
- 批次1
feat(intent):ContextSnapshot增加ActiveWorkflowKey;ToSnapshot下传;docgov 命中他流文档名时打workflow_scope_mismatch标记不误填 - 批次2
feat(coordinator+server+projectinstance):ActiveWorkflowTaskKeys辅助查询;文档匹配池收窄到激活流;ErrDocWrongWorkflow拦截引导;TRIGGER_TASK 任务键归属校验;enrich 时注入真实active_workflow_key - 批次3
feat(web):DeliverableItem.workflowKey;文档列表 API 附带workflow_key与active_workflow_key;templateMatch 匹配池按激活流过滤,他流点名返回 wrongWorkflow 提示 - 批次4:真实环境验收 + 测试报告 + 合回 dev
非目标
- 不迁移
document_records表(不加 workflow_instance_id 列) - 不改
production_ready、不晋升 test/main、不动项目 143 - 不改 SWITCH_WORKFLOW 意图本身行为
- UI 文档展示列表保持全量(仅匹配池收窄)
渐进安全策略
active_workflow_key 为空或查不到激活实例(存量单流项目、planning 态)→ 不过滤,保持现状行为。
步骤
- 批次1:intent 快照与工作流词表归属
- 批次2:服务端匹配池收窄与拦截引导
- 批次3:前端模板匹配池收窄
- 批次4:真实环境验收、报告归档、合回 dev
验收标准
- 激活 main 流说「查看调研报告」→ 命中 main 流文档(正例;修改/生成话术另记路由噪声)
- 激活 main 流说「编写项目建议书」(rdev 流文档)→ 拦截 + 引导切换(反例;tasks/run 409 ERR_DOC_WRONG_WORKFLOW)
- 激活 rdev 流后同名操作 → 正常执行(切换后正例;本轮 SWITCH 落库未兑现,记 deferred)
- 存量无 active_workflow_key 项目 → 行为不变(回归)
- 相关包
go vet/ scopedgo test -short、web: npm test && npm run build全绿
相关链接
- Plan:
~/.cursor/plans/意图填槽工作流作用域修复_dba2ab4c.plan.md - Handoff:
- Test report:
.doc/test-reports/2026-09-21-intent-workflow-scoping-test-report.md
证据 / 备注
用户在 dev 商务对接实测发现跨工作流误命中。用户在方案确认时选定:严格拦截 + 引导切换;等四问题修复 mutex 释放后独立分支推进。
- 2026-09-21 收口:已合入
dev@e0665ca4,验收报告见.doc/test-reports/2026-09-21-intent-workflow-scoping-test-report.md。