15 KiB
Implementation Plan
Overview
本任务清单将设计转化为增量式编码任务。任务遵循测试驱动、底座先行的顺序:先建立能力图谱与技能能力中心两个底座及合规/可信横切层,再实现各业务模块,最后串联端到端流程。带 * 的任务为可选。
Tasks
-
1. 项目脚手架与共享基础设施
- 初始化 NestJS + TypeScript 后端工程与 PostgreSQL 连接,建立模块化目录结构
- 实现统一的
Result<T, E>返回类型与错误基类(区分校验/生成/授权/系统错误) - 配置测试框架(Jest)与属性测试库(fast-check),建立 mock AI 网关与 mock 资料来源适配器骨架
- Requirements: 全局基础
-
2. 能力图谱底座(Competency_Graph)
-
2.1 能力标签体系与数据模型
- 实现
CompetencyTag(唯一标识、所属维度)与CompetencyDimension模型及持久化 - 实现统一标签体系的维护与
listTags()接口 - 编写单元测试覆盖标签定义与维度归属
- Requirements: 14.1
- 实现
-
2.2 能力数据映射与校验
- 实现
mapData():将模块数据映射到 1-10 个已定义标签(5 秒内) - 实现未定义标签拒绝逻辑:拒绝映射、不创建记录、记录原因、返回提示
- 编写属性测试验证 Property 2(能力标签映射有效性)
- Requirements: 14.2, 14.3
- 实现
-
2.3 能力概览聚合
- 实现
getCompetencyOverview():按维度以 0-100 量化分值聚合(5 秒内) - 实现数据不足维度标记"数据不足"并保留其余维度
- 编写属性测试验证 Property 3(画像维度分值有界性,能力概览部分)
- Requirements: 14.4, 14.5
- 实现
-
3. 技能能力中心底座(Skill_Center)
-
3.1 技能定义模型与序列化
- 实现
SkillDefinition五要素结构(输入规格、AI 处理逻辑、知识源绑定、输出格式、可信度标注规则) - 实现
serialize()/deserialize() - 编写属性测试验证 Property 1(技能定义序列化往返一致性)
- Requirements: 13.2, 13.9
- 实现
-
3.2 技能治理:配置、启用与审计
- 实现
upsertSkillDefinition()与enableSkill(),限定管理员或导师操作 - 实现技能定义变更的审计日志记录(操作者、时间、变更内容)
- 初始化至少 8 个内置技能定义(资料查询、检索式生成、文献综述、病例分析、鉴别诊断辅助、医患沟通模拟、医学翻译、引用生成)
- 编写单元测试覆盖治理流程与技能库完整性
- Requirements: 13.1, 13.6, 13.7
- 实现
-
3.3 技能调用与失败处理
- 实现
invokeSkill():输入规格校验、按输出格式返回结果并附可信度标注(30 秒内) - 实现输入不符规格的拒绝、知识源不可用或处理失败的终止(不返回结果与标注、提示失败)
- 仅成功调用完成才写入能力图谱
- 编写单元测试覆盖正常路径与各错误路径
- Requirements: 13.3, 13.4, 13.5, 13.8
- 实现
-
4. 横切层:合规模块与 AI 可信层
-
4.1 权限分级与访问判定
- 实现
checkAccess():为学生/导师/管理员定义权限范围(可访问资源类型与允许操作类型) - 实现范围内允许、越权拒绝并记录拒绝事件(操作者、时间、资源标识、拒绝原因)
- 编写属性测试验证 Property 6(权限判定一致性)
- Requirements: 17.1, 17.2, 17.3
- 实现
-
4.2 知情同意授权与画像脱敏
- 实现
ConsentRecord模型(范围、用途、有效期、撤销)与verifyConsent()/revokeConsent() - 实现
resolveProfileView():非本人无有效授权时拒绝完整画像、对未授权敏感字段脱敏(2 秒内,仅返回已授权字段) - 实现授权撤销即时失效、此后按未授权处理
- 编写属性测试验证 Property 4(授权强制不变量)
- Requirements: 7.2, 7.3, 7.4, 7.5, 7.8
- 实现
-
4.3 审计日志
- 实现
writeAuditLog():敏感数据访问/导出/修改记录(操作者、时间、操作类型、数据范围,5 秒内),保留≥12 个月 - 编写单元测试覆盖审计字段完整性与保留策略
- Requirements: 7.6, 17.4
- 实现
-
4.4 AI 可信层
- 实现统一可信度标注封装:为 AI 输出附带≥1 来源与 0%-100% 置信度
- 实现依据查看(3 秒内展示可追溯来源条目及引用标识)与无法溯源时标注"未经核验"
- 编写单元测试覆盖可信度标注与未经核验标记
- Requirements: 16.1, 16.2, 16.3, 16.4
-
5. 个人学习空间(Learning_Space)
-
5.1 学习成果模型与新增校验
- 实现
Achievement模型与成果类型枚举 - 实现
addAchievement():必填元数据校验、标题≤200 字符与时间有效性校验,失败时拒绝且不创建记录 - 编写属性测试验证 Property 7(错误路径数据保全,学习成果部分)
- Requirements: 1.1, 1.2, 1.6, 1.9
- 实现
-
5.2 自动归档与里程碑
- 实现保存成功后按学年、学期归档;含临床轮转科室信息时额外按科室归档
- 实现
markMilestone():标记里程碑并关联节点内成果 - 编写单元测试覆盖归档维度与里程碑关联
- Requirements: 1.3, 1.4, 1.8
-
5.3 成果检索与能力标签关联
- 实现
listAchievements():按时间倒序、支持按成果类型/学年/学期/轮转科室筛选、每页≤50 分页 - 实现保存成功后关联能力图谱标签;无匹配标签时标记"待关联能力标签"并提示
- 编写属性测试验证 Property 8(分页边界不变量,学习空间部分)
- Requirements: 1.5, 1.7, 1.10
- 实现
-
6. AI 评估引擎(AI_Evaluation_Engine)
-
6.1 形成性与终结性评价
- 实现
generateFormativeEvaluation()(30 秒内)与generateSummativeEvaluation()(节点须有成果) - 实现评价附带可信度标注(≥1 依据来源)与发展建议引用≥1 能力标签
- 编写单元测试覆盖评价生成与标注
- Requirements: 2.1, 2.2, 2.3, 2.4, 2.7
- 实现
-
6.2 评价错误路径
- 实现信息不足时中止、保留数据、提示缺失类别
- 实现生成失败或超时时中止、保留数据、提示失败
- 编写单元测试覆盖错误路径(验证 Property 7 相关部分)
- Requirements: 2.5, 2.6
-
7. 课程对练引擎(Practice_Engine)
-
7.1 题目生成与权威源绑定
- 实现
generateQuestions():基于课程内容生成 5-50 道题(30 秒内),支持 A1/A2/A3/A4/病例分析/临床决策题型 - 实现每题绑定≥1 权威知识源并记录引用标识;无法绑定时不进入审核并记录原因
- 实现课程内容不足时中止并提示
- 编写单元测试覆盖生成、题型、绑定与错误路径
- Requirements: 3.1, 3.2, 3.3, 3.7, 3.8
- 实现
-
7.2 题目审核状态机
- 实现题目状态流转(待导师审核→可用于对练/已退回),审核前不向学生发布
- 实现导师通过/退回(退回记录原因)
- 编写单元测试覆盖状态机与导师审核
- Requirements: 3.4, 3.5, 3.6, 15.1
-
7.3 模拟对练与结果诊断
- 实现
startPractice()/submitAnswer()/finishPractice():逐题呈现采集作答、3 秒内判定正误、单题超 120 秒判错并继续 - 实现对练报告(正确率、用时、薄弱环节=正确率<60% 的能力标签)并按能力标签映射能力图谱
- 实现 AI 评估引擎对每个薄弱环节生成改进建议并附可信度标注
- 编写单元测试覆盖对练流程、报告与映射
- Requirements: 4.1, 4.2, 4.4, 4.5, 4.6, 4.7, 4.8
- 实现
-
8. 临床情景对话对练(Clinical_Dialogue_Practice)
- 实现
startDialogue():基于绑定权威知识源 10 秒内呈现情景;未绑定时阻止启动、不创建记录、提示 - 实现
sendTurn()多轮对话(最多 50 轮)并逐轮记录学生输入与系统应答 - 实现
finishDialogue():30 秒内生成含问诊完整性/临床推理/医患沟通三维报告并映射能力图谱;失败或超时时中止、保留对话记录、提示 - 编写单元测试覆盖发起、多轮、报告与错误路径
- Requirements: 5.1, 5.2, 5.3, 5.4, 5.5, 5.6
- 实现
-
9. 学生画像引擎(Profile_Engine)
- 实现
generateProfile():基于学习空间与能力图谱生成六维度画像(0-100,5 秒内) - 实现能力图谱更新后 10 秒内同步、每项结论可追溯≥1 来源记录
- 实现数据不足维度标记"数据不足"并保留其余;敏感字段标记;仅采集与维度直接相关字段(数据最小化)
- 编写属性测试验证 Property 3(画像维度分值有界性,画像部分)
- Requirements: 6.1, 6.2, 6.3, 6.4, 6.5, 7.1, 7.7
- 实现
-
10. 职业规划模块(Career_Module)
-
10.1 职业目标与胜任力模型
- 实现
setCareerGoal():3 秒内关联岗位胜任力模型并展示 - 实现胜任力模型四维度(科学与学术/临床能力/健康与社会/职业素养),每维度≥3 能力标签
- 实现无匹配模型时提示并推荐≥3 相近目标;关联系统错误时提示并保留已设目标
- 编写单元测试覆盖目标设定与错误路径
- Requirements: 8.1, 8.2, 8.3, 8.4, 8.5
- 实现
-
10.2 动态闭环发展规划
- 实现
generateDevelopmentPlan():逐项对照能力水平与要求、标记能力差距项(含缺数据项) - 实现每差距项≥1 建议行动(标明目标水平)、推荐≥1 学习资源或对练任务、引用对应能力标签
- 实现能力图谱更新后再次请求时重算全部差距项;未选目标/模型不可用时拒绝并保留数据;差距项无资源时保留并标注暂无推荐
- 编写单元测试覆盖对照、规划生成、动态更新与错误路径
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7
- 实现
-
11. 研究资料查询技能(Research_Query_Skill)
-
11.1 检索式生成与检索
- 实现
generateSearchQuery():NL→PICO/MeSH 检索式(10 秒内,问题 1-2000 字符) - 实现
search():指定来源 30 秒内检索、每页≤50 分页;空结果返回空列表并提示;来源全不可用时中止、保留检索式、提示 - 实现问题为空/超长/无医学要素时拒绝生成并提示
- 实现结果每条仅含检索信息/摘要/原文链接(不存储分发全文)、查询完成 5 秒内映射能力图谱
- 编写单元测试覆盖检索式、检索、筛选与错误路径
- Requirements: 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8
- 实现
-
11.2 总结、证据分级与引用管理
- 实现
summarize():30 秒内生成总结,每条结论附≥1 来源引用,每条资料标注唯一证据分级 - 实现无法溯源结论标注"未验证"且不作为引用输出;呈现总结时显示"仅辅助不替代阅读原文"提示
- 实现
generateCitation()/exportCitations():Vancouver/GB-T 7714 格式、导出 EndNote/NoteExpress;生成或导出失败时中止、保留数据、提示 - 编写属性测试验证 Property 5(引用可追溯不变量)
- Requirements: 11.1, 11.2, 11.3, 11.4, 11.5, 11.6, 11.7
- 实现
-
12. AI 协同能力培养模块(AI_Collaboration_Module)
- 实现协同训练任务(提问能力/批判性验证/责任边界意识/协同工作流四维度各≥1)
- 实现
evaluateTask():30 秒内四维度 0-100 评估;直接采用未核验 AI 输出时提示并要求核验、计入批判性验证;评估结果 5 秒内映射能力图谱计入画像与胜任力对照 - 实现导师点评(对学生可见);评估失败或超时时中止、保留记录、提示;维度数据不足时标记"数据不足"并保留其余
- 编写单元测试覆盖任务、评估、点评与错误路径
- Requirements: 12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7
-
13. 导师端集成
- 集成题目审核(复用 7.2)、成果点评(关联学习成果并对学生可见)
- 实现带教关系校验:允许查看所带学生画像;查看非所带学生画像时合规模块拒绝并记录越权尝试
- 编写单元测试覆盖点评与带教关系访问控制
- Requirements: 15.2, 15.3, 15.4
-
14. 端到端集成与贯通验证
- 串联学习成果→能力标签→画像→职业规划的数据贯通流程并编写集成测试
- 串联技能调用(课程对练/研究查询)→能力图谱→画像的贯通流程并编写集成测试
- 验证全系统 AI 输出均经 AI 可信层、敏感资源访问均经合规模块
- 运行全部属性测试(Property 1-8)确认核心不变量成立
- Requirements: 2.4, 4.6, 5.4, 9.1, 12.4, 14.1, 16.1, 17.2
-
15. 三端前端界面(可选)
- 实现学生端(学习空间、对练、画像、职业规划、研究查询、协同训练)核心界面
- 实现导师端(题目审核、成果点评、带教学生画像)与管理端(技能治理、权限与合规管理)核心界面
- Requirements: 全部用户故事的界面呈现
Task Dependency Graph
graph TD
T1["1. 脚手架与基础设施"]
T2["2. 能力图谱底座"]
T3["3. 技能能力中心底座"]
T4["4. 合规与AI可信横切层"]
T5["5. 个人学习空间"]
T6["6. AI评估引擎"]
T7["7. 课程对练引擎"]
T8["8. 临床情景对话对练"]
T9["9. 学生画像引擎"]
T10["10. 职业规划模块"]
T11["11. 研究资料查询技能"]
T12["12. AI协同能力培养"]
T13["13. 导师端集成"]
T14["14. 端到端集成"]
T15["15*. 三端前端界面"]
T1 --> T2
T1 --> T3
T1 --> T4
T2 --> T5
T3 --> T7
T3 --> T8
T3 --> T11
T4 --> T9
T4 --> T13
T5 --> T6
T5 --> T9
T6 --> T7
T2 --> T6
T2 --> T9
T9 --> T10
T2 --> T10
T2 --> T12
T7 --> T13
T9 --> T13
T5 --> T14
T6 --> T14
T7 --> T14
T8 --> T14
T9 --> T14
T10 --> T14
T11 --> T14
T12 --> T14
T13 --> T14
T14 --> T15
{
"waves": [
{ "wave": 1, "tasks": ["1"] },
{ "wave": 2, "tasks": ["2", "3", "4"] },
{ "wave": 3, "tasks": ["5"] },
{ "wave": 4, "tasks": ["6", "7", "8", "9", "11", "12"] },
{ "wave": 5, "tasks": ["10", "13"] },
{ "wave": 6, "tasks": ["14"] },
{ "wave": 7, "tasks": ["15"] }
]
}
Notes
- 任务 2(能力图谱)与任务 3(技能能力中心)是两大底座,应优先实现,多数业务模块依赖它们。
- 任务 4(合规与 AI 可信横切层)为所有涉及敏感数据访问与 AI 输出的模块提供统一保障,建议与底座并行推进。
- 每个业务模块任务均包含对应的单元测试或属性测试,覆盖正常路径与错误路径。
- 属性测试(Property 1-8)分散在相关任务中实现,并在任务 14 统一运行确认。
- 任务 15 为可选的前端界面实现,后端模块与测试可独立于前端完成验证。
- 技术栈(NestJS + TypeScript + PostgreSQL + Jest + fast-check)为设计阶段的假设,实现前可调整。