Files
CollegeAIcenter/.kiro/specs/college-ai-center/tasks.md
T

276 lines
15 KiB
Markdown
Raw Blame History

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