doc_id: DEV-202606-001 feature_id: FEAT-202606-001-unified-entry-client type: dev-progress title: 统一入口客户端演示闭环纵向任务拆分 status: implemented owner: 医梦研发团队 created_at: 2026-06-02 updated_at: 2026-06-02 reviewers: [] related_docs:
用途:团队任务分配。每个任务包按“用户可感知的纵向能力”拆分,尽量覆盖前端、后端、Mock HIS、测试和验收,而不是按纯技术层横切。
所有参与人员开工前必须读透:
| 文档 | 必须理解的点 |
|---|---|
docs/standards/AI中台工程约束.md |
模块边界、依赖方向、Controller 不直连 Mapper、Card 不绕过 Agent 调 MCP |
docs/standards/工程规约生效说明.md |
架构测试和新 AI 模块落位规则 |
docs/initiatives/FEAT-202606-001-unified-entry-client/对外接口联调基准.md |
终端调用白名单、SSE、Card Action、HIS Tool 风险分级、Mock/真实适配边界 |
docs/initiatives/FEAT-202606-001-unified-entry-client/详细设计.md |
统一入口整体架构、AgentRouter、TaskState、Card Runtime、MCP/HIS Adapter 职责 |
docs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md |
前端真实调用接口、SSE 事件、卡片动作、错误码 |
docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md |
演示范围冻结、DeepSeek/Dify/Card/MCP 分工、SQLite Mock HIS 口径 |
docs/initiatives/FEAT-202606-001-unified-entry-client/design/终端Web演示设计.md |
前端 UI 定稿:A+B、品牌色、对话优先、右侧医生形象/卡片状态 |
docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md |
后端挂号演示闭环详细任务 |
docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md |
前端 Web Demo 详细任务 |
.superpowers/brainstorm/86383-1780383912/content/ui-direction-options.html |
初始 UI 方向对比,理解为什么最终选择单应用 Web Demo 和 A+B 混合布局 |
.superpowers/brainstorm/86383-1780383912/content/registration-flow-ab.html |
A+B 挂号交互流,理解对话区、卡片区、流程状态的协同方式 |
.superpowers/brainstorm/86383-1780383912/content/final-web-demo-design-v4.html |
最终视觉基线,重点理解品牌色、无左侧功能菜单、右侧医生静态形象 idle 状态 |
| 编号 | 任务包 | 推荐负责人 | 主要产物 | 依赖 | 预估工作量 |
|---|---|---|---|---|---|
| T0 | 演示契约与联调基线 | 技术负责人/后端负责人 | 冻结接口、卡片 schema、演示数据口径 | 无 | 0.5 人日 |
| T1 | SQLite Mock HIS 挂号服务 | 后端 | 独立 Mock HIS 服务、SQLite seed、HIS API | T0 | 1.5 人日 |
| T2 | MCP Tool + HIS Adapter 纵向工具链 | 后端 | HIS 工具注册、MockHisClient、工具调用日志 | T1 | 1 人日 |
| T3 | OpenPlatform 终端入口与 SSE 会话 | 后端 | 设备/鉴权/SSE/会话入口可用 | T0 | 1 人日 |
| T4 | AgentRouter + TaskState 挂号任务主链路 | 后端/AI | 意图识别、任务状态、Dify 输出归一 | T3 | 1 人日 |
| T5 | Card Runtime 挂号动作闭环 | 后端 | 科室/医生/时间/支付/成功卡片动作链 | T2、T4 | 1.5 人日 |
| T6 | Web Demo UI Shell 与品牌视觉 | 前端 | 三栏布局、医生静态形象、主题色 | T0 | 1 人日 |
| T7 | Web Demo 对话入口与 SSE 消费 | 前端 | 中间对话流、输入/语音按钮、SSE parser | T3、T6 | 1 人日 |
| T8 | Web Demo 挂号卡片流 | 前端 | 右侧卡片专区、卡片组件、幂等提交 | T5、T7 | 1.5 人日 |
| T9 | Mock 支付与挂号成功演示 | 前后端联合 | 支付二维码/模拟支付/成功卡/Mock 标识 | T1、T5、T8 | 1 人日 |
| T10 | 端到端验收与演示脚本 | QA/全栈 | curl 脚本、Playwright、演示证据包 | T1-T9 | 1 人日 |
目标
冻结前后端统一口径,避免开发过程中各自发明字段、卡片、状态和 Mock 文案。
预估工作量
0.5 人日。
交付范围
1440x900 / 1920x1080。department-selectiondoctor-selectiontime-slot-selectionconfirm-appointmentpayment-qrcodeappointment-successtask_updatedmessage_deltamessage_completedcard_createderrorcompleted联调演示 / Mock 支付、联调演示。开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.mddocs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.mddocs/initiatives/FEAT-202606-001-unified-entry-client/design/终端Web演示设计.mddocs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.mddocs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md验收标准
目标
提供真实可演示的 HIS 业务语义,不能用随机数据或内存假成功。
预估工作量
1.5 人日。
交付范围
mock-his-service,不进入后端 Maven reactor。涉及模块/路径
mock-his-service/mock-his-service/src/main/resources/schema.sqlmock-his-service/src/main/resources/seed.sqlmock-his-service/src/test/java/com/emoon/mockhis/*开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md 的 3.1 Step 1、10.1 Mock HISdocs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 1: Build SQLite Mock HIS Servicedocs/initiatives/FEAT-202606-001-unified-entry-client/对外接口联调基准.md 中写操作幂等和 Mock/Real Adapter 边界验收标准
mvn -f mock-his-service/pom.xml -DskipTests=false test 通过。mock:true。目标
AI 中台通过统一工具出口调用 Mock HIS,Dify 和前端都不能绕过。
预估工作量
1 人日。
交付范围
McpToolService 挂号工具:
MockHisClient 对接 SQLite Mock HIS。traceId、风险等级、幂等键。涉及模块/路径
emoon-infra/emoon-modules/emoon-ai/emoon-ai-mcpcom.emoon.ai.mcp.application.McpToolServicecom.emoon.mcp.his.client.MockHisClientemoon-infra/emoon-modules/emoon-ai/emoon-ai-mcp/src/test/java/com/emoon/ai/mcp/application/McpToolServiceTest.java开发前必须彻底理解
docs/standards/AI中台工程约束.md 中 MCP、Card、Agent 依赖方向docs/initiatives/FEAT-202606-001-unified-entry-client/详细设计.md 的 11. MCP/HIS Adapter 设计docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md 的 3.2 Step 2docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 2验收标准
mvn -pl emoon-infra/emoon-modules/emoon-ai/emoon-ai-mcp -DskipTests=false test 通过。traceId。目标
Web 客户端能通过统一入口发起对话,并收到稳定 SSE 事件和卡片创建事件。
预估工作量
1 人日。
交付范围
/api/v1/agent/chat/stream。task_updatedmessage_deltamessage_completedcard_createdcompletedtraceId。涉及模块/路径
emoon-openplatform/src/main/java/com/emoon/openplatform/controller/v1/AgentChatController.javaemoon-openplatform/src/main/java/com/emoon/openplatform/service/impl/AgentChatApplicationServiceImpl.javaemoon-openplatform/src/test/java/com/emoon/openplatform/acceptance/TerminalMvpAcceptanceTest.java开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md 的 4. 流式对话docs/initiatives/FEAT-202606-001-unified-entry-client/前端接入指引.md 的 SSE 部分docs/standards/AI中台工程约束.md 中 openplatform 禁止直连 Mapperdocs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 4验收标准
mvn -pl emoon-openplatform -DskipTests=false -Dtest=TerminalMvpAcceptanceTest test 通过。agentId 也能正确路由到挂号任务。conversationId。目标
让系统表现得“智能”:由自然语言识别任务,而不是靠左侧菜单按钮进入流程。
预估工作量
1 人日。
交付范围
涉及模块/路径
emoon-infra/emoon-modules/emoon-ai/emoon-ai-agentAgentRouterServiceTaskStateServiceIntentClassifierDifyOutputNormalizerTerminalReplyTemplateService开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md 的 3.3 Step 3、6. AgentRouterdocs/initiatives/FEAT-202606-001-unified-entry-client/详细设计.md 的 7. AgentRouter 设计、9. TaskStateService 设计docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 4、Task 5验收标准
mvn -pl emoon-infra/emoon-modules/emoon-ai/emoon-ai-agent -DskipTests=false test 通过。目标
让每一次用户选择和确认都经过 Card Action,保障幂等、审计、状态推进。
预估工作量
1.5 人日。
交付范围
select_departmentselect_doctorselect_time_slotconfirm_appointmentmock_payment_paidselect_time_slot 后锁号。confirm_appointment 后创建 Mock 支付订单。mock_payment_paid 后创建预约。涉及模块/路径
emoon-infra/emoon-modules/emoon-ai/emoon-ai-cardemoon-infra/emoon-modules/emoon-ai/emoon-ai-agent/src/main/java/com/emoon/ai/agent/application/AgentActionOrchestrator.javaCardActionServiceCardInstanceService开发前必须彻底理解
docs/standards/AI中台工程约束.md 中 Card 不绕过 Agent 调 MCP 红线docs/initiatives/FEAT-202606-001-unified-entry-client/详细设计.md 的 10. Card Runtime 设计docs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md 的 5. 卡片动作docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 3验收标准
mvn -pl emoon-infra/emoon-modules/emoon-ai/emoon-ai-agent,emoon-infra/emoon-modules/emoon-ai/emoon-ai-card -DskipTests=false test 通过。appointment-success 来自 Mock HIS 真实预约结果。目标
做出甲方能看的第一屏:对话优先、品牌色正确、右侧静态医生形象,不再使用粗糙 CSS 图形。
预估工作量
1 人日。
交付范围
emoon-terminal-client 单应用。#2b1f99#3ad4d8涉及模块/路径
/Users/destiny/dev/emoon/emoon-terminal-clientsrc/theme/tokens.csssrc/layouts/AppShell.vuesrc/layouts/AssistantContextPanel.vuesrc/layouts/DoctorAssistantFigure.vuesrc/assets/doctor-assistant.png开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/design/终端Web演示设计.mddocs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md 的 Task 1、Task 2、Task 3docs/initiatives/FEAT-202606-001-unified-entry-client/design/前端工程启动指南.md.superpowers/brainstorm/86383-1780383912/content/ui-direction-options.html.superpowers/brainstorm/86383-1780383912/content/final-web-demo-design-v4.html验收标准
pnpm build 能通过。1440x900 无横向滚动。目标
前端中间区域承载输入、语音按钮、发送按钮,并能消费后端 SSE。
预估工作量
1 人日。
交付范围
ConversationPanelMessageBubbleChatInputcard_created 后切换右侧为卡片。涉及模块/路径
src/chat/ConversationPanel.vuesrc/chat/ChatInput.vuesrc/chat/MessageBubble.vuesrc/api/sse.tssrc/state/terminalStore.ts开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/design/终端Web演示设计.md 的 Center Conversation Panel、Interaction Flowdocs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md 的 4. 流式对话docs/initiatives/FEAT-202606-001-unified-entry-client/前端接入指引.md 的 4. 流式对话(SSE)docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md 的 Task 4、Task 5.superpowers/brainstorm/86383-1780383912/content/registration-flow-ab.html验收标准
pnpm vitest run tests/unit/sse.spec.ts 通过。目标
前端右侧 Context Panel 能完整渲染挂号卡片并提交动作。
预估工作量
1.5 人日。
交付范围
idletaskerrorcompletedidempotencyKey。完成 回到 idle 医生形象。涉及模块/路径
src/layouts/ContextPanel.vuesrc/layouts/RegistrationProgress.vuesrc/cards/*src/api/client.tssrc/api/demoFixtures.ts开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/design/终端Web演示设计.md 的 Right Context Panel、Card Flowdocs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md 的 5. 卡片动作、11. 前端卡片组件映射docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md 的 Task 6、Task 7.superpowers/brainstorm/86383-1780383912/content/final-web-demo-design-v4.html验收标准
pnpm vitest run tests/unit/cardRenderer.spec.ts 通过。PaymentQrCard 必须显示 联调演示 / Mock 支付。AppointmentSuccessCard 必须显示 联调演示。目标
打通“确认挂号 → Mock 支付 → 支付完成 → 预约成功”这一段最容易被甲方追问的链路。
预估工作量
1 人日。
交付范围
涉及模块/路径
mock-his-serviceemoon-ai-mcpemoon-ai-agentemoon-ai-cardemoon-terminal-client/src/cards/PaymentQrCard.vueemoon-terminal-client/src/cards/AppointmentSuccessCard.vue开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md 的 4.7 支付二维码、4.8 支付成功后创建预约docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 1、Task 2、Task 3docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md 的 Task 6docs/initiatives/FEAT-202606-001-unified-entry-client/对外接口联调基准.md 中写操作和财务动作风险控制验收标准
目标
形成可重复的演示证据,保证甲方现场不会只靠手动点击“碰巧成功”。
预估工作量
1 人日。
交付范围
涉及模块/路径
scripts/demo-registration/*emoon-terminal-client/tests/e2e/*emoon-openplatform/src/test/java/com/emoon/openplatform/acceptance/TerminalMvpAcceptanceTest.java开发前必须彻底理解
docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/统一入口挂号演示实施计划.md 的 Task 6、Task 7docs/initiatives/FEAT-202606-001-unified-entry-client/dev-progress/终端Web演示实施计划.md 的 Task 8、Task 9docs/initiatives/FEAT-202606-001-unified-entry-client/MVP接口契约.md 全文docs/initiatives/FEAT-202606-001-unified-entry-client/需求文档.md 的 7. 核心 Case 验证清单验收标准
mvn -pl emoon-openplatform -DskipTests=false test 通过。mvn -pl emoon-admin -DskipTests=false -Dprofiles.active= -Dtest=AiPlatformArchitectureTest test 通过。pnpm build && pnpm test:unit && pnpm test:e2e 通过。| 小组/人 | 建议负责 |
|---|---|
| 王康 | T1 SQLite Mock HIS |
| 高力 | T2 MCP Tool + T5 Card Action |
| 高力 | T3 OpenPlatform SSE + T4 AgentRouter/Task/Dify |
| 韩朝 | T6 UI Shell + 医生形象 + 品牌视觉 |
| 韩朝 | T7 对话/SSE + T8 卡片流 |
| 一起 | T9 支付成功联合闭环 + T10 验收脚本 |
| 王康 | T0 契约冻结、跨任务 review、最终架构测试 |
| 范围 | 包含任务 | 预估工作量 |
|---|---|---|
| 契约冻结 | T0 | 0.5 人日 |
| 后端/Mock HIS/AI 中台 | T1、T2、T3、T4、T5 | 6 人日 |
| 前端 Web Demo | T6、T7、T8 | 3.5 人日 |
| 前后端联调和验收 | T9、T10 | 2 人日 |
| 合计 | T0-T10 | 12 人日 |
| 建议风险缓冲 | Dify 输出不稳定、SSE 兼容、Mock HIS 边界补漏、视觉微调 | 2-3 人日 |
建议按 14-15 人日安排总容量。若投入 3 名后端、2 名前端、1 名全栈/QA,并且 T0 在首日上午冻结,理想情况下 4-5 个自然工作日可以完成可演示闭环;如果 Dify 工作流需要重新设计或真实 MCP 注册环境不可用,需要额外预留 1-2 天。
T0
├── T1 ── T2 ── T5 ── T9
├── T3 ── T4 ────────┘
└── T6 ── T7 ── T8 ─┘
↓
T10
| 时间点 | 必查内容 |
|---|---|
| Day 1 | T0 契约冻结,Mock HIS seed 数据可跑,前端 shell 可启动 |
| Day 2 | SSE 能返回 task_updated/card_created,前端能显示医生 idle 形象和首张科室卡 |
| Day 3 | 科室→医生→时间卡片链路跑通,锁号真实落库 |
| Day 4 | Mock 支付→预约成功跑通,前端显示 Mock 标识 |
| Day 5 | curl + Playwright 全链路验收,准备演示证据包 |