docs: sync production release truth
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## 项目定位
|
## 项目定位
|
||||||
|
|
||||||
本项目已升级为**银城员工端 APP**,按“陪练 → 大喇叭+知识学习平台 → 北森对接”三阶段推进,见 `docs/银城员工端APP分阶段实施总纲.md`。当前只按 `docs/DEMO_ACCEPTANCE.md` 和 `docs/AI陪练二期开发推进计划.md` 推进阶段一管家(生活顾问)试点;`position` 沿用现有值。2026-07 MVP 资料已归档,不要把演示闭环写成生产验收完成,也不要把阶段二/三能力拉进当前主线。
|
本项目已升级为**银城员工端 APP**,按“陪练 → 大喇叭+知识学习平台 → 北森对接”三阶段推进。正式验收主线仍是阶段一试点;2026-07-18 已按客户明确要求额外发布问题榜/积分、岗位考试、全网 AI 和多租户知识空间等能力,但这不等于阶段二/三整体验收。`position` 沿用现有值,MVP 资料已归档;任何结论都要区分生产部署、正式账号/真机验证和严格试点。
|
||||||
|
|
||||||
## 工程边界
|
## 工程边界
|
||||||
|
|
||||||
@@ -43,23 +43,14 @@
|
|||||||
- 线上移动端 H5:`https://peilian.njzhmj.top/h5/`,Caddy 服务 `/opt/wygj/www/h5`。
|
- 线上移动端 H5:`https://peilian.njzhmj.top/h5/`,Caddy 服务 `/opt/wygj/www/h5`。
|
||||||
- 只发布移动端静态资源时,用 `npm --prefix mobile-uni run build:h5` 后备份远端 `/opt/wygj/www/h5`,再 `rsync -az --delete mobile-uni/dist/build/h5/ YCWY:/opt/wygj/www/h5/`;前端静态修复不需要重启后端。
|
- 只发布移动端静态资源时,用 `npm --prefix mobile-uni run build:h5` 后备份远端 `/opt/wygj/www/h5`,再 `rsync -az --delete mobile-uni/dist/build/h5/ YCWY:/opt/wygj/www/h5/`;前端静态修复不需要重启后端。
|
||||||
|
|
||||||
## 品牌入口
|
## 当前业务边界
|
||||||
|
|
||||||
- 页面标题在 `frontend/.env.development` 与 `frontend/.env.production`。
|
- 管理端业务路由集中在 `frontend/src/router/index.ts`,覆盖首页、AI 面试、训练运营、问题榜、案例、知识空间、SOP、资料处理、系统配置、组织权限和成长激励;侧栏过滤在 `frontend/src/layout/components/Sidebar/index.vue`,不要恢复若依默认全量菜单。
|
||||||
- 侧栏 logo 在 `frontend/src/assets/logo/logo.png`。
|
- 用户侧只改 `mobile-uni/src/pages/*`;员工、候选人、主管首页分别为 `/pages/user/today/index`、`/pages/candidate/index/index`、`/pages/supervisor/index/index`,旧 `/h5/user|candidate|supervisor|employee|admin` 只做兼容重定向。底栏固定「今日/练/问/我」;SOP 搜索/总结卡复用 `/api/knowledge/search` 和 `/api/knowledge/summary-card`,失败不兜假数据。
|
||||||
|
- 不要把三端概括成全模态:员工对练/每日题和问师傅支持文字/语音,问师傅图片/视频只用于本次分析,案例传音频;候选面试支持文字/语音,资料可传文档/图片但图片不参与评分;主管写文字复盘/指派并回听录音。员工对练图像/视频情境、服务录像回放和方言正式验收仍未完成;语音继续复用 `services/speech.ts` 与 `/api/ai/asr`。
|
||||||
## MVP 管理端前端边界
|
- 问题榜奖励只记积分/学习学分,不得擅自增加现金、提现、预算或税务语义;选最佳答案和考试提交必须保持请求幂等。
|
||||||
|
- 全网 AI 与企业问师傅必须分入口、分来源和分免责声明;提供方仅允许公网 HTTPS,修改地址/密钥后必须连接测试成功才能启用,未配置时明确不可用且不生成假答案。
|
||||||
- 首页:`frontend/src/views/index.vue`,路由 `/index`。
|
- 多租户知识平台的有效范围是“租户 + 调用应用绑定 + 主体授权”的交集;不信任客户端传入身份,API_TOKEN 不得进入浏览器或小程序包。生产排序规则以 `aihr_knowledge_info.tenant_id` 为基准,新表最后执行 `aihr_20260718_release_collation_compat_mysql8.sql`。
|
||||||
- AI 面试:`frontend/src/views/recruit/interview.vue`,路由 `/recruit/interview`。
|
|
||||||
- 三角色对练:`frontend/src/views/train/practice.vue`,路由 `/train/practice`。
|
|
||||||
- 案例沉淀:`frontend/src/views/knowledge/cases.vue`,路由 `/knowledge/cases`。
|
|
||||||
- SOP 知识库:`frontend/src/views/knowledge/sop.vue`,路由 `/knowledge/sop`。
|
|
||||||
- 资料处理:`frontend/src/views/knowledge/processing.vue`,路由 `/knowledge/processing`;解析任务按当前筛选结果前端分页,默认 10 条/页,可选 20/50 条,切换筛选或刷新时回到第一页。
|
|
||||||
- 模型配置:`frontend/src/views/system/model/index.vue`,路由 `/system/model`。
|
|
||||||
- MVP 阶段侧栏只保留“首页 / AI面试 / 三角色对练 / 案例沉淀 / SOP知识库 / 资料处理 / 系统设置-模型配置”。过滤逻辑在 `frontend/src/layout/components/Sidebar/index.vue`,不要在未明确要求时恢复若依默认全量菜单。
|
|
||||||
- 当前用户侧只改 `mobile-uni/src/pages/*`:员工、候选人、主管首页分别为 `/pages/user/today/index`、`/pages/candidate/index/index`、`/pages/supervisor/index/index`;旧 `/h5/user|candidate|supervisor|employee|admin` 只做兼容重定向,主管端不等于后台管理员。员工首页按「师傅区→今日安排→我的地图→成长摘要」,视觉以 `docs/feedback/2026070423/design/` 和 `REVIEW.md` 为准(修正项优先,问答图片 `64×64`);训练首屏先放场景、开始练习、最近练过,每日三题后置。`pages.json` 固定底部「今日/练/问/我」,未实现入口进 `/pages/common/building/index`。SOP 搜索/总结卡分别复用 `/api/knowledge/search`(`category='sop'`)和 `/api/knowledge/summary-card`,失败不兜假数据。
|
|
||||||
- 不要把三端概括成全模态:员工对练/每日题支持文字和语音,案例只传音频,问师傅仅文字;候选面试支持文字/语音,资料可传文档/图片但图片不参与评分;主管只写文字复盘/指派并回听录音。员工图像/视频情境、方言验收和阶段二个人知识空间仍未完成。首页“语音提问”与问师傅仅文字不一致;优先改文案,若补语音则复用 `services/speech.ts` 和 `/api/ai/asr`,不要新建接口。
|
|
||||||
- 移动端首页接口:`GET /api/aihr/mobile/home/{role}`,当前 `@SaIgnore` 公开只读 seed,用于 H5 首屏 API 优先 + 本地 fallback;后续确定小程序登录后再接移动端 token,不复用管理后台登录态。
|
- 移动端首页接口:`GET /api/aihr/mobile/home/{role}`,当前 `@SaIgnore` 公开只读 seed,用于 H5 首屏 API 优先 + 本地 fallback;后续确定小程序登录后再接移动端 token,不复用管理后台登录态。
|
||||||
- 移动端手机号登录:验证码发送走 `GET /resource/sms/code?phonenumber=...`,登录走 `POST /auth/mobile/sms-login`;短信发送复用 `sms.blends.config1` 阿里云配置。手机号不存在时自动注册 `app_user`,备注为“移动端短信自动注册”。模板 ID 用 `AIHR_SMS_LOGIN_TEMPLATE_ID`,AccessKey/Secret/签名用 `ALIYUN_SMS_ACCESS_KEY_ID`、`ALIYUN_SMS_ACCESS_KEY_SECRET`、`ALIYUN_SMS_SIGN_NAME`,本地放 `.env.local`。`aihr.sms.dev-fixed-code` 非空则验证码固定(dev 默认 `123456`)、不真发短信;prod 默认关闭,试点期必须同时显式设置 `AIHR_SMS_DEV_FIXED_CODE` 与 `AIHR_SMS_PROD_FIXED_CODE_ENABLED=true`,停用时删除固定码并关闭生产开关。
|
- 移动端手机号登录:验证码发送走 `GET /resource/sms/code?phonenumber=...`,登录走 `POST /auth/mobile/sms-login`;短信发送复用 `sms.blends.config1` 阿里云配置。手机号不存在时自动注册 `app_user`,备注为“移动端短信自动注册”。模板 ID 用 `AIHR_SMS_LOGIN_TEMPLATE_ID`,AccessKey/Secret/签名用 `ALIYUN_SMS_ACCESS_KEY_ID`、`ALIYUN_SMS_ACCESS_KEY_SECRET`、`ALIYUN_SMS_SIGN_NAME`,本地放 `.env.local`。`aihr.sms.dev-fixed-code` 非空则验证码固定(dev 默认 `123456`)、不真发短信;prod 默认关闭,试点期必须同时显式设置 `AIHR_SMS_DEV_FIXED_CODE` 与 `AIHR_SMS_PROD_FIXED_CODE_ENABLED=true`,停用时删除固定码并关闭生产开关。
|
||||||
- 移动端员工训练闭环:员工端首页“开始训练”复用 `POST /api/train/practice/start`、`/turn`、`/finish`,请求必须带移动端登录返回的 `Authorization` 与 `clientid`;`mode=mobile` 完成后写入 `aihr_practice_session`,并更新主管端首页完训率、“待复盘对练”、员工训练历史和能力画像。主管端复盘详情查 `GET /api/aihr/mobile/practice/reviews/{id}`,标记复盘用 `POST /api/aihr/mobile/practice/reviews/{id}/reviewed`。
|
- 移动端员工训练闭环:员工端首页“开始训练”复用 `POST /api/train/practice/start`、`/turn`、`/finish`,请求必须带移动端登录返回的 `Authorization` 与 `clientid`;`mode=mobile` 完成后写入 `aihr_practice_session`,并更新主管端首页完训率、“待复盘对练”、员工训练历史和能力画像。主管端复盘详情查 `GET /api/aihr/mobile/practice/reviews/{id}`,标记复盘用 `POST /api/aihr/mobile/practice/reviews/{id}/reviewed`。
|
||||||
@@ -74,9 +65,7 @@
|
|||||||
- 图片视觉 OCR:上传图片时经 `visionRuntime()` 找启用模型(优先 `aihr_model_config.category='vision'`,无则回退 `category='chat'`),把图片编码成 base64 data URL 调 OpenAI-compatible `/chat/completions` 提取文字再切分入库;无可用视觉模型或 OCR 无结果时按「待处理」落库(0 片段),不算失败。视频关键帧用带画面描述的 FRAME_PROMPT(文字+一句场景描述),改 prompt 时别退回纯 OCR。不依赖 Tesseract。
|
- 图片视觉 OCR:上传图片时经 `visionRuntime()` 找启用模型(优先 `aihr_model_config.category='vision'`,无则回退 `category='chat'`),把图片编码成 base64 data URL 调 OpenAI-compatible `/chat/completions` 提取文字再切分入库;无可用视觉模型或 OCR 无结果时按「待处理」落库(0 片段),不算失败。视频关键帧用带画面描述的 FRAME_PROMPT(文字+一句场景描述),改 prompt 时别退回纯 OCR。不依赖 Tesseract。
|
||||||
- 向量库状态接口是 `GET /api/knowledge/doc/vector-index-status`,重建接口是 `POST /api/knowledge/doc/rebuild-vector-index`;外部 embedding 成功但 Qdrant collection 维度不一致时不要静默降级,走状态提示和重建。
|
- 向量库状态接口是 `GET /api/knowledge/doc/vector-index-status`,重建接口是 `POST /api/knowledge/doc/rebuild-vector-index`;外部 embedding 成功但 Qdrant collection 维度不一致时不要静默降级,走状态提示和重建。
|
||||||
- 资料处理接口是 `GET /api/knowledge/processing/overview`,直接聚合 `aihr_knowledge_attach`、`aihr_knowledge_fragment` 和 `sys_oss.ext1`;页面只保留“批量导入”,走 `POST /api/knowledge/doc/upload-async`,不要恢复“选择目录”“服务端导入”或目录导入任务面板。`POST /api/knowledge/doc/import-local`、`POST /api/knowledge/doc/import-local-task`、`GET /api/knowledge/doc/import-tasks` 和 `POST /api/knowledge/doc/import-tasks/{id}/cancel` 仅保留为后端运维/调试接口;目录只能是 `aihr.import.root` 下的相对路径。
|
- 资料处理接口是 `GET /api/knowledge/processing/overview`,直接聚合 `aihr_knowledge_attach`、`aihr_knowledge_fragment` 和 `sys_oss.ext1`;页面只保留“批量导入”,走 `POST /api/knowledge/doc/upload-async`,不要恢复“选择目录”“服务端导入”或目录导入任务面板。`POST /api/knowledge/doc/import-local`、`POST /api/knowledge/doc/import-local-task`、`GET /api/knowledge/doc/import-tasks` 和 `POST /api/knowledge/doc/import-tasks/{id}/cancel` 仅保留为后端运维/调试接口;目录只能是 `aihr.import.root` 下的相对路径。
|
||||||
- seed service 阶段已完成;后续按 `docs/RUOYI_AI_INCREMENTAL_MIGRATION.md` 分片迁移 `ruoyi-ai` 的知识库、文档解析、RAG、chat 能力。
|
- `ruoyi-ai` 只按 `docs/RUOYI_AI_INCREMENTAL_MIGRATION.md` 分片迁移到 `ruoyi-aihr`,不要整包搬 `ruoyi-chat`;已落地页面保持真实接口/模型优先与 seed fallback,不能退回静态壳。
|
||||||
- 迁移时不要整包搬 `ruoyi-chat`;优先在 `ruoyi-aihr` 内吸收必要表、service、loader 和检索接口,并保留 seed fallback。
|
|
||||||
- 已落地的演示流不要退回静态壳:AI 面试、三角色对练、案例沉淀已是真模型优先(未配置/失败回退本地兜底),SOP 知识库、移动端三端首页保留 fallback——改造时降级链必须保留。
|
|
||||||
- 本项目 AI 表前缀用 `aihr_*`:知识库是 `aihr_knowledge_info/attach/fragment`,上传队列是 `aihr_knowledge_upload_item`,导入任务是 `aihr_knowledge_import_task`,模型配置是 `aihr_model_provider/config`,移动端训练记录是 `aihr_practice_session`,候选人补充资料是 `aihr_candidate_material`,组织人员快照是 `aihr_org_snapshot`(本地 reset 有 Demo seed;生产/试点从 `docs/open-org-sync-api-design-v1.md` 对应开放组织系统同步,入口 `POST /api/aihr/org/sync`)。
|
- 本项目 AI 表前缀用 `aihr_*`:知识库是 `aihr_knowledge_info/attach/fragment`,上传队列是 `aihr_knowledge_upload_item`,导入任务是 `aihr_knowledge_import_task`,模型配置是 `aihr_model_provider/config`,移动端训练记录是 `aihr_practice_session`,候选人补充资料是 `aihr_candidate_material`,组织人员快照是 `aihr_org_snapshot`(本地 reset 有 Demo seed;生产/试点从 `docs/open-org-sync-api-design-v1.md` 对应开放组织系统同步,入口 `POST /api/aihr/org/sync`)。
|
||||||
|
|
||||||
## 业务文档
|
## 业务文档
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 物业AI人力资源系统
|
# 物业AI人力资源系统
|
||||||
|
|
||||||
基于 RuoYi-Vue-Plus 后端与 plus-ui 前端的物业 AI 人力资源系统工程。2026-07 MVP 演示资料已归档;当前施工入口是演示验收清单和 AI 陪练二期推进计划。
|
基于 RuoYi-Vue-Plus 后端与 plus-ui 前端的银城员工端 APP 工程。2026-07 MVP 演示资料已归档;当前真相源是 BRD 审查、版本功能对比、生产迁移 Runbook 和正式试点门禁。
|
||||||
|
|
||||||
## 当前状态
|
## 当前状态
|
||||||
|
|
||||||
@@ -9,16 +9,16 @@
|
|||||||
- 用户侧前端:`mobile-uni`,uni-app Vue3 H5 工程,承接员工端、候选人端、主管端;旧 `mobile` 保留为 MVP 演示兜底。
|
- 用户侧前端:`mobile-uni`,uni-app Vue3 H5 工程,承接员工端、候选人端、主管端;旧 `mobile` 保留为 MVP 演示兜底。
|
||||||
- 本地依赖:MySQL + Redis + MinIO + Qdrant 由 `docker-compose.dev.yml` 启动。
|
- 本地依赖:MySQL + Redis + MinIO + Qdrant 由 `docker-compose.dev.yml` 启动。
|
||||||
- 品牌:前端标题为“物业AI人力资源系统”,侧栏 logo 使用银城物业图标。
|
- 品牌:前端标题为“物业AI人力资源系统”,侧栏 logo 使用银城物业图标。
|
||||||
- 已验证:租户列表、验证码、`000000 / admin / admin123` 加密登录链路。
|
- 基础链路:租户列表、验证码、`000000 / admin / admin123` 加密登录已验证。
|
||||||
- 管理端 MVP:首页与五个关键页面已落地,路由为 `/index`、`/recruit/interview`、`/train/practice`、`/knowledge/cases`、`/knowledge/sop`、`/knowledge/processing`。
|
- 管理端:除 AI 面试、训练、案例、SOP 和资料处理外,已包含常见难题、问题榜运营、知识空间、全网 AI 配置、组织权限和成长激励。
|
||||||
- 用户侧 Alpha:三端已在 `mobile-uni/` 按真实页面栈重建,portless 本地入口为 `https://wygj-mobile-uni.localhost/h5/`;员工端路由为 `/h5/#/pages/user/today/index`、`/practice/index`、`/sop/index`、`/profile/index`,候选人端为 `/h5/#/pages/candidate/index/index`,主管端为 `/h5/#/pages/supervisor/index/index`。已接手机号短信登录、问师傅检索/反馈/总结卡、员工训练闭环、案例素材入库、候选人面试/资料、主管复盘/派专项;旧 `mobile/` 不再作为新增功能承载面。三端输入不是统一全模态:员工对练/每日题支持文字和语音、问师傅仅文字,候选面试支持文字和语音且补充资料可传图片,主管端以文字复盘和录音回听为主;详见 [BRD 功能审查记录](docs/BRD_IMPLEMENTATION_AUDIT.md)。
|
- 用户侧:`mobile-uni/` 承载员工、候选人和主管三端;已接手机号登录、问师傅文字/语音/附件与播报、三级字号、训练/题目反馈、开放问题榜与积分、岗位考试、案例、候选面试/资料、主管复盘/派发及学员模式。旧 `mobile/` 只用于历史回溯。
|
||||||
- 英雄路径:AI 面试(真模型出题/评分)、三角色对练(真 LLM 客户回复+评分,asr/tts 配置后支持语音)、案例沉淀(真实语音上传+ASR 转写+模型整理)均为真模型优先、未配置或失败回退本地兜底;SOP 知识库已接中文关键词 + MySQL Fulltext + Qdrant 混合召回 + rerank 重排,支持 txt/md/PDF/Word/Excel/PPT/图片/视频上传解析入库(图片走 vision OCR,视频走 ffmpeg 抽音轨转写+关键帧描述),资料处理中心支持 ZIP 异步展开后逐文件入队;模型配置页可查看向量库维度/点数并一键重建。
|
- 英雄路径:AI 面试(真模型出题/评分)、三角色对练(真 LLM 客户回复+评分,asr/tts 配置后支持语音)、案例沉淀(真实语音上传+ASR 转写+模型整理)均为真模型优先、未配置或失败回退本地兜底;SOP 知识库已接中文关键词 + MySQL Fulltext + Qdrant 混合召回 + rerank 重排,支持 txt/md/PDF/Word/Excel/PPT/图片/视频上传解析入库(图片走 vision OCR,视频走 ffmpeg 抽音轨转写+关键帧描述),资料处理中心支持 ZIP 异步展开后逐文件入队;模型配置页可查看向量库维度/点数并一键重建。
|
||||||
- 资料处理:已新增解析任务状态页,按 `aihr_knowledge_attach` 和 `aihr_knowledge_fragment` 展示等待解析、解析中、已完成、失败、片段数和向量化状态;任务列表按当前筛选结果前端分页(10/20/50 条,筛选或刷新回到第一页)。页面只保留“批量导入”,通过异步队列处理多文件或 ZIP,不提供浏览器目录选择和服务端目录导入入口。后端目录导入接口仅保留为运维/调试能力。
|
- 资料处理:已新增解析任务状态页,按 `aihr_knowledge_attach` 和 `aihr_knowledge_fragment` 展示等待解析、解析中、已完成、失败、片段数和向量化状态;任务列表按当前筛选结果前端分页(10/20/50 条,筛选或刷新回到第一页)。页面只保留“批量导入”,通过异步队列处理多文件或 ZIP,不提供浏览器目录选择和服务端目录导入入口。后端目录导入接口仅保留为运维/调试能力。
|
||||||
- 组织人员:`aihr_org_snapshot` 本地 reset 保留演示 seed;配置开放组织同步系统后,通过 `POST /api/aihr/org/sync` 从 `/api/open/v1/sync/snapshot` 拉取公司、部门、员工快照并刷新本地组织人员口径。2026-07-15 已在线上完成外部同步配置和覆盖同步,生产快照为 3417 名员工,其中 3392 人可通过手机号映射,25 人为上游手机号数据不可用。
|
- 组织人员:`aihr_org_snapshot` 本地 reset 保留演示 seed;生产通过 `POST /api/aihr/org/sync` 同步外部组织。最近记录的生产快照为 3417 人、2938 人在职、3392 个手机号映射、175 名在职主管和 20 名项目经理;人数属于时点事实,发布或验收前应重新查询。
|
||||||
- 正式试点:管理端可按起止日期导出正式试点 CSV,严格门禁只统计唯一映射到在职组织的训练、校准和 SOP 评审。组织身份同步和至少 20 名手机号映射门槛已具备;下一步仍需选定真实试点窗口,产生员工训练、人工校准和 SOP 评审样本后重跑严格门禁,详见 [演示与试点验收](docs/DEMO_ACCEPTANCE.md)。
|
- 正式试点:管理端可按起止日期导出正式试点 CSV,严格门禁只统计唯一映射到在职组织的训练、校准和 SOP 评审。组织身份同步和至少 20 名手机号映射门槛已具备;下一步仍需选定真实试点窗口,产生员工训练、人工校准和 SOP 评审样本后重跑严格门禁,详见 [演示与试点验收](docs/DEMO_ACCEPTANCE.md)。
|
||||||
- 侧栏:MVP 阶段只展示“首页 / AI面试 / 三角色对练 / 案例沉淀 / SOP知识库 / 资料处理 / 系统设置-模型配置”,其余若依默认菜单暂时隐藏。
|
- 侧栏:只展示当前 AIHR 业务菜单;过滤名单在 `frontend/src/layout/components/Sidebar/index.vue`,不要恢复若依默认全量菜单。
|
||||||
- 本地短信:真实阿里云短信参数放根目录 `.env.local`,由 `scripts/dev-backend.sh` 自动加载;不要把密钥写入 `application-dev.yml`。dev 未配短信时验证码固定 `123456`(`aihr.sms.dev-fixed-code`,prod 强制失效)。
|
- 本地短信:真实阿里云短信参数放根目录 `.env.local`,由 `scripts/dev-backend.sh` 自动加载;不要把密钥写入 `application-dev.yml`。dev 未配短信时验证码固定 `123456`(`aihr.sms.dev-fixed-code`,prod 强制失效)。
|
||||||
- 生产发布:先执行 `scripts/release-preflight.sh`,再按 [BRD 生产迁移 Runbook](docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md) 处理 schema、内置内容、备份、回滚和发布后回归;本地构建或 strict gate 通过,都不能单独证明线上已发布。
|
- 生产基线(2026-07-18):`32fa376d` 已发布,管理端/H5/后端产物哈希一致,21 个迁移完成,目标 schema `34/34`、新增表排序规则兼容 `18/18`;服务、公开 HTTP 和关键页面已验证。正式 OTP 写链路、真机能力和严格试点仍未验收,详见 [BRD 功能审查记录](docs/BRD_IMPLEMENTATION_AUDIT.md)。
|
||||||
|
|
||||||
## 快速启动
|
## 快速启动
|
||||||
|
|
||||||
@@ -59,11 +59,11 @@
|
|||||||
| [AI 陪练二期开发推进计划](docs/AI陪练二期开发推进计划.md) | 总纲阶段一执行文档:从 MVP 演示闭环推进到管家(生活顾问)岗位试点可用 |
|
| [AI 陪练二期开发推进计划](docs/AI陪练二期开发推进计划.md) | 总纲阶段一执行文档:从 MVP 演示闭环推进到管家(生活顾问)岗位试点可用 |
|
||||||
| [银城员工端APP分阶段实施总纲](docs/银城员工端APP分阶段实施总纲.md) | 2026-07-07 立项会后的三阶段总纲与阶段二/三边界 |
|
| [银城员工端APP分阶段实施总纲](docs/银城员工端APP分阶段实施总纲.md) | 2026-07-07 立项会后的三阶段总纲与阶段二/三边界 |
|
||||||
| [数字师傅学练问报整合方案](docs/20260708/数字师傅学练问报整合方案.md) | 2026-07-08 产品讨论定案:学练问报四模块、开放问题榜、学分晋升、发布会「生活顾问的一天」 |
|
| [数字师傅学练问报整合方案](docs/20260708/数字师傅学练问报整合方案.md) | 2026-07-08 产品讨论定案:学练问报四模块、开放问题榜、学分晋升、发布会「生活顾问的一天」 |
|
||||||
| [AI 陪练缺口修订版](docs/AI陪练功能优化与缺口分析(修订).md) | 24 项陪练缺口的代码实况校对和二期排期依据 |
|
| [AI 陪练缺口修订版](docs/AI陪练功能优化与缺口分析%28修订%29.md) | 24 项陪练缺口的代码实况校对和二期排期依据 |
|
||||||
| [阶段交付归档](docs/archive/2026-07-mvp-delivery/) | 2026-07 MVP 作战清单、演示 PPT、设计 QA 记录和阶段交付材料 |
|
| [阶段交付归档](docs/archive/2026-07-mvp-delivery/) | 2026-07 MVP 作战清单、演示 PPT、设计 QA 记录和阶段交付材料 |
|
||||||
| [业务需求 BRD](docs/物业AI人力资源系统业务需求文档BRD.md) | 业务范围、角色、边界和验收 |
|
| [业务需求 BRD](docs/物业AI人力资源系统业务需求文档BRD.md) | 业务范围、角色、边界和验收 |
|
||||||
| [开发规格 TechSpec](docs/物业AI人力资源系统开发规格TechSpec.md) | 模块、数据模型、路由、API 和实现切分 |
|
| [开发规格 TechSpec](docs/物业AI人力资源系统开发规格TechSpec.md) | 模块、数据模型、路由、API 和实现切分 |
|
||||||
|
|
||||||
## 下一步
|
## 下一步
|
||||||
|
|
||||||
现役验收入口是 [DEMO_ACCEPTANCE.md](docs/DEMO_ACCEPTANCE.md)。阶段一的工程闭环和正式组织同步已就绪,当前主线是选定 1–2 个项目、至少 20 名员工的真实试点窗口,产生训练、校准和 SOP 业务评审样本后重跑 M5 严格门禁;详见 [AI 陪练二期开发推进计划](docs/AI陪练二期开发推进计划.md)。大喇叭信息平台、知识学习平台和北森对接属阶段二/三,不进当前主线。后续迭代同时参考 [H5_REDESIGN.md](docs/H5_REDESIGN.md)、[BACKLOG.md](docs/BACKLOG.md) 和 [ruoyi-ai 能力分片迁移计划](docs/RUOYI_AI_INCREMENTAL_MIGRATION.md),不把归档排期当当前待办。
|
当前主线不是继续补页面,而是用正式 OTP、正式角色和真实手机完成读写/权限/设备验收,再选定 1–2 个项目、至少 20 名员工和固定时间窗,产生训练、校准、SOP 评审、满意度与案例样本后重跑严格门禁。功能现状看 [BRD 功能审查记录](docs/BRD_IMPLEMENTATION_AUDIT.md),客户反馈看 [版本功能对比](docs/员工端版本功能对比与功能对齐清单-20260717.md),正式试点看 [DEMO_ACCEPTANCE.md](docs/DEMO_ACCEPTANCE.md)。
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# 后端 API 对接指南
|
# 后端 API 对接指南
|
||||||
|
|
||||||
前端四条演示流和演示预检已经稳定。后端 API 按页面逐刀接入,避免一次性铺满四个页面。
|
本文维护当前前后端业务接口和安全边界;旧演示流继续保留降级链,但不能作为生产或试点通过证据。
|
||||||
|
|
||||||
## 第一阶段范围
|
## 第一阶段范围
|
||||||
|
|
||||||
@@ -21,6 +21,10 @@
|
|||||||
| 移动端登录后角色识别 | `GET /api/aihr/mobile/me` | 认证后按手机号匹配组织快照;`position_level` 为“主管/项目经理”时进入主管端,否则进入员工端;接口失败回退员工端 |
|
| 移动端登录后角色识别 | `GET /api/aihr/mobile/me` | 认证后按手机号匹配组织快照;`position_level` 为“主管/项目经理”时进入主管端,否则进入员工端;接口失败回退员工端 |
|
||||||
| 移动端员工训练与主管复盘闭环 | 员工复用 `POST /api/train/practice/start`、`/turn`、`/finish`,查询 `GET /api/aihr/mobile/practice/history`、`/practice/mistakes`、`/profile`;训练完成后提交 `POST /api/aihr/mobile/practice/satisfaction`;主管查询 `GET /api/aihr/mobile/practice/team`、`/practice/alerts`、`/practice/reviews`、`/practice/reviews/{id}`,标记 `POST /api/aihr/mobile/practice/reviews/{id}/reviewed`,指派 `POST /api/aihr/mobile/practice/assignments` | 员工端登录后带 `Authorization` 与 `clientid` 调用;`mode=mobile` 完成后写入 `aihr_practice_session`。满意度接口只接受本人已完成训练的 1-5 分,意见脱敏后落库,未填写不补默认值。错题本按员工本人聚合低分/红线回合,并关联已有 `retry` assignment,不伪造错题结论。主管 `/practice/team` 在同一项目权限范围内额外返回 `mistakes` 聚合,按场景/归因统计次数、影响人数、平均分和最近发生时间;普通员工返回“无主管权限”。主管接口以后端当前登录手机号映射在职组织快照,仅允许岗位为“主管/项目经理”的账号,并按租户和项目范围返回真实成员、全状态训练记录及非 daily 专项。复盘标记只允许首次 `待复盘 -> 已复盘` 创建后续专项,并发重复提交幂等;可带 `incentivePoint` 写入贡献度。每日三题正式只对 `hire_date` 在当前日期前三个月内的在职员工派发;没有入职日期时不使用训练次数推断,开发 Demo 的旧回退只有在 `dev/local` profile 且由 `aihr.practice.allow-legacy-daily-drill-fallback` 显式开启时生效,生产 profile 强制关闭。 |
|
| 移动端员工训练与主管复盘闭环 | 员工复用 `POST /api/train/practice/start`、`/turn`、`/finish`,查询 `GET /api/aihr/mobile/practice/history`、`/practice/mistakes`、`/profile`;训练完成后提交 `POST /api/aihr/mobile/practice/satisfaction`;主管查询 `GET /api/aihr/mobile/practice/team`、`/practice/alerts`、`/practice/reviews`、`/practice/reviews/{id}`,标记 `POST /api/aihr/mobile/practice/reviews/{id}/reviewed`,指派 `POST /api/aihr/mobile/practice/assignments` | 员工端登录后带 `Authorization` 与 `clientid` 调用;`mode=mobile` 完成后写入 `aihr_practice_session`。满意度接口只接受本人已完成训练的 1-5 分,意见脱敏后落库,未填写不补默认值。错题本按员工本人聚合低分/红线回合,并关联已有 `retry` assignment,不伪造错题结论。主管 `/practice/team` 在同一项目权限范围内额外返回 `mistakes` 聚合,按场景/归因统计次数、影响人数、平均分和最近发生时间;普通员工返回“无主管权限”。主管接口以后端当前登录手机号映射在职组织快照,仅允许岗位为“主管/项目经理”的账号,并按租户和项目范围返回真实成员、全状态训练记录及非 daily 专项。复盘标记只允许首次 `待复盘 -> 已复盘` 创建后续专项,并发重复提交幂等;可带 `incentivePoint` 写入贡献度。每日三题正式只对 `hire_date` 在当前日期前三个月内的在职员工派发;没有入职日期时不使用训练次数推断,开发 Demo 的旧回退只有在 `dev/local` profile 且由 `aihr.practice.allow-legacy-daily-drill-fallback` 显式开启时生效,生产 profile 强制关闭。 |
|
||||||
| 移动端候选人闭环 | 页面拆为 `/pages/candidate/index/index`、`/interview/index`、`/materials/index`、`/progress/index`、`/study/index`;面试复用 `POST /api/recruit/interview/start`、`/answer`、`/finish` 和 `GET /records`;资料 `POST/GET /api/aihr/mobile/candidate/materials`;预习 `POST /api/knowledge/search`;HR 审核 `GET /api/aihr/hr/candidate/materials`、`POST /api/aihr/hr/candidate/materials/{id}/review` | 候选人端登录后带 `Authorization` 与 `clientid` 调用;首页只按当前手机号对应的真实面试记录和最新资料状态分流,不读取公开 home seed。APP 候选人身份以后端登录手机号为准,前端 `candidateId/candidateName` 只作非 APP 场景兼容参数;面试支持文字作答和复用 `/api/ai/asr` 的录音转文字/选音频,`/answer` 可带可选 `answerAudioOssId`,服务端只接受当前候选人名下处于 `staged/bound` 状态的音频并将 `ossId` 写入问题快照,不向客户端暴露原始 OSS URL;`/answer` 与 `/finish` 还会校验当前 APP 手机号与启动会话的候选人 ID 一致,未知或他人会话直接拒绝;面试拉题/评分走真实模型优先;资料写 `sys_oss`/MinIO 和 `aihr_candidate_material`,HR 审核后进度页同步三态;岗前预习查询正式 SOP,不兜前端示例答案 |
|
| 移动端候选人闭环 | 页面拆为 `/pages/candidate/index/index`、`/interview/index`、`/materials/index`、`/progress/index`、`/study/index`;面试复用 `POST /api/recruit/interview/start`、`/answer`、`/finish` 和 `GET /records`;资料 `POST/GET /api/aihr/mobile/candidate/materials`;预习 `POST /api/knowledge/search`;HR 审核 `GET /api/aihr/hr/candidate/materials`、`POST /api/aihr/hr/candidate/materials/{id}/review` | 候选人端登录后带 `Authorization` 与 `clientid` 调用;首页只按当前手机号对应的真实面试记录和最新资料状态分流,不读取公开 home seed。APP 候选人身份以后端登录手机号为准,前端 `candidateId/candidateName` 只作非 APP 场景兼容参数;面试支持文字作答和复用 `/api/ai/asr` 的录音转文字/选音频,`/answer` 可带可选 `answerAudioOssId`,服务端只接受当前候选人名下处于 `staged/bound` 状态的音频并将 `ossId` 写入问题快照,不向客户端暴露原始 OSS URL;`/answer` 与 `/finish` 还会校验当前 APP 手机号与启动会话的候选人 ID 一致,未知或他人会话直接拒绝;面试拉题/评分走真实模型优先;资料写 `sys_oss`/MinIO 和 `aihr_candidate_material`,HR 审核后进度页同步三态;岗前预习查询正式 SOP,不兜前端示例答案 |
|
||||||
|
| 每日题反馈与常见难题 | `POST /api/aihr/mobile/practice/assignments/{id}/feedback`、`GET /api/aihr/mobile/practice/difficulties`、`POST /api/aihr/mobile/practice/difficulties/assign` | 反馈区分题目有用性与答案正确性;主管/管理端按岗位、时间、次数、人数和均分聚合,并可基于难题创建专项;身份和项目范围由服务端解析 |
|
||||||
|
| 岗位考试 | 员工 `GET /api/aihr/mobile/exams`、`GET /exams/{id}`、`POST /exams/{id}/submit`;主管 `GET/POST /exams/supervisor`、`GET/PUT /exams/supervisor/{id}`、`POST /exams/supervisor/{id}/publish`、`GET /exams/supervisor/{id}/results` | 主管按项目范围选择真实员工、组卷、发布和查成绩;员工只读本人目标考试。发布和提交接受请求 ID 并保持幂等,不得重复生成成绩或奖励 |
|
||||||
|
| 开放问题榜与积分 | 移动端 `/api/aihr/community/questions`、`questions/{id}`、`questions/{id}/answers`、`questions/{id}/best-answer`、`points/me`;后台 `/api/aihr/question-admin/**`、`/api/aihr/incentive-admin/rules` | 问题、答案、最佳答案和奖励全程按租户/身份授权;重复选优不重复入账。奖励只有积分与学习学分,不代表现金或提现 |
|
||||||
|
| 全网 AI | 员工 `GET /api/aihr/web-ai/capabilities`、`POST /api/aihr/web-ai/query`;提供方管理 `/api/aihr/web-search/providers/**` | 与企业知识问答分入口和来源。仅接受公网 HTTPS 提供方,地址或密钥变更后必须重新连接测试;未配置/未启用时返回明确不可用,不生成假答案 |
|
||||||
|
|
||||||
## 后端落点
|
## 后端落点
|
||||||
|
|
||||||
|
|||||||
+7
-3
@@ -1,5 +1,7 @@
|
|||||||
# Backlog
|
# Backlog
|
||||||
|
|
||||||
|
> 状态更新(2026-07-18):本文保留早期需求来源和长期方向,当前完成度以 `BRD_IMPLEMENTATION_AUDIT.md`、`员工端版本功能对比与功能对齐清单-20260717.md` 和生产验证记录为准。已发布能力不再列入活动待办。
|
||||||
|
|
||||||
## 需求池:2026-07-03 甲方反馈四项
|
## 需求池:2026-07-03 甲方反馈四项
|
||||||
|
|
||||||
> 来源:甲方微信反馈(2026-07-03)。均不进 2026-07-05 一期 Demo(守 MVP 切割线),按下方优先级顺序排入 Demo 后迭代。
|
> 来源:甲方微信反馈(2026-07-03)。均不进 2026-07-05 一期 Demo(守 MVP 切割线),按下方优先级顺序排入 Demo 后迭代。
|
||||||
@@ -109,10 +111,12 @@
|
|||||||
|
|
||||||
前置闸门:个人空间与企业知识分域;默认仅本人可见;分享/企业入库需审核与脱敏;网页抓取需防 SSRF、尊重版权与访问权限;需提供删除、导出和数据保留策略。阶段二开工前另出专项 TechSpec,不直接复用公共知识库表造成权限串域。
|
前置闸门:个人空间与企业知识分域;默认仅本人可见;分享/企业入库需审核与脱敏;网页抓取需防 SSRF、尊重版权与访问权限;需提供删除、导出和数据保留策略。阶段二开工前另出专项 TechSpec,不直接复用公共知识库表造成权限串域。
|
||||||
|
|
||||||
### 零散待办
|
### 已出池(2026-07-18)与剩余边界
|
||||||
|
|
||||||
- **总结卡「保存图片」按钮**(设计基准 summary-modal 图内有):需 html2canvas 类依赖做 DOM 转图,2026-07-05 P0-2 实现时按"不加依赖"红线砍掉;引依赖或后端出图方案定型后补。
|
- 总结卡已支持导出 PNG;无需再保留“保存图片”待办。
|
||||||
- **员工端「学」板块**(我的地图橙色块):已在 `mobile-uni/src/pages/user/learning/index.vue` 落成第一版,从今日任务、岗位 SOP 检索和训练前预习卡读取现有真实接口;后续再接课程/考试/视频学习数据。
|
- 主管出题、员工答题、幂等交卷和结果查询已上线;员工“学”板块仍待补课程编排、学习进度和视频学习数据,不再把考试整体写成未实现。
|
||||||
|
- 开放问题榜、悬赏积分、答案采纳和管理端运营入口已上线;正式激励规则仍需业务验收。
|
||||||
|
- 全网 AI 查询和管理端搜索源配置已上线;联网能力仍受白名单、超时、限流和生产密钥约束。
|
||||||
|
|
||||||
## Future Enhancements
|
## Future Enhancements
|
||||||
|
|
||||||
|
|||||||
@@ -1,534 +1,85 @@
|
|||||||
# BRD 功能审查与未完成项记录
|
# BRD 功能审查与未完成项记录
|
||||||
|
|
||||||
## 现阶段总览(2026-07-15)
|
> 当前基线:2026-07-18,生产提交 `32fa376d635e951febbb5a17050fc4cb8de77e9f`。
|
||||||
|
>
|
||||||
|
> 本文只维护当前结论、证据层级和剩余门槛。逐提交发布流水已从当前真相文档移除,需要追溯时使用 Git 历史;不得再用 2026-07-14/15 的“尚未发布”记录判断现网。
|
||||||
|
|
||||||
本节只回答当前 `mobile-uni` 三端交互输入与 BRD 的匹配程度,不替代 L0/L1、生产发布或正式试点验收。按 BRD v1.2 的最终多模态目标评估,当前约为 **60%–70%(部分匹配)**;按总纲阶段一“陪练”执行边界评估,约为 **80%–90%(核心链路基本匹配)**。区间是工程审查判断,不是 BRD 官方验收指标。
|
## 1. 当前结论
|
||||||
|
|
||||||
| 角色端 | 文字输入 | 语音输入 | 图片/视频输入 | BRD 判断 |
|
客户在 2026-07-17 反馈的主要回退和新增项已经进入当前生产包,包括语音输入与关键内容播报、总结卡图片、全局三级字号、主管学习端、姓名多选与快捷截止日期、每日题轮换和题目反馈、常见难题、开放问题榜与积分、完整岗位考试、全网 AI 独立入口,以及多租户知识空间管理。
|
||||||
|---|---|---|---|---|
|
|
||||||
| 员工端 | 对练、每日三题、问师傅和复盘意见支持文字 | 对练、每日三题和问师傅均支持浏览器录音或选择音频后 ASR;案例素材支持音频上传;关键题目、回答、点评和总结卡支持播报 | 问师傅本地已支持图片/视频仅用于本次现场分析;对练仍无图像/视频情境输入 | 满足阶段一语音/文本主链路;问师傅多媒体已有本地最小实现,对练仍未满足 BRD 4.3.3 图像/视频情境输入;均未发布生产 |
|
|
||||||
| 候选人端 | 面试支持文字作答 | 面试支持录音转文字和选择音频 | 补充资料支持 PDF/Word/常见图片,但不是图片面试或多模态评分 | 满足 BRD 4.1 语音/文本作答;资料图片上传属于附加能力,不能冲抵 4.3.3 缺口 |
|
|
||||||
| 主管端 | 专项指派、复盘建议和后续训练原因支持文字 | 可回听员工训练录音,不支持主管录音输入 | 无图片/视频提交入口 | 符合当前“查看回放→写复盘→派训练”职责;BRD 未要求主管端同时具备三种输入 |
|
|
||||||
|
|
||||||
已匹配的输入链路:候选人语音/文本面试(BRD 4.1)、员工语音/文本对练与每日一练(4.3/4.4)、主管文字复盘与录音回听(4.4)、案例音频上传(4.6)。尚未闭合的终态要求:员工图像/视频情境输入和服务录像回放(4.3.3)、四川话/粤语等方言的真实样本与 `<=5s` 响应证据(6.5/L1-C)、员工个人文字/文件/图片/链接收藏与混合问答(4.8,明确属于阶段二)。
|
完成状态必须分层表达:
|
||||||
|
|
||||||
此前 `pages/user/today/index.vue` 显示“语音提问,快速解答”,但问师傅只有文字输入,形成前端承诺不一致。2026-07-17 本地已复用 `mobile-uni/src/services/speech.ts` 和现有 `/api/ai/asr` 恢复录音、转写与选择音频兜底,没有新增移动端专用 ASR 接口;正式 ASR 配置和真机麦克风权限仍待发布前验证。
|
| 层级 | 当前状态 | 证据与边界 |
|
||||||
|
|
||||||
审查证据来自当前源码与本地渲染控件;本轮未重新执行真实方言 ASR、图片上传、语音响应时延或生产环境端到端测试,因此这些能力继续标记为未验证。图片/视频情境输入已在 `AI陪练二期开发推进计划.md` 中明确为文本场景稳定后的独立评估项;个人知识空间按 `银城员工端APP分阶段实施总纲.md` 留在阶段二,不应拉入当前阶段一主线。
|
|
||||||
|
|
||||||
- 2026-07-15 管理端资料处理分页静态发布:已备份生产根目录至 `/opt/wygj/backups/www-20260715134936`,再同步 `frontend/dist/`;根目录同步未使用 `--delete`,因此未覆盖同目录的 `/h5`。线上 `processing-yUVzof10.js` SHA-256 与本地构建一致。真实管理员会话确认任务分页共 97 页、第二页仍展示 10 条,状态筛选后回到第一页;根站、H5 和租户接口均返回 `200`。本轮未发布后端、迁移数据库或写入业务数据。
|
|
||||||
|
|
||||||
- 2026-07-15 当前发布与资料导入复核:提交 `eacf1a0a` 已发布到线上,`release-preflight.sh` 通过资源/后端哈希、`16/16` schema、根站/H5/API 健康检查,`wygj-aihr.service` 为 `active`。使用真实管理员认证在生产验证 ZIP 异步资料链路:ZIP 入队后拆为 `2` 条队列记录,`2/2` 完成,生成 `1` 个文档和 `2` 个片段;测试队列、附件、片段和 OSS 对象已清理。当前生产 BRD 证据仍未达标:评分校准 `0` 条,SOP 评审 `0/14`,候选资料 `0` 条;组织快照为在职 `22` 条、`2` 个项目、主管/经理岗位 `7` 条,但手机号映射为 `0`。该结果证明“版本已发布、ZIP 功能可用”,不等于正式试点验收完成。
|
|
||||||
|
|
||||||
- 2026-07-15 发布 schema gate 回归:`RELEASE_VERIFY_REMOTE_SCHEMA=true` 的只读预检在保留两份 Figma 文档脏工作区的临时索引下正常运行,根站、租户和员工首页均为 `200`,随后准确拦截线上缺失的 8 张表:`aihr_candidate_employee_link`、`aihr_onboard_task`、`aihr_position_responsibility`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension`、`aihr_practice_scenario`、`aihr_qualification_gate`、`aihr_sop_applicability`;未执行迁移或发布。
|
|
||||||
|
|
||||||
- 2026-07-15 生产迁移脚本回归:`bash scripts/tests/aihr-schema-migrations.test.sh` 通过,覆盖训练证据、知识反馈、候选人面试复核和岗位/SOP资格迁移的旧库兼容、空库创建与重复执行;这只证明迁移脚本可重复执行,不代表已在生产执行。本轮仍未写生产数据库,需正式窗口完成备份、迁移、结构复查和回滚演练。
|
|
||||||
|
|
||||||
- 2026-07-15 生产结构只读复核:通过 `YCWY` 上的 MySQL 只读查询确认,生产库当前目标表中仅有 `aihr_prompt_template`;`aihr_position_responsibility`、`aihr_sop_applicability`、`aihr_onboard_task`、`aihr_qualification_gate`、`aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension` 均不存在。该结果证明当前分支不能直接宣称线上岗位任务、资格和对练场景已发布;需在正式窗口先备份并执行版本化迁移,再发布匹配的后端/前端资源。本轮未写生产数据库。
|
|
||||||
|
|
||||||
- 2026-07-15 发布预检续查:按当前 `HEAD=a7878439` 重新构建管理端 `assets/index-D7XjBIan.js`、`mobile-uni` H5 `assets/index-7eV2G7c3.js` 和 `ruoyi-admin.jar` 均成功;`RELEASE_VERIFY_REMOTE_MATCH=true ./scripts/release-preflight.sh` 已越过产物新鲜度检查,但因两份用户未提交的 Figma 文档阻止进入工作区/线上 hash 比对。本轮未同步生产资源、迁移数据库、重启后端或写入业务数据;发布前需先明确 Figma 文件提交边界和正式窗口。
|
|
||||||
|
|
||||||
- 2026-07-15 当前分支线上资源漂移复核:生产 `https://peilian.njzhmj.top/h5/` 仍引用 `assets/index-CDn6TrX8.js`,`wygj-aihr.service` 只读状态为 `active`,后端线上包 SHA-256 为 `e2941cf1e2a31e22c979cea77a12b2e6ef2e5430409398dbde0918a1ab00f437`;本地 `mobile-uni` 当前构建产物为 `assets/index-7eV2G7c3.js`,两者不是同一版本。本轮仅执行 HTTP/SSH 只读核对,未同步静态资源、迁移生产数据库、重启后端或写入生产业务数据;下一步需正式发布窗口、备份/回滚责任和发布后浏览器回归。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 3.1/P1 岗前任务完成回写:正式 `aihr_onboard_task` 已有 `待完成/进行中/已完成` 状态字段,现新增登录 APP 用户本人范围内的 `POST /api/aihr/mobile/onboard/tasks/{id}/complete`,只允许组织快照/手机号归属命中的未完成任务更新 `status/completed_time`,可选保存员工提供的 `evidence_ref`;移动端学习页同步提供“确认完成”,完成后明确提示正式资格仍以 HR 复核为准,不把任务完成冒充资格通过。补充服务/控制器契约测试与 demo marker,未写入正式任务数据。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.1 候选人语音/文本作答补齐:候选人面试页新增“录音转文字”和“选择音频”,复用现有 `/api/ai/asr`、MediaRecorder 与文件选择兜底;`/answer` 接受可选 `answerAudioOssId`,服务端校验音频处于当前 APP 身份的 `staged/bound` 状态后,才把 `ossId` 写入问题快照,既保留旧文字客户端兼容,也不向客户端暴露原始 OSS URL。补充归属拒绝单测、候选人页面单测和 demo marker,待本轮构建验证后再提交。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.1 候选人进度状态修正:候选人进度页此前用最近一份补充资料的审核状态作为“面试人工复核”状态,可能在面试已复核但资料未提交时误显示“人工复核中”;现改为面试状态读取 `InterviewRecord.reviewStatus`,并将补充资料审核单独展示为未提交/待审核/已通过/已驳回。仅修正移动端展示与类型契约,不改 API、数据库或审核结论;`mobile-uni` 类型检查、单元测试 `56/56` 和 H5 构建通过。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.2/P1 正式任务与资格只读桥接:复核确认 `aihr_onboard_task`、`aihr_qualification_gate` 已有结构但员工端没有读取入口;现新增登录 APP 用户范围内的 `GET /api/aihr/mobile/onboard/tasks` 与 `GET /api/aihr/mobile/qualification`,通过组织快照把手机号解析到正式 `ext_party_id`,不接受前端身份参数。`mobile-uni` 学习页新增正式岗前/入职任务和资格状态展示;空表明确显示“未配置”,不生成任务、不把 AI 训练分数当资格结论。该批次未写入生产数据,正式任务/资格规则仍需 HR 与组织系统提供。
|
|
||||||
|
|
||||||
- 2026-07-15 发布预检重建复核:按当前 `HEAD=14adc3e6` 重新构建管理端生产包、`mobile-uni` H5 和 `ruoyi-admin.jar` 均成功,产物新鲜度检查通过;`RELEASE_VERIFY_REMOTE_MATCH=true ./scripts/release-preflight.sh` 随后仅因两份用户未提交的 Figma 文档阻断,尚未进入线上资源/后端 hash 对比。本轮未同步静态资源、迁移生产数据库、重启后端或写入生产业务数据;待 Figma 提交边界和正式发布窗口确认后再继续。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.5/P1 成长规则与权限续审:成长激励页继续明确“证据包待人工复核”和“学分规则待 HR 配置、当前不生效”,当前没有 `cert_rule`/`incentive_rule` 正式规则契约,不新增空壳配置 CRUD;候选人资料、组织同步、训练音频和 SOP 管理写入口均已复核为登录或 HR/管理员角色保护。AIHR 测试 `138/138`、`mobile-uni` 单测 `56/56`、类型检查、管理端构建和成长页 lint 均通过。线上根站、H5、租户接口和员工首页 API 只读返回 `200`,服务为 `active`,但线上仍加载旧 H5 资源 `index-CDn6TrX8.js`,本轮未发布、未迁移生产数据库或写入业务数据;下一步仍需 HR 规则/组织同步数据与正式发布窗口。
|
|
||||||
|
|
||||||
- 2026-07-15 当前提交 `ab54b04f` 线上只读复核:生产根站、`/h5/`、租户列表和员工首页 API 均返回 `200`,`wygj-aihr.service` 为 `active`;线上 H5 仍引用 `assets/index-CDn6TrX8.js`,后端包时间仍为上一发布批次,本地岗位-SOP项目范围修复尚未发布。本轮仅执行 HTTP/SSH 只读检查,未同步静态资源、执行数据库迁移、重启后端或写入生产业务数据。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.2/G3 正式岗位-SOP项目范围收口:`position-sop` 读取正式适用范围时此前只按岗位和项目类型过滤,未使用 `sop_applicability.org_scope`;现从认证 APP 用户对应的在职组织快照提取项目编码,并以参数化 `FIND_IN_SET` 仅返回全局或本人项目范围的映射。无组织映射时不扩大范围,继续回退一期 seed;系统用户读取保留管理侧不绑定 APP 项目的兼容语义。新增源码契约与 `demo-check` marker,未写入业务映射或生产数据。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.2/M4 正式岗位-SOP读取路径补齐:`/api/knowledge/position-sop` 现在优先读取已启用且在生效期内的 `position_responsibility + sop_applicability` 映射;没有正式映射或旧库尚未迁移时继续使用生活顾问 seed 导航。正式映射只改变学习主题来源,资格状态仍固定为 `NOT_CONFIGURED`,移动端继续显示资格提醒;未写入任何业务映射,待 HR 提供组织/项目/SOP规则后再实现资格判定和入职任务分派。
|
|
||||||
|
|
||||||
- 2026-07-15 岗位资格契约提交后线上只读复核:生产根站、`/h5/` 和租户接口仍返回 `200`,`wygj-aihr.service` 为 `active`;线上 H5 仍引用 `/h5/assets/index-CDn6TrX8.js`,本轮新增岗位/SOP/任务/资格迁移尚未执行线上数据库写入。当前结论仍是代码与迁移可继续发布准备,线上未追平;生产迁移需正式窗口、备份/回滚责任和组织同步凭据。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.2/M4 岗位-SOP-上岗资格数据契约补齐:复核发现 `position_responsibility`、`sop_applicability`、`onboard_task`、`qualification_gate` 在代码库中只有 TechSpec 设计,没有正式 MySQL 结构;现新增幂等迁移和 reset DDL,并把四表纳入生产 Runbook、schema 回归和严格预检的结构可见性检查。迁移不写岗位、员工、课程或资格 seed,`position-sop` 仍保持 `NOT_CONFIGURED`;正式适用范围、入职任务规则和资格标准需 HR/组织系统提供后再接读取与 gating。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 生产迁移合同防回归:发现版本化 AIHR MySQL 迁移虽已全部写入 Runbook,但此前没有测试保证新增 `aihr_*_mysql8.sql` 必须同步进入执行清单;现将目录与 `BRD_PRODUCTION_MIGRATION_RUNBOOK.md` 的覆盖检查接入 schema migration 测试。该检查只验证发布合同,不执行生产迁移,也不替代备份、回滚和逐脚本核验。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 严格门禁旧案例结构兼容修复:`scripts/demo-check.sh` 原先在 `aihr_case_record` 整表或 `learning_points/supervisor_comment` 字段缺失时直接执行查询,可能以 Unknown column/table 中断,无法输出真正的 schema 门槛;现先探测表和字段,缺失时以 `stored_cases=0`、`case_media_schema=0/2`、`case_learning_schema=0/2` 继续判定,新增旧表/无表回归。该修复只改善迁移缺口可见性,不放松案例 `20` 条和字段 `2/2` 门槛。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 内容与本地开发库对齐复核:仓库基础 SQL 和 `aihr_20260714_prompt_template_seed_mysql8.sql` 均已声明 6 个内置 Prompt,但本地 `ry-vue` 此前只执行到 5 个,导致严格门禁的 `prompt_templates=6/6` 在代码已具备时仍可能被本地库状态误导;本轮仅在本地开发库执行该幂等迁移,复核得到生活顾问启用场景 `14` 条、服务推介/增值 `1` 条、日常服务 `1` 条、住宅 SOP 附件 `5` 条、内置 Prompt `6` 条。未修改生产数据库;生产仍需正式迁移窗口和发布证据。
|
|
||||||
|
|
||||||
- 2026-07-15 当前提交 `03a691c7` 发布前只读复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`,`wygj-aihr.service` 为 `active`;线上管理端仍加载 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`),H5 仍加载 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`),当前本地新鲜构建分别为 `assets/index-nV05JukM.js`(SHA-256 `b25d4945c5e41a93a3b6a288d6acc1be689431e363426626753e2227f8a290dc`)和 `assets/index-9sen8HYN.js`(SHA-256 `66900a9aa00c17e04d73a2d3509c16784b1ddcfc109098751b95b4138ebe26de`);当前后端外层包 SHA-256 `289de91ee6ec58042bea5b70f795f8905f08b41abd7ec4120477d7ee5b61192c`,AIHR 模块归一化 SHA-256 `65a79f02028687d441cb0e2b1ce003ac44097498cdbaf36630bef9a29c5b6de`,线上对应模块为 `b57c06ec6da4dd0e5eef16fb96c23881b2f1f253f461eb58ec3158122f76b543`。本轮已重新构建三端并只做 GET/SSH/hash 检查,未同步静态资源、迁移生产数据库、重启服务或写入业务数据;当前仍是代码可发布、线上未追平。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD G3 移动端复盘响应脱敏补强:复盘详情响应此前只在控制器内遮蔽手机号,历史或外部写入的邮箱、房号和带称谓姓名可能继续出现在对话、标注、摘要、导师改写、AI 点评和主管建议中;现统一复用 `AihrSensitiveText.forModel` 覆盖这些响应文本,并补 AIHR 回归与 `demo-check` marker。该修复只收紧响应边界,不改变训练评分、组织范围或姓名展示配置;生产发布仍需按版本化迁移与静态资源发布流程验证。
|
|
||||||
|
|
||||||
- 2026-07-15 当前提交线上漂移复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 HTTP `200`,`wygj-aihr.service` 为 `active`,但线上管理端仍加载 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`),H5 仍加载 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`);当前 `HEAD=2f44e6b7` 本地产物分别为 `assets/index-nV05JukM.js`(SHA-256 `b25d4945c5e41a93a3b6a288d6acc1be689431e363426626753e2227f8a290dc`)和 `assets/index-9sen8HYN.js`(SHA-256 `66900a9aa00c17e04d73a2d3509c16784b1ddcfc109098751b95b4138ebe26de`)。远端 `ruoyi-aihr-5.6.2.jar` 归一化内容 SHA-256 为 `b57c06ec6da4dd0e5eef16fb96c23881b2f1f253f461eb58ec3158122f76b543`,当前本地构建为 `02ca2d913f43e7cab3d9fe253d849611bf957481f69fcb6ae509d7814f11256b`。本轮仅做公开 GET、SSH 服务状态和远端包哈希只读检查,未同步静态资源、迁移数据库、重启后端或写入生产数据;当前结论是代码可继续发布准备,线上尚未追平。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD G3/4.6 案例音频地址暴露收紧:案例详情和上传响应此前直接返回 `sys_oss.url`,客户端可绕过案例接口的登录与项目范围校验访问原始音频;现新增 `GET /api/knowledge/case/records/{caseId}/media`,复用案例查看权限和项目范围后由服务端流式下载 OSS,管理端与 `mobile-uni` 改用鉴权 blob/temp 文件播放;详情/上传响应不再返回原始 OSS URL。已通过 AIHR 全量测试、管理端构建和 `mobile-uni` H5 构建;未修改生产资源或生产数据,生产发布仍需窗口、备份/回滚责任和回归验证。
|
|
||||||
|
|
||||||
- 2026-07-15 当前提交线上状态复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`;线上 H5 仍引用 `assets/index-CDn6TrX8.js`,最新提交 `7272fce5` 的岗位 SOP 登录保护尚未发布。此次仅做 GET 只读检查,未执行静态同步、数据库迁移、后端重启或业务写入;生产发布仍需窗口、备份/回滚责任和认证态回归。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD G3 知识导航匿名访问收紧:岗位 SOP 导航接口虽然只返回学习摘要,但后端此前使用 `@SaIgnore`,匿名请求可以直接读取生活顾问流程主题;移动端实际只在登录后调用。现改为 `@SaCheckLogin`,补源码回归和 `demo-check` marker;不改变登录后的员工学习路径,也未修改知识库数据。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 候选人/面试生产迁移缺口修复:生产只读复核发现 `aihr_candidate_material` 缺少 `reviewer/reviewed_time`,`aihr_interview_result` 缺少人工复核字段和 `questions_json`,`aihr_candidate_employee_link` 尚不存在;这些路径此前依赖运行时懒迁移。现新增可重复执行的 `aihr_20260715_candidate_interview_review_mysql8.sql`,兼容空库、旧表和重复执行,纳入生产迁移 Runbook、schema 回归和 `demo-check` marker;仅补结构,不写生产业务数据,正式迁移仍需发布窗口、备份和回滚责任。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.3/4.4/4.5 生产迁移缺口修复:严格试点门禁要求 `aihr_practice_session` 的 8 个证据字段,但版本化迁移此前只覆盖三项五维字段,`annotations_json`、主管复盘建议、人工贡献分和满意度字段仍可能依赖运行时懒迁移。现新增幂等 MySQL 8 迁移补齐其余 5 列,纳入 Runbook、schema 回归和 `demo-check` marker;仅补结构,不写业务数据,尚未执行生产迁移。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD G3/4.7 生产迁移缺口修复:`aihr_knowledge_gap` 与 `aihr_knowledge_answer_feedback` 此前只在 `AihrSopSeedService` 运行时懒建,生产迁移 Runbook 没有对应版本化脚本,可能出现应用启动前结构缺失、反馈/知识缺口审计不可用。现新增幂等 MySQL 8 迁移,兼容旧反馈表补齐 `review_id/reviewer/reviewed_time`,纳入迁移 Runbook、迁移回归测试和 `demo-check` marker;仅补结构,不写业务数据,尚未执行生产迁移。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 剩余功能复核:重新核对动态难度、案例视频和 SOP 反馈治理三条链路。场景表已有 `difficulty` 但没有 HR 确认的升降级阈值、候选场景映射和人工关闭规则;案例当前能保存/回放脱敏音频,但没有正式预渲染视频样片及对应学习场景契约;SOP 负反馈队列已有问题、片段、评审状态和人工复核入口,但没有经业务批准的纠正内容、版本替换和署名入库规则。本轮不硬编码业务规则、不用音频冒充视频、不把“标记已复核”伪装成知识修复;以上继续作为 P1/发布前输入项跟踪。
|
|
||||||
|
|
||||||
- 2026-07-15 BRD 4.7 知识答案负反馈闭环修复:SOP 检索此前在某问题命中的片段全部被点踩时仍保留原答案,违背“同一问题后续不再推送该条目”的约定;现由共享检索过滤返回无明确依据的答案并保留提示,不再把被点踩片段作为答案证据。新增 `AihrSopSeedServiceTest.allDownVotedHitsAreSuppressed` 和 `demo-check` marker;未修改业务数据,后续仍需正式员工问答样本验证替代答案质量。
|
|
||||||
|
|
||||||
- 2026-07-15 严格试点门禁可读性补强:`scripts/demo-check.sh` 新增 `catalog_schema=3/3`,严格模式在场景/Rubric 三张基础表缺失时明确失败,而不是只输出空的场景统计;临时库回归覆盖缺少 Rubric 表的 `catalog_schema=1/3` 状态。该修复不改变生产数据和业务门槛,仅让生产迁移缺口可被明确识别。
|
|
||||||
|
|
||||||
- 2026-07-15 严格试点门禁补强:`scripts/demo-check.sh` 原先只检查 SOP 评审的 `prompt_version` 字段,未检查 6 个内置 Prompt 是否实际落库;现新增 `prompt_templates=6/6` 查询和 strict 失败条件,并在 `scripts/tests/demo-check-pilot-gates.test.sh` 的临时库加入 6 个模板回归。该修复能阻止“schema 已迁移但 Prompt 内容为 0”的生产状态被误判为可验收;未修改生产数据。
|
|
||||||
|
|
||||||
- 2026-07-15 线上只读复核续查:生产根站、`/h5/`、租户接口和员工首页 API 仍返回 `200`,`wygj-aihr.service` 为 `active`,服务自 `2026-07-14 22:13:55 CST` 起运行;线上管理端仍加载 `assets/index-B9T505HT.js`,H5 仍加载 `assets/index-CDn6TrX8.js`,与当前仓库可发布构建未做版本匹配。生产数据库仍缺 `aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension`;`aihr_prompt_template` 内置模板 `0`、校准 `0`、已评审 SOP `0`、训练音频 `0`;`aihr_org_snapshot` 实际状态值为 `employment_status='active'`,active `22` 条但手机号映射 `0`。生产 `aihr_practice_session`、`aihr_practice_assignment`、SOP 评审、案例和入职日期字段仍未完整迁移。本轮仅做 GET/SSH/MySQL 只读检查,未执行静态同步、版本化迁移、后端重启或业务写入;下一步仍需正式发布窗口、备份/回滚责任和组织同步凭据。
|
|
||||||
|
|
||||||
- 2026-07-15 迁移合同回归:`scripts/tests/aihr-practice-brd-scenarios.test.sh`、`scripts/tests/aihr-knowledge-brd-sop.test.sh` 均通过幂等执行验证,`scripts/tests/pilot-export-contract.test.mjs` 通过 `5/5`;当前仓库的场景、住宅 SOP 和正式 CSV 导出合同可重复验证。该结果不替代生产迁移执行,也不把开发/本地样本算作正式试点数据。
|
|
||||||
|
|
||||||
- 2026-07-15 生产数据库只读复核:通过远端 `/opt/wygj/config/wygj.env` 的数据库连接执行只读 `information_schema`/计数查询,确认 `aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension` 仍不存在;生产 `aihr_practice_session` 证据字段为 `5/8`、`aihr_practice_assignment` 为 `4/6`、SOP 评审主体/版本字段为 `1/3`、案例媒体/学习字段为 `0/4`、组织 `hire_date` 为 `0/1`;内置 Prompt `0`、校准记录 `0`、已评审 SOP `0`、训练音频 `0`、active 组织 `22` 且手机号映射 `0`。根站、H5、租户接口和员工首页 API 仍正常;本轮仅读生产数据,未执行迁移、静态同步、后端重启或业务写入。代码与版本化迁移已在仓库,当前阻塞是正式发布窗口、备份/回滚责任和组织同步凭据。
|
|
||||||
|
|
||||||
- 2026-07-15 审计记录校正:此前 2026-07-14 的一条历史记录误写为 `aihr_practice_audio`、`aihr_practice_calibration` 尚无版本化迁移;当前仓库实际已有 `backend/script/sql/update/aihr_20260714_practice_evidence_mysql8.sql`,覆盖 `aihr_practice_audio`、`aihr_practice_audio_upload`、`aihr_practice_calibration`,并已纳入生产迁移 runbook 与幂等 schema 测试。当前未完成项仅剩生产迁移执行证据、备份/回滚负责人和真实音频对象抽查,不再重复新增迁移脚本。
|
|
||||||
|
|
||||||
- 2026-07-15 当前 HEAD 回归复核:`mvn -f backend/pom.xml -pl ruoyi-modules/ruoyi-aihr -DskipTests=false test` 通过,AIHR 测试 `130/130`;`scripts/tests/demo-check-pilot-gates.test.sh` 与 `scripts/tests/aihr-schema-migrations.test.sh` 均通过。该结果证明当前代码回归稳定,不改变正式试点样本、生产迁移和线上发布仍未完成的结论。
|
|
||||||
|
|
||||||
- 2026-07-15 当前提交发布前复核:基于 `HEAD=e37590dd` 在隔离干净 worktree 重新构建管理端、`mobile-uni` H5 和 `ruoyi-admin` 后端,三项构建均成功;只读 `release-preflight.sh` 确认当前 worktree clean、租户列表和员工首页 API 均返回业务 `200`,但线上管理端仍为 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`),当前提交本地产物为 `assets/index-C20ZRMal.js`(SHA-256 `7ea5a989d67464af32b55ea4fc65e4ce5f0ca761d597fea40b4a8c13f3612b80`);线上 H5 仍为 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`),当前提交本地产物为 `assets/index-DDEtOdio.js`(SHA-256 `f7f042f967eefc6b8d5963ae97a99f589f1c9b5d4084b0b7cb7ff9f32988d541`)。预检因此在远端静态资源匹配处失败;本轮未执行静态资源同步、版本化迁移、后端重启或业务数据写入。当前应视为“代码可发布、线上未追平”,不是“已发布”。
|
|
||||||
|
|
||||||
- 2026-07-14 当前严格门禁复核:使用 `AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-14 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh` 时,在正式数据门禁前因本地管理端未启动返回 `frontend returned HTTP 404`,因此本轮不宣称 strict 通过;开发库只读计数为启用场景 `13`、在职组织 `3001`、校准 `20`、SOP 评审 `129`,均不作为正式试点证据。
|
|
||||||
|
|
||||||
- 2026-07-14 当前发布证据复核:基于 `HEAD=48f4de03` 在隔离干净 worktree 执行远端只读预检;管理端/H5 主资源与线上一致,租户列表和员工首页 API 业务码均为 `200`,`wygj-aihr.service` 为 `active`。外层 `ruoyi-admin.jar` SHA-256 因 ZIP 打包元数据与线上不同,但 `ruoyi-aihr-5.6.2.jar` 归一化内容 SHA-256 为本地/线上同值 `b57c06ec6da4dd0e5eef16fb96c23881b2f1f253f461eb58ec3158122f76b543`;本轮仅修发布预检与文档,未重新发布业务包。
|
|
||||||
|
|
||||||
- 2026-07-14 BRD G3 训练音频生命周期修复:陪练回合和每日三题此前接受客户端直接提交的 `audioOssId`,服务端只在下载时按训练记录判断归属,存在把其他对象绑定到当前训练/作业的风险;现要求移动端提交的 OSS 对象必须由当前 APP 用户创建,且每日三题音频下载授权同时覆盖 `aihr_practice_assignment.answer_audio_oss_id`。ASR 成功上传后先写 `aihr_practice_audio_upload` 暂存记录,训练/作业绑定后转为 `bound`,超过两小时且没有业务引用的暂存对象由定时清理删除;清理失败保留暂存记录重试。正式环境仍需用真实 ASR 和 MinIO 对象抽查清理结果。
|
|
||||||
- 2026-07-14 BRD G3 SOP 附件绑定补偿:同步/待处理图片文档此前在 `sys_oss` 上传成功后再写 `aihr_knowledge_attach`,附件写入失败时可能留下无业务引用对象;现仅对“附件尚未成功绑定”的异常路径做 OSS 补偿删除,解析失败后已存在的失败/待处理附件仍保留用于重试,不改变现有文档处理状态机。
|
|
||||||
- 2026-07-14 BRD G3 OSS 生命周期补偿:候选资料和案例音频此前先写 `sys_oss`、再写业务记录,业务数据库写入失败时可能留下没有业务引用的对象;现对“本次上传新建且尚未绑定”的 `oss_id` 增加失败补偿删除,案例同时移除内存态,补充两条回归测试和 `demo-check` marker。该修复不触碰已有业务资源;SOP 分片/ASR 等复杂异步链路仍需按各自状态机单独核查,不能用本次补偿覆盖全部媒体生命周期。
|
|
||||||
- 2026-07-14 BRD G3 文件名边界复核:候选资料、案例音频、同步 SOP 文档和 ASR 音频此前虽然分别校验或清理文件名,但仍有路径把原始 `MultipartFile` 直接交给 `sys_oss`,清理后的名字没有贯通到 OSS 元数据;现新增共用 `AihrMultipartFiles` 包装器,四条链路均以清理后的文件名上传/外发,并补单测与 `demo-check` marker。该修复不改变文件类型、大小、权限和业务状态,仍需正式环境抽查 OSS 原始文件名与下载响应头。
|
|
||||||
- 2026-07-14 BRD 4.6 案例媒体 schema 迁移:案例服务此前依靠 reset DDL 和运行时懒迁移提供 `media_oss_id/media_url`,旧库和生产库缺少显式版本化迁移;现新增可重复执行的 `aihr_20260714_case_media_mysql8.sql`,并在 schema 回归测试中覆盖“无表先跳过、旧表补列、重复执行不重复加列”。这只解决结构发布一致性,不增加案例业务数据,也不替代正式预渲染视频样片、学习点和主管点评输入。
|
|
||||||
- 2026-07-14 BRD 4.6 案例媒体严格门禁:正式预检现在同时检查 `aihr_case_record.media_oss_id` 与 `media_url` 两列,避免案例音频回放依赖首次请求触发运行时懒迁移;该检查只判断 schema,不把已有音频或案例数量误判为正式案例学习资产。
|
|
||||||
- 2026-07-14 23:14 生产 schema 只读复核:生产 `aihr_case_record` 已存在,但 `media_oss_id/media_url` 为 `0/2`;本地提交 `94f48f4c` 的版本化迁移尚未在线上执行。当前只记录差异,不在没有发布窗口确认时直接修改生产数据库。
|
|
||||||
- 2026-07-14 23:16 生产训练 schema 只读复核:生产缺少 `aihr_practice_session` 的 `dim_task_completion/dim_response_timeliness/response_latency_ms`、`aihr_practice_assignment` 的 `score/score_mode`、SOP 评审的 `prompt_version/requester_ext_party_id` 和组织快照 `hire_date`;对应版本化迁移已存在,但尚未在线上执行。严格门禁现增加会话与每日题字段计数,避免发布后依赖运行时懒迁移。
|
|
||||||
- 2026-07-14 23:18 生产 Prompt 内容只读复核:生产 `aihr_prompt_template` 表存在但内置模板数量为 `0`;现新增 `aihr_20260714_prompt_template_seed_mysql8.sql`,按唯一键幂等补齐 6 个内置模板,不覆盖同 code/output_format/version 的自定义模板。未写入生产数据。
|
|
||||||
- 2026-07-14 23:25 生产迁移顺序固化:新增 `docs/BRD_PRODUCTION_MIGRATION_RUNBOOK.md`,明确场景/Rubric 基础表、场景与 SOP/Prompt 内置内容、音频/案例媒体、五维与字段迁移的执行顺序,并提供迁移后只读 schema/模板核验 SQL;未执行生产写入,也不把 seed/schema 完成等同于正式试点通过。
|
|
||||||
- 2026-07-14 案例学习闭环补齐:案例整理结果现在从真实摘要提取并持久化 `learning_points`,主管可通过 `/api/knowledge/case/records/{caseId}/review` 提交脱敏点评,管理端和员工端详情可查看;新增 `aihr_20260714_case_learning_mysql8.sql`,未新增视频占位资源,也未修改生产数据。
|
|
||||||
- 2026-07-14 BRD G3 案例学习字段脱敏门禁补强:严格预检原先只扫描案例标题、转写和摘要,可能漏掉新增 `learning_points` 或 `supervisor_comment` 中的手机号、邮箱、房号;现统一纳入同一已知 PII 扫描,并用门禁测试分别注入学习点和主管点评验证 `case_unmasked` 会失败。
|
|
||||||
- 2026-07-14 23:44 线上只读发布复核:生产根站、`/h5/`、租户列表和员工首页 API 均返回 `200`,`wygj-aihr.service` 为 `active`;线上管理端资源 `assets/index-B9T505HT.js` SHA-256 为 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`,H5 资源 `assets/index-CDn6TrX8.js` SHA-256 为 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`,当前 `HEAD=0bfaee7d` 本地产物分别为 `assets/index-C20ZRMal.js`(`7ea5a989d67464af32b55ea4fc65e4ce5f0ca761d597fea40b4a8c13f3612b80`)、`assets/index-Zx4zkWxo.js`(`8ef22016ce8587e0264fc53ee100f0e4bfa2f17ea66d7b72fd90c972d4d0a0e9`),后端当前构建 SHA-256 为 `9598b98f340bcac3e7400f695c7ed5de5a9a62e081c19824b9b6839822e2d4f1`,均未与线上对齐;本轮只读核对,未执行生产静态同步、迁移、后端重启或业务数据写入。
|
|
||||||
|
|
||||||
更新时间:2026-07-14
|
|
||||||
|
|
||||||
- 2026-07-14 22:16 BRD 生产发布完成:基于 `HEAD=ee261568` 在隔离干净 worktree 重新构建并发布管理端、`mobile-uni` H5 和 `ruoyi-admin` 后端;远端备份为 `/opt/wygj/backups/release-20260714221321`。发布后远端资源已与本地产物一致:管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`)、后端 `/opt/wygj/app/ruoyi-admin.jar`(SHA-256 `e2941cf1e2a31e22c979cea77a12b2e6ef2e5430409398dbde0918a1ab00f437`);`wygj-aihr.service` 重启后为 `active`,根站、`/h5/`、租户列表和员工首页 API 均返回 `200`,发布后 `RELEASE_VERIFY_REMOTE_MATCH=true` 预检通过。Chrome 匿名打开 H5 后标题为“今日”、员工端四个 tab 和最新主 JS 均正常加载;生产 `13900001111 + 123456` 登录被服务端按生产验证码策略拒绝,随后验证码发送触发号码天级限流,因此本轮未完成认证态浏览器回归,也未把匿名渲染当作登录/主管权限验收。未写入业务数据;正式主管组织映射、真实试点数据和认证态回归仍未完成。
|
|
||||||
- 2026-07-14 BRD 发布预检后端证据补强:`release-preflight.sh` 新增可选 `RELEASE_VERIFY_REMOTE_BACKEND=true`,通过 SSH 比对远端 `ruoyi-admin.jar` SHA-256;该开关未同时启用远端资源比对时现在直接失败,不再静默跳过。远端只读业务检查同时覆盖租户列表和移动端员工首页;默认发布路径仍为 `/opt/wygj/app/ruoyi-admin.jar`,可用 `RELEASE_REMOTE_BACKEND_PATH` 覆盖。本轮未重新发布业务包。
|
|
||||||
- 2026-07-14 BRD 发布预检后端 hash 误报修复:外层 Spring Boot jar 的 ZIP 元数据会因构建时间变化而不同,预检现保留整包 SHA-256 作为证据,同时比较 `ruoyi-aihr` 嵌套模块的归一化内容 SHA-256;远端模块内容一致才判定后端匹配,并继续拒绝不安全的远端路径。本轮未重新发布业务包。
|
|
||||||
- 2026-07-14 BRD 验收脚本执行一致性修复:`scripts/tests/pilot-export-contract.test.mjs` 新增 Node shebang 并恢复可执行权限,直接运行与 `node` 运行结果一致,5/5 通过;同时保留 `release-preflight.sh` 的后端 hash 配置误用门禁。该批次只修工具与证据链,不改业务数据或生产包。
|
|
||||||
- 2026-07-14 22:03 BRD 发布证据复核:基于当前 `HEAD=ab10e565` 重新构建管理端、`mobile-uni` H5 和 `ruoyi-admin` 后端产物均成功;本地产物为管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`),后端 jar SHA-256 `bdbd50be0b5e6aaa05504726fee7016a712c3138494ac84c4d4dfbe669aa6379`;线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)与 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`),当前分支修复尚未发布。`RELEASE_VERIFY_REMOTE_MATCH=true ./scripts/release-preflight.sh` 在工作区卫生检查阶段因两份用户未提交 Figma 文档停止;本轮未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 21:28 BRD 发布只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`)。本地最新提交 `d2b0035e` 的租户隔离修复尚未发布;本轮仅做 GET/hash 核验,未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD G3 多租户动态上下文修复:候选资料、案例、仪表盘、面试、组织同步和陪练服务此前从 `LoginHelper` 读取租户,后台 `TenantHelper.dynamic(...)` 场景可能回退到 `000000`;现统一改用 `TenantHelper.getTenantId()`,保留案例服务的 `LoginHelper` 仅用于当前操作人身份,并新增源码契约测试与 `demo-check` marker。未修改业务数据;正式多租户环境仍需跨租户 HTTP 回归。
|
|
||||||
- 2026-07-14 Figma/BRD 对账口径修正:`FIGMA_IMPLEMENTATION_MATRIX.md` 的 M2 总结此前仍把问答反馈写成视觉缺口;当前员工端问答反馈、状态提示和后端记录已在位,剩余仅为 Figma 画板中的收藏持久化契约与完整视觉状态复核,不把开放问题榜纳入本期。
|
|
||||||
- 2026-07-14 最新线上只读资源复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`);当前提交 `0de9704e` 重建后的本地资源为管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)和 H5 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`),两端仍未发布。本轮仅做 GET/hash 核验,未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 5.4/G3 组织同步写入保护:`POST /api/aihr/org/sync` 现在要求请求显式传 `dryRun=true` 或 `dryRun=false`,省略请求体或传 `null` 会在外部拉取前直接拒绝,避免空请求因 `replaceExisting=true` 默认值意外写入组织快照;补充服务单测、`demo-check` marker 和 API 对接说明,未修改线上组织数据。
|
|
||||||
- 2026-07-14 BRD 5.4/G3 组织同步 HTTP 入参边界补强:组织同步控制器现在要求请求体必须存在,空 POST 在 HTTP 层直接按请求错误处理;服务层继续要求 `dryRun` 显式传 `true/false`,避免把空请求误判为写入操作。补充 `demo-check` marker,未修改数据库或线上组织数据。
|
|
||||||
- 2026-07-14 BRD 严格门禁真实窗口复核:`AIHR_PILOT_START_DATE=2026-07-07 AIHR_PILOT_END_DATE=2026-07-11 AIHR_PILOT_STRICT=true ./scripts/demo-check.sh` 已通过源码、页面壳、租户和验证码检查,正式数据门禁实际失败为 `service_promotion=0`、`daily_service=0`、住宅 SOP `3/5`、案例 `2/20`、在职手机号映射 `1/3001`、入职日期 `0/3001`、满足十次训练 `0/52`、校准 `0/20`、SOP 可用 `0/0`、满意度响应 `0`;未写入业务数据,不能用本地演示样本伪造通过。
|
|
||||||
- 2026-07-14 BRD 验收脚本 marker 第三处同步:员工画像页当前使用“AI训练综合分仅作训练参考”,严格预检仍检查已废弃的“AI评分仅作训练参考”;现同步为当前文案,保留 AI 不直接等同绩效的风险提示。
|
|
||||||
- 2026-07-14 BRD 验收脚本 marker 再同步:严格预检继续发现成长激励页已将“当前运营口径(只读)”改为“学分规则(待 HR 配置)/规划参考,当前不生效”,脚本现检查当前真实文案,仍保留“规则未配置、不生效”的业务边界。
|
|
||||||
- 2026-07-14 BRD 验收脚本 marker 同步:严格预检发现候选人进度页已将真实数据加载函数调整为 `loadPage`,脚本仍检查已删除的 `buildCandidateFlow`,导致业务接口检查尚未开始就失败;现只同步 marker 到当前真实加载入口,不改变候选人业务逻辑。
|
|
||||||
- 2026-07-14 BRD 4.2/4.7 用户端岗位显示一致性补齐:员工“问师傅”页此前请求已按当前岗位检索,但页头仍固定显示“管家(生活顾问)”;现复用认证岗位状态展示岗位标签,并在页面恢复时同步更新。未新增岗位-SOP资格判断;`mobile-uni` 用户端单测增至 `56/56`,正式岗位适用范围仍需组织/HR数据确认。
|
|
||||||
- 2026-07-14 BRD 4.2/5.4 最新提交复核:功能提交 `857092c2` 已包含员工练习页岗位显示与当前认证岗位状态对齐;本地管理端主资源 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、`mobile-uni` H5 主资源 `assets/index-D4A_v1LP.js`(SHA-256 `d3642eb8ec15c6af31636be121053b24a52a782b16572b37950a321c909ec032`)和后端 jar(SHA-256 `e2dcfe01b3c6067a4600322e97b98bd97a84dbaa92a3788563dd9142a6d652b4`)已重新构建。线上仍加载旧管理端/H5资源,本轮只读复核未发布;`release-preflight.sh` 仅因 `docs/FIGMA_DESIGN_INVENTORY.md`、`docs/FIGMA_DESIGN_SYSTEM_GUIDE.md` 两份既有未提交文件停止,未执行生产写入。
|
|
||||||
- 2026-07-14 BRD 4.2/5.4 用户端岗位显示对齐:员工练习页此前虽按当前岗位请求训练数据,副标题却固定显示“生活顾问”,正式岗位映射存在时会造成界面与请求口径不一致;现复用 `getSelectedPosition()`,并在岗位同步后刷新显示,未新增资格判断或改变生活顾问演示回退。`mobile-uni` 用户端源码回归已增至 55 项通过,正式岗位与岗位-SOP资格规则仍需组织/HR数据后再实现。
|
|
||||||
- 2026-07-14 20:33 BRD/发布只读复核:当前 `HEAD=a7938a77`;管理端、`mobile-uni` H5 和后端 jar 已重新构建,产物时间晚于当前提交。当前本地管理端主资源 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 主资源 `assets/index-CfObC14z.js`(SHA-256 `e0d4a8e52c2827421fefb53a269c31c6062b0128fda62d3b00275b7bc4c53c47`)、后端 jar(SHA-256 `f6b76c54061a05bff70d54754867c448e6cfdb4e42120acb7c2103b4e52fa983`)均可用于发布。线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)和 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`);`release-preflight.sh` 已通过产物新鲜度检查,但因两份用户未提交 Figma 文档阻断,未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 最新线上只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`,H5 仍加载 `assets/index-D4-NrEpb.js`。当前 `HEAD=81060fba` 的本地产物分别为 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)和 `assets/index-C1WoTt0t.js`(SHA-256 `bfb07609acecde3678ed18bf48ce022f36596c6b946e076436fe242cf3e15675`),当前提交尚未发布;发布预检仍因两份既有未提交 Figma 文档停止,本轮未执行生产静态资源同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD G3/G6 视觉外发闸门修复:资料处理的图片 OCR/视频关键帧视觉调用此前直接查询启用模型,可能绕过 `AIHR_AI_RUNTIME_ENABLED`/`AIHR_AI_CHAT_ENABLED` 成本开关并向外部供应商发送原始图片;现复用 `AihrModelSeedService.visionAllowed()` 在共用 `visionRuntime()` 入口拦截,关闭时按既有“待处理/文本降级”语义,不新增配置。补充源码契约测试、`demo-check` marker、运行说明和演示验收说明;未改变已配置视觉模型的正常处理路径。
|
|
||||||
- 2026-07-14 BRD G3/G6 语音响应边界收紧:TTS 成功写入 `sys_oss` 后原先仍在 JSON 中重复携带完整 base64 音频,增加浏览器缓存、日志和响应体暴露面;当前 `mobile-uni` 与管理端没有消费 `inlineAudioUrl`,现改为成功只返回 OSS `audioUrl/ossId`,仅在 OSS 上传失败时保留内联 data URL 降级。ASR 已成功转写但 OSS 上传失败时,现保留 transcript 并明确无音频地址,不再把可用文字结果整体打成 500。补充源码契约测试、`demo-check` marker 和 API 对接说明;未改变音频回放授权与 OSS 留存策略。
|
|
||||||
- 2026-07-14 BRD G3/G6 生产验证码安全边界修复:`CaptchaController` 原先允许通过 `aihr.sms.demo-fixed-code-enabled=true` 在 `prod` profile 放行固定短信验证码,和项目要求的“生产代码级禁用”冲突;现仅允许非 `prod` profile 使用 `aihr.sms.dev-fixed-code`,删除生产覆盖开关,并新增源码契约回归与 `demo-check` marker。未修改线上配置或生产数据。
|
|
||||||
- 2026-07-14 本地验证环境一致性修复:项目 Docker 编排使用 MySQL `13306`、Redis `16379`,但 `application-dev.yml` 原先仍默认连接 `3306/6379`,导致 admin Spring 全量测试误连其他本机容器;现 dev 数据源改为 `AIHR_MYSQL_*`、`AIHR_REDIS_*` 可覆盖配置,默认与本项目编排一致,生产配置不变。`ruoyi-admin` 全量测试已通过。
|
|
||||||
- 2026-07-14 BRD 5.4/G3 线上岗位身份映射修复:生产关闭组织姓名/部门展示时,`orgSnapshotWhere` 原先也排除了 `person_phone`,认证 APP 用户的手机号查询可能返回空结果并错误降级为员工/手动选岗;现隐藏展示字段模式仍允许按手机号过滤,但不返回手机号或姓名部门。新增回归测试与 `demo-check` marker;线上需重新发布后再用正式组织映射数据验证。
|
|
||||||
- 2026-07-14 BRD 5.4/G3 主管团队隐私与稳定身份修复:组织快照存在且默认关闭展示字段时,主管团队成员、训练记录、派发任务和待复盘接口不再把手机号作为 `ext_party_id` 或姓名返回;历史按手机号落库的训练/派发记录会通过 `aihr_org_snapshot` 映射回稳定外部主体 ID,项目筛选也同时覆盖手机号存量记录;无项目范围的后台团队读取改为只读 active 组织快照,不再从训练表泄露姓名/手机号。新增 46 条服务回归测试覆盖稳定身份、隐藏显示字段、跨项目范围和手机号存量过滤;生产正式组织快照仍需上线后复核。
|
|
||||||
- 2026-07-14 BRD 5.4/G3 管理驾驶舱训练记录隐私修复:`AihrDashboardService` 的最近训练记录默认不再直接返回历史 `trainee_name`,只有显式开启 `aihr.org-sync.store-display-fields` 才展示名称;补充源码契约回归与 `demo-check` marker。该修复仅收紧响应展示,正式组织主体与姓名展示方案仍需生产数据和合规口径确认。
|
|
||||||
|
|
||||||
## 1. 审查口径
|
|
||||||
|
|
||||||
本记录以 [物业AI人力资源系统业务需求文档BRD.md](物业AI人力资源系统业务需求文档BRD.md) 为业务事实源,以 [FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md) 判断页面与视觉落地,以 [API_INTEGRATION.md](API_INTEGRATION.md) 和真实接口/浏览器结果判断运行闭环。
|
|
||||||
|
|
||||||
`Figma` 的 `[x]` 只表示画板对应页面已实现,不代表正式试点数据、组织权限或线上生产验收已经完成。BRD 的“阶段二个人 AI 助理”和三期运营页面不纳入当前一期修复范围。
|
|
||||||
|
|
||||||
## 2. 已确认完成的当前基线
|
|
||||||
|
|
||||||
| 领域 | 当前证据 | 结论 |
|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 员工端今日/练/问/我 | `mobile-uni/src/pages/user/*`;员工首页、训练前预习、独立练习路由已实现 | 2026-07-14 已同步线上 H5;线上主 JS 与本地构建 SHA-256 一致,学习页已显示错题本和原因筛选,后续只做发布后回归 |
|
| 已实现 | 是 | 功能提交 `6bdc86e3`,排序规则兼容修复 `32fa376d` |
|
||||||
| 主管工作台/复盘/派发 | `mobile-uni/src/pages/supervisor/*`;线上工作台已完成视觉回归 | 页面主链路已在位;正式主管身份仍依赖组织数据 |
|
| 本地自动化/API 验证 | 是 | 功能批次已完成后端、前端、移动端测试与真实本地 API 闭环;具体用例见代码测试和版本功能清单 |
|
||||||
| 训练音频对象权限 | `AihrMobileController`、`AihrPracticeSeedService`;`GET /api/aihr/mobile/oss/{ossId}` | 已按员工本人、主管项目范围和系统用户区分音频读取权限;本地真实 HTTP 验证:归属员工 200,其他员工 403;生产正式主管范围仍需组织同步数据支撑 |
|
| 本地浏览器/视觉验证 | 是 | 24 个移动端状态和 3 个管理端页面已操作并逐页截图,无页面级横向溢出、控制台错误或失败请求 |
|
||||||
| 候选人面试与 HR 复核 | `mobile-uni/src/pages/candidate/*`、`frontend/src/views/recruit/interview.vue`、`AihrInterviewController` | 候选人资料移动端上传/列表只接受 APP 候选人本人身份,HR 通过独立审核接口处理;AI 面试结果现已持久化 `待复核/已复核`、AI 分、人工复核分、最终采用分、复核人、意见和时间,管理端可提交人工复核;正式试点仍需抽查复核证据 |
|
| 已部署 | 是 | 管理端、H5、后端和 21 个版本化迁移已发布;线上产物哈希与本地发布产物一致 |
|
||||||
| SOP/RAG/资料处理 | `frontend/src/views/knowledge/*`、`backend/.../AihrSopSeedService.java` | 搜索、引用、反馈、异步处理和评审入口已在位 |
|
| 生产基础验证 | 是 | 服务 `active`;根站、H5、租户接口、员工首页 API 正常;目标 schema `34/34`,本次 18 张新表排序规则 `18/18` 对齐;管理端关键页及移动端匿名首屏已浏览器复核 |
|
||||||
| 对练/每日题/主管带教 | `backend/.../AihrPracticeSeedService.java`、`mobile-uni/src/pages/user/practice` | 每日三题现支持文字或录音转写,语音 `audioUrl/ossId` 随作业提交并持久化;普通陪练、即时反馈、低分再练、错题归因和主管带教已在位,正式窗口仍需验证真实音频与低分样本 |
|
| 生产完整业务验收 | 否 | 未用正式 OTP 重放员工/主管认证写链路,未在真实手机复验麦克风、文件/相册、下载、读屏和设备语音,也未完成严格试点窗口验收 |
|
||||||
| 案例上传/整理/筛选 | `backend/.../AihrCaseService.java`、`mobile-uni/src/pages/user/cases`、`frontend/src/views/knowledge/cases.vue` | 上传与整理已在位,案例状态在内存缺失时可从 `aihr_case_record` 回读恢复;APP 用户的读取按项目范围校验,写入接口已增加“主管/项目经理/系统用户”门禁,普通员工不能提交、整理或入库案例;原始音频现在上传到 `sys_oss` 并在 `aihr_case_record.media_oss_id/media_url` 留痕,员工端和管理端详情均可回放;案例整理摘要现在持久化真实提取的 `learning_points`,主管点评通过受保护接口脱敏后持久化并在两端详情展示;本轮补上管理端上传的项目选择与后端无项目拒绝,避免案例落成员工不可见的无范围记录;当前仍没有正式预渲染视频样片或相关训练场景契约,不能用音频回放冒充完整案例视频学习闭环 |
|
|
||||||
|
|
||||||
## 3. 未完成项与优先级
|
“已部署”不等于“正式试点通过”。当前可以确认生产包和基础运行状态,不能把未执行的正式账号、真机和业务窗口验收写成已完成。
|
||||||
|
|
||||||
### P0:必须先解决,否则不能称为正式试点完成
|
## 2. 三端输入与 BRD 匹配
|
||||||
|
|
||||||
| 缺口 | BRD依据 | 当前事实 | 下一步 |
|
| 角色端 | 当前能力 | BRD 判断 |
|
||||||
|---|---|---|---|
|
|
||||||
| 正式主管身份、项目范围和数据权限 | 5.4、L1-B、G3 | 代码已有 `aihr_org_snapshot`、岗位/项目过滤和主管接口;生产快照当前为 22 条 active、2 个项目,但手机号关联为 0/22;生产环境当前未配置 `AIHR_ORG_SYNC_*` 组织同步凭据;移动端角色查询失败已改为安全降级员工端,员工登录/路由现在通过认证的 `/api/aihr/mobile/me` 刷新官方岗位,只有组织未映射时才保留本地演示岗位回退;线上视觉测试不能替代真实主管身份验证;组织覆盖写入现在会拒绝被跳过、手机号不完整、脱敏手机号或疑似乱码的快照,除非显式传 `allowPartialReplace=true`;重复 `ext_party_id` 无论是否允许部分覆盖都直接拒绝,避免唯一键折叠不同员工身份 | 由业务/运维提供正式组织接口配置后先做 dry-run,核对项目、岗位、`ext_party_id`、手机号;补齐手机号映射并确认主管身份后,才执行正式同步和主管数据权限验收 |
|
|
||||||
| 组织快照姓名/部门存储边界 | BRD 5.4、TechSpec 3.1 | BRD 要求本地只存外部 `party_id`,当前快照历史表仍有姓名/部门字段;已增加生产默认关闭的 `store-display-fields`,新同步和快照 API 可不再写/返姓名部门,但旧行尚未清理,且 `person_phone` 仍用于身份映射 | 由业务/法务/安全确定最小字段清单和保留期;完成历史数据清理、生产迁移和管理端只读展示方案后,才能关闭该 P0 |
|
|
||||||
| G5 情绪疏导树洞隐私边界 | BRD 12.1、附录 A 第三层 | 当前仓库没有树洞入口、独立存储、留痕策略、训练集排除机制或删除/审计合同;历史一期方案明确将“情绪疏导树洞”列为一期不做。现有陪练中的情绪识别、纠偏和反馈属于训练证据,不能冒充“不留痕树洞” | 在进入正式生产前由业务、法务和安全共同确认是否纳入当前阶段;若纳入,必须单独定义匿名/身份边界、零落库与日志脱敏、模型供应商留存、删除证明和误伤升级路径;在决策和合同未明确前保持未实现,不用陪练情绪数据承接树洞诉求 |
|
|
||||||
| 外部 AI 的 PII 出境与留存 | 4.3.2、4.3.3、G3、G6 | 对练、面试、SOP、Embedding、Rerank、TTS 的文本请求已统一做最小脱敏;ASR 仍发送音频本体,视觉 OCR/视频关键帧仍发送图片本体,当前没有供应商不留存、删除证明或本地语音/视觉模型证据;视频失败日志已遮蔽文件名中的已知 PII | 正式试点前由业务、法务和安全确认供应商留存/训练/跨境条款,或切换本地模型;补音频、图片的审计与删除证据后,才能把 G3/G6 判为通过 |
|
|
||||||
| LLM/ASR/TTS 调用成本计量与自动降级 | 6.3、12.1、G6、TechSpec 3.8 | 已有 `AIHR_AI_RUNTIME_ENABLED`、`AIHR_AI_CHAT_ENABLED`、`AIHR_AI_SPEECH_ENABLED` 手动断路器;当前没有 `llm_call_log`,也没有按模块、模型、token、延迟和费用的持久化月度计量,不能把手动开关宣称为成本闸门已完成 | 先由供应商/财务确认 token 计费字段、单价、月度上限和告警阈值,再新增租户范围的调用日志与自动降级;在计费契约明确前保持手动断路器,不硬编码价格或用日志估算正式成本 |
|
|
||||||
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | 生产 `wygj-aihr.service` active,根站、租户列表和员工首页 API 返回 200;但线上仍是管理端 `index-B9T505HT.js`、H5 `index-CDn6TrX8.js`,当前分支最新提交的本地构建资源和后端包均未与线上对齐,本轮没有执行发布;生产验证码拒绝开发固定码 `123456`,认证态回归仍未完成 | 先在发布窗口执行备份、版本化迁移、静态资源/后端同步和回滚验证;随后用正式 OTP/测试账号完成员工、主管、管理端认证态回归,不能把线上 HTTP 200 或旧包 active 等同于当前提交已发布 |
|
|
||||||
| M5 正式试点证据 | L1-B/C/D、G1/G3/G4 | 已补员工训练后 1–5 分满意度和可选意见采集,意见脱敏后写入 `aihr_practice_session`,CSV/严格门禁可读满意度响应数与平均分;但本地样本不能代表正式窗口,仍不能用 seed/烟测数据替代,尚无法证明“满意度 ≥4/5” | 固定 1–2 个住宅项目和窗口,按唯一在职身份采集训练、人工校准、SOP 评审、完训率和满意度;严格门禁要求满意度有真实响应且平均分 ≥4.0/5 |
|
|
||||||
| AI 分数与人工复核边界 | 4.1、4.5、G1/G2 | 面试和对练已有人工复核/校准入口;正式试点 CSV 已补明细级 AI 分、人工校准分、校准人、校准时间和最终采用分;管理端与员工端均已显示“AI 仅作辅助参考、人可复核/否决、不直接决定绩效或晋升”;正式试点仍需用真实窗口验证人工可否决证据 | 在正式试点报告中抽查校准记录与最终采用值,确认人工分可覆盖 AI 建议且不直接挂钩绩效/晋升 |
|
|
||||||
|
|
||||||
### P1:一期 BRD 功能仍未形成完整业务闭环
|
|
||||||
|
|
||||||
| 缺口 | BRD依据 | 当前事实 | 建议实现顺序 |
|
|
||||||
|---|---|---|---|
|
|
||||||
| 岗位-SOP匹配与上岗资格 gating | 3.1、4.2、TechSpec P1 | 已补 `GET /api/knowledge/position-sop`、员工端 `GET /api/aihr/mobile/onboard/tasks`、`POST /api/aihr/mobile/onboard/tasks/{id}/complete` 与 `GET /api/aihr/mobile/qualification`;四表结构及版本化迁移已在位,任务读取和完成回写按登录 APP 身份映射正式 `ext_party_id`。当前正式映射、入职任务和资格规则均为空,资格状态仍为 `NOT_CONFIGURED`,不能作为上岗资格判断 | 先由 HR/组织系统提供正式岗位、项目、SOP 适用范围与任务/资格规则,再接 HR 派发、正式资格证据复核和任务证据抽查;不能用空表或 seed 冒充 |
|
|
||||||
| BRD 全覆盖训练场景 | 3.1、4.3.4 | 仓库已补 `service-promotion-needs`、`daily-service-followup` 两条生活顾问场景及住宅 SOP 迁移,严格门禁也检查两类核心流程;生产当前仍未迁移场景/Rubric 表和补充内容,且两类成功条件、价格/取消规则、回访口径仍需内容负责人确认 | 先在发布窗口执行场景、Rubric、SOP 迁移,再由内容负责人确认正式成功条件、合规边界和 SOP 版本;不把仓库 seed 或本地样本直接算作正式验收素材 |
|
|
||||||
| 认证等级与激励规则可配置 | 4.5、10.2-A、TechSpec M6 | 成长激励页已有初/中/高级证据包和学分口径展示,但规则仍是前端硬编码;原“排行榜”开关无实际业务作用,已移除并明确标记只读;尚无 `cert_rule`/`incentive_rule` 的持久化、版本、角色权限和生效记录 | 先由 HR 确认学分来源、分值、防刷和初/中/高级条件,再设计规则表与管理员 CRUD;在规则契约明确前,不把静态展示称为可配置 |
|
|
||||||
| 智能错题本 | 3.1、4.4、TechSpec P1 | 已补员工本人错题本和主管 `/api/aihr/mobile/practice/team` 内的 `mistakes` 聚合:按当前项目权限统计场景、归因、次数、影响人数、平均分和最近发生时间;员工端可跳转待训练 retry assignment,retry 已完成时改为显示“已完成”,不再重复引导进入已完成任务;不新增独立错题事实表 | 继续用正式组织快照和试点窗口验证主管只看到本项目数据;后续可在真实错题量上来后补趋势/导出,不把本地演示样本当正式指标 |
|
|
||||||
| 案例学习/视频详情 | 3.1、4.6、矩阵第35行 | `AihrCaseService` 已能从 `aihr_case_record` 恢复转写案例,且新增按项目范围校验的 `GET /api/knowledge/case/records/{caseId}`;原始音频已写入 `sys_oss` 并在详情回放,学习点已从真实摘要提取持久化,主管点评已有脱敏写入与两端展示;仍缺预渲染视频样片和相关训练场景契约 | 由业务提供一期样片或正式视频媒体 URL,并确定相关训练场景字段;当前不把原始音频回放冒充视频学习详情 |
|
|
||||||
| 案例库质量与数量 | L1-B、4.6/4.7 | 上传/整理/筛选路径已有;“至少20条脱敏案例”和每周每项目一条需要正式数据证明,当前也没有可用于一期样片验收的真实视频资产 | 先按项目窗口采集并脱敏检查,再补案例统计/学习详情导出;不使用空壳视频或演示 seed 冒充 |
|
|
||||||
| RAG 可用率与知识治理 | 4.7、L1-C、G3 | 搜索、引用、反馈、知识缺口和人工评审入口已有;员工反馈保存同一次搜索的 `reviewId`,SOP 评审记录和搜索响应现在保留答案生成 `promptVersion`;知识库上传、导入、向量重建、评审队列和模型配置管理接口已收紧为 `superadmin/hr_operator`;住宅核心流程覆盖率与可用率仍需正式评审数据,不能宣称完成逐问答全链路追溯 | 后续由业务确认模型/检索批次的正式版本口径,再补检索批次与模型版本;当前先用 `reviewId + promptVersion + query + fragment` 做可追溯统计,不伪造正式可用率 |
|
|
||||||
| 方言语音与多模态训练验收 | 4.3.2、4.3.3、L1-C | ASR/TTS、音频 OSS 留痕和文本降级链路已有;但当前没有四川话/粤语等方言供应商配置、样本集和准确率/响应时延证据,也没有把图像/视频训练输入纳入一期验收口径 | 先确定一期方言厂商和可接受指标,用真实短音频做至少一条方言路径回归;图像/视频输入另按场景与合规边界评审,不用通用文本链路冒充完成 |
|
|
||||||
|
|
||||||
### 2026-07-14 增量:BRD 内容数量门槛
|
|
||||||
|
|
||||||
- `scripts/demo-check.sh` 的严格模式现在额外检查已解析的住宅 SOP 文档数量 `>=5`(`aihr_knowledge_attach.type='sop' AND status=2`)、已入库案例数量 `>=20`(`aihr_case_record.status='已入库'`)和案例文本中已知手机号/邮箱/房号模式为 0。
|
|
||||||
- 这些查询只证明数量和已知模式脱敏,不证明 5 个核心流程覆盖、姓名等未结构化 PII、每周每项目产出或视频学习内容;这些仍需业务内容复核和正式窗口数据。
|
|
||||||
- `scripts/tests/demo-check-pilot-gates.test.sh` 已补充跨租户、错误状态和非 SOP 文档样本,防止严格门禁用错误数据刷过。
|
|
||||||
|
|
||||||
### 2026-07-14 候选资料上传边界复核
|
|
||||||
|
|
||||||
- 发现移动端候选资料选择器虽然只显示 PDF/Word/JPG/PNG/WebP,后端此前只校验 20MB,直接构造 multipart 请求仍可把任意扩展名文件写入 `sys_oss`。
|
|
||||||
- 已在 `AihrCandidateMaterialService` 增加服务端同源扩展名白名单,并清理文件名中的路径分隔符和控制字符;补充单测和 `demo-check` marker。该修复只收紧上传边界,不改变候选人本人绑定、HR 审核三态或现有资料表结构。
|
|
||||||
- RAG 评审追溯同时补上空问题门禁:空查询仍返回明确的无结果响应,但不再写入 `aihr_sop_answer_review`,避免误点击污染正式 SOP 可用率分母;已有 `verify_demo_questions` 演示来源跳过规则保持不变。
|
|
||||||
- 案例语音上传也补上服务端扩展名白名单(MP3/WAV/M4A/WebM/OGG/AAC/FLAC)和文件名清理,避免只依赖管理端/移动端的 `accept` 属性;该修复不改变 ASR、OSS 留痕或项目权限链路。
|
|
||||||
|
|
||||||
### 2026-07-14 增量:BRD 核心流程覆盖无法判定
|
|
||||||
|
|
||||||
- BRD 4.3.4 要求投诉处理、费用催缴、服务推介/增值、日常服务与突发应急等一期训练覆盖;TechSpec 只给出 `投诉/催费/推介/应急` 的场景类型示例,当前没有双方确认的核心流程编码表。
|
|
||||||
- 当前生活顾问启用场景只有 4 类:`投诉处理`、`催费/停车费`、`报修跟进`、`突发求助`;其中缺少明确的服务推介/增值与日常服务内容,不能用“场景总数 12”替代覆盖证明。
|
|
||||||
- 当前 `aihr_knowledge_attach` 只有文档名称、类型、状态和备注,没有 `core_flow_code` 或岗位/项目适用范围字段;本地已解析住宅 SOP 文档只有 3 个,也不能从文件名猜出 BRD 要求的 5 个核心流程。
|
|
||||||
- 因此严格门禁暂时只检查 SOP 数量,不把文件名或 `scenario_type` 自行映射成正式流程;下一步需要内容负责人确认 5 个流程编码、每个流程的 SOP 文档和成功条件,再补数据字段、管理入口和覆盖率门禁。
|
|
||||||
|
|
||||||
### 2026-07-14 增量:用户端真实数据边界复核
|
|
||||||
|
|
||||||
- 对 `mobile-uni` 员工端今日、学习中心、练习和问师傅页面做了接口失败、真实空列表和路由状态复核:接口失败时会清空对应私有数据并提示错误,真实空列表保持为空,没有把静态任务、训练记录或知识答案伪装成业务数据;练习页的投诉场景仅作为初始选择,不作为已完成记录或正式试点数据。
|
|
||||||
- `npm --prefix mobile-uni run typecheck`、`npm --prefix mobile-uni run test:unit`(49/49)和 `npm --prefix mobile-uni run build:h5` 通过;仅有 Sass 弃用提示和测试环境 WebSocket 端口占用警告,不影响退出码。
|
|
||||||
- 本轮没有发现适合在用户端继续扩展的明确安全缺口,暂不新增代码;正式未完成项仍集中在组织身份、核心流程内容、外部 AI 留存/成本、正式试点数据和发布同步。
|
|
||||||
|
|
||||||
### 2026-07-14 增量:线上资源与发布边界复核
|
|
||||||
|
|
||||||
- 生产根站、`/h5/` 和租户接口均返回 `200`,但线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)与 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`)。当前 `0f663546` 本地产物为管理端 `assets/index-CBwlIDYP.js`(SHA-256 `5ebd0ab763871b8110c01d4b7556158d14c94c0d02438fa8bfad05a5cba9e1da`)与 H5 `assets/index-Byx3WtY1.js`(SHA-256 `1d2a9d8f947e8a198c31f15a5cf4b66ba4220b1f549c4376c72cc1da56b1d7eb`),当前修复尚未与线上资源对齐。
|
|
||||||
- `scripts/release-preflight.sh` 的只读比对仍受两份既有未提交 Figma 文档阻断;本轮未执行生产静态资源同步、后端重启或业务数据写入,不把线上 `200` 认定为当前分支已发布。
|
|
||||||
|
|
||||||
### 2026-07-14 增量:正式试点导出契约复核
|
|
||||||
|
|
||||||
- `GET /api/train/practice/export` 已强制要求 `startDate/endDate`,服务层拒绝缺失日期和反向日期;CSV 契约测试 `5/5`、严格门禁 SQL 测试和 `bash -n scripts/demo-check.sh` 通过,训练/校准统计使用同一租户、日期窗口、在职组织身份和原始分子,不用四舍五入后的比率反推门禁。
|
|
||||||
- 正式数据证据仍未完成:`aihr_sop_answer_review` 已通过 `requester_ext_party_id` 保存认证 APP 用户的提问员工主体,并由严格门禁要求该主体命中当前租户在职组织快照;当前缺的是正式窗口内真实员工提问与人工评审样本,不能用字段存在或管理员烟测冒充 M5 可用率。
|
|
||||||
- 管理端三角色对练页的“导出试点 CSV”已提供日期范围选择;日期不完整或反向时按钮不可用,点击后把合法 `startDate/endDate` 传入后端。`frontend/src/views/train/pilot-export.test.ts` 已覆盖空值、非法日期、反向日期和合法窗口,当前无需再补页面逻辑。
|
|
||||||
|
|
||||||
### P2/P3:明确暂缓,不应混入当前修复
|
|
||||||
|
|
||||||
- 个人 AI 助理、个人资料库、网页抓取、引用问答、PPT 生成:BRD 4.8,阶段二。
|
|
||||||
- 开放问题榜、积分/排行榜/荣誉墙、完整七维偏好、独立 AI 教练编排:阶段二/三或后续运营范围。
|
|
||||||
- 师徒关系、拜师池、认证和带徒福利:业务已取消,继续保持不实现。
|
|
||||||
|
|
||||||
## 4. 首批执行顺序
|
|
||||||
|
|
||||||
1. 先完成正式组织快照 dry-run 与项目范围核对;不修改正式数据,不用手机号猜角色。
|
|
||||||
2. 在本地/测试环境实现“错题本只读聚合”,复用现有训练记录和 retry assignment,补 API、员工入口和主管查看边界。
|
|
||||||
3. 已补岗位学习适配摘要、正式岗位/SOP 映射读取、正式任务/资格只读展示和空表回退;下一步接正式映射数据,再实现 HR 派发、员工完成回写和有证据的资格 gating,避免先做一个无法运营的开关。
|
|
||||||
4. 在业务提供一期视频样片及字段口径后,继续扩案例详情数据契约;当前原始音频回放已完成,但不替代视频、学习点和主管点评。
|
|
||||||
5. 用正式试点窗口跑 BRD L1/M5,而不是继续增加视觉页面。
|
|
||||||
|
|
||||||
## 2026-07-14 增量:组织快照异常统计修复
|
|
||||||
|
|
||||||
- 发现 `AihrOrgSyncService.snapshot()` 的疑似乱码统计把问号写成 `like '%?%'`,问号位于 SQL 字符串字面量内,未形成有效的参数或字符匹配,导致管理端组织快照的异常计数可能恒为 0。
|
|
||||||
- 已改为 MySQL `instr(coalesce(field, ''), '?') > 0`,继续沿用当前租户和筛选条件,并补回归测试与 `demo-check` marker;本地 `ry-vue` 直接查询得到 `3473` 条快照、`8` 条疑似异常文本,与修复后的统计口径一致。
|
|
||||||
- 该修复只恢复异常计数的真实性,不代表外部组织快照已经具备完整手机号映射;正式主管身份和项目范围仍需真实组织同步数据。
|
|
||||||
|
|
||||||
## 5. 每批完成定义
|
|
||||||
|
|
||||||
- 有明确 BRD 条款、代码路径和数据证据。
|
|
||||||
- 读写权限按员工本人、主管项目范围、HR/运营角色区分。
|
|
||||||
- 真实接口或浏览器验证通过;不能验证的外部数据依赖必须标明。
|
|
||||||
- 不用 seed、烟测样本或固定演示账号冒充正式试点达标。
|
|
||||||
- 发布前同步矩阵、API 文档、验收脚本和本记录。
|
|
||||||
|
|
||||||
## 6. 本轮线上核对记录(2026-07-14)
|
|
||||||
|
|
||||||
- 线上入口 `https://peilian.njzhmj.top/h5/` 返回 `HTTP 200`;本轮管理端发布后根站点 `https://peilian.njzhmj.top/` 也返回 `HTTP 200`,生产 HTML 的 `Last-Modified` 为 `2026-07-13 19:53:16 GMT`。
|
|
||||||
- 发布前线上 HTML 引用 `index-DSualpPE.js`;同步后已改为 `index-DJfe2tlN.js`,主 JS SHA-256 均为 `56afec70ae0f404a3e4a2520b604ea797dc7c1f2a16ce558e6652cea246b45a9`。
|
|
||||||
- 使用本地数据库已有手机号和 dev 固定验证码登录线上 H5,岗位确认、员工首页和 `/pages/user/practice/index` 均可打开;这证明线上登录/基础路由可用,不证明线上包已追平当前代码。
|
|
||||||
- 发布后真实浏览器登录并打开 `/pages/user/learning/index`,页面已出现“错题本”“全部/红线话术/情绪承接/流程合规/综合得分不足”;打开 `/pages/user/practice/index` 可见训练前预习、最近练过和每日三题。
|
|
||||||
- 本次远端备份为 `/opt/wygj/backups/h5-20260714034906`(H5)和 `/opt/wygj/backups/release-20260714035418`(管理端 index/assets 与后端 jar);静态包、后端服务和 H5 资源均已发布,后续发布仍必须保留备份、资源哈希和浏览器回归三项证据。
|
|
||||||
- 发布后 hash 证据:管理端主 JS `index-CVcvQ1KE.js` 为 `a49ad7d3009ea64f37922cc042f09c1930557052e4fe20c11f8083222e0e4531`,后端 `ruoyi-admin.jar` 为 `3998f075a06f3a8014c270f66ad777606c7a04117233b7258e3326dbe516e211`,H5 主 JS 仍为 `56afec70ae0f404a3e4a2520b604ea797dc7c1f2a16ce558e6652cea246b45a9`;线上 `wygj-aihr.service` 为 active,`/prod-api/auth/tenant/list` 与 `/prod-api/api/aihr/mobile/home/user` 返回 200。
|
|
||||||
- 生产浏览器回归:管理员可登录首页和 `/system/model`;页面可见“提示词模板”列表、新增模板入口和启停控件,说明本轮管理端 UI 已加载。当前验证使用生产 admin 测试账号和 Redis 验证码,不在文档记录账号或个人数据。
|
|
||||||
- 2026-07-14 04:05 后续发布:移动端满意度采集、CSV 指标和后端接口已同步到生产;备份为 `/opt/wygj/backups/release-20260714040515`,H5 主 JS `index-5mNjsnek.js` 本地与线上 SHA-256 均为 `5c5af11be7b2b3ef7ceafd5b820fdd3e1326fcfc612b89c69b00dfe06635573c`,后端 jar SHA-256 为 `aa0bd917a2ab94ffd740ac709af2c59dd5bed6c8db995fa9aa1e80bcc4662c07`;生产浏览器实际完成训练、提交 1–5 分满意度并收到成功提示,随后已清理临时训练和派发数据。
|
|
||||||
- 2026-07-14 04:18 后续发布:SOP 反馈追溯已同步到生产;备份为 `/opt/wygj/backups/release-20260714041836`,H5 主 JS `index-Dh7w59t7.js` 本地与线上 SHA-256 均为 `0fce49deff7f95b3816cd97cf7b5f1733f31b2815162d141c27be9d1257a1f58`,后端 jar SHA-256 为 `18f4643f401aafeab3ee896d7d6341733f31b2815162d141c27be9d1257a1f58`;生产 API smoke 已验证搜索 `reviewId`、反馈写入 `review_id`,并清理 smoke 记录。
|
|
||||||
- 2026-07-14 后续审查:移动端 `/me` 在同一手机号对应多条 active 组织记录时优先识别“主管/项目经理”,避免按首条一线记录误判员工端;正式试点满意度统计改为复用安全 `org_identity`,冲突或无法唯一映射的组织身份不计入满意度分母;模型配置、提示词模板列表/写入、知识库管理/评审和后台案例标注写接口均已补 HR/管理员角色门禁;脚本行为测试已覆盖该边界,但这仍属于数据口径与权限加固,不替代正式组织同步和试点证据。
|
|
||||||
- 2026-07-14 线上只读复核:生产根站点与 `/h5/` 均返回 HTTP 200,线上 H5 入口仍加载 `index-Dh7w59t7.js`;`/prod-api/api/aihr/mobile/home/user` 返回业务 `code=200`。本次未发布、未修改生产数据;该结果只证明公开入口和员工首页 API 可用,不替代正式登录、主管身份和试点验收。
|
|
||||||
- 本次线上核对发现 schema 漂移:生产库已存在 `aihr_practice_session.satisfaction_score`、`satisfaction_comment`,但尚未显式创建 `aihr_practice_audio`。当前代码仍有运行时懒建表兜底,满意度链路不受影响;正式音频留痕试点前必须执行并核验显式迁移,不能依赖首次请求触发;严格预检已增加该表存在性检查。
|
|
||||||
- 2026-07-14 后续 BRD 审查:`组织与权限` 页已确认具备组织快照、dry-run、写入确认和 HR/管理员角色门禁;本轮修正写入模式按钮文案,并避免取消确认时误报“同步接口不可用”。岗位-SOP 页面继续明确显示“当前摘要不代表正式上岗资格”,在正式 `sop_applicability`、培训任务和资格规则未由 HR 确认前,不扩展为伪资格 gating。
|
|
||||||
- 2026-07-14 权限审查:候选人面试、案例处理、ASR/TTS、SOP 搜索/反馈/总结卡、候选人资料接口均补控制器级登录门禁;匿名首页与 `position-sop` 导航摘要仍保持公开只读,写入、模型调用和候选人私有记录不再依赖业务层“失败返回”兜底。
|
|
||||||
- 2026-07-14 案例详情审查:管理端案例详情已同步展示 `mediaUrl` 原始音频播放器,与员工端音频回放保持一致;当前仍没有正式预渲染视频样片、学习点、主管点评和相关训练场景字段,因此不把音频回放计为完整视频学习闭环。
|
|
||||||
- 2026-07-14 BRD 深度复核:重新按“业务条款→源码路径→数据证据”核对岗位-SOP、训练/错题本、案例详情、RAG、候选人面试、组织权限和成长证据,补发现首批场景尚未覆盖 BRD 明列的服务推介/增值与日常服务内容;`mobile-uni` H5 构建、类型检查与 49 个用户侧单测通过,AIHR 案例/对练定向测试 31 个通过。剩余 P0/P1 仍是正式组织映射、住宅项目试点数据、补齐场景内容、方言供应商与样本、预渲染视频资产、HR 规则契约等输入,不能用继续扩页面或未经确认的 seed 话术替代。
|
|
||||||
- 2026-07-14 候选人入职链路补齐:管理端候选人面试页新增 HR/管理员将本地候选人 ID 关联至当前租户已同步在职 `ext_party_id` 的入口,后端以独立关系表保存租户、主体 ID、状态和操作审计,不复制组织姓名/部门;关联目标必须存在于当前租户在职组织快照,重复同主体幂等,候选人更换主体或同一主体被其他候选人占用均拒绝,并由唯一约束兜底。正式组织同步和真实入职数据仍需试点验证。
|
|
||||||
- 2026-07-14 线上资源只读核对:生产管理端当前加载 `/assets/index-CVcvQ1KE.js`,可检出提示词模板标记但检不出本分支新增的 `case-audio` 管理端播放器标记;因此 `6292e741` 的管理端案例音频回放尚未发布,不能把本地源码状态当作线上状态。发布前需按现有备份、资源哈希和浏览器回归流程执行。
|
|
||||||
- 2026-07-14 发布差异取证:当前分支生产构建管理端主 JS `frontend/dist/assets/index-CJZ3Ax3Z.js` SHA-256 为 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`,后端 `backend/ruoyi-admin/target/ruoyi-admin.jar` 为 `2817e0b30a4a0bc52cd5d88a8dd68c52981698185fb5320c24fa2743ab17ccf7`;生产仍加载 `index-CVcvQ1KE.js`,远端 jar SHA-256 为 `18f4643f401aafeab3ee896d7d6341736d5d7ee2343fee0fa86992c5797adcb9`。本轮只读核对,未执行远端写入。
|
|
||||||
- 2026-07-14 06:07 发布完成:备份目录为 `/opt/wygj/backups/release-20260714060705`;管理端、`mobile-uni` H5 和后端 jar 均已同步,线上管理端加载 `index-CJZ3Ax3Z.js`,H5 加载 `index-D4-NrEpb.js`,H5 主 JS SHA-256 为 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`,后端 jar SHA-256 为 `2817e0b30a4a0bc52cd5d88a8dd68c52981698185fb5320c24fa2743ab17ccf7`;`wygj-aihr.service` active,生产根站点、`/h5/`、`/prod-api/auth/tenant/list` 和员工首页 API 均返回 200,线上管理端资源可检出 `case-audio`。重启瞬间的短暂 502 在服务启动完成后恢复,未形成持续故障;Chrome headless 已确认管理端标题、H5 标题和员工首页真实渲染。
|
|
||||||
- 2026-07-14 生产数据核验限制:通过 SSH 尝试使用默认 `root/root` 连接生产 `ry-vue` 被拒绝;本轮不读取、不修改生产业务数据,也不把本地计数或旧快照冒充当前正式组织/M5 证据。后续需运维提供只读数据库凭据或正式导出文件,核验 `aihr_org_snapshot`、`aihr_practice_audio`、校准、SOP 评审和满意度数据。
|
|
||||||
- 2026-07-14 生产 schema 修复:使用生产 `/opt/wygj/config/wygj.env` 中的数据库连接配置核对后,按仓库现有 `aihr_practice_mysql8.sql`/运行时建表定义执行 `CREATE TABLE IF NOT EXISTS`,补齐缺失的 `aihr_practice_audio`(9 列)和 `aihr_practice_calibration`(11 列);未写入任何业务行、未新增自定义字段。复核结果为 `org_active=22`、`org_phone_linked=0`、`calibration=0`、`sop_review=13`、`audio=0`,租户接口仍返回 200。该操作只解除 schema 漂移阻塞,不代表正式组织映射或 M5 试点完成。
|
|
||||||
- 2026-07-14 候选人关联发布边界核对:生产根站点与 `/h5/` 返回 200,`wygj-aihr.service` active,线上后端仍为上一版 jar;远端管理端主 JS 未包含本批 `入职主体关联/candidate-links`,本批源码已提交但尚未发布。后续发布需按现有备份、静态资源同步、后端重启和浏览器回归流程执行。
|
|
||||||
- 2026-07-14 门禁合同复核:`scripts/tests/demo-check-pilot-gates.test.sh` 通过,确认严格预检覆盖批次日期、唯一在职身份、1–2 个项目、每人至少 10 次训练、80% 完训、20 条校准、AI/人工分档一致率、SOP 可用率、满意度和音频/RAG schema;`scripts/tests/pilot-export-contract.test.mjs` 5/5 通过,AIHR 案例/对练定向测试 31/31 通过,`mobile-uni` 类型检查与 49 个单测通过。当前没有新增可安全实现的门禁缺口,剩余阻塞仍是正式组织映射、正式试点数据、视频样片和方言样本等外部输入。
|
|
||||||
- 2026-07-14 租户边界复核:AI 面试结果、候选人入职主体关联、候选人补充资料、模型配置和案例记录的查询、写入、组织身份解析均改为使用当前登录租户;无登录上下文时仅保留本地开发默认租户 `000000` 回退。该修复已覆盖案例服务的列表、详情、项目范围、贡献者校验、保存和持久化回读路径,仍需在正式多租户环境做隔离回归。
|
|
||||||
- 2026-07-14 仪表盘租户边界复核:管理端首页的面试、训练、知识库、案例、候选资料、组织和模型统计改为按当前登录租户查询;组织同步写入和组织快照查询也改为当前登录租户;无登录上下文时保留本地开发默认租户回退。尚未把批量知识处理队列和完整 SOP 服务的全部租户调用统一替换,后续继续按数据敏感度分批审查。
|
|
||||||
- 2026-07-14 SOP/RAG 租户边界复核:知识库搜索、知识缺口、SOP 问答评审、答案反馈、异步导入任务、文档/片段/向量写入及 Qdrant tenant filter 改为当前登录租户;无登录上下文时回退本地开发租户 `000000`。定向 AIHR 测试 48/48 通过;正式多租户检索隔离仍需在测试环境做跨租户回归,批量上传队列仍待单独审查。
|
|
||||||
- 2026-07-14 剩余固定租户审查:`AihrPracticeSeedService` 仍有 79 处运行时 `TENANT_ID`,覆盖场景、训练记录、派题、复盘、导出和 Prompt 管理;这些路径可按同步请求上下文分批迁移。`AihrUploadQueueService` 仍有 19 处固定租户引用,但其后台 worker 会脱离登录线程并调用 SOP 加工,不能机械替换为 `LoginHelper`;下一步需让队列条目携带租户、worker 按条目租户加工,并补跨租户领取/隔离测试。
|
|
||||||
- 2026-07-14 训练租户边界修复:`AihrPracticeSeedService` 的场景、训练记录、派题、复盘、导出、Prompt、标注和音频明细运行时查询/写入统一使用当前登录租户;无登录上下文回退本地开发租户 `000000`。定向 AIHR 测试 48/48、管理端完整打包均通过。`AihrUploadQueueService` 仍保留固定租户,原因是后台 worker 需要下一批显式携带条目租户后再调用 SOP 加工,避免机械替换造成跨租户队列停摆。
|
|
||||||
- 2026-07-14 异步上传队列租户边界修复:请求入队、查询和重试按当前登录租户;后台领取按队列条目租户跨租户扫描,文件加工通过 `TenantHelper.dynamic` 进入对应租户,ZIP 子条目、失败回写和卡死清扫均沿用条目租户;新增队列结构回归测试。AIHR 全量测试 50/50、`ruoyi-admin` 跳测试打包通过;正式多租户文件上传、向量写入和跨租户隔离仍需测试环境回归。
|
|
||||||
- 2026-07-14 目录导入异步任务租户边界修复:`startLocalImportTask` 捕获当前租户,并用 `TenantHelper.dynamic` 包住整个后台导入 worker,任务进度、取消状态、OSS/片段/向量写入不再因脱离登录线程回退到 `000000`;新增异步上下文回归测试。正式多租户目录导入仍需测试环境验证。
|
|
||||||
- 2026-07-14 线上只读复核:生产根站点、`/h5/`、租户列表和员工首页 API 均返回 200;线上仍加载管理端 `index-CJZ3Ax3Z.js` 与 H5 `index-D4-NrEpb.js`,本地最新租户边界修复提交 `6ec17726`、`c95cb1ff` 尚未发布。本次未修改生产环境,发布前需先做测试环境跨租户上传/目录导入回归。
|
|
||||||
- 2026-07-14 异步队列清扫修复:上传队列 worker 的卡死任务清扫改为跨租户扫描,避免无登录线程回退到 `000000` 后只清理默认租户;实际加工、失败回写和 SOP 处理仍按队列条目租户隔离。`AihrUploadQueueServiceTest` 与 AIHR 全量测试 51/51 通过;双租户上传/目录导入仍需测试环境回归。
|
|
||||||
- 2026-07-14 移动端短信登录租户修复:手机号查询补充 `tenant_id` 条件,避免同一手机号在不同租户登录时复用其他租户的 `sys_user`;新增认证策略边界回归测试。正式多租户登录仍需用测试租户账号做 HTTP 回归。
|
|
||||||
- 2026-07-14 测试租户 HTTP 回归:在本地临时建立 `codex-a`/`codex-b` 两个租户,用同一手机号分别登录并授予各自 `superadmin` 测试角色;两租户分别调用异步上传和目录导入接口。A 查询不到 B 的上传批次/导入任务,B 也查询不到 A;两个目录导入任务均完成 `1/1`。后台 worker 的队列加工、目录导入、任务进度和查询均保持租户隔离。测试产生的租户、用户、角色、知识库行和临时文件已清理为 0。该证据只覆盖本地测试环境,不替代正式组织同步和生产多租户验收。
|
|
||||||
- 2026-07-14 上传队列上下文收口:`AihrUploadQueueService` 的同步请求租户读取改为 `TenantHelper.getTenantId()`,动态租户上下文优先于登录态,避免重试/嵌套任务回退到错误租户;`AihrUploadQueueServiceTest` 已补对应源码契约断言。AIHR 定向测试与模块编译通过。
|
|
||||||
- 2026-07-14 发布前检查补齐:新增只读 `scripts/release-preflight.sh`,统一核验当前 commit、管理端/H5/后端产物存在性、入口 JS 和 SHA-256;传入 `RELEASE_REMOTE_URL` 时只做公开根站点与租户列表 HTTP 检查,不执行 SSH、rsync、服务重启或生产写入。`docs/DEV_SETUP.md` 已同步发布证据与回滚留痕要求。
|
|
||||||
- 2026-07-14 当前状态复核:本地 `ry-vue` 组织快照有 `3001` 条 active 记录,但手机号可映射仅 `1` 条、项目 `41` 个,不能作为正式 1–2 项目试点身份数据;线上根站、`/h5/` 和租户接口均返回 `200`,但线上管理端仍加载 `index-CJZ3Ax3Z.js`,本地现有构建产物为 `index-Cz1rtpOj.js`,且发布预检被两份已有未提交 Figma 文档阻断,因此未把最新本地提交宣称为已发布。该组织身份结论已由 2026-07-15 线上组织同步闭环条目替代。
|
|
||||||
- 2026-07-14 BRD 公开导航回归:`GET /api/knowledge/position-sop` 明确是一期生活顾问学习导航摘要,不返回个人或项目私有数据;控制器补 `@SaIgnore` 后匿名请求返回 `200`,而同一控制器的 `POST /api/knowledge/search` 仍返回业务 `401`,保持“公开只读导航、登录后查询与反馈”的边界。同步完成跨租户异步上传成功路径回归:codex-a/codex-b 各上传独立文件并加工为 `status=2`,互查批次均为空;临时租户、用户、队列、知识库、OSS 与暂存文件已清理。
|
|
||||||
- 2026-07-14 BRD G3 仪表盘权限收口:`/api/aihr/dashboard/overview` 返回组织、训练、知识库、案例和候选资料统计,控制器新增显式 `@SaCheckLogin`;匿名请求业务返回 `401`,同时保留服务层按当前租户过滤。后续正式主管可见范围仍需组织快照和项目权限数据支撑。
|
|
||||||
- 2026-07-14 BRD G3 主管接口权限复核:移动端主管/团队/预警/派题/复盘接口对后台系统用户现在要求 `superadmin` 或 `hr_operator` 角色;APP 用户仍要求组织快照中的主管/项目经理身份。新增源码契约测试与 `demo-check` marker,避免普通后台账号越权读取团队训练数据或创建派题。
|
|
||||||
- 2026-07-14 BRD G1 评级语义复核:管理端、员工端和证据包文案已将“当前等级/AI等级”明确为“训练画像参考等级”,并标注需 HR/主管人工复核;AI 结果仍只作训练与晋升证据参考,不直接生成正式晋升结论。
|
|
||||||
- 2026-07-14 BRD G5 边界复核:BRD 将“情绪疏导树洞”列为生产前隐私闸门,但一期历史方案又明确标注为一期不做;当前代码没有树洞入口、独立数据隔离或“不留痕/不进训练集”证明。该项不能用陪练情绪识别、红线纠偏或满意度意见替代,后续需业务/法务/安全先确认是否纳入当前阶段,再决定设计与实现。
|
|
||||||
- 2026-07-14 只读发布前复核:生产根站点、`/h5/`、租户列表和员工首页 API 均返回 200;当前本地提交 `8105413d` 的管理端主资源 `index-BWnisJoz.js` 与后端 jar 尚未与生产资源/hash 对齐,H5 仍与生产 `index-D4-NrEpb.js` 一致。本轮未发布、未修改生产数据;后续若发布管理端 OCR 状态修正或后端批次,必须重新执行备份、资源 hash、服务状态和浏览器回归。
|
|
||||||
- 2026-07-14 线上资源复核更新:生产管理端仍加载 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),当前本地管理端构建加载 `index-CIgkCgjC.js`(SHA-256 `f0e9bca71dc2ee484745f0d4058079c54f493cf0be51bfe279f1da64dd62dcfd`);两者不一致。生产主资源已包含既有“提示词模板”能力,但不能据此证明本地最新成长激励/资料处理修复已上线。
|
|
||||||
- 2026-07-14 09:29 只读发布核对:生产根站点、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 200;生产仍加载管理端 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)与 H5 `index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`),当前提交 `896495dd` 的本地构建为管理端 `index-DF7MSq-V.js`(SHA-256 `96969b2ae71192cb08b3b2f14edb84355dce6b00679f8237d508ab392c97d7d9`) 与 H5 `index-CVrAL1eh.js`(SHA-256 `4e416176e5b390d1a1a174375d1da820b317b017c00fd0549ffae3f0da77d06d`),本轮候选资料、案例音频和 RAG 评审修复尚未发布;本次未执行远端写入。
|
|
||||||
- 2026-07-14 07:30 只读发布预检:当前本地提交 `9832caa4` 的管理端构建加载 `index-Cz1rtpOj.js`(SHA-256 `558392609617377b8327918c411887fc6766d1e545e0a703e2fc3dbaaa1d1a66`),生产仍加载 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`);生产根站点和租户接口均返回 200。本次只读核对,未发布;最新主管权限与评级语义修复尚未在线上生效。
|
|
||||||
- 2026-07-14 BRD G3/G6 外发文本复核:发现对练、面试调用的共享 LLM 边界和 SOP 总结卡独立直连路径此前把原始文本直接放进外部模型请求;新增 `AihrSensitiveText`,在模型请求体写出前统一遮蔽手机号、邮箱、房号和带称谓姓名,结构化候选人姓名改为匿名角色,TTS 文本也走同一规则,并补源码契约/规则测试。案例转写入库前已有文本脱敏,但 ASR 接收的是音频本体、视觉 OCR 接收的是图片本体,无法在本地转写/识别前可靠遮蔽语音或图片中的 PII;正式试点仍需供应商不留存/合规合同或本地语音/视觉模型、审计与删除证明,不能把文本脱敏说成完整 G3/G6 通过。
|
|
||||||
- 2026-07-14 BRD G3 训练接口权限复核:发现三角色对练控制器缺少类级登录门禁,匿名请求理论上可伪造 `extPartyId` 创建训练会话;已为 `AihrPracticeController` 增加 `@SaCheckLogin`,并补源码契约测试与 `demo-check` marker。管理员和员工端既有登录链路不变,场景读取、训练创建、回合提交和完成记录统一要求登录;本地真实 HTTP 对匿名 `/api/train/practice/start` 验证为业务 `401`。
|
|
||||||
- 2026-07-14 外部错误信息复核:ASR、TTS、LLM、组织同步和视频处理路径已不再把外部响应体、ffmpeg 输出或视频识别异常原文写入日志/业务异常;新增的隐藏响应体与视频错误契约测试通过。该修复只收紧错误暴露,不改变模型失败后的 seed/文本降级链路;ASR 原始音频与视觉图片出境的供应商留存和删除证明仍未解决。
|
|
||||||
- 2026-07-14 只读发布预检:当前分支 `37b8ed97` 工作区干净,管理端本地构建资源为 `index-Cz1rtpOj.js`,生产仍加载 `index-CJZ3Ax3Z.js`;`mobile-uni` 本地与生产仍为 `index-D4-NrEpb.js`。生产根站点与租户接口均返回 200。本轮新增后端登录/错误信息修复尚未发布,未执行生产写入或重启。
|
|
||||||
- 2026-07-14 G3 错误暴露复核:继续扫描 AIHR 后端后,补齐 ASR/TTS 调用、TTS 临时文件、模型回退、面试/对练解析、案例上传/摘要、组织同步、目录导入、RAG 重排/总结卡和异步上传队列的原始 `Exception.getMessage()` 日志或状态回传;统一改为固定错误提示,保留原有 seed/文本降级和重试行为。AIHR 全量测试 `55/55`、`bash -n scripts/demo-check.sh`、`git diff --check` 通过;当前未发现同类日志/任务状态暴露点。该修复已提交为 `c16dc0e2`,尚未发布生产。
|
|
||||||
- 2026-07-14 G3 复核补充:异步上传入队的暂存文件写入异常也改为固定提示“暂存文件写入失败,请重试或联系管理员”,不再把本地 `IOException` 原文返回给前端;AIHR 全量测试仍为 `55/55`,修复提交为 `7f519dd8`,尚未发布生产。
|
|
||||||
- 2026-07-14 G3 认证边界复核:`AihrMobileController` 增加类级 `@SaCheckLogin`,仅保留 `/home/{role}` 方法级 `@SaIgnore` 作为公开只读入口;新增源码契约 marker,避免后续移动端新增接口意外匿名开放。AIHR 全量测试 `55/55`、脚本语法和空白检查通过,修复提交为 `343213cf`,尚未发布生产。
|
|
||||||
- 2026-07-14 只读发布预检:当前提交 `596d204d` 工作区干净,`release-preflight.sh` 通过;生产根站点与租户接口均返回 200。生产管理端仍加载 `index-CJZ3Ax3Z.js`,本地构建资源为 `index-Cz1rtpOj.js`;H5 生产与本地均为 `index-D4-NrEpb.js`。本轮后端认证与错误信息修复未发布,未执行生产写入或重启。
|
|
||||||
- 2026-07-14 G3 面试数据权限复核:发现 `/api/recruit/interview/records` 对普通后台登录用户只要求登录,可能读取当前租户全部候选人面试记录;现改为后台系统用户必须具备 `superadmin` 或 `hr_operator`,APP 候选人仍强制绑定本人手机号查询。新增源码契约测试,AIHR 全量测试 `56/56`、脚本语法和空白检查通过,修复提交为 `13e5545c`,尚未发布生产。
|
|
||||||
- 2026-07-14 G3 案例写入权限复核:发现案例上传、整理和标注入口对任意已登录后台系统用户放行,与 BRD 的 HR/主管/项目负责人边界不一致;现收紧为 `superadmin`/`hr_operator`,APP 用户继续通过组织快照中的主管/项目经理身份校验。新增源码契约测试,AIHR 全量测试 `57/57`、脚本语法和空白检查通过,修复提交为 `a728904a`,尚未发布生产。
|
|
||||||
- 2026-07-14 G3 案例读取权限复核:发现案例列表和详情对任意已登录后台系统用户返回当前租户数据,存在普通后台账号横向读取案例资产的风险;现收紧为 `superadmin`/`hr_operator`,APP 用户保留登录后的项目范围读取。新增源码契约测试,AIHR 全量测试 `57/57`、脚本语法和空白检查通过,修复提交为 `b0d24970`,尚未发布生产。
|
|
||||||
- 2026-07-14 G3 驾驶舱权限复核:发现管理驾驶舱只要求登录,APP 用户或普通后台账号理论上可读取当前租户的组织、训练、知识库、案例和候选人汇总;现收紧为 `superadmin`/`hr_operator`,主管团队数据继续走移动端项目范围接口。新增源码契约测试,AIHR 全量测试 `58/58`、脚本语法和空白检查通过,修复提交为 `7522794d`,尚未发布生产。
|
|
||||||
- 2026-07-14 后续 BRD P1 复核:认证/晋升规则、岗位-SOP 资格 gating、方言样本、正式案例视频样片与组织项目范围仍依赖 HR/运维输入;当前不继续用硬编码、演示 seed 或新增页面伪造完成,下一批优先接正式规则与试点数据后再实现。
|
|
||||||
- 2026-07-14 BRD 4.5.1 五维能力画像对齐:员工端与管理端画像现在统一返回“任务完成度、话术规范性、情绪管理能力、响应时效、增值转化潜力”五项;话术规范性由现有合规+沟通陪练分数作为训练代理,情绪和增值转化分别由陪练情绪/营销分代理。任务完成度当前以 SOP 执行/问题推进代理,响应时效在有陪练回合耗时证据时按代理分返回,正式工单闭环率、首解率、首响时长和处理周期仍显示待采集,不把代理指标伪装成 BRD 正式绩效指标。
|
|
||||||
- 2026-07-14 BRD 五维画像展示语义收紧:员工端、管理端和证据包导出将平均对练分称为“训练综合分”,缺失的五维指标统一显示“待采集”,不再把空值导出为 `null` 或把训练综合分称为正式绩效总分。
|
|
||||||
- 2026-07-14 BRD 动态难度复核:场景表已有 `difficulty` 字段,但开始训练仍按用户/主管传入的场景直接启动,没有基于连续高分自动升级复合高压场景的规则、候选场景映射、人工关闭开关或升级证据。该项需要 HR 确认连续高分阈值、升级范围和降级条件后再实现,当前不以固定阈值直接改变员工训练难度。
|
|
||||||
- 2026-07-14 线上资源复核:生产根站、`/h5/` 和租户接口均返回 `200`;生产管理端仍加载 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),当前本地构建为 `index-DF7MSq-V.js`(SHA-256 `96969b2ae71192cb08b3b2f14edb84355dce6b00679f8237d508ab392c97d7d9`),管理端五维画像修复尚未发布;mobile-uni 线上与本地均为 `index-D4-NrEpb.js` 且 hash 一致。发布预检仍因两个既有 Figma 文档未提交而阻断,本轮未执行生产写入或重启。
|
|
||||||
- 2026-07-14 只读发布预检:当前提交 `07557656` 工作区干净,本地管理端、`mobile-uni` H5 与后端 jar 均有产物;生产根站点与租户接口返回 200。本轮权限修复尚未执行生产同步、服务重启或业务数据写入,不能把本地提交视为线上已生效。
|
|
||||||
- 2026-07-14 AI 面试人工复核闭环:`aihr_interview_result` 现在持久化 AI 分、人工复核分、最终采用分、复核状态、复核人、意见和时间;HR/管理员可通过 `/api/recruit/interview/records/{sessionId}/review` 复核,候选人端无该角色权限。`finish` 响应同步返回真实 `sessionId`,便于后续复核定位。AIHR 全量测试 `65/65`、真实本地 HTTP 烟测和旧库懒迁移验证通过;正式试点仍需抽查人工复核证据,生产尚未发布。
|
|
||||||
- 2026-07-14 线上资源只读核对:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;生产管理端仍加载 `index-CJZ3Ax3Z.js`,本地当前管理端构建为 `index-D4ywKu9Y.js`。本次只读检查,未执行生产写入、静态资源同步或后端重启,因此不能把本地人工复核修复宣称为线上已生效。
|
|
||||||
- 2026-07-14 BRD G3 面试会话归属复核:发现候选人端 `answer/finish` 原先只按客户端提交的 `sessionId` 查内存会话,未知会话还会自动创建并落库;现由控制器把当前 APP 手机号传入服务,APP 请求必须匹配启动会话的候选人 ID,外部会话和未知会话统一拒绝;后台系统调用保留原有兼容行为。新增越权/未知会话回归测试与 `demo-check` marker,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 对练会话归属复核:发现三角色对练的 `start` 虽已绑定 APP 手机号,但 `turn/finish` 原先可用任意会话 ID继续提交,未知会话还会回退场景并落成训练记录;现由控制器把当前 APP 手机号传入服务,移动端回合与完成操作必须匹配启动会话的 `ext_party_id`,外部/未知会话统一拒绝;后台管理端调用保留原有演示兼容行为。新增越权/未知会话回归测试与 `demo-check` marker,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 主管身份多记录复核:同一手机号可能对应多条在职组织记录,主管身份检查和团队范围解析现从全部匹配记录中选择“主管/项目经理”,不再因第一条记录是一线岗位而误拒主管或选错项目范围;新增多岗位手机号回归测试,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 移动端角色降级复核:`/api/aihr/mobile/me` 组织快照查询异常时原先会直接返回 500,与“组织身份不可用时安全降级员工端”的口径不一致;现捕获组织查询运行时异常并返回员工端默认身份,同时仅记录固定错误提示,不泄露外部/数据库错误详情;新增源码契约 marker,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 移动端公开首页复核:`/api/aihr/mobile/home/{role}` 保留未登录首屏能力,但匿名请求此前会读取员工训练统计和主管团队完训/低分/待复盘数据;现改为匿名只返回无租户业务统计的静态 seed,已登录 `mobile-uni` 自动携带 `Authorization/clientid` 后,员工只读取本人统计、主管只读取组织快照解析出的项目范围统计,普通员工请求主管角色直接拒绝;已补 service、controller、前端请求、源码契约和真实 HTTP 回归测试;未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 公开入口扫描:AIHR 当前仅保留公开的移动端静态首页和岗位-SOP 导航两个 `@SaIgnore` 入口;训练、上传、搜索、复盘、模型、组织同步等控制器均有登录或角色门禁,未发现新的匿名写入或业务数据公开入口;未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 项目范围复核:发现主管身份和团队范围查询仍使用 `LIMIT 1`,同一手机号关联多个在职项目时可能只取首个项目,导致主管团队数据漏项;现改为收集全部主管/项目经理项目编码并合并其在职成员与手机号范围,保留一线员工仅查看本人数据的降级边界。新增多项目范围回归测试;AIHR 全量测试 `70/70` 通过,未修改生产环境。
|
|
||||||
- 2026-07-14 发布差异复核:本地最新提交 `2f36476e` 已包含主管多项目范围修复,但 `release-preflight.sh` 因两份既有未提交 Figma 文档阻断;生产根站和 `/h5/` 均返回 `200`,生产管理端仍加载旧资源 `index-CJZ3Ax3Z.js`。本轮未执行生产写入、静态资源同步或服务重启,不能把本地权限修复视为线上已生效。
|
|
||||||
- 2026-07-14 BRD 4.4 每日三题口径复核:当前 `ensureDailyDrills` 以“移动端训练记录少于 3 次”作为新员工近似条件;`aihr_org_snapshot` 只有快照日期,没有入职/任职起始日期,因此不能证明“入职 3 个月内”,也不能用账号创建时间替代。当前保留该近似仅用于 Demo;正式试点需由组织同步提供并确认 `hire_date/entry_date` 字段后,再把每日派题资格改为真实任职日期判断。
|
|
||||||
- 2026-07-14 BRD G3 移动首页权限复核:发现公开首页方法对已登录 SYS 用户仍可能调用全局统计分支;现要求只有 APP 用户且身份非空才读取员工/主管动态数据,后台系统用户和异常身份统一返回无业务统计的公开 seed。AIHR 全量测试 `70/70` 通过,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD G3 音频读取权限复核:发现移动端音频下载接口对已登录 SYS 用户未校验角色,普通后台账号理论上可枚举 `ossId` 读取训练录音;现复用 `superadmin/hr_operator` 门禁,APP 用户继续按本人/主管项目范围校验,其他身份返回 403。AIHR 全量测试 `70/70` 通过,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD 4.4 每日三题资格补强:每日派题现在在组织快照存在 `hire_date` 列时按“入职日期至今不超过 3 个月”判断,边界按自然月且包含当天;旧 Demo 快照没有该列时继续使用“移动端训练记录少于 3 次”的兼容回退。正式试点仍需在外部组织同步落地并校验 `hire_date`,不能把回退口径当成正式新员工资格。
|
|
||||||
- 2026-07-14 BRD 4.4 每日三题提交幂等复核:前端虽已禁用已完成题,后端原先仍允许重复 POST 覆盖答案、反馈和音频证据;现要求查询和更新均只接受“当天、本人、`status='待训练'`”的记录,并校验更新行数,已完成或历史日期记录保留原始证据,重复或并发请求按“不存在或已完成”处理。
|
|
||||||
- 2026-07-14 BRD 4.4 派发任务启动复核:移动端带 `assignmentId` 开始训练时,后端现校验任务属于当前员工、来源不是每日题、状态仍为“待训练”,并校验请求场景与派发场景一致;自由选场景请求不受影响,避免客户端改写 `scenarioId` 后错误完成主管派发任务。
|
|
||||||
- 2026-07-14 BRD 4.4 派发任务完成归属复核:训练结束时原先再次信任客户端 `finish.assignmentId`,可能把员工名下另一条待训任务误标为完成;现只使用开始会话中服务端绑定的 `ActiveSession.assignmentId` 更新任务,客户端不能替换完成对象。
|
|
||||||
- 2026-07-14 BRD G3 候选资料审核状态复核:候选人资料审核接口此前在空请求体时默认写回“待审核”,可能覆盖已有“已通过/已驳回”状态;现要求审核动作显式提交三态之一,空值和未知状态直接拒绝,避免后台误操作回退审核结论。
|
|
||||||
- 2026-07-14 BRD 案例署名复核:案例库已有负责人字段,但此前上传、整理和入库记录都硬编码为“培训组”,无法追溯案例贡献者;现复用既有 `owner` 字段保存首次上传身份,整理和入库阶段保留原署名,手机号身份仅显示员工末四位,避免把原始手机号写入案例展示。
|
|
||||||
- 2026-07-14 BRD 候选人关联完整性复核:候选人—员工关联接口此前只校验员工主体在职,允许给不存在的任意 `candidateId` 建立入职关联;现要求候选人必须来自内置候选档案、活动面试会话或当前租户已持久化面试记录,保留已有幂等关联和历史数据兼容。
|
|
||||||
- 2026-07-14 BRD SOP 审核留痕复核:SOP 问答评审接口此前接受请求体中的 `reviewer` 并直接入库,登录用户可伪造审核人;现由控制器从当前登录用户传入服务端操作人,请求体仅保留评审结论和备注,保留旧服务调用的默认“人工评审”兼容。
|
|
||||||
- 2026-07-14 BRD 知识答案反馈复核:原先只更新 `review_status`,没有复核人和复核时间;现由服务端记录登录操作人到 `reviewer/reviewed_time`,管理端待复核表同步展示留痕。
|
|
||||||
- 2026-07-14 BRD 知识反馈归属复核:答案反馈原先信任客户端传入的片段 ID,未校验知识片段是否属于当前租户;现入库前按当前租户校验片段归属并限制单次最多 20 个片段。
|
|
||||||
- 2026-07-14 BRD 知识反馈关联复核:答案反馈原先直接接受客户端传入的 `reviewId`;现仅保留当前租户存在的 SOP 评审关联,非法或跨租户 ID 归一为空。
|
|
||||||
- 2026-07-14 BRD 候选资料审核留痕:候选资料审核此前只有状态三态,没有审核人和审核时间;现由服务端从当前 HR 登录态写入 `reviewer/reviewed_time`,管理端审核表同步展示。
|
|
||||||
- 2026-07-14 BRD 试点门禁租户参数化:严格试点预检此前将 M5 查询固定到 `tenant_id='000000'`,正式试点切换租户时会统计错误;现支持经过字符白名单校验的 `AIHR_PILOT_TENANT_ID`,默认仍为本地开发租户,试点命令和文档已同步。
|
|
||||||
- 2026-07-14 BRD SOP 人工评审结论完整性:`POST /api/knowledge/reviews/{id}` 现在要求明确提交 `usable=true/false`,空请求或缺少结论会拒绝,不再把未作答误记为“不可用”;`reviewer` 仍由当前登录操作人写入。已补服务层回归测试与 `demo-check` marker,但这只修正评审数据完整性,不代表住宅 SOP 可用率已达到正式试点门槛。
|
|
||||||
- 2026-07-14 线上只读核对:生产根站点、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`,当前线上仍加载管理端 `index-CJZ3Ax3Z.js` 与 H5 `index-D4-NrEpb.js`;本地 `8fcc58fe` 的 SOP 评审结论校验尚未发布。`release-preflight.sh` 仍因两份既有 Figma 文档未提交而阻断,本轮未执行生产写入、静态资源同步或后端重启。
|
|
||||||
- 2026-07-14 BRD 4.6 案例发布状态复核:员工端案例列表和详情原先只按租户/项目范围读取,未限制案例状态,理论上可能看到仍处于“已转写/已整理”的管理流程半成品;现对 APP 项目范围读取增加 `status='已入库'`,管理端 HR/管理员仍可查看全部状态以继续处理。新增案例服务回归测试,AIHR 全量测试 `81/81` 通过;视频样片、学习点和主管点评仍需正式业务输入。
|
|
||||||
- 2026-07-14 BRD 案例提交能力边界复核:移动端案例页原先对所有登录员工展示“提交素材”表单,但后端仅允许主管/项目负责人提交,普通员工点击后才得到权限错误;现新增只读 `GET /api/knowledge/case/capabilities`,复用服务端唯一贡献者判定,员工端仅在 `canSubmit=true` 时展示提交入口,其他员工显示案例学习说明。后端权限仍保留为最终防线。
|
|
||||||
- 2026-07-14 线上只读发布差异:生产根站和 `/h5/` 返回 `200`,生产仍加载 H5 `assets/index-D4-NrEpb.js`;本地 `b8be1bb6` 构建已生成 `mobile-uni/dist/build/h5/assets/index-u8NWYNWX.js`,案例状态过滤和提交能力入口尚未发布。本轮未执行生产静态资源同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 4.7 SOP 指标口径复核:正式试点的 SOP 可用率与待评审数现只统计评审表中 `category='sop'` 或名称包含 `SOP` 的记录,并继续按租户和试点日期窗口过滤;培训类或其他知识问答不会混入正式 SOP 分母。后端导出、严格预检和单测夹具已统一该条件;岗位与住宅项目的正式适用性仍需组织/HR 规则输入,不能仅靠分类字符串替代。
|
|
||||||
- 2026-07-14 BRD 4.4 每日三题结果留痕补强:每日三题提交返回的分数此前只存在响应内,刷新任务列表后无法恢复数值分数;现新增 `aihr_practice_assignment.score`,提交、查询、员工学习页均保留“得分 + 反馈”。当前得分仍来自可解释关键词规则兜底,不把它宣称为语义级 AI 评分;后续若启用模型评估,需单独补评分模式、成本闸门和人工抽检证据。
|
|
||||||
- 2026-07-14 BRD 4.4 每日一练评分能力复核:当前 `scoreDailyDrill` 使用参考答案关键词命中和长度规则即时反馈,属于可解释的规则兜底,不等同于 BRD 所称的语义级“AI 秒评”;正式升级前需确认模型、成本闸门、评分维度和人工抽检样本,当前不把规则分数宣称为 AI 评测结果。
|
|
||||||
- 2026-07-14 BRD G6 成本计量复核:模型调用已有手动运行断路器,但当前没有 `llm_call_log` 或等价的租户级 token、延迟、费用持久化;由于供应商计费字段、单价和月度阈值尚未确认,本轮不新增价格硬编码或生产数据表,先把该项保留为生产前闸门。
|
|
||||||
- 2026-07-14 TechSpec 3.8 调用反馈补强:模型测试接口成功调用时现在返回供应商 `prompt_tokens/completion_tokens/total_tokens` 和本次 `latencyMs`;未配置、成本断路器或调用失败仍返回空 usage,不伪造 token 或费用。该反馈可作为后续 `llm_call_log` 的输入,但不等于已完成月度成本计量和自动阈值降级。
|
|
||||||
- 2026-07-14 线上只读发布差异复核:生产根站点、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`;生产管理端仍加载 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`),当前本地构建为管理端 `index-BM4_rycA.js`(SHA-256 `f5a0fa82a20bb242ebad85f72dca6330faa7d0d51435876210528e84053a2e93`)和 H5 `index-Byx3WtY1.js`(SHA-256 `1d2a9d8f947e8a198c31f15a5cf4b66ba4220b1f549c4376c72cc1da56b1d7eb`)。本轮未执行生产同步、重启或数据写入,不能把本地 BRD 修复宣称为线上已生效。
|
|
||||||
- 2026-07-14 发布预检补强:`scripts/release-preflight.sh` 新增可选 `RELEASE_VERIFY_REMOTE_MATCH=true`,发布后可从线上 HTML 解析管理端/H5 主 JS 并与本地产物 SHA-256 对比;默认不开启,不影响发布前检查。当前只读核验仍显示两端 hash 不一致,尚未执行生产同步。
|
|
||||||
- 2026-07-14 异步上传队列租户审计校正:此前“队列仍使用固定租户、待按条目租户改造”的记录已被后续实现覆盖。当前入队、列表、详情和重试按请求租户隔离;worker 领取时读取并 CAS 校验行内 `tenant_id`,加工通过 `TenantHelper.dynamic(tenantId, ...)` 进入条目租户,成功/失败回写、ZIP 子条目和卡死清扫均沿用条目租户;`AihrUploadQueueServiceTest` 已覆盖这些源码契约。`000000` 仅保留为无登录本地开发回退。结论:当前未发现队列跨租户处理缺口,正式多租户仍需测试环境持续回归。
|
|
||||||
- 2026-07-14 BRD schema 状态校正:早期记录中的 `aihr_practice_audio` 缺失已由后续生产 schema 修复覆盖;当前仓库 reset SQL、运行时建表定义和生产核验记录均包含该表,严格预检继续保留显式存在性检查。后续若正式试点启用音频留痕,仍需抽查真实音频行和 OSS 对象权限,不把“表存在”当成音频链路验收完成。
|
|
||||||
- 2026-07-14 最新线上资源复核:生产根站与 `/h5/` 均返回 `200`,线上管理端 `index-CJZ3Ax3Z.js` SHA-256 为 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`,H5 `index-D4-NrEpb.js` SHA-256 为 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`;当前 HEAD `1757dcb8` 重建后的本地入口分别为 `index-v0LFXtVo.js` SHA-256 `0fc78c86e734be76aeb8ae03a551f98df9f689db5352a92af77c781c70efccde`、`index-Byx3WtY1.js` SHA-256 `1d2a9d8f947e8a198c31f15a5cf4b66ba4220b1f549c4376c72cc1da56b1d7eb`。两端仍未发布,本轮只读核验,无静态资源同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 生产迁移资产复核:`aihr_practice_audio`、`aihr_practice_calibration` 已存在于 reset SQL 和运行时懒建表定义,但 `backend/script/sql/update/` 尚无对应版本化生产迁移脚本;生产 schema 曾通过人工 `CREATE TABLE IF NOT EXISTS` 修复。当前不把 reset SQL 或懒建表当正式发布迁移,待 DBA/运维确认迁移归属和执行窗口后,再补经审阅的幂等脚本并做回滚/结构核验。
|
|
||||||
- 2026-07-14 BRD 用户端入口复核:员工端“问师傅/练/学习中心/案例学习”均已有真实页面和业务路径;“工作上报”进入明确的建设中页,但该能力属于阶段二信息直达或阶段三北森/报事集成范围,不属于一期陪练缺口。当前不把建设中入口改成空壳功能,待对应阶段专项计划和接口契约确定后再实现。
|
|
||||||
- 2026-07-14 BRD G3/G6 异步模型租户上下文复核:`AihrModelSeedService` 原先用 `LoginHelper.getTenantId()` 解析模型配置,异步上传队列、目录导入等 worker 虽已用 `TenantHelper.dynamic(tenantId, ...)`,进入模型/语音/RAG调用后仍可能因无登录态回退 `000000`;现统一改用动态租户优先的 `TenantHelper.getTenantId()`,普通请求仍回退登录租户,补源码契约测试。覆盖模型配置、对练/面试、语音、SOP 向量/重排/视觉和异步资料加工的共享边界;未修改数据库或生产环境。
|
|
||||||
- 2026-07-14 测试门禁复核:父 POM 默认 `skipTests=true`,普通 `mvn ... test` 只完成编译;改用 `-DskipTests=false` 真跑 AIHR 测试时发现 `AihrSensitiveTextTest` 仍检查已移出 `AihrModelSeedService` 的 `latencyMs` 字符串,已按当前 `ModelUsage + Duration` 实现修正断言。后续 AIHR 测试命令必须显式关闭跳测,避免把编译成功误判为测试通过。
|
|
||||||
- 2026-07-14 最新线上只读复核:生产根站与 `/h5/` 返回 `200`,线上管理端仍加载 `index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`);当前分支 `b32be4a3` 工作区本地构建仍为管理端 `index-v0LFXtVo.js`、H5 `index-Byx3WtY1.js`,两端资源未对齐。本轮只读核验,未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 5.4 主数据边界复核:发现 `aihr_org_snapshot` 及 `AihrOrgSyncService` 当前仍持久化并通过管理端组织快照返回 `project_name/dept_name/person_name`,同时保留 `person_phone` 做移动端身份映射;这与 BRD“本地只存外部 `party_id`,绝不复制姓名/部门”的硬约束不一致。TechSpec 3.1 又把 `sync_person.name/phone` 列为外部同步快照字段,项目现有 Demo/管理端也依赖姓名、部门和项目展示,因此不能直接删列或清空生产数据,否则会破坏组织筛选、主管范围展示和训练记录标签。该项暂列 P0 合规缺口:正式组织同步前必须由业务/法务/安全确认“生产只存 ID 与必要映射”还是允许受控显示缓存,并给出迁移、脱敏和管理端展示方案;在决策完成前不执行正式覆盖同步,也不把当前组织快照称为符合 BRD 5.4。
|
|
||||||
- 2026-07-14 BRD 用户端权限路由复核:后端已对主管接口做身份与项目范围校验,但登录后普通员工请求主管深链时此前仍会先进入主管页面,再由接口返回无权限空态;现将 `mobile-uni` 的员工角色路由显式收口到员工首页,并补用户端源码回归断言与 `demo-check` marker。该修复只改善路由边界,不替代正式组织岗位映射;线上仍需用正式组织身份验证主管角色。
|
|
||||||
- 2026-07-14 BRD 5.4 渐进缓解:增加 `aihr.org-sync.store-display-fields` 开关,生产配置默认 `false`,开发配置显式 `true`;关闭时组织同步不再写入姓名/部门,组织快照接口也不返回历史姓名/部门,关键词搜索同步收窄为外部主体、项目和岗位字段,管理端人员列回退显示 `ext_party_id`。该修复降低新同步和 API 暴露风险,但不等于完成数据模型迁移:历史生产行仍可能保留旧显示字段,`person_phone` 仍是身份映射必要字段,正式上线前仍需 DBA/法务确认清理、保留期和最小字段方案。
|
|
||||||
- 2026-07-14 BRD 5.4 前端回退复核:生产关闭组织显示字段后,成长激励页人员选择器原先仍直接渲染 `personName`,会出现“空姓名 / 岗位”;现统一回退为 `personName || extPartyId`,与组织权限页、主管复盘页保持一致,并加入 `demo-check` 防回归标记。该修复只保证最小身份展示,不改变 BRD 5.4 的历史数据迁移和正式组织同步结论。
|
|
||||||
- 2026-07-14 BRD 4.5 认证规则复核:成长激励页、证据包和后端画像均明确“训练画像参考等级/需 HR 或主管复核”,学分规则显示“待 HR 配置、当前不生效”;后端初/中/高级阈值仅用于训练证据展示,未作为正式资格、晋升或绩效结论。当前无需再加一套伪配置页面,待 HR 明确 `cert_rule`/`incentive_rule` 的来源、版本、生效时间、防刷和人工审批后再实现持久化规则。
|
|
||||||
- 2026-07-14 BRD 4.7/10.2 内容指标语义复核:管理驾驶舱原先把“已处理 SOP 文档数”直接标成“B1 目标 >=5 流程”,可能把文档数量误判为核心流程覆盖;现改为“`SOP文档` / 核心流程覆盖待内容确认”,并保持提醒态。待内容负责人确认 5 个核心流程编码和适用范围后,再增加正式覆盖率统计。
|
|
||||||
- 2026-07-14 BRD L1-D 组织人数口径复核:管理驾驶舱原先把当前租户 `aihr_org_snapshot` 的 active 人数直接标成“试点人数”,但该数量不代表正式窗口内有唯一在职身份、手机号映射和训练参与记录;现改为“`组织快照人数` / 正式试点身份待核对”,并保持提醒态。正式试点人数仍以限定窗口和唯一组织身份统计为准。
|
|
||||||
- 2026-07-14 BRD L0-2 端到端路径口径复核:管理驾驶舱原先把面试、训练、案例、知识四个数据域是否有记录的数量标成“端到端路径”,这不能证明任一英雄路径从入口到结果完整跑通;现改为“`已有业务数据域` / 不等于端到端验收”,真实链路仍以浏览器/API 证据为准。
|
|
||||||
- 2026-07-14 BRD L1 主页状态口径复核:驾驶舱阶段卡片原先把组织快照存在直接显示为“已接入”,SOP 文档数达到 5 直接显示为“已满足”;现统一改为“快照已存在”和“已处理文档、核心流程待确认”,避免首页状态越过正式组织同步和内容覆盖证据。
|
|
||||||
- 2026-07-14 BRD 6.3 演示回退语义复核:资料处理中心接口失败时仍保留内置演示统计用于断网演示,但此前没有明确标识,可能被误读为真实库数据;现增加“当前显示演示数据,不代表真实库统计”提示,真实接口成功时不显示该提示。
|
|
||||||
- 2026-07-14 最新线上只读复核:生产根站、`/h5/` 和租户接口均返回 `200`;线上管理端主资源 `index-CJZ3Ax3Z.js` SHA-256 为 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`,H5 主资源 `index-D4-NrEpb.js` SHA-256 为 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`;当前本地构建为管理端 `index-Cin-vnjm.js` SHA-256 `ca210da50942693d52fb103fe34785be31e2bd263c7d11c0a60959c4dd90deaa`、H5 `index-Byx3WtY1.js` SHA-256 `1d2a9d8f947e8a198c31f15a5cf4b66ba4220b1f549c4376c72cc1da56b1d7eb`。本轮只读核对,未执行生产同步、重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 6.3 案例回退语义复核:案例列表接口失败时原先只弹一次提示并静默展示内置案例记录,可能被误读为真实案例库数据;现增加持久的“当前显示演示记录,不代表真实案例库数据”提示,接口恢复后自动消失。该修复只校正演示回退语义,不增加案例数量或替代正式案例资产。
|
|
||||||
- 2026-07-14 BRD G3 异步资料队列租户复核:队列领取与卡死清扫按所有租户扫描,单条加工从队列条目携带的 `tenant_id` 进入 `TenantHelper.dynamic(tenantId, ...)`,状态回写继续带租户条件;定向 `AihrUploadQueueServiceTest` 通过。当前仍缺真实双租户上传/目录导入回归,不能仅凭源码契约测试宣称生产隔离已验收。
|
|
||||||
- 2026-07-14 BRD 6.3 模型配置回退语义复核:模型供应商/模型接口失败时原先会静默保留内置默认清单,仅通过一次性 toast 提示;现增加持久的“当前显示内置默认清单,不代表真实租户配置”提示,接口恢复后自动消失。该修复不改变模型配置、密钥或调用降级规则。
|
|
||||||
- 2026-07-14 BRD 6.3 提示词模板回退语义复核:模型配置页的提示词模板接口失败时原先直接显示空列表,无法区分真实无模板与接口不可用;现增加持久的“当前列表不代表真实租户模板数据”提示,接口恢复后自动消失。该修复不创建默认模板,也不改变模板写入权限。
|
|
||||||
- 2026-07-14 BRD 6.3 AI 面试记录回退语义复核:面试记录接口成功返回空列表时原先会错误替换为内置历史记录,接口失败时也只静默回退;现保留真实空列表,仅失败时展示演示记录并增加持久提示“当前显示演示记录,不代表真实面试数据”。该修复不改变面试题生成、评分或复核流程。
|
|
||||||
- 2026-07-14 BRD 6.3 复盘与 SOP 数据来源复核:复盘页在试点指标接口失败时原先用待复盘记录数代替校准样本数,现改为显示未知并持久提示接口不可用;SOP 文档表继续保留断网演示样例,但为内置演示/已上传记录增加来源标识和提示,避免把演示文档或列表数量误当真实库覆盖与 M5 指标。
|
|
||||||
- 2026-07-14 BRD 6.3 对练记录回退语义复核:管理端三角色对练页原先始终显示三条静态最近记录,未请求真实复盘记录;现改为 API 优先,真实空列表保持为空,只有接口失败才显示演示记录并持续提示。当前会话完成后追加到现有列表,不再重置时覆盖历史记录。
|
|
||||||
- 2026-07-14 BRD 6.3 管理端记录首屏回退复核:面试、案例和三角色对练页此前在接口结果返回前就初始化内置 `baseRecords`,慢请求期间可能把演示记录误看成真实业务记录;现统一改为加载期间空表加 loading,只有接口明确失败后才展示演示记录并保留持久提示,真实空列表继续保持为空。补充 `demo-check` 静态标记,管理端 ESLint 与构建通过;本轮未发布生产。
|
|
||||||
- 2026-07-14 BRD 6.3 候选人记录失效回退复核:首页、进度和资料页刷新接口失败时原先保留上一次成功结果,错误提示出现但旧面试/资料仍可被误读为当前状态;现统一在失败时清空失效数据,登录过期仍沿用原有跳转提示。补充候选端源码回归测试、`demo-check` 标记,`mobile-uni` 单测 `50/50`、类型检查和 H5 构建通过;本轮未发布生产。
|
|
||||||
- 2026-07-14 线上资源差异复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`;线上管理端仍加载 `/assets/index-CJZ3Ax3Z.js`,H5 仍加载 `/h5/assets/index-D4-NrEpb.js`,当前本地构建分别为 `/assets/index-ClaGy0E5.js`(SHA-256 `788247429e1e20d10306258747d08abdc6903f57fe1313a3e742d141ddcd77fb`)和 `/h5/assets/index-C5pwI-WO.js`(SHA-256 `9d1c53f98561799f4b13fda37e7a25899d4ccc877a3d54a93369bfbfc984dbf7`)。当前只读核验,未执行生产静态资源同步、后端重启或业务数据写入;发布预检继续保留未提交文件保护。
|
|
||||||
- 2026-07-14 发布预检卫生复核:根目录 `node_modules/` 确认为构建工具生成物,已加入 `.gitignore`,避免依赖目录阻塞发布检查;`RELEASE_VERIFY_REMOTE_MATCH=true` 的预检仍因两份用户未提交的 Figma 文档退出,说明未绕过“发布批次必须干净”的保护。
|
|
||||||
- 2026-07-14 BRD G3 匿名入口复核:扫描 AIHR 全部控制器后,当前仅保留两个 `@SaIgnore` 方法:公开移动首页 `/api/aihr/mobile/home/{role}` 和岗位-SOP 导航 `/api/knowledge/position-sop`;训练、搜索、上传、复盘、模型、组织同步及音频读取均有登录或角色门禁,未发现新的匿名业务数据入口。本轮无新增代码修复。
|
|
||||||
- 2026-07-14 BRD M5 导出指标语义复核:`formal_org_login_count` 原名会把按安全手机号映射统计的在职组织身份误读为登录次数;现统一更名为 `formal_org_identity_count`,统计 SQL 不变,CSV 契约、严格校验和验证脚本同步更新。AIHR 目标测试 `34/34`、CSV 契约测试 `5/5` 通过;不改变真实试点数据门槛,也未发布生产。
|
|
||||||
- 2026-07-14 BRD G3/M5 评审样本绕过复核:SOP 搜索的 `source=verify_demo_questions` 原由客户端直接控制,普通登录用户可借此跳过评审样本写入,稀释正式可用率分母;现仅超级管理员保留该内部验证来源,其他请求自动归一为普通 `knowledge_search`,并补预检标记与回归测试。未修改生产环境。
|
|
||||||
- 2026-07-14 M5 试点输出口径复核:严格预检的组织映射数量已与 CSV 的 `formal_org_identity_count` 统一显示为 `org_identity`,并同步行为测试断言;统计逻辑不变,避免把在职组织身份映射数误读为登录次数。未修改生产环境。
|
|
||||||
- 2026-07-14 BRD 4.7/G3 反馈追溯复核:答案反馈原先只校验客户端传入的 `reviewId` 属于当前租户,可能把其他问题的同租户评审记录绑定到当前反馈;现同时校验评审记录中的脱敏问题文本与反馈问题一致,不一致时仅清空关联、不阻断正常反馈写入,并补源码契约与预检标记。未修改生产环境。
|
|
||||||
- 2026-07-14 线上只读核对:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`,线上仍加载管理端 `index-CJZ3Ax3Z.js` 与 H5 `index-D4-NrEpb.js`;本轮 `aa7e1508`、`5d85d63c` 两个 BRD 修复提交尚未发布。未执行生产同步、重启或业务数据写入。
|
|
||||||
- 2026-07-14 发布证据链复核:`release-preflight.sh` 原先只检查构建产物存在和 hash,旧产物可能被误当成当前提交发布;现增加跨 macOS/Linux 的产物时间门禁,管理端、H5 入口/主资源和后端 jar 必须不早于当前 `HEAD`,否则明确要求重建。该修复只收紧本地发布前检查,未修改生产环境。
|
|
||||||
- 2026-07-14 BRD 发布边界复核:基于当前 `HEAD=0433250b` 重新构建管理端、`mobile-uni` H5 和后端 jar 后,`release-preflight.sh` 的产物新鲜度检查通过;线上根站与 `/h5/` 仍返回 `200`,但线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`、H5 `assets/index-D4-NrEpb.js`,本地当前产物分别为 `assets/index-ClaGy0E5.js`、`assets/index-C5pwI-WO.js`。预检随后因两份用户未提交的 Figma 文档停止;本轮未修改、暂存或提交这两份文档,也未执行生产同步、后端重启或业务数据写入,因此当前 BRD 修复仍未被证明在线上生效。
|
|
||||||
- 2026-07-14 BRD 4.3.4 门禁补强:严格试点预检不再只按启用场景数量判断覆盖,新增“服务推介/增值”和“日常服务”场景存在性统计;当前仅增加事实检查,不臆造场景内容,场景成功条件、SOP 适用范围和正式质量仍需内容负责人确认。行为测试夹具已覆盖两类统计,严格门禁会在缺任一核心流程时明确失败。
|
|
||||||
- 2026-07-14 BRD G3 个人数据边界复核:移动端个人历史、错题、画像、晋升证据和任务读取共用 `ownMobileExtPartyId`;此前普通系统用户可传任意 `extPartyId`,绕过 HR/管理员角色读取员工个人数据。现统一要求系统用户具备 `superadmin` 或 `hr_operator`,APP 用户仍只使用登录手机号,主管团队接口继续走独立项目范围校验;补源码回归断言,未改变数据库或生产数据。
|
|
||||||
- 2026-07-14 BRD G3 空身份路径复核:员工任务列表省略 `extPartyId` 时此前会进入空身份查询,普通系统用户可能看到当前租户任务集合;现与个人历史/画像共用同一身份归一化,APP 用户按登录手机号、HR/超级管理员按授权范围读取,普通系统用户直接拒绝;补回归断言,未改变数据库或生产数据。
|
|
||||||
- 2026-07-14 BRD 发布证据复核:当前 HEAD 的管理端、`mobile-uni` H5 和 `ruoyi-admin` jar 均已重新构建通过;只读线上根站与 `/h5/` 均返回 `200`,线上仍加载管理端 `index-CJZ3Ax3Z.js`、H5 `index-D4-NrEpb.js`,本地当前产物已刷新为管理端 `index-Cin-vnjm.js`、H5 `index-Byx3WtY1.js`。`RELEASE_VERIFY_REMOTE_MATCH=true` 的发布预检在产物新鲜度通过后,因两份用户未提交 Figma 文档停止;本轮未修改、暂存或提交这两份文档,也未执行生产同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 4.3.4 内容现状核对:本地开发租户当前启用生活顾问场景 `12` 条,但服务推介/增值场景 `0` 条、日常服务场景 `0` 条;已入库案例 `2` 条,知识附件处理数 `0` 条。严格预检继续把两类核心流程和正式内容数量作为事实门禁;本轮不自拟业务话术或伪造知识/案例数据,待内容负责人提供正式 SOP、成功条件和脱敏素材后再入库验收。
|
|
||||||
- 2026-07-14 BRD G1/4.5 证据包评分边界修复:成长/晋升证据包此前只展示 AI 测评分,人工校准结果仅存在于试点 CSV;现复用 `aihr_practice_calibration` 最新记录,向管理端和员工端同时返回人工校准分、最终采用分和校准样本数,并在导出证据包中保留三项字段。未校准时明确显示“待采集”,不把 AI 分伪装成人工结论;AI 仍仅作训练参考,不直接生成绩效或晋升结论。
|
|
||||||
- 2026-07-14 BRD 4.5/4.7 案例贡献证据边界复核:现有 `aihr_case_record.owner` 仅保存负责人展示值(系统用户或员工末四位),没有稳定 `ext_party_id`、采纳审核任务或 `incentive_point.source='case_contribution'` 关联;当前案例上传/入库数量不能安全算作员工案例贡献。成长证据包现明确提示“案例上传/入库”与“正式采纳、署名、积分”分离,未把案例数量伪装成晋升证据;待 HR 确认 `review_task` 终审、署名和积分规则后,再设计正式关联与统计。
|
|
||||||
- 2026-07-14 BRD 4.5/B5 贡献度口径修复:能力画像此前把训练次数和待复盘状态混入 `contribution`,会将训练活跃度误显示为有效贡献;现将贡献度收敛为 `aihr_practice_session.incentive_point` 的人工确认分,训练次数继续单独展示。未新增积分来源或自动案例计分,正式案例贡献仍等待 `review_task`/署名/积分规则。
|
|
||||||
- 2026-07-14 BRD 4.4 错题本任务来源展示修复:员工学习中心此前把所有非每日题任务统一显示为“专项训练”,会遮蔽 `retry` 错题再练和 `camp` 训练营来源;现按服务端来源分别显示“错题再练/训练营/专项训练”,并保留每日三题标签与样式区分。该修复只校正任务语义展示,不把 `source='camp'` 标签扩展成未配置的训练营计划、进度或完成规则。
|
|
||||||
- 2026-07-14 BRD 4.5/G1 员工画像文案复核:员工端此前将训练画像参考等级简称为“训练画像等级”,将人工确认的 `incentive_point` 简称为“贡献度”;现明确显示“训练画像等级(参考)”和“人工贡献分”,避免把参考画像或未配置正式激励规则的分数误读为晋升/绩效结论。
|
|
||||||
- 2026-07-14 14:08 线上资源只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`,H5 仍加载 `assets/index-D4-NrEpb.js`,当前本地提交 `ac7dfbe8` 的构建分别为 `assets/index-B3bSjqdi.js`(SHA-256 `2ff13b11307631f9cd672247d6d08e395fb674ac5b9c6f7c4fb27832eacdf075`)和 `assets/index-K8ty6kmk.js`(SHA-256 `b238291fef841d4ff57ce76cb2ddfa50eaa3778c53a475fab9cf1284a1da33c9`)。本轮仅只读核对,未同步静态资源、重启后端或写入生产数据。
|
|
||||||
- 2026-07-14 BRD G3 组织快照质量门禁修复:生产默认关闭 `store-display-fields` 时,`AihrOrgSyncService` 原先在 `orgRow()` 内先清空姓名/部门,再以已屏蔽的 `OrgRow` 计算 `suspectText`,外部姓名/部门中的问号乱码可能被漏报,覆盖写入保护因此不完整。现先基于外部原始字段计算 `suspectText`,再独立保存质量标记;展示字段仍按生产脱敏策略清空,组织表结构和写入字段不变。新增 `AihrOrgSyncServiceTest` 回归和 `demo-check` marker;未修改生产数据。正式同步仍需真实上游快照、手机号映射和法务确认。
|
|
||||||
- 2026-07-14 BRD 4.3.4 每日三题资格边界修复:`aihr_org_snapshot` 没有 `hire_date` 时,旧逻辑用“移动端训练记录少于 3 次”推断新员工,可能把老员工或临时账号误派每日三题。现仅在本地 `application-dev.yml` 显式开启 `allow-legacy-daily-drill-fallback=true`;生产默认关闭,正式环境必须等组织同步提供 `hire_date` 后再按三个月窗口派发。新增边界测试和 `demo-check` marker;不改数据库结构,不伪造正式新员工数据。
|
|
||||||
- 2026-07-14 BRD 4.3.4 每日三题生产 profile 硬门禁:旧回退即使被环境变量显式打开,仍可能在生产 profile 生效;现仅允许 `dev/local` profile 使用训练次数兼容回退,`prod` 或混合 profile 强制关闭。新增 profile 边界测试和 `demo-check` marker;未修改数据库结构或生产数据。
|
|
||||||
- 2026-07-14 BRD 6.3 SOP 来源标识修复:SOP 检索成功时前端原先忽略 API 返回的 `records`,后端返回的内置记录也没有来源字段,可能把演示文档显示成真实知识库;现 API 成功态只使用响应记录,内置记录明确标记 `source=demo`,失败/未检索态继续保留已有回退提示。未修改知识库数据或生产环境。
|
|
||||||
- 2026-07-14 当前线上资源复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端 `index-CJZ3Ax3Z.js` SHA-256 为 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`,当前分支构建 `index-B3bSjqdi.js` SHA-256 为 `2ff13b11307631f9cd672247d6d08e395fb674ac5b9c6f7c4fb27832eacdf075`;线上 H5 `index-D4-NrEpb.js` SHA-256 为 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`,当前分支构建 `index-8gZKJTho.js` SHA-256 为 `c6b01faeba4198cb7ff9f5c2ffa88f1cc97c8ecdf20be86f432ca7a1d673f3e1`。本轮只读核验,未执行生产静态资源同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 4.4 场景派发覆盖复核:数据库已有 12 个生活顾问场景,但移动端主管“指派专项”和“复盘后再练”此前只提供 3 个静态场景,导致其余已启用场景无法从主管入口使用;现改为 API 优先加载已启用场景,失败时保留 3 个本地兜底。BRD 所称 7–14 天专项训练营目前仍只有 `source='camp'` 标签,没有训练营计划、天数、每日任务、进度和完成规则,需 HR 确认内容与运营口径后再实现,不以标签冒充训练营闭环。
|
|
||||||
- 2026-07-14 BRD G3/M5 派发来源完整性复核:主管派发接口此前信任客户端 `source`,理论上可把手工派发伪装成 `daily`、`retry` 或 `camp`,污染每日题、低分再练和训练营统计;现将主管创建任务的来源固定为服务端 `manual`,`daily/retry` 仍只由各自系统路径生成。新增服务源码回归测试与 `demo-check` marker,未修改生产数据。
|
|
||||||
- 2026-07-14 BRD M1 场景启停边界复核:停用场景此前在新训练启动时可能因内置 seed 回退而继续可用,管理端“停用”不具备实际阻断效果;现仅在新开始训练前检查数据库场景的 `enabled` 状态,已停用场景明确拒绝,历史训练/复盘读取不受影响。新增服务源码回归测试与 `demo-check` marker,未修改生产数据。
|
|
||||||
- 2026-07-14 BRD M1 派发场景状态与展示一致性复核:修复停用场景仍可通过直接派发接口进入待训练,以及客户端传入场景名称可与场景 ID 不一致的问题;主管派发现在复用启停校验,记录名称始终取服务端场景定义。历史任务读取不受影响,未修改生产数据。
|
|
||||||
- 2026-07-14 BRD M1 场景筛选回退语义复核:场景表查询成功但岗位/类型没有启用场景时,旧逻辑仍回退到内置场景,可能把不匹配或已停用场景展示给员工/主管;现仅在数据库异常时保留 seed fallback,真实空结果保持为空,并补岗位筛选回归测试。未修改生产数据。
|
|
||||||
- 2026-07-14 BRD M1 主管场景入口回退复核:后端已启用场景 API 优先,但主管指派页模板仍循环三条静态场景,且 API 正常空结果会继续显示静态选项;现改为循环 API 场景,真实空结果显示“暂无可派发的已启用场景”,只有请求失败才使用本地兜底。复盘后再练入口同步保持真实空结果为空,未修改生产数据。
|
|
||||||
- 2026-07-14 BRD 4.4 任务来源展示补齐:首页“今日安排”和练习页“最近练过”此前只把非每日任务显示为场景名/“专项训练”,会遮蔽主管派发的错题再练与训练营来源;现统一显示“每日三题/错题再练/训练营/专项训练”标签。该修复只补来源可见性,不把 `source='camp'` 扩展为尚未确认的训练营计划、进度或完成规则。
|
|
||||||
- 2026-07-14 BRD 4.5/B5 训练时长口径修复:能力画像此前用“完成次数 × 8 分钟”估算训练时长,无法作为真实时长证据;现复用 `started_time/finished_time` 按实际秒数聚合并换算分钟,无时间证据的历史记录按 0 计。未新增表字段;正式试点仍需核对时间来源、异常时长和课程学习时长是否纳入统一口径。
|
|
||||||
- 2026-07-14 BRD 4.5/B5 人工贡献分默认值修复:管理端主管复盘表单此前默认填入 `10` 分,单纯点击“标记已复盘”可能产生未经主管确认的贡献分;现改为可选空值,只有明确填写的 `0–100` 分才提交并计入画像,页面文案同步为“人工贡献分”。后端既有空值保留逻辑不变,未新增积分来源;正式激励规则仍需 HR 确认。
|
|
||||||
- 2026-07-14 BRD G3/4.5 人工评审身份留痕修复:对练校准和主管复盘接口此前接受客户端传入的 `reviewer`,可能把人工证据归到伪造的操作人;现由控制器从当前登录用户绑定校准人/复盘人,请求字段仅保留兼容,不再作为身份来源。补源码契约回归和 `demo-check` marker;正式试点仍需抽查校准记录、复盘建议与实际主管/HR 账号的对应关系。
|
|
||||||
- 2026-07-14 BRD 4.5/G1 复盘证据状态边界修复:人工校准此前只按 `session_id` 查询,主管复盘更新也未显式要求完成时间,理论上可对未完成训练或非移动对练记录写入复核证据;现统一要求 `mode='mobile'` 且 `finished_time IS NOT NULL`,历史已完成记录不受影响。补服务回归断言和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD M5 人工校准样本完整性修复:校准接口此前在 `correctedTotal` 为空时自动复制 AI 原分数,空提交也会增加“人工校准样本”并可能虚高一致率;现要求明确提交人工总分,空值直接拒绝,前端请求类型同步改为必填。新增服务回归测试和 `demo-check` marker,不改变已有校准记录。
|
|
||||||
- 2026-07-14 BRD G2 面试复核证据状态边界修复:AI 面试复核此前只按租户和 `session_id` 更新,未显式要求结果已完成且存在 AI 总分;现要求 `finished_time IS NOT NULL` 且 `total_score IS NOT NULL`,避免对未完成或不完整结果写入人工复核证据。新增服务回归断言和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD G2 面试复核版本一致性修复:同一面试会话重复 `finish` 时,AI 结果 upsert 此前会更新 AI 分数但保留旧人工复核分,可能把旧人工结论挂到新结果;现重复完成会清空人工复核分、复核人、意见和时间并恢复“待复核”,要求对新结果重新人工确认。新增服务回归断言和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 4.1 面试作答完整性修复:面试 `finish` 此前允许没有任何对应题目有效回答仍生成本地 55 分结果并进入人工复核;现要求至少提交一条有效面试回答,空面试不落结果表。新增服务回归测试和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 4.1 面试完成门禁收紧:前端要求完成全部面试题,但后端此前只要求至少一题有效回答,部分回答仍可生成面试结果;现 `finish` 要求所有服务端题目均有非空回答,空/部分回答均不落结果表。新增部分作答回归测试和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 发布状态只读复核:生产根站、`/h5/`、租户列表和员工首页 API 均返回 `200`,但线上仍加载管理端 `assets/index-CJZ3Ax3Z.js` 与 H5 `assets/index-D4-NrEpb.js`;当前分支 `c4f98b9a` 的面试完成门禁修复尚未发布。本轮未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 4.1 面试证据输入边界修复:`answer/finish` 此前接受不存在于服务端题目列表的 `questionId`,可能把伪造字段写入回答快照;现统一拒绝未知题目 ID,评分和持久化只接受本次服务端生成的题目集合。新增 answer/finish 回归测试和 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 生产迁移资产补齐:`aihr_practice_audio`、`aihr_practice_calibration` 此前只有 reset SQL 和运行时懒建表,生产曾依赖人工建表;现新增可重复执行的 MySQL 8 版本化迁移脚本,仅补齐结构、不写入业务数据。仍需由运维在正式发布窗口执行并核对生产 schema,不能把脚本存在视为迁移已执行。
|
|
||||||
- 2026-07-14 最新线上只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)与 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`),本地最新提交 `e0da5f0a` 尚未发布;本轮未执行生产同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD 4.4 入职日期数据链路补齐:组织快照初始化 DDL、外部组织同步和旧库懒迁移现在统一保存 `hire_date`,每日三题在存在该字段但记录缺日期时仍只允许本地 `dev/local` 的显式训练次数兼容回退,生产不会用训练次数推断新员工;新增 MySQL 8 版本迁移与严格预检字段/身份门禁。未写入试点业务数据,正式环境仍需外部组织同步实际提供入职日期并执行迁移。
|
|
||||||
- 2026-07-14 BRD 4.5.1 五维评分规则数据对齐:对练 `/finish`、复盘、校准和画像代码已补齐任务完成度、话术规范性、情绪管理能力、响应时效、增值转化潜力五项;本轮同步 reset SQL、运行时 seed fallback 和现有生活顾问 Rubric 迁移为 40%/25%/20%/10%/5%,严格预检新增五维 Rubric 数量与权重和检查。任务完成度当前以 SOP 执行/问题推进代理,响应时效当前以陪练回合响应耗时代理;工单闭环率、首解率、正式首响/处理周期仍待业务系统与 HR 确认,未把代理指标宣称为正式绩效口径。迁移只改评分规则结构,不写训练、校准或 SOP 业务样本。
|
|
||||||
- 2026-07-14 BRD 4.5.1 回退路径一致性修复:数据库异常或演示回退时,后端 seed 和管理端本地场景此前仍可能返回旧四维/错题卡;现统一返回 BRD 五维,缺少真实回合耗时的响应时效明确为“待采集”,不使用旧错题字段冒充评估维度。新增运行时回归测试与 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD G3 控制器匿名入口复核:AIHR 控制器当前仅保留移动首页和岗位-SOP 导航两个 `@SaIgnore` 公开只读方法;训练、SOP 搜索/反馈、案例、候选人资料、音频、复盘、模型和组织同步入口均有登录或 HR/管理员角色门禁。本轮未发现适合继续收紧的代码缺口;线上根站与 `/h5/` 只读返回 `200`,不代表当前本地修复已发布。
|
|
||||||
- 2026-07-14 BRD 发布预检业务码修复:`release-preflight.sh` 此前只检查线上 HTTP 状态,HTTP 200 但业务 JSON 返回 `code=401/405` 仍可能被记录为通过;现对远端租户接口同时校验业务 `code=200`,并同步发布说明。线上根站和 `/h5/` 仍只读返回 200,本轮未发布或写入生产。
|
|
||||||
- 2026-07-14 发布预检业务码误匹配修复:业务码校验进一步收紧为 JSON 顶层首字段 `code=200`,不再接受嵌套对象中的同名 `code=200`;本地成功/嵌套失败样例与线上租户接口均验证通过。三端产物已重建且时间不早于当前提交,完整预检仍因两份用户未提交的 Figma 文档停止,本轮未发布生产。
|
|
||||||
- 2026-07-14 BRD 最新线上只读复核:生产根站与 `/h5/` 返回 `200`,线上仍加载管理端 `assets/index-CJZ3Ax3Z.js` 与 H5 `assets/index-D4-NrEpb.js`;当前本地提交 `94d483d3` 构建资源分别为 `assets/index-Cv2wI9UI.js`(SHA-256 `cd6e3eab4a684141ccd64617dcde4d99030c9c13f7da618c11e1709c04f244a0`)和 `assets/index-Dq7sfWZP.js`(SHA-256 `f8499e5f261cc06d02de275e285e4a7c946dd6ef54fd29b3a1c0bc7a9a689c3d`)。本轮只读核验,未执行生产静态资源同步、后端重启或业务数据写入;五维修复仍未被证明在线上生效。
|
|
||||||
- 2026-07-14 BRD 4.7/M5 SOP 试点评审主体留痕修复:SOP 搜索生成评审记录时,现仅从已认证 APP 用户上下文保存 `requester_ext_party_id`,不接受客户端传入主体;管理端/系统搜索保持空值。正式 SOP 评审统计和严格门禁只统计已评审、有提问员工主体且能命中当前租户在职组织快照的记录,避免管理员烟测、临时 APP 账号或无组织身份数据混入正式可用率;同步补 reset SQL、幂等迁移脚本、运行时补列和回归门禁。该修复只完善证据归属,仍需真实员工提问和人工评审样本,不能把有主体字段等同于 M5 已达标。
|
|
||||||
- 2026-07-14 BRD 4.4 每日三题评分模式补齐:每日题提交现优先调用现有 chat 模型做 temperature=0 的结构化语义评估;模型未配置、成本闸门关闭或 JSON 解析失败时继续使用原关键词/长度规则,并在 `aihr_practice_assignment.score_mode` 留痕为 `LLM` 或 `RULE_FALLBACK`。员工端完成反馈同步显示评分模式,避免把规则分数误称为 AI 评测;新增幂等迁移、AIHR 单测和 demo marker。正式试点仍需确认模型供应商、成本预算和人工抽检,不把 LLM 路径可调用等同于 BRD 4.4 的质量达标。
|
|
||||||
- 2026-07-14 BRD M1 场景启停展示一致性修复:停用场景此前虽会在开始训练和主管派发时被拒绝,但预习卡接口仍可能先返回停用场景内容,形成“可见但无法开始”的误导;现复用同一 `ensureScenarioEnabledForStart` 校验后再加载预习卡,历史训练/复盘读取不受影响。新增源码契约断言与 `demo-check` marker,未修改业务数据。
|
|
||||||
- 2026-07-14 最新线上只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`)。当前本地 `HEAD=8b176e9a` 的管理端/H5 构建分别为 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)和 `assets/index-C1WoTt0t.js`(SHA-256 `bfb07609acecde3678ed18bf48ce022f36596c6b946e076436fe242cf3e15675`),且构建时间早于当前 HEAD;本轮只读核验,未执行生产静态资源同步、后端重启或业务数据写入,发布预检应继续阻断。
|
|
||||||
- 2026-07-14 BRD 发布批次复核:当前 `HEAD=1efde563` 已重新构建管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、`mobile-uni` H5 `assets/index-C1WoTt0t.js`(SHA-256 `bfb07609acecde3678ed18bf48ce022f36596c6b946e076436fe242cf3e15675`)和后端 `ruoyi-admin.jar`,产物时间均晚于当前提交;线上根站、`/h5/`、租户接口只读返回 `200`,线上资源仍未对齐本地。`release-preflight.sh` 因 `docs/FIGMA_DESIGN_INVENTORY.md` 与 `docs/FIGMA_DESIGN_SYSTEM_GUIDE.md` 两份用户未提交文档阻断,未执行生产静态同步、后端重启或业务数据写入;待用户完成 Figma 文档提交边界确认后再进入发布窗口。
|
|
||||||
- 2026-07-14 BRD 验收脚本可执行性修复:`scripts/tests/demo-check-pilot-gates.test.sh` 原文件权限为 `100644`,按其 shebang 直接执行会 `permission denied`;现改为 `100755`。直接执行通过(含临时测试库行为校验),`scripts/tests/pilot-export-contract.test.mjs` 通过 `5/5`;未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 用户端回归复核:`mobile-uni` 类型检查通过,用户端单测 `53/53` 通过;源码中的“工作上报·建设中”属于 BRD 阶段二/三信息直达或北森/报事集成边界,候选人“等待后续通知”属于完成态提示,不新增一期空壳功能。测试进程曾输出既有 Vite WebSocket 端口占用警告,但测试退出码为 `0`,需在独立 CI/无并行开发服务环境再确认,不作为业务失败。
|
|
||||||
- 2026-07-14 BRD 4.4 生产迁移顺序修复:每日三题评分模式迁移原先直接在 `score` 后添加 `score_mode`,旧生产表若缺少后来新增的 `score` 字段会迁移失败;现同一幂等脚本先补 `score`、再补 `score_mode`,并加入 `demo-check` marker。临时旧表连续执行两次迁移后得到 `score,score_mode`,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 4.4/4.7 旧 schema 迁移兼容性修复:SOP 提问主体迁移原先默认旧表已有 `source` 列,且严格门禁要求的 `prompt_version` 只有运行时懒建没有版本化生产迁移;入职日期迁移原先默认 `aihr_org_snapshot` 表已存在。现 SOP 脚本按表/列存在性依次补 `source`、`prompt_version`、`requester_ext_party_id`,组织脚本在表不存在或缺少 `employment_status` 时安全跳过定位依赖。两份迁移均保持幂等,不写入业务数据;新增 `demo-check` marker,后续用临时旧 schema 做连续执行验证。
|
|
||||||
- 2026-07-14 BRD 门禁夹具同步:严格预检已将 SOP 正式样本限定为带 `requester_ext_party_id` 且能命中在职组织身份的提问记录;原 `demo-check-pilot-gates` 临时表仍是旧 6 列,导致 SOP 指标为空并无法真实覆盖新口径。现补齐主体与 `prompt_version` 字段,使用安全员工主体 `E` 验证 `sop_usable=1/1`、待评审数和窗口过滤,未改变业务数据。
|
|
||||||
- 2026-07-14 BRD 生产迁移回归固化:新增 `scripts/tests/aihr-schema-migrations.test.sh`,在临时 MySQL 库验证 SOP 主体/版本字段和组织入职日期迁移面对旧表、缺前置表时可安全执行且重复执行幂等;不写入开发库业务数据。
|
|
||||||
- 2026-07-14 BRD 生产迁移回归扩展:同一临时 MySQL 回归测试同时连续执行 `aihr_20260714_practice_evidence_mysql8.sql`,确认 `aihr_practice_audio` 与 `aihr_practice_calibration` 两张证据表可重复创建;不写入开发库业务数据。
|
|
||||||
- 2026-07-14 BRD 当前开发库审查快照:生活顾问启用场景 `12`、校准记录 `20`、已评审 SOP `2`,但住宅 SOP 文档仅 `3/5`、已入库案例 `2/20`,在职组织快照 `3001` 条中手机号可映射仅 `1` 条;这些数据不能作为正式试点通过,下一步优先补内容负责人确认的核心流程素材和正式组织身份映射,不用烟测记录替代。该组织身份映射结论已由 2026-07-15 线上组织同步闭环条目替代,内容/案例/正式试点样本风险仍需继续跟进。
|
|
||||||
- 2026-07-14 BRD 5.4 训练隐私边界补强:组织快照存在且默认关闭显示字段时,员工历史、主管复盘详情、任务列表和正式试点 CSV 明细不再直接返回历史 `trainee_name`,统一回退为“员工”;新产生的训练、每日题和错题再练记录也不再默认写入姓名,只有显式开启 `aihr.org-sync.store-display-fields` 才展示/保留名称。新增服务回归断言与 `demo-check` marker,保留稳定 `formal_ext_party_id`、项目和训练证据字段;该修复不替代历史显示字段清理、保留期和法务确认。
|
|
||||||
- 2026-07-14 BRD G3 组织快照缺失 fail-closed:主管团队接口此前在 `aihr_org_snapshot` 不存在时回退读取训练/派发表,生产迁移遗漏可能把历史姓名和非正式范围暴露给后台主管视图;现仅 `dev/local` profile 允许演示回退,其他 profile 在组织快照不可用时返回空团队并停止继续查询活动数据。新增“非 Demo 无快照直接为空”回归测试与 `demo-check` marker,不改变本地演示路径。
|
|
||||||
- 2026-07-14 BRD 5.4 隐私开关一致性修复:部分兼容查询此前只有在检测到组织快照表时才隐藏姓名,组织表暂缺时可能绕过 `store-display-fields=false`;现员工历史、任务/主管记录、复盘详情及无快照演示成员读取均统一由显示开关控制,默认关闭即返回“员工”。dev 配置仍显式开启用于演示,生产默认关闭;AIHR 全量真测试通过,未修改业务数据。
|
|
||||||
- 2026-07-14 BRD 严格门禁绕过修复:`AIHR_DEMO_CHECK_LIBRARY_ONLY=true` 仅允许测试加载脚本函数,和 `AIHR_PILOT_STRICT=true` 同时使用时现在直接失败,避免调试开关把正式试点检查静默跳过;新增回归断言,未修改业务数据。
|
|
||||||
- 2026-07-14 线上浏览器身份复核:使用数据库已有手机号 `13900001111` 和当前 dev 验证码规则登录 `https://peilian.njzhmj.top/h5/` 成功,但随后进入“确认岗位”页并提示“未从组织数据匹配到岗位”,说明线上手机号登录链路可用而正式组织岗位映射仍未闭合;本轮未点击岗位确认,不写入线上岗位数据。
|
|
||||||
- 2026-07-14 BRD 本轮线上只读复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 `200`;线上仍加载管理端 `assets/index-CJZ3Ax3Z.js` 与 H5 `assets/index-D4-NrEpb.js`。当前本地 `HEAD=8d5cb3d6` 的隐私/组织快照修复尚未重新构建或发布,本轮未执行生产静态同步、后端重启或业务数据写入;线上手机号登录仍会进入“确认岗位”但无法匹配正式组织岗位。该 P0 组织同步缺口已由 2026-07-15 线上组织同步闭环条目替代,本条只保留当时线上资源状态。
|
|
||||||
- 2026-07-14 BRD 5.4 组织快照响应字段复核:`OrgPersonRow` 不包含 `person_phone`,手机号只用于服务端身份映射、过滤和统计;`/api/aihr/org/snapshot` 仍要求 `superadmin/hr_operator`,`store-display-fields=false` 时姓名和部门返回空值。当前未发现新的手机号响应泄露,因此不新增重复脱敏代码;正式组织同步和手机号覆盖率已由 2026-07-15 线上同步闭环补齐,历史字段治理仍需独立跟进。
|
|
||||||
- 2026-07-14 BRD 发布预检复核:在隔离干净工作树按当前 `HEAD=8f2ace4a` 重新构建管理端、`mobile-uni` H5 和后端 jar,`release-preflight.sh` 的产物新鲜度、根站和租户业务码检查通过;本地管理端主资源 `index-CX4fynEb.js`(SHA-256 `c800022a22e82e81782da590cfec81145852014a6521f7521775720e0f1087fe`)与 H5 `index-C1WoTt0t.js`(SHA-256 `bfb07609acecde3678ed18bf48ce022f36596c6b946e076436fe242cf3e15675`)均与线上 `index-CJZ3Ax3Z.js` / `index-D4-NrEpb.js` 不一致,预检按预期停止;本轮未执行生产静态同步、后端重启或业务数据写入。
|
|
||||||
- 2026-07-14 BRD G3 OSS 元数据租户隔离修复:SOP 文档去重、处理概览和文件解析元数据此前通过 `JdbcTemplate` 仅按 `sys_oss.oss_id` 读取/更新,未显式约束 `sys_oss.tenant_id`;现统一要求 `sys_oss.tenant_id = aihr_knowledge_attach.tenant_id` 或当前租户,避免跨租户 OSS 元数据被误读/覆盖。新增 `AihrSopSeedServiceTest` 契约断言与 `demo-check` marker;未修改业务数据或生产环境。
|
|
||||||
- 2026-07-14 BRD G3 Qdrant 共享 collection 隔离修复:重建单租户向量索引此前会删除整个共享 Qdrant collection,并用全局点数与当前租户 MySQL 数量比较;现改为按当前租户 payload filter 删除和统计点数,保留其他租户向量。新增回归契约与 `demo-check` marker;未修改业务数据或生产环境。
|
|
||||||
- 2026-07-14 BRD G3 AI 面试内存会话租户隔离修复:候选人面试进行中的内存会话此前只按 `sessionId` 全局缓存,系统用户在已知会话 ID 时可能把其他租户会话带入当前租户完成并落库,候选人存在性判断也可能跨租户命中;现为内存会话保存创建租户,在回答、完成和候选人存在性判断时校验当前租户,并补源码回归断言与 `demo-check` marker;未修改业务数据或生产环境。
|
|
||||||
- 2026-07-14 BRD G3 录音资源租户归属显式校验:系统用户读取训练录音此前仅检查 `superadmin/hr_operator` 角色,随后依赖通用 OSS 服务的隐式租户过滤;现额外要求 `aihr_practice_audio` 在当前租户存在对应 `oss_id`,再进入通用下载服务,避免跨租户对象 ID 被误读。新增服务路径、控制器回归断言与 `demo-check` marker;未修改业务数据或生产环境。
|
|
||||||
- 2026-07-14 BRD 4.6 案例数量与媒体资产门禁:当前 `aihr_case_record` 只有 2 条“已入库”案例,严格预检要求至少 20 条;知识库中的案例类 PPT/文档附件不等同于已完成转写、整理、脱敏和人工入库的案例,暂不自动改写为“已入库”以避免伪造正式资产。案例页现有真实音频上传→ASR→整理→人工入库链路可继续采集,预渲染视频样片、学习点和主管点评仍需业务媒体字段/素材。
|
|
||||||
- 2026-07-14 BRD 发布状态复核:本地 `HEAD=0a30fe70` 新增场景与住宅 SOP 的 reset/版本化迁移已在开发库验证,但尚未发布或在生产执行;线上 `wygj-aihr.service` 仍为 `active`,根站与 `/h5/` 返回 `200`,线上资源/后端仍对应上一发布批次。发布继续受两份用户未提交 Figma 文档和生产迁移执行窗口约束,未执行生产写入。
|
|
||||||
- 2026-07-14 BRD 4.3.4 场景覆盖补齐:原生活顾问 12 条 seed 只有投诉、催费、报修、突发求助,缺少 BRD 明确要求的服务推介/增值与日常服务;现新增 `service-promotion-needs`、`daily-service-followup` 两条补充场景及五维 Rubric,保留原 12 条核心场景不变。提供幂等迁移 `aihr_20260714_practice_brd_scenarios_mysql8.sql` 和临时库回归脚本;该内容属于待业务复核的初始化素材,不等同于正式试点样本。
|
|
||||||
- 2026-07-14 BRD 4.3.4 场景 schema 发布补齐:只读核验发现生产缺少 `aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension` 三张表;现新增只建结构的 `aihr_20260714_practice_catalog_schema_mysql8.sql`,并让补充场景迁移显式依赖该基础迁移。未写入生产数据,正式发布仍需按顺序执行基础 schema、场景 seed 与 SOP seed 迁移。
|
|
||||||
- 2026-07-14 BRD 4.7 住宅 SOP 内容补齐:原知识库只有 3 份已解析住宅 SOP;现新增增值服务需求识别、日常服务回访两份 SOP 及各 3 个检索片段,reset SQL 与版本化迁移同步,临时库连续执行两次保持幂等。严格门禁已从 `sop_docs=3/5` 推进到 `5/5`;案例库、正式组织身份和正式试点证据仍未完成。
|
|
||||||
- 2026-07-15 BRD G3 候选人面试操作角色边界修复:`/api/recruit/interview/start`、`answer`、`finish` 此前只要求登录,普通后台系统用户可绕过 HR/管理员权限创建或完成面试;现统一限制为 APP 候选人本人或 `superadmin/hr_operator`,候选人会话仍按本人手机号绑定。新增源码契约测试和 `demo-check` marker;尚未发布生产。
|
|
||||||
- 2026-07-15 BRD G3 面试未知会话状态边界修复:系统用户调用 `answer` 携带不存在或已失效的 `sessionId` 此前会返回“已暂存”而不暴露会话无效;现统一要求会话存在且属于当前租户,`finish` 保留 HR 管理端既有的兼容性创建逻辑。新增服务回归测试和 `demo-check` marker;尚未发布生产。
|
|
||||||
- 2026-07-15 BRD 发布状态只读复核:生产根站、`/h5/`、`/prod-api/auth/tenant/list` 和 `/prod-api/api/aihr/mobile/home/user` 均返回 HTTP `200`,`wygj-aihr.service` 为 `active`;生产 H5 仍加载 `index-CDn6TrX8.js`,本地最新候选人面试权限/未知会话修复提交 `217edb09` 尚未证明已发布。本轮仅执行 HTTP、服务状态和 H5 资源只读检查,未同步静态资源、重启后端、执行迁移或写入生产业务数据。
|
|
||||||
- 2026-07-15 BRD G3/G6 训练语音原始地址暴露收紧:ASR/TTS 成功响应此前可直接返回 `sys_oss.url`,训练历史、主管复盘和管理端复盘在缺少 `audioOssId` 时也会回退播放原始 `audioUrl`;现统一只回传受保护 OSS 编号,服务端持久化/响应仅保留 `data:audio/*` 内联降级,客户端也拒绝 HTTP 音频地址直接播放。TTS 仍写入 `sys_oss`,旧移动端通过内联 data URL 保持可播放;已补源码契约测试和两端回放边界,未修改生产资源或生产数据。
|
|
||||||
- 2026-07-15 BRD 4.6/P0 组织同步线上闭环:生产 `/opt/wygj/config/wygj.env` 已配置开放组织同步变量并备份为 `/opt/wygj/config/wygj.env.bak-orgsync-20260715141150`,`wygj-aihr.service` 重启后租户接口和员工首页 API 均返回业务成功;线上执行 `POST /prod-api/api/aihr/org/sync` dry-run 与覆盖同步成功,开放平台返回公司 17、部门 963、员工 3417,生产 `aihr_org_snapshot` 为 3417 行、手机号可映射 3392、手机号不可用 25、疑似乱码 0、在职 2943、离职 474。本轮未替换 jar 或静态资源;25 名员工手机号不可用是上游数据问题,不阻塞组织同步功能发布,但正式试点仍需真实训练、校准和 SOP 评审样本。
|
|
||||||
|
|
||||||
## 2026-07-16 多租户知识平台第一版实施结论
|
|
||||||
|
|
||||||
需求与实施依据:
|
|
||||||
|
|
||||||
- 需求方案:`docs/superpowers/specs/2026-07-16-multi-tenant-knowledge-platform-design.md`
|
|
||||||
- 实施计划:`docs/superpowers/plans/2026-07-16-multi-tenant-knowledge-platform.md`
|
|
||||||
- 运维与验收:`docs/KNOWLEDGE_PLATFORM_RUNBOOK.md`
|
|
||||||
- 第一版边界:银城、美途作为独立租户;租户内支持多个知识空间;调用应用与知识空间建立多对多授权;登录用户实际可访问空间取“应用授权空间”和“用户/角色授权空间”的交集;第一版不做跨租户共享、集团账号天然穿透、跨空间去重和图谱化编排。
|
|
||||||
|
|
||||||
### 完成度分层
|
|
||||||
|
|
||||||
| 层级 | 结论 | 证据与边界 |
|
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 开发完成 | 是 | 已完成知识空间、主体授权、应用、令牌、统一问答、查询审计、数据工具、文档成员关系、单空间解绑、管理端、员工端调用迁移、初始化与验收脚本;后端全量 AIHR 测试 `166/166`,管理端测试 `7/7`,移动端测试 `57/57`,相关构建与类型检查通过。 |
|
| 员工端 | 对练、每日题和问师傅支持文字/语音;问师傅附件支持图片/视频仅用于本次分析;关键题目、回答、点评和总结卡支持播报;案例支持音频上传 | 阶段一文字/语音主链路已实现并部署;对练的图像/视频情境输入、服务录像回放和方言正式样本仍未达到 BRD 终态 |
|
||||||
| 本地联调可用 | 是 | 本地银城/美途双租户真实 HTTP 验证 `18/18`;验证租户隔离、授权交集、未授权 `403`、停用/过期令牌、限流、来源引用、无证据语义、员工与团队数据工具、同一 OSS 多空间成员关系及仅解绑当前空间。数据库复核确认美途应用已停用且令牌清空、银城公共空间成员已解绑、物业空间成员和 OSS 对象仍保留、解绑审计已记录。 |
|
| 候选人端 | 面试支持文字、录音转写和选择音频;补充资料支持文档/图片 | 满足当前面试和资料链路;图片资料不参与面试多模态评分 |
|
||||||
| 线上生效 | 否 | 本轮未执行生产数据库迁移、应用初始化、后端发布、静态资源同步或生产密钥写入;不能用本地通过替代线上发布证据。 |
|
| 主管端 | 文字复盘、回听员工录音、姓名多选派发、考试组卷/发布/成绩、工作台与学员模式切换 | 当前主管闭环已实现;项目范围和角色正反例仍需正式账号复核 |
|
||||||
| 正式试点验收 | 否 | 尚缺知识空间业务负责人、正式角色矩阵、各空间首批内容清单和标准问题、可信调用端清单、生产密钥托管、日志保留期、容量与告警阈值以及业务签字;因此不能宣称正式试点完成。 |
|
|
||||||
|
|
||||||
### 功能需求逐项审计
|
## 3. 客户反馈处理结果
|
||||||
|
|
||||||
| # | 需求 | 工程结论 | 证据或剩余条件 |
|
| 反馈主题 | 当前实现 | 生产验证边界 |
|
||||||
|---:|---|---|---|
|
|---|---|---|
|
||||||
| 1 | 银城、美途空间和应用按租户隔离 | 通过 | 双租户 HTTP 正反例、数据库 tenant 归属和跨租户 `403` 通过。 |
|
| 不同角色/岗位内容 | 员工、候选人、主管独立入口;岗位来自组织系统,主管可切换学员模式但不改变组织身份 | 生产包已部署;全岗位内容矩阵和正式权限正反例仍需业务数据 |
|
||||||
| 2 | 银城三个首批空间、美途一个空间具备稳定编码、负责人、授权和验证题单 | 部分通过 | 四个稳定编码和工程授权已初始化;业务负责人、正式内容清单和每空间标准题单待提交,因此不满足正式试点。 |
|
| 字号适老化 | 标准/大字/超大字全局持久化,同一页面结构响应式增高 | 本地多视口视觉通过;真实手机触控、键盘和读屏未验收 |
|
||||||
| 3 | 应用与空间多对多 | 通过 | `aihr_knowledge_app_space`、管理接口、初始化脚本和合同测试通过。 |
|
| 问师傅语音与播报 | 录音、选择音频、ASR、TTS/设备语音降级恢复;答案、总结卡、每日题、点评等关键内容可播报 | 生产包已部署;正式 ASR/TTS 配置、真机权限和弱网未复验 |
|
||||||
| 4 | 内部有效范围为应用授权与主体授权交集 | 通过 | 授权服务单测和真实未授权请求验证通过,空交集在检索前拒绝。 |
|
| 图片/视频与总结卡图片 | 问师傅附件仅用于本次现场分析;总结卡可下载 PNG | 生产包已部署;iOS/Android H5 下载和相册/文件权限未复验 |
|
||||||
| 5 | 美途名片应用只能访问美途客户咨询空间 | 通过(本地) | 测试令牌只绑定 `mt_customer_service`;访问银城空间返回 `403`,联调结束后应用已停用并清空令牌。 |
|
| 录音归属、提交无反馈、筛选错位 | 账号/页面代次隔离、旧请求回写保护、明确加载/失败状态和窄屏布局已修 | 本地双账号/交互测试通过;生产认证态未重放 |
|
||||||
| 6 | 显式越权空间返回 `403`,省略空间只查询有效范围 | 通过 | 真实 HTTP 与服务测试均覆盖。 |
|
| 每日题变化与题目反馈 | 五岗位题库按日期、岗位和员工身份轮换;每日题/专项支持有用/无用反馈 | 生产 schema 和包已部署;正式题库内容审核与业务样本待补 |
|
||||||
| 7 | 回答包含空间和文档引用,无依据返回 `noEvidence=true` | 通过 | 银城、美途正例及无依据用例通过。 |
|
| 常见难题与一键派专项 | 管理端按岗位、时间、次数、人数、均分排序并可生成专项 | 生产页面已打开复核;正式团队样本待补 |
|
||||||
| 8 | 同文件多空间独立检索,单空间解绑不影响另一空间和 OSS | 通过 | 非生产专用文件完成破坏性解绑验证;公共空间成员移除,物业空间成员和原 OSS 仍各保留 `1` 个引用,管理审计有 `2` 条 `UNBIND/DOCUMENT` 记录。 |
|
| 指派姓名、多选、快捷日期 | 项目内在职人员姓名选择,最多 100 人,四档快捷日期,幂等批量提交和逐人结果 | 本地真实 API 已验证;生产大团队、时区边界和权限正反例待补 |
|
||||||
| 9 | 本人/团队数据工具按服务端身份和管理范围执行,外部应用禁用工具 | 通过 | 员工、主管正例及员工越权、外部应用调用反例通过。 |
|
| 开放问题榜与奖励 | 提问、回答、审核、最佳答案、积分规则和积分/学习学分双账户已实现;重复选优不重复发奖 | 生产页面/schema 已验证;正式运营规则和认证写链路待验收;不是现金、不可提现 |
|
||||||
| 10 | 旧 `/api/knowledge/search` 保持兼容且不再搜索租户全库 | 通过 | 旧入口已收口到统一授权查询服务,客户端合同测试和服务测试通过。 |
|
| 岗位入职考试 | 主管选择岗位/项目/员工、组卷、发布、截止日期和成绩;员工答题、播报、提交、逐题结果;提交幂等 | 本地发布与 100 分提交/重放通过;生产正式账号未重放 |
|
||||||
|
| 问 AI(全网) | 与企业问师傅分入口、接口、来源和提示;只允许已测试启用的公网 HTTPS 提供方 | 管理页已生产打开;未配置正式提供方密钥时明确不可用,不生成假答案 |
|
||||||
|
| 多租户知识空间 | 空间、授权、调用应用、统一问答、审计、限流和受控数据工具已实现 | 生产页面/schema 已验证;银城/美途正式空间、授权矩阵、令牌和内容迁移仍需业务确认后执行 |
|
||||||
|
|
||||||
安全矩阵中的错误/停用/过期令牌、限流 `429`、伪造 `tenantId/userId/extPartyId`、员工团队工具越权、外部应用数据工具越权和无有效空间零召回均已由自动化或本地真实 HTTP 覆盖。Qdrant `aihr_knowledge` 当前健康,`points_count=450`;查询过滤源码与服务测试同时要求当前租户和有效 `knowledgeIds`。
|
## 4. 当前剩余硬门槛
|
||||||
|
|
||||||
### 第一批空间初始化建议
|
### P0:生产认证与正式试点
|
||||||
|
|
||||||
- 银城:`yc_public_policy`(公共制度与通用政策)、`yc_property_sop`(物业服务 SOP)、`yc_management_ops`(经营分析与管理制度)。前三个空间已完成工程初始化;具体负责人、受众、首批文件和标准问题仍须业务确认。
|
1. 选定 1–2 个真实项目、正式员工名单和起止日期,固定试点窗口。
|
||||||
- 美途:`mt_customer_service`(客户咨询知识)。已完成独立租户与独立空间的工程初始化;不得绑定银城空间或复用银城调用应用。
|
2. 用正式短信 OTP 完成员工、主管、候选人和后台角色正反例;不得用开发固定验证码替代生产安全验收。
|
||||||
- `yc_finance` 暂不作为第一批工程默认空间,待财务负责人、数据库字段白名单、聚合口径和审计要求明确后再启用,避免知识文档权限被误当成结构化数据权限。
|
3. 在真实手机复验录音/选音频、TTS/设备语音、图片/视频附件、总结卡下载、三级字号、键盘和读屏。
|
||||||
|
4. 以同一窗口收集训练、人工校准、SOP 评审、满意度和案例样本,再运行 `AIHR_PILOT_STRICT=true ./scripts/demo-check.sh`。
|
||||||
|
|
||||||
### 安全结论
|
### P1:业务配置与终态能力
|
||||||
|
|
||||||
- 多个空间的主要价值是内容治理和最小授权,不是仅靠“分库”自动获得安全;所有表、检索、向量 payload、查询日志和 OSS 元数据都以租户为硬边界,空间授权作为租户内第二层边界。
|
1. 由业务确认五岗位正式场景、题库、SOP、资格规则及当前禁用高风险内容;seed 不能代替内容验收。
|
||||||
- 外部应用仅保存令牌哈希,明文只在创建/轮换时返回一次;停用、过期、越权和超限均拒绝请求。
|
2. 完成项目权限正例/反例、岗位内容映射和大团队批量派发验收。
|
||||||
- 同一文档可在同租户多个空间形成独立成员关系,解析和向量加工复用;解绑只删除当前空间的附件/片段/向量成员,最后一个引用解除后才清理 OSS,第一版不做跨空间内容去重。
|
3. 配置并测试正式 ASR/TTS 与全网 AI 提供方;密钥只从安全环境注入。
|
||||||
- 结构化数据工具不继承文档空间权限,按工具白名单、调用主体、当前租户和本人/团队范围重新校验;第一版不开放任意 SQL 或任意数据库直连。
|
4. BRD 终态仍缺员工对练图像/视频情境、服务录像回放、四川话/粤语真实样本和响应时延证据。
|
||||||
|
5. 多租户知识平台完成正式租户 ID、空间、授权、外部应用、内容迁移和标准题签字后,才可称业务上线。
|
||||||
|
|
||||||
### 上线前硬门槛
|
## 5. 2026-07-18 生产发布证据
|
||||||
|
|
||||||
1. 业务确认四个首批空间的负责人、受众、内容清单、有效期和每空间至少 10 个标准问题。
|
- 分支:`codex/multi-tenant-knowledge-platform`,已推送到 `origin`。
|
||||||
2. 银城、美途分别确认应用清单、部署位置、回调来源、负责人和生产令牌托管方式;生产令牌不得写入仓库、聊天记录或日志。
|
- 生产提交:`32fa376d635e951febbb5a17050fc4cb8de77e9f`;功能提交:`6bdc86e3`。
|
||||||
3. 在测试环境执行版本化迁移、初始化、双租户验收、令牌轮换/吊销、限流与审计查询,并留存完整结果。
|
- 备份:`/opt/wygj/backups/release-20260718005151`。
|
||||||
4. 确认查询日志保留期、问题哈希策略、Qdrant 容量、失败率与延迟告警阈值、备份恢复和回滚窗口。
|
- 生产地址:`https://peilian.njzhmj.top/`、`https://peilian.njzhmj.top/h5/`。
|
||||||
5. 生产发布须单独授权,按运维手册执行备份、迁移、发布、初始化、验收和回滚演练;完成线上 HTTP/数据库/Qdrant 证据链后,才能把“线上生效”改为“是”。
|
- 数据库:21 个迁移脚本执行完成;目标 schema `34/34`;新增 18 张表与知识主表租户字段排序规则 `18/18` 对齐。
|
||||||
|
- 浏览器:管理端首页、常见难题、问题榜运营、知识空间、全网 AI 配置和 390×844 移动端 H5 已查看;最终页面无控制台/请求错误。
|
||||||
|
- 发布中发现知识空间页因历史库排序规则混用报错,已通过 `aihr_20260718_release_collation_compat_mysql8.sql` 根因修复并重新验证;禁止用 SQL 临时转换掩盖同类 schema 漂移。
|
||||||
|
|
||||||
|
## 6. 当前事实源
|
||||||
|
|
||||||
|
- 工程、运行和发布规则:[README.md](../README.md)、[AGENTS.md](../AGENTS.md)。
|
||||||
|
- 客户反馈与版本连续性:[员工端版本功能对比与功能对齐清单-20260717.md](员工端版本功能对比与功能对齐清单-20260717.md)。
|
||||||
|
- Figma 视觉与实现状态:[FIGMA需求覆盖与版本偏差审计-20260717.md](FIGMA需求覆盖与版本偏差审计-20260717.md)、[FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md)。
|
||||||
|
- API 契约:[API_INTEGRATION.md](API_INTEGRATION.md)。
|
||||||
|
- 生产迁移与回滚:[BRD_PRODUCTION_MIGRATION_RUNBOOK.md](BRD_PRODUCTION_MIGRATION_RUNBOOK.md)。
|
||||||
|
- 正式试点门禁:[DEMO_ACCEPTANCE.md](DEMO_ACCEPTANCE.md)。
|
||||||
|
|
||||||
|
任何新结论仍要分别记录“已实现、本地验证、视觉验证、已部署、生产验证、正式业务验收”,不得合并成一个笼统的“完成”。
|
||||||
|
|||||||
@@ -2,16 +2,17 @@
|
|||||||
|
|
||||||
本文件只覆盖 AIHR 阶段一 BRD 已落地代码所需的 MySQL 8 结构和内置内容迁移。它不执行正式组织同步、试点训练、人工校准、SOP 评审、案例导入或满意度补录;这些属于业务数据和正式验收,必须单独审批。
|
本文件只覆盖 AIHR 阶段一 BRD 已落地代码所需的 MySQL 8 结构和内置内容迁移。它不执行正式组织同步、试点训练、人工校准、SOP 评审、案例导入或满意度补录;这些属于业务数据和正式验收,必须单独审批。
|
||||||
|
|
||||||
## 当前生产已确认的差距
|
## 当前生产基线
|
||||||
|
|
||||||
2026-07-14 生产只读复核发现:
|
2026-07-18 已在生产发布提交 `32fa376d`:
|
||||||
|
|
||||||
- `aihr_practice_scenario`、`aihr_practice_rubric`、`aihr_practice_rubric_dimension` 不存在;
|
- 21 个版本化迁移按本文件顺序执行完成,目标结构核验为 `34/34`;
|
||||||
- `aihr_case_record` 缺 `media_oss_id`、`media_url`;
|
- 最后一条排序规则迁移把本次新增的 18 张表对齐到 `aihr_knowledge_info.tenant_id` 的实际排序规则,核验为 `18/18`;
|
||||||
- 对练五维、每日三题评分模式、SOP 提问主体/版本、组织入职日期字段尚未全部迁移;
|
- 管理端、H5、后端产物与本地发布产物哈希一致,`wygj-aihr.service` 为 `active`;
|
||||||
- `aihr_prompt_template` 表存在,但内置模板数量为 `0`;
|
- 根站、H5、租户接口、员工首页 API 和关键管理页通过生产回归;
|
||||||
- `aihr_candidate_material` 缺少 `reviewer/reviewed_time`,`aihr_interview_result` 缺少人工复核字段和 `questions_json`,`aihr_candidate_employee_link` 尚不存在;这些候选人/HR 复核链路不能依赖首次请求触发懒迁移;
|
- 发布备份位于 `/opt/wygj/backups/release-20260718005151`。
|
||||||
- 这些事实不能由应用启动时的懒迁移或页面 fallback 代替。
|
|
||||||
|
上述事实只证明本批版本和 schema 已发布。正式 OTP、真机能力、角色权限正反例和严格试点窗口仍需按发布后回归及 `DEMO_ACCEPTANCE.md` 验收。
|
||||||
|
|
||||||
## 发布前置条件
|
## 发布前置条件
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Figma 页面实现矩阵
|
# Figma 页面实现矩阵
|
||||||
|
|
||||||
更新时间:2026-07-17
|
更新时间:2026-07-18
|
||||||
|
|
||||||
## 统计口径
|
## 统计口径
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
- `已实现`:仓库存在对应页面,并有真实业务接口或明确的降级链。
|
- `已实现`:仓库存在对应页面,并有真实业务接口或明确的降级链。
|
||||||
- `部分实现`:有入口或局部状态,但没有完成 Figma 对应的完整业务闭环。
|
- `部分实现`:有入口或局部状态,但没有完成 Figma 对应的完整业务闭环。
|
||||||
- `未实现`:没有对应业务页面,或只有建设中占位。
|
- `未实现`:没有对应业务页面,或只有建设中占位。
|
||||||
- `线上待修正`:本地代码已有,但线上包、角色路由或视觉仍未达到当前版本。
|
- `已部署待业务验收`:代码和生产包已对齐,但正式账号、真机、外部提供方或真实业务数据尚未验收。
|
||||||
- “Figma 位置”使用设计清单中的 node id;未标 node id 的项目不是正式画板。
|
- “Figma 位置”使用设计清单中的 node id;未标 node id 的项目不是正式画板。
|
||||||
|
|
||||||
## 与《AI陪练二期开发推进计划》对账
|
## 与《AI陪练二期开发推进计划》对账
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
- 本矩阵回答“Figma 设计的页面在代码/线上完成到什么程度”,覆盖 MVP、二期、阶段二/三和已取消设计。
|
- 本矩阵回答“Figma 设计的页面在代码/线上完成到什么程度”,覆盖 MVP、二期、阶段二/三和已取消设计。
|
||||||
- 二期计划回答“生活顾问 AI 陪练阶段一的工程闭环和 M5 试点条件是否满足”,不要求实现索引原口径下的全部 70 张 Figma 正式画板。
|
- 二期计划回答“生活顾问 AI 陪练阶段一的工程闭环和 M5 试点条件是否满足”,不要求实现索引原口径下的全部 70 张 Figma 正式画板。
|
||||||
- 因此,矩阵中的“未实现”不等于二期延期;个人 AI 助理、开放问题榜、积分/荣誉、完整偏好体系等属于计划明确暂缓的阶段二/三范围。
|
- 因此,矩阵中的“未实现”不等于二期延期。开放问题榜和积分基础能力已因 2026-07-17 客户明确要求提前实现并发布;个人 AI 助理、完整徽章荣誉和完整偏好体系仍属阶段二/三。
|
||||||
- 矩阵中的“已实现”也不等于 M5 业务验收通过;评分校准、SOP 评审、正式组织身份和真实试点数据仍以严格预检为准。
|
- 矩阵中的“已实现”也不等于 M5 业务验收通过;评分校准、SOP 评审、正式组织身份和真实试点数据仍以严格预检为准。
|
||||||
|
|
||||||
与二期计划的主要对应关系:
|
与二期计划的主要对应关系:
|
||||||
@@ -39,20 +39,20 @@
|
|||||||
|
|
||||||
| 优先级 | 项目 | 需要什么才能继续 |
|
| 优先级 | 项目 | 需要什么才能继续 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| P0 | 线上包与角色路由 | 生产服务、根站、H5 和公开业务接口正常;2026-07-15 已单独发布管理端资料处理分页并以真实管理员会话回归。该静态发布不代表当前分支 H5 或后端已对齐线上;认证态员工/主管回归仍需正式 OTP 或测试账号,主管正式角色仍需正式组织数据验证。 |
|
| P0 | 正式账号与真机验收 | 2026-07-18 当前分支的管理端、H5、后端和 21 个迁移已发布,产物哈希、服务、公开接口、schema 和关键页面已验证;仍需正式 OTP 下员工/主管/候选人读写与权限正反例,以及真实手机麦克风、文件/下载、设备语音和读屏复验。 |
|
||||||
| P1 | 案例学习/视频详情 | 原始音频 `mediaUrl/mediaOssId` 已形成真实留痕和回放;学习点已从真实摘要提取并持久化,主管点评已有受保护接口和两端展示;仍需业务提供一期预渲染视频样片,并确定相关训练场景字段后再完成视频详情页面。 |
|
| P1 | 案例学习/视频详情 | 原始音频 `mediaUrl/mediaOssId` 已形成真实留痕和回放;学习点已从真实摘要提取并持久化,主管点评已有受保护接口和两端展示;仍需业务提供一期预渲染视频样片,并确定相关训练场景字段后再完成视频详情页面。 |
|
||||||
| P1 | 正式组织数据 | 用正式员工、项目和试点时间窗口验证团队量化、成长证据和 M5 导出;不使用本地 smoke 样本替代。 |
|
| P1 | 正式组织数据 | 用正式员工、项目和试点时间窗口验证团队量化、成长证据和 M5 导出;不使用本地 smoke 样本替代。 |
|
||||||
| P2 | 三期页面 | 个人 AI 助理、开放问题榜、积分/荣誉、完整七维偏好、独立 AI 教练编排按阶段二/三单独立项。 |
|
| P2 | 后续阶段页面 | 开放问题榜和积分基础能力已发布;个人 AI 助理、完整徽章荣誉、完整七维偏好和独立 AI 教练编排仍按阶段二/三单独立项。 |
|
||||||
|
|
||||||
|
|
||||||
## 业务画板实现矩阵(原索引 70 张口径)
|
## 业务画板实现矩阵(原索引 70 张口径)
|
||||||
|
|
||||||
| # | 页面/状态 | Figma 位置 | 代码路径 | 当前实现 | 是否修正 |
|
| # | 页面/状态 | Figma 位置 | 代码路径 | 当前实现 | 是否修正 |
|
||||||
|---:|---|---|---|---|---|
|
|---:|---|---|---|---|---|
|
||||||
| 1 | 员工端:今日 | `23:3` | `mobile-uni/src/pages/user/today/index.vue` | [x] 已实现 | 本地源码已对齐;历史线上包已用员工账号完成浏览器回归,当前分支最新修复尚未重新发布 |
|
| 1 | 员工端:今日 | `23:3` | `mobile-uni/src/pages/user/today/index.vue` | [x] 已实现并部署 | 2026-07-18 当前 H5 已发布并在 390×844 视口复核匿名首屏;认证态个性化内容仍需正式 OTP 回归 |
|
||||||
| 2 | 员工端:练入口 | `22:3` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证场景首屏、最近练过、每日三题和独立练习入口;蓝白视觉已复核 |
|
| 2 | 员工端:练入口 | `22:3` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证场景首屏、最近练过、每日三题和独立练习入口;蓝白视觉已复核 |
|
||||||
| 3 | 员工端:问 | `21:3` | `mobile-uni/src/pages/user/sop/index.vue` | [x] 本地已实现并浏览器验证;Figma 已修 | 已实际验证文字查询、引用、反馈、语音输入/选音频入口、回答和总结卡播报、无模型原文总结卡、PNG 下载成功提示;Figma 已增加 108px 末尾安全占位,真实手机键盘、麦克风与文件权限仍待发布前复验 |
|
| 3 | 员工端:问 | `21:3` | `mobile-uni/src/pages/user/sop/index.vue` | [x] 已实现、部署;Figma 已修 | 文字查询、引用、反馈、语音输入/选音频、回答/总结卡播报和 PNG 下载已本地验证并进入生产包;真实手机键盘、麦克风、文件和下载权限仍待验收 |
|
||||||
| 4 | 员工端:我 | `4:16`(标准 `7:2` / 大字 `253:131` / 超大字 `253:188`) | `mobile-uni/src/pages/user/profile/index.vue` | [x] 本地已实现并逐档视觉验证;Figma 视觉已修 | 三档 Figma 与代码均保持同一功能结构;全局标准/大字/超大字已持久化,400×900 的三档个人页及关键页超大字截图已复核,无横向溢出、底栏遮挡或卡片重叠;真实设备触控和读屏仍待验收 |
|
| 4 | 员工端:我 | `4:16`(标准 `7:2` / 大字 `253:131` / 超大字 `253:188`) | `mobile-uni/src/pages/user/profile/index.vue` | [x] 已实现、部署;Figma 已修 | 三档保持同一结构并全局持久化,本地多视口无横向溢出、底栏遮挡或卡片重叠;真实设备触控、键盘和读屏仍待验收 |
|
||||||
| 5 | 训练前预习卡 | `53:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证预习卡、开始练习与真实对话状态;视觉已复核 |
|
| 5 | 训练前预习卡 | `53:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证预习卡、开始练习与真实对话状态;视觉已复核 |
|
||||||
| 6 | 正式语音对练 | `54:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证文字提交、情绪/信任、求助和录音入口;失败保留文本降级 |
|
| 6 | 正式语音对练 | `54:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证文字提交、情绪/信任、求助和录音入口;失败保留文本降级 |
|
||||||
| 7 | 训练完成结果 | `55:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证两轮真实提交、评分结果和主管待复盘更新;视觉已复核 |
|
| 7 | 训练完成结果 | `55:2` | `mobile-uni/src/pages/user/practice/index.vue` | [x] 已实现 | 已验证两轮真实提交、评分结果和主管待复盘更新;视觉已复核 |
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
| 10 | 主管待复盘列表 | `58:2` | `mobile-uni/src/pages/supervisor/reviews/index.vue` | [x] 已实现 | 已验证真实待复盘列表、低分优先和详情跳转 |
|
| 10 | 主管待复盘列表 | `58:2` | `mobile-uni/src/pages/supervisor/reviews/index.vue` | [x] 已实现 | 已验证真实待复盘列表、低分优先和详情跳转 |
|
||||||
| 11 | 主管复盘详情 | `59:2` | `mobile-uni/src/pages/supervisor/review/index.vue` | [x] 已实现 | 已验证评分明细、对话、标注、建议、贡献分和标记已复盘 |
|
| 11 | 主管复盘详情 | `59:2` | `mobile-uni/src/pages/supervisor/review/index.vue` | [x] 已实现 | 已验证评分明细、对话、标注、建议、贡献分和标记已复盘 |
|
||||||
| 12 | 员工能力详情 | `61:2` | `mobile-uni/src/pages/supervisor/team/index.vue` | [x] 已实现 | 已验证点击成员展示最新评分、训练次数、待复盘数量、真实训练趋势和成长证据;400px 主管画布、蓝白卡片、层级和间距已复核;未虚构 Figma 未提供的数据 |
|
| 12 | 员工能力详情 | `61:2` | `mobile-uni/src/pages/supervisor/team/index.vue` | [x] 已实现 | 已验证点击成员展示最新评分、训练次数、待复盘数量、真实训练趋势和成长证据;400px 主管画布、蓝白卡片、层级和间距已复核;未虚构 Figma 未提供的数据 |
|
||||||
| 13 | 训练任务派发 | `61:530` | `mobile-uni/src/pages/supervisor/assign/index.vue` | [x] 本地已实现并真实提交验证 | 已按项目团队姓名多选、最多 100 人、当天/明天/3天/7天、逐人结果和幂等批量接口对齐;浏览器向 2 名成员提交返回 2/2 成功,仍未发布生产 |
|
| 13 | 训练任务派发 | `61:530` | `mobile-uni/src/pages/supervisor/assign/index.vue` | [x] 已实现并部署 | 已按项目团队姓名多选、最多 100 人、当天/明天/3天/7天、逐人结果和幂等批量接口对齐;本地向 2 名成员提交 2/2 成功,生产正式团队待复验 |
|
||||||
| 14 | 派发进度与预警 | `62:2` | `mobile-uni/src/pages/supervisor/assign/index.vue` | [x] 已实现 | 已验证真实派发进度计数(待训练/已完成/低分再练)和低分训练预警;400px 主管画布、表单/列表/进度卡层级已复核;截止时间与下滑趋势暂无后端字段,未伪造 |
|
| 14 | 派发进度与预警 | `62:2` | `mobile-uni/src/pages/supervisor/assign/index.vue` | [x] 已实现 | 已验证真实派发进度计数(待训练/已完成/低分再练)和低分训练预警;400px 主管画布、表单/列表/进度卡层级已复核;截止时间与下滑趋势暂无后端字段,未伪造 |
|
||||||
| 15 | 候选人面试首页 | `67:2` | `mobile-uni/src/pages/candidate/index/index.vue` | [x] 已实现 | 已修正 |
|
| 15 | 候选人面试首页 | `67:2` | `mobile-uni/src/pages/candidate/index/index.vue` | [x] 已实现 | 已修正 |
|
||||||
| 16 | 候选人面试答题 | `68:2` | `mobile-uni/src/pages/candidate/interview/index.vue` | [x] 已实现 | 已修正 |
|
| 16 | 候选人面试答题 | `68:2` | `mobile-uni/src/pages/candidate/interview/index.vue` | [x] 已实现 | 已修正 |
|
||||||
@@ -105,13 +105,13 @@
|
|||||||
| 54 | 优化前后结果对比 | `93:824` | — | 未实现 | 未修正,三期 |
|
| 54 | 优化前后结果对比 | `93:824` | — | 未实现 | 未修正,三期 |
|
||||||
| 55 | 个人 AI 偏好设置 | `93:857` | — | 未实现 | 未修正,三期 |
|
| 55 | 个人 AI 偏好设置 | `93:857` | — | 未实现 | 未修正,三期 |
|
||||||
| 56 | 管理端团队偏好分布 | `93:940` | — | 未实现 | 未修正,三期 |
|
| 56 | 管理端团队偏好分布 | `93:940` | — | 未实现 | 未修正,三期 |
|
||||||
| 57 | 开放问题榜首页 | `95:6` | — | 未实现 | 未修正,仅有 `knowledge_gap` 记录 |
|
| 57 | 开放问题榜首页 | `95:6` | `mobile-uni/src/pages/user/questions/index.vue` | [x] 已实现并部署 | 按客户明确要求提前落地;生产包和 schema 已验证,正式员工读写待 OTP 回归 |
|
||||||
| 58 | 问题详情/全员回答 | `95:782` | — | 未实现 | 未修正,阶段二 |
|
| 58 | 问题详情/全员回答 | `95:782` | `mobile-uni/src/pages/user/questions/detail.vue`、`publish.vue` | [x] 已实现并部署 | 支持提问、回答和状态展示,服务端按租户/身份校验;正式业务内容待验收 |
|
||||||
| 59 | 最佳答案/奖励结果 | `95:826` | — | 未实现 | 未修正,阶段二 |
|
| 59 | 最佳答案/奖励结果 | `95:826` | `mobile-uni/src/pages/user/questions/detail.vue`、`points/index.vue` | [x] 已实现并部署 | 最佳答案与积分/学习学分双账户已落地,重复选优不重复发奖;不含现金或提现 |
|
||||||
| 60 | 问题审核/激励规则 | `95:858` | — | 未实现 | 未修正,阶段二 |
|
| 60 | 问题审核/激励规则 | `95:858` | `frontend/src/views/community/questions.vue` | [x] 已实现并部署 | 生产页面已打开复核;正式运营规则、审核角色正反例待业务验收 |
|
||||||
| 61 | AI 教练训练计划 | `97:5` | `mobile-uni/src/pages/supervisor/assign/index.vue` | 按二期计划已实现;按 Figma 部分对齐 | 已用主管派发、低分再练、每日三题和成长证据承载;独立 AI 教练编排属于后续范围 |
|
| 61 | AI 教练训练计划 | `97:5` | `mobile-uni/src/pages/supervisor/assign/index.vue` | 按二期计划已实现;按 Figma 部分对齐 | 已用主管派发、低分再练、每日三题和成长证据承载;独立 AI 教练编排属于后续范围 |
|
||||||
| 62 | 自动场景任务/自动复盘 | `97:778` | `mobile-uni/src/pages/user/practice/index.vue`、`supervisor/review/index.vue` | 按二期计划已实现基础闭环;按 Figma 部分对齐 | 已有训练、评分、标注、复盘和再练;自动编排/自动复盘报告不属于当前二期必做 |
|
| 62 | 自动场景任务/自动复盘 | `97:778` | `mobile-uni/src/pages/user/practice/index.vue`、`supervisor/review/index.vue` | 按二期计划已实现基础闭环;按 Figma 部分对齐 | 已有训练、评分、标注、复盘和再练;自动编排/自动复盘报告不属于当前二期必做 |
|
||||||
| 63 | 积分/徽章/荣誉中心 | `97:823` | — | 未实现;Figma 已修 | 徽章示例、积分标签和规则入口的字符级换行已修并重新截图复核;仍属三期,代码未实现 |
|
| 63 | 积分/徽章/荣誉中心 | `97:823` | `mobile-uni/src/pages/user/points/index.vue` | 部分实现并部署;Figma 已修 | 积分/学习学分余额和明细已实现;完整徽章、荣誉中心仍属后续范围 |
|
||||||
| 64 | 企业发布申请 | `42:2` | — | 未实现 | 未修正,阶段二 |
|
| 64 | 企业发布申请 | `42:2` | — | 未实现 | 未修正,阶段二 |
|
||||||
| 65 | 个人 AI 助理发布记录 | `44:2` | — | 未实现 | 未修正,阶段二 |
|
| 65 | 个人 AI 助理发布记录 | `44:2` | — | 未实现 | 未修正,阶段二 |
|
||||||
| 66 | 个人 AI 助理报告大纲 | `44:229` | — | 未实现 | 未修正,阶段二 |
|
| 66 | 个人 AI 助理报告大纲 | `44:229` | — | 未实现 | 未修正,阶段二 |
|
||||||
@@ -126,8 +126,8 @@
|
|||||||
|
|
||||||
## 当前优先级
|
## 当前优先级
|
||||||
|
|
||||||
1. **P0:正式主管角色与项目范围**。线上视觉已发布,但正式主管手机号/外部组织映射和项目级权限仍需用正式组织数据验证。
|
1. **P0:正式账号、角色与项目范围**。当前包已发布,仍需用正式 OTP 和组织数据验证员工/主管/候选人及项目级权限正反例。
|
||||||
2. **P0:M5 正式试点证据**。本地严格门禁可跑通,但正式窗口内的员工、训练次数、校准、SOP 评审和完训率仍需真实数据。
|
2. **P0:M5 正式试点证据**。本地严格门禁可跑通,但正式窗口内的员工、训练次数、校准、SOP 评审和完训率仍需真实数据。
|
||||||
3. **P1:按 BRD 补齐一期业务缺口**。优先是岗位-SOP匹配与上岗资格、错题本可见闭环、案例学习/视频详情的稳定数据模型。
|
3. **P1:按 BRD 补齐一期业务缺口**。优先是岗位-SOP匹配与上岗资格、错题本可见闭环、案例学习/视频详情的稳定数据模型。
|
||||||
4. **P2:案例详情数据模型**。`caseId`、原始音频媒体留痕、学习点和主管点评已具备;继续等待真实视频样片与相关训练场景契约,不用假视频占位。
|
4. **P2:案例详情数据模型**。`caseId`、原始音频媒体留痕、学习点和主管点评已具备;继续等待真实视频样片与相关训练场景契约,不用假视频占位。
|
||||||
5. **P3:阶段二/三页面**。个人 AI 助理、开放问题榜、积分/荣誉、完整偏好和独立 AI 教练编排按后续阶段单独立项。
|
5. **P3:剩余阶段二/三页面**。开放问题榜和积分基础能力已按客户要求提前发布;个人 AI 助理、完整徽章荣誉、完整偏好和独立 AI 教练编排仍按后续阶段单独立项。
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Figma 需求覆盖与版本偏差审计
|
# Figma 需求覆盖与版本偏差审计
|
||||||
|
|
||||||
|
> 生产状态更新(2026-07-18):本文记录的 Figma 修复、代码恢复和新增学习能力已随 `32fa376d` 发布。管理端/H5/后端产物、21 个迁移、目标 schema 与关键生产页面已经验证;正式 OTP 写链路、真实手机权限、外部模型和严格试点仍未验收。文中带日期的“本轮未发布”仅描述当时批次,不再代表当前现网。
|
||||||
|
|
||||||
> 日期:2026-07-17
|
> 日期:2026-07-17
|
||||||
> Figma 文件:[银城员工端与个人 AI 助理设计](https://www.figma.com/design/30hFiKtieGYraOZvJPJcPd)
|
> Figma 文件:[银城员工端与个人 AI 助理设计](https://www.figma.com/design/30hFiKtieGYraOZvJPJcPd)
|
||||||
> 对照范围:历史可运行移动端 `mobile/`、已确认业务文档、Figma 实际画板、当前权威工程 `mobile-uni/`。
|
> 对照范围:历史可运行移动端 `mobile/`、已确认业务文档、Figma 实际画板、当前权威工程 `mobile-uni/`。
|
||||||
@@ -31,31 +33,31 @@ Figma 当前存在五类风险:
|
|||||||
| `54:2` 正式语音对练 | 有“按住说话”和切换文字输入,包含情绪/信任、SOP 求助、红线和风格重生成 | 训练语音设计较完整,但不能代替问师傅、题目、点评等其他页面的语音覆盖 |
|
| `54:2` 正式语音对练 | 有“按住说话”和切换文字输入,包含情绪/信任、SOP 求助、红线和风格重生成 | 训练语音设计较完整,但不能代替问师傅、题目、点评等其他页面的语音覆盖 |
|
||||||
| `61:530` 主管训练任务派发 | 明确显示 3 名员工、多选删除、训练类型、专项包、截止时间、任务目标和“确认派发给 3 人” | 多人派发和截止时间已经是明确 Figma 要求;当前实现只有单人、场景和原因 |
|
| `61:530` 主管训练任务派发 | 明确显示 3 名员工、多选删除、训练类型、专项包、截止时间、任务目标和“确认派发给 3 人” | 多人派发和截止时间已经是明确 Figma 要求;当前实现只有单人、场景和原因 |
|
||||||
| `79:11` SOP 回答结果 | 有问题、结论、三步操作、可用话术、引用、视频、有帮助/没解决/收藏 | 对应画板没有回答播报、总结卡播报和下载图片控件;只照此画板会遗漏历史语音优势和新增下载要求 |
|
| `79:11` SOP 回答结果 | 有问题、结论、三步操作、可用话术、引用、视频、有帮助/没解决/收藏 | 对应画板没有回答播报、总结卡播报和下载图片控件;只照此画板会遗漏历史语音优势和新增下载要求 |
|
||||||
| `95:6` 开放问题榜 | 有“今天遇到什么难题了”“有奖征问题”、热门/待回答/有悬赏/我参与的和奖励规则 | 设计本身完整,但业务总纲明确属于阶段二;不能因为 Figma 已画就算当前阶段缺陷 |
|
| `95:6` 开放问题榜 | 有“今天遇到什么难题了”“有奖征问题”、热门/待回答/有悬赏/我参与的和奖励规则 | 原属阶段二,不能仅因 Figma 已画就算阶段一缺陷;2026-07-17 客户明确要求一并实现后,已作为批准的范围例外开发并发布 |
|
||||||
|
|
||||||
还有两处文件内部口径冲突:
|
还有两处文件内部口径冲突:
|
||||||
|
|
||||||
- `FIGMA_DESIGN_INVENTORY.md` 顶部仍把员工端“问”和“我”标记为 `[-]`,说明业务状态不完整;同一文件后部却写“设计冻结完成”。
|
- `FIGMA_DESIGN_INVENTORY.md` 顶部仍把员工端“问”和“我”标记为 `[-]`,说明业务状态不完整;同一文件后部却写“设计冻结完成”。
|
||||||
- `FIGMA_IMPLEMENTATION_MATRIX.md` 曾把训练任务派发行标为“已实现”,当时 `mobile-uni/src/pages/supervisor/assign/index.vue` 只有单员工选择、没有截止时间。2026-07-17 晚间已补多人、截止快捷项和批量接口,矩阵已改为记录本地验证事实,仍不等同于生产发布。
|
- `FIGMA_IMPLEMENTATION_MATRIX.md` 曾把训练任务派发行标为“已实现”,当时 `mobile-uni/src/pages/supervisor/assign/index.vue` 只有单员工选择、没有截止时间。2026-07-17 晚间补齐多人、截止快捷项和批量接口,2026-07-18 已随当前版本发布;生产正式团队仍待验收。
|
||||||
|
|
||||||
## 3. 四方功能对照
|
## 3. 四方功能对照
|
||||||
|
|
||||||
| 功能 | 历史可运行版/文档要求 | Figma 表达 | 当前实现 | 客观结论与动作 |
|
| 功能 | 历史可运行版/文档要求 | Figma 表达 | 当前实现 | 客观结论与动作 |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| 问师傅语音输入 | 旧 `mobile/src/App.vue` 有语音录制/选择音频并转写;产品方案也明确“语音提问” | 首页 `23:3` 明确写“语音提问”,但未形成完整提问、转写、失败和重试状态画板 | 本地已恢复录音、转写、选择音频兜底,继续复用 `speech.ts` 与 `/api/ai/asr` | **确认回退已在代码恢复,未发布**:Figma 仍需补录音、识别、失败和文件兜底状态 |
|
| 问师傅语音输入 | 旧 `mobile/src/App.vue` 有语音录制/选择音频并转写;产品方案也明确“语音提问” | 首页 `23:3` 明确写“语音提问”,但未形成完整提问、转写、失败和重试状态画板 | 已恢复录音、转写、选择音频兜底,继续复用 `speech.ts` 与 `/api/ai/asr` | **确认回退已恢复并部署**:Figma 仍需补录音、识别、失败和文件兜底状态;真机权限待验收 |
|
||||||
| SOP 回答播报 | 旧版有“听一遍” | `79:11` 无播报控件 | 本地已补回答播报,未证明线上已发布 | **Figma 遗漏、代码本地恢复**:先保留功能,再补设计,不得为了贴图删掉 |
|
| SOP 回答播报 | 旧版有“听一遍” | `79:11` 无播报控件 | 已补回答播报并发布 | **Figma 遗漏、代码已恢复**:保留功能并补设计,不得为了贴图删掉 |
|
||||||
| 总结卡播报 | 旧版有总结卡 TTS;总纲写“语音播报(能力已有)” | 对应清单/画板未体现完整播报状态 | 本地已补总结卡播报 | **Figma 遗漏、代码本地恢复**:补播放/停止/生成失败状态 |
|
| 总结卡播报 | 旧版有总结卡 TTS;总纲写“语音播报(能力已有)” | 对应清单/画板未体现完整播报状态 | 已补总结卡播报并发布 | **Figma 遗漏、代码已恢复**:补播放/停止/生成失败状态 |
|
||||||
| 总结卡下载图片 | 旧版无充分证据;本轮客户新增 | Figma 未体现下载控件 | 本地已补 PNG 下载,无聊天模型时按真实 SOP 原文降级生成;浏览器已触发下载成功提示 | **新增需求已本地实现,未发布**:仍需补 iOS/Android H5 下载状态设计与真机验收 |
|
| 总结卡下载图片 | 旧版无充分证据;本轮客户新增 | Figma 未体现下载控件 | 已补 PNG 下载,无聊天模型时按真实 SOP 原文降级生成;浏览器已触发下载成功提示 | **已实现并部署**:仍需补 iOS/Android H5 下载状态设计与真机验收 |
|
||||||
| 全局字号调节 | 未找到旧版开关;客户为老年员工新增明确要求 | `4:16` 已修为标准/大字/超大字三张同构画板 | 本地已实现全局三档、持久化与响应式自增高;400×900 已逐档截图复核 | **新增无障碍需求已本地实现并视觉验证,未发布**:继续做真机触控、键盘和读屏验收 |
|
| 全局字号调节 | 未找到旧版开关;客户为老年员工新增明确要求 | `4:16` 已修为标准/大字/超大字三张同构画板 | 已实现全局三档、持久化与响应式自增高;400×900 已逐档截图复核 | **已实现、视觉验证并部署**:继续做真机触控、键盘和读屏验收 |
|
||||||
| 主管多人派发 | 未证明旧版可运行;客户本轮再次明确 | `61:530` 明确选择 3 人并批量确认 | 本地已支持姓名多选、最多 100 人、逐人结果、幂等请求与失败隔离;真实提交 2/2 成功 | **Figma 需求已本地实现,未发布**:生产继续验证大团队权限与超时重试 |
|
| 主管多人派发 | 未证明旧版可运行;客户本轮再次明确 | `61:530` 明确选择 3 人并批量确认 | 已支持姓名多选、最多 100 人、逐人结果、幂等请求与失败隔离;本地真实提交 2/2 成功 | **已实现并部署**:生产继续验证大团队权限与超时重试 |
|
||||||
| 截止时间/快捷日期 | 历史计划要求训练任务有截止时间;客户细化为今天/明天/3天/7天 | `61:530` 有精确截止时间,没有快捷日期控件 | 本地已增加 `dueDate` 及当天/明天/3天/7天快捷项,并在逐人结果显示到期日 | **部分被 Figma 覆盖的需求已本地实现,未发布**:补设计状态并复验时区边界 |
|
| 截止时间/快捷日期 | 历史计划要求训练任务有截止时间;客户细化为今天/明天/3天/7天 | `61:530` 有精确截止时间,没有快捷日期控件 | 已增加 `dueDate` 及当天/明天/3天/7天快捷项,并在逐人结果显示到期日 | **已实现并部署**:补设计状态并复验生产时区边界 |
|
||||||
| 每日题每日变化/专项不重复 | 文档要求覆盖岗位常见场景和动态训练 | Figma 主要画页面结果,没有内容版本、日期派发、去重和降级规则 | 本地每日题已扩为 7 组 21 题,按日期、岗位和员工身份轮换,同日稳定、相邻日不重复 | **非视觉型缺口已完成第一阶段修复,未发布**:继续扩正式岗位题库和内容版本审计 |
|
| 每日题每日变化/专项不重复 | 文档要求覆盖岗位常见场景和动态训练 | Figma 主要画页面结果,没有内容版本、日期派发、去重和降级规则 | 五岗位题库按日期、岗位和员工身份轮换,并保存内容版本、快照和哈希 | **非视觉型缺口已实现并部署**:继续做正式内容审核和长期样本审计 |
|
||||||
| 生成题目、AI 回复、点评播报 | 语音优先原则支持;不能证明旧版全部覆盖 | 对应画板没有形成全链路播报覆盖表 | 本地已覆盖每日题、AI 回复、点评、参考答案、训练结果与候选面试;无 TTS 模型时 H5 已验证设备语音降级 | **需求覆盖已在代码补齐,未发布**:Figma 仍需形成内容类型/播放状态矩阵 |
|
| 生成题目、AI 回复、点评播报 | 语音优先原则支持;不能证明旧版全部覆盖 | 对应画板没有形成全链路播报覆盖表 | 已覆盖每日题、AI 回复、点评、参考答案、训练结果与候选面试;无 TTS 模型时 H5 可降级设备语音 | **已实现并部署**:Figma 仍需形成内容类型/播放状态矩阵,真机待验收 |
|
||||||
| 主管切换学习端 | 客户明确主管也要学习;历史目标支持角色兼任 | Figma 分别画员工端和主管端,没有双模式切换入口及权限说明 | 本地已实现“工作台/学习端”双向切换,显示模式变化但组织角色保持主管;已用主管登录态验证 | **代码已本地实现,Figma 仍未覆盖,未发布**:补入口、返回路径与权限说明画板 |
|
| 主管切换学习端 | 客户明确主管也要学习;历史目标支持角色兼任 | Figma 分别画员工端和主管端,没有双模式切换入口及权限说明 | 已实现“工作台/学习端”双向切换,显示模式变化但组织角色保持主管 | **已实现并部署,Figma 仍未覆盖**:补入口、返回路径与权限说明画板 |
|
||||||
| 岗位差异化内容 | 总纲要求岗位→SOP→场景→学习内容映射 | Figma 有多个岗位/角色页面,但没有展示内容分发规则和岗位覆盖表 | 当前主要仍围绕生活顾问 | **功能规则缺口,P1**:用岗位内容矩阵验收,不用“页面不同”代替“内容不同” |
|
| 岗位差异化内容 | 总纲要求岗位→SOP→场景→学习内容映射 | Figma 有多个岗位/角色页面,但没有展示内容分发规则和岗位覆盖表 | 五岗位场景和题库已发布,正式 SOP/资格规则仍未完整配置 | **部分实现**:用岗位内容矩阵和正式内容验收,不用“页面不同”代替“内容不同” |
|
||||||
| 问 AI(全网) | 旧版无;会议基线是企业内部知识 | 本轮检查的设计索引和相关问答画板未见独立外部 AI 入口、来源和免责声明 | 当前无全网检索 | **新增范围**:单独立项,与问师傅分入口、分数据外发、分引用和免责声明 |
|
| 问 AI(全网) | 旧版无;会议基线是企业内部知识 | 原设计索引未见独立外部 AI 入口、来源和免责声明 | 已与问师傅分入口/接口/来源并发布,提供方须测试后启用 | **新增范围已批准并实现**:Figma 仍需补来源、禁用、错误和免责声明状态;正式提供方待验收 |
|
||||||
| 图片/视频提问 | 历史文档列为新增/后置情境能力 | `79:11` 有回答侧视频内容,但没有提问附件上传流程 | 本地已补本次查询的图片/视频附件分析 | **设计与实现顺序倒置**:先补权限、PII 外发、大小/失败状态设计,再决定是否发布 |
|
| 图片/视频提问 | 历史文档列为新增/后置情境能力 | `79:11` 有回答侧视频内容,但没有提问附件上传流程 | 已补本次查询的图片/视频附件分析并发布 | **设计仍需追齐**:补权限、PII 外发、大小/失败状态,真机待验收 |
|
||||||
| 开放问题榜/有奖问答 | 总纲明确阶段二,阶段一只积累 `knowledge_gap` | `95:6` 等画板已完整设计 | 当前没有业务闭环 | **不是当前版本误删**:保留为阶段二,不得因“Figma 已完成”提前宣称上线或拉入 P0 |
|
| 开放问题榜/有奖问答 | 原总纲列阶段二,2026-07-17 客户明确要求一并实现 | `95:6` 等画板已完整设计 | 提问、回答、审核、最佳答案、积分/学分已实现并发布 | **范围例外已落地**:正式运营规则和认证写链路待验收;不含现金/提现 |
|
||||||
| 个人 AI 助理/个人资料库 | 2026-07-11 新增,明确阶段二 | Figma 已有完整画板组 | 当前未实现 | **阶段混放风险**:从当前阶段一研发指令中排除,另建阶段二验收表 |
|
| 个人 AI 助理/个人资料库 | 2026-07-11 新增,明确阶段二 | Figma 已有完整画板组 | 当前未实现 | **阶段混放风险**:从当前阶段一研发指令中排除,另建阶段二验收表 |
|
||||||
|
|
||||||
## 4. 根因判断
|
## 4. 根因判断
|
||||||
@@ -130,12 +132,12 @@ Figma 当前存在五类风险:
|
|||||||
|
|
||||||
## 8. 立即执行顺序
|
## 8. 立即执行顺序
|
||||||
|
|
||||||
1. 先让客户确认《员工端版本功能对比与功能对齐清单》中的“确认回退/历史规划/新增需求”分类。
|
1. 给已确认项补齐需求 ID、来源、阶段和功能覆盖状态,并回写 Figma 索引。
|
||||||
2. 给确认项分配需求 ID,并把阶段、来源和功能覆盖状态回写到 Figma 索引。
|
2. 用正式 OTP 完成员工、主管、候选人和后台角色正反例,不用开发固定验证码替代。
|
||||||
3. 先做 P0:问师傅语音输入、关键内容播报全覆盖、每日题/专项版本和去重。
|
3. 在真实手机复验语音、附件、下载、三级字号、键盘和读屏。
|
||||||
4. 再做 P1:多人派发、截止时间、主管学习端、岗位内容映射、字号三档。
|
4. 由业务审核五岗位题库/SOP/资格、问题榜积分规则和全网 AI 正式提供方。
|
||||||
5. 开放问题榜、个人 AI 助理和全网 AI 分别按阶段二或新增专项推进,不与阶段一修复混包。
|
5. 个人 AI 助理、完整徽章荣誉和完整偏好仍按后续阶段管理。
|
||||||
6. 每一批完成后分别记录“本地实现、功能验证、视觉验证、已发布、生产验证”,不再用一个“完成”覆盖所有状态。
|
6. 每批分别记录“本地实现、功能验证、视觉验证、已发布、生产验证、正式业务验收”。
|
||||||
|
|
||||||
## 9. 补充抽查:`页面|我` 不是有效的字号变体组
|
## 9. 补充抽查:`页面|我` 不是有效的字号变体组
|
||||||
|
|
||||||
@@ -172,7 +174,7 @@ Figma 当前存在五类风险:
|
|||||||
- 修复前四张画板已复制为隐藏备份,根节点为 `251:119`、`251:299`、`251:358`、`251:417`。
|
- 修复前四张画板已复制为隐藏备份,根节点为 `251:119`、`251:299`、`251:358`、`251:417`。
|
||||||
- 修复后逐张重新生成 400×886 截图并人工查看,同时复核直接子节点网格、文字越界、字体族、最小字号和固定层;三稿首屏均未发现重叠或裁切。
|
- 修复后逐张重新生成 400×886 截图并人工查看,同时复核直接子节点网格、文字越界、字体族、最小字号和固定层;三稿首屏均未发现重叠或裁切。
|
||||||
|
|
||||||
因此 `4:16` 的状态先由“设计阻塞”调整为 **Figma 视觉已修**;随后代码恢复批次已实现全局字号和持久化并完成本地视觉复核,详见 10.5。两者均不代表已经发布。
|
因此 `4:16` 的状态由“设计阻塞”调整为 **Figma 视觉已修**;随后代码实现全局字号和持久化并完成本地视觉复核,2026-07-18 已随当前 H5 发布。真实设备触控、键盘和读屏仍是独立验收项。
|
||||||
|
|
||||||
## 10. 全文件批量质量审计(2026-07-17)
|
## 10. 全文件批量质量审计(2026-07-17)
|
||||||
|
|
||||||
@@ -197,7 +199,7 @@ Figma 当前存在五类风险:
|
|||||||
|
|
||||||
| 页面 / 节点 | 插件与截图证据 | 分级 | 处理 |
|
| 页面 / 节点 | 插件与截图证据 | 分级 | 处理 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 页面|我 `4:16` | 修复前四张字号画板结构漂移、指标错误、双 active、超大字重叠和末尾安全区不足;2026-07-17 已修为 `7:2` / `253:131` / `253:188` 三张同构稿并逐张截图复核 | **Figma 视觉已修;代码本地已实现并复核** | 发布后补真实设备触控、键盘、读屏和长数据回流验证,不再使用隐藏旧稿 |
|
| 页面|我 `4:16` | 修复前四张字号画板结构漂移、指标错误、双 active、超大字重叠和末尾安全区不足;2026-07-17 已修为 `7:2` / `253:131` / `253:188` 三张同构稿并逐张截图复核 | **Figma 已修;代码已实现、部署** | 补真实设备触控、键盘、读屏和长数据回流验证,不再使用隐藏旧稿 |
|
||||||
| 页面|问 `21:3` | 修复前空回答态被固定底栏遮住 | **Figma 已修** | 内容末尾已增加 108px 安全占位并重新截图;真实实现仍验证长回答、键盘与滚动末尾 |
|
| 页面|问 `21:3` | 修复前空回答态被固定底栏遮住 | **Figma 已修** | 内容末尾已增加 108px 安全占位并重新截图;真实实现仍验证长回答、键盘与滚动末尾 |
|
||||||
| SOP 反馈 `79:674` | 修复前底部说明被裁 6px | **Figma 已修** | 画板高度由 832 增至 860,完整说明已重新截图复核 |
|
| SOP 反馈 `79:674` | 修复前底部说明被裁 6px | **Figma 已修** | 画板高度由 832 增至 860,完整说明已重新截图复核 |
|
||||||
| 案例语音上传 `79:706` | 修复前上传表单被裁 48px | **Figma 已修** | 画板高度由 860 增至 932,上传区完整显示并重新截图复核 |
|
| 案例语音上传 `79:706` | 修复前上传表单被裁 48px | **Figma 已修** | 画板高度由 860 增至 932,上传区完整显示并重新截图复核 |
|
||||||
@@ -209,9 +211,9 @@ Figma 当前存在五类风险:
|
|||||||
### 10.3 对研发排期的影响
|
### 10.3 对研发排期的影响
|
||||||
|
|
||||||
- **可以继续按业务文档开发**:没有列入上表的当前阶段页面;Figma 仍只负责视觉,不负责补齐算法、权限和接口规则。
|
- **可以继续按业务文档开发**:没有列入上表的当前阶段页面;Figma 仍只负责视觉,不负责补齐算法、权限和接口规则。
|
||||||
- **已作为视觉实现基线并本地落地**:`4:16` 字号三档已修为同构稿;代码已补全局字号切换和持久化,真实设备的长内容/键盘/底栏与读屏仍待发布前验证。
|
- **已作为视觉实现基线并部署**:`4:16` 字号三档已修为同构稿,代码已补全局字号切换和持久化;真实设备的长内容、键盘、底栏与读屏仍待验收。
|
||||||
- **当前阶段 Figma 截断缺陷已修**:`21:3`、`79:674`、`79:706` 可作为新的视觉参考,但代码仍须以真实同尺寸截图和交互状态完成二次验收。
|
- **当前阶段 Figma 截断缺陷已修**:`21:3`、`79:674`、`79:706` 可作为新的视觉参考,但代码仍须以真实同尺寸截图和交互状态完成二次验收。
|
||||||
- **后续阶段暂不进入当前主线**:工作积分、荣誉中心、个人 AI 助理、开放问题榜等虽已修复确定性视觉错误,功能仍按阶段二/三管理。
|
- **后续阶段边界**:开放问题榜和积分基础能力已按客户确认提前发布;工作积分排行榜、完整荣誉中心、个人 AI 助理等仍按阶段二/三管理。
|
||||||
- **索引必须更新后才能重新冻结**:当前真实口径为 81 页/78 张 `Screen/` 画板,结构复扫结果为默认 `Frame` 0、小于 12px 文本 0、根级越界 0;索引仍写 78/70,不能继续作为文件总数事实源。
|
- **索引必须更新后才能重新冻结**:当前真实口径为 81 页/78 张 `Screen/` 画板,结构复扫结果为默认 `Frame` 0、小于 12px 文本 0、根级越界 0;索引仍写 78/70,不能继续作为文件总数事实源。
|
||||||
|
|
||||||
### 10.4 修复后的再次复检边界
|
### 10.4 修复后的再次复检边界
|
||||||
@@ -223,7 +225,7 @@ Figma 当前存在五类风险:
|
|||||||
- **Figma 结构复核**:78 张画板,默认 `Frame` 0、小于 12px 文本 0、不可滚动根级越界 0。
|
- **Figma 结构复核**:78 张画板,默认 `Frame` 0、小于 12px 文本 0、不可滚动根级越界 0。
|
||||||
- **Figma 视觉复核**:78 张当次截图已逐张查看;本轮发现的裁切、头像重叠、占位数据和字符级换行已修并复截图。
|
- **Figma 视觉复核**:78 张当次截图已逐张查看;本轮发现的裁切、头像重叠、占位数据和字符级换行已修并复截图。
|
||||||
- **代码实现/浏览器复核**:本轮没有修改移动端或管理端代码,不能把 Figma 修复写成代码已对齐;同尺寸实现截图、滚动、键盘、长数据、触控和读屏仍需单独验证。
|
- **代码实现/浏览器复核**:本轮没有修改移动端或管理端代码,不能把 Figma 修复写成代码已对齐;同尺寸实现截图、滚动、键盘、长数据、触控和读屏仍需单独验证。
|
||||||
- **发布/生产验证**:本轮未发布,不改变现网完成状态。
|
- **当时的发布状态**:本段所述 Figma 批次当日没有发布;其后代码批次已于 2026-07-18 发布,当前状态以本文开头和 11.1 为准。
|
||||||
|
|
||||||
### 10.5 后续代码恢复与浏览器复核(2026-07-17 晚间)
|
### 10.5 后续代码恢复与浏览器复核(2026-07-17 晚间)
|
||||||
|
|
||||||
@@ -235,7 +237,7 @@ Figma 当前存在五类风险:
|
|||||||
- 总结卡在无聊天模型配置时只摘录相关 SOP 原文并标注来源,排除低相关片段;浏览器已显示下载成功提示。
|
- 总结卡在无聊天模型配置时只摘录相关 SOP 原文并标注来源,排除低相关片段;浏览器已显示下载成功提示。
|
||||||
- TTS 模型未配置时,H5 已从后端 TTS 自动切换到设备语音,按钮从“语音播报”进入“停止播报”,随后可手动停止。
|
- TTS 模型未配置时,H5 已从后端 TTS 自动切换到设备语音,按钮从“语音播报”进入“停止播报”,随后可手动停止。
|
||||||
|
|
||||||
该批次的完成层级为 **本地实现、自动化验证、浏览器交互验证和视觉验证**;仍未发布、未做生产验证,也未完成真实手机上的麦克风/相册权限与读屏验收。
|
该批次当时完成到 **本地实现、自动化验证、浏览器交互验证和视觉验证**;2026-07-18 已继续完成发布和生产基础验证,但真实手机上的麦克风/相册权限与读屏仍未验收。
|
||||||
|
|
||||||
## 11. 代码实现的逐页视觉复核(2026-07-18)
|
## 11. 代码实现的逐页视觉复核(2026-07-18)
|
||||||
|
|
||||||
@@ -250,6 +252,12 @@ Figma 当前存在五类风险:
|
|||||||
|
|
||||||
当次证据保存在 `.data/visual-audit-20260718/runtime/`:`contact-employee-standard.png`、`contact-employee-accessibility.png`、`contact-supervisor.png` 和 `contact-admin.png`。这些证据只证明本地运行与视觉验证,仍不等于发布和生产验证。
|
当次证据保存在 `.data/visual-audit-20260718/runtime/`:`contact-employee-standard.png`、`contact-employee-accessibility.png`、`contact-supervisor.png` 和 `contact-admin.png`。这些证据只证明本地运行与视觉验证,仍不等于发布和生产验证。
|
||||||
|
|
||||||
|
### 11.1 生产发布复核(2026-07-18)
|
||||||
|
|
||||||
|
- 当前提交 `32fa376d` 的管理端、H5、后端和 21 个迁移已发布,目标 schema `34/34`、新增表排序规则兼容 `18/18`。
|
||||||
|
- 生产浏览器已查看管理端首页、常见难题、问题榜运营、知识空间、全网 AI 配置和 390×844 H5;最终无控制台或请求错误。
|
||||||
|
- 本次只完成生产包、schema、公开接口和关键页面验证。正式 OTP 下的移动端写操作、真机麦克风/文件/下载/读屏、外部模型和严格试点仍需单独验收。
|
||||||
|
|
||||||
## 12. 关联文档
|
## 12. 关联文档
|
||||||
|
|
||||||
- [员工端版本功能对比与功能对齐清单-20260717.md](员工端版本功能对比与功能对齐清单-20260717.md)
|
- [员工端版本功能对比与功能对齐清单-20260717.md](员工端版本功能对比与功能对齐清单-20260717.md)
|
||||||
|
|||||||
+1
-1
@@ -89,7 +89,7 @@ demo 数据、今日安排样例、问师傅 placeholder、对练入口场景,
|
|||||||
师傅形象层(§2.0)统摄两个面板:今日安排以师傅口吻叙述,问答从师傅气泡发起。
|
师傅形象层(§2.0)统摄两个面板:今日安排以师傅口吻叙述,问答从师傅气泡发起。
|
||||||
|
|
||||||
**职责地图按岗位配置渲染**(不写死布局):岗位 → 模块权重/排序/入口集,查配置表。
|
**职责地图按岗位配置渲染**(不写死布局):岗位 → 模块权重/排序/入口集,查配置表。
|
||||||
生活顾问 [问][练] 大区;保安/保洁将来 [学](视频)为大区。
|
生活顾问以「问」「练」为主;保安/保洁后续以「学(视频)」为主。
|
||||||
这张配置表即分发引擎规则版 v1 的第一块积木(见 §4)。
|
这张配置表即分发引擎规则版 v1 的第一块积木(见 §4)。
|
||||||
|
|
||||||
**「问师傅」= 产品灵魂交互**(入口即 §2.0 形象层的语音/文字/chips)。回答统一用**答案卡系统**:
|
**「问师傅」= 产品灵魂交互**(入口即 §2.0 形象层的语音/文字/chips)。回答统一用**答案卡系统**:
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
|
|
||||||
本手册用于银城与美途作为两个独立 SaaS 租户的知识空间初始化、内容迁移、授权、外部应用联调和回滚。租户、调用应用和知识空间是三层独立边界:内部用户的有效查询范围取“当前租户 + 当前调用应用绑定空间 + 用户/角色授权空间”的交集;外部应用只能访问其所属租户内显式绑定的空间。
|
本手册用于银城与美途作为两个独立 SaaS 租户的知识空间初始化、内容迁移、授权、外部应用联调和回滚。租户、调用应用和知识空间是三层独立边界:内部用户的有效查询范围取“当前租户 + 当前调用应用绑定空间 + 用户/角色授权空间”的交集;外部应用只能访问其所属租户内显式绑定的空间。
|
||||||
|
|
||||||
|
2026-07-18 平台代码、管理页和 schema 已随 `32fa376d` 发布,生产知识空间页面已打开复核。该状态不代表银城/美途正式租户、空间、授权矩阵、外部令牌和内容迁移已经业务验收;这些仍须按本手册逐项确认。生产执行知识平台迁移后,必须最后执行 `aihr_20260718_release_collation_compat_mysql8.sql`,防止历史库排序规则与新表混用。
|
||||||
|
|
||||||
禁止把集团账号、公司名称、客户端传入的 `tenantId/userId/extPartyId` 当作授权依据。禁止在浏览器、小程序包、日志、工单或文档中保存 API_TOKEN。回滚优先停用应用或解绑空间,不删除知识数据、附件或 OSS 对象。
|
禁止把集团账号、公司名称、客户端传入的 `tenantId/userId/extPartyId` 当作授权依据。禁止在浏览器、小程序包、日志、工单或文档中保存 API_TOKEN。回滚优先停用应用或解绑空间,不删除知识数据、附件或 OSS 对象。
|
||||||
|
|
||||||
## 2. 初始化前确认
|
## 2. 初始化前确认
|
||||||
@@ -175,7 +177,7 @@ AIHR_SHARED_DOC_QUERY='<测试文件唯一标记>' \
|
|||||||
node scripts/verify-knowledge-platform.mjs
|
node scripts/verify-knowledge-platform.mjs
|
||||||
```
|
```
|
||||||
|
|
||||||
只有工程回归、真实 HTTP 正反例、数据库租户归属、Qdrant tenant+knowledge 过滤和每空间标准题都通过,才可标记“联调可用”。生产发布、真实内容负责人/授权矩阵签字和试点样本未完成时,不得标记“线上生效”或“正式试点验收”。
|
只有工程回归、真实 HTTP 正反例、数据库租户归属、Qdrant tenant+knowledge 过滤和每空间标准题都通过,才可标记“联调可用”。当前生产包已发布,但在真实内容负责人/授权矩阵签字、正式空间初始化、令牌联调和标准题完成前,不得标记“知识平台业务上线”或“正式试点验收”。
|
||||||
|
|
||||||
## 8. 回滚
|
## 8. 回滚
|
||||||
|
|
||||||
|
|||||||
+17
-20
@@ -1,25 +1,22 @@
|
|||||||
# PC 管理端功能差异 TODO
|
# PC 管理端功能差异 TODO
|
||||||
|
|
||||||
> 依据:2026-07-09 浏览器实测管理端页面 + `docs/物业AI人力资源系统业务需求文档BRD.md` + `docs/银城员工端APP分阶段实施总纲.md` + `docs/AI陪练二期开发推进计划.md`。
|
> 更新:2026-07-18。本文只保留当前尚未闭环的 PC 运营端差异;已上线能力以 `BRD_IMPLEMENTATION_AUDIT.md` 和 `API_INTEGRATION.md` 为准。发布可用不等于正式试点验收通过。
|
||||||
> 口径:先支撑阶段一“陪练试点可用”,阶段二/三需求只登记,不抢跑。
|
|
||||||
|
|
||||||
| 优先级 | 差异项 | 当前状态 | 本次实现 | 验收口径 |
|
| 优先级 | 剩余差异 | 当前事实 | 下一验收口径 |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|
|
||||||
| P0 | 组织人员 / 岗位 / 项目权限运营页 | 已挂 `组织与权限` 页面,接组织快照查询、项目/岗位/层级/状态筛选、同步预检和质量提示 | 保留组织人员快照、岗位映射、项目数据范围和同步预检入口 | PC 可查询人员快照,看到身份三轴、权限映射、同步结果边界 |
|
| P1 | 课程 / 课件 / 视频学习运营 | 员工“学”页和主管移动端考试已上线,但没有统一的 PC 课程、课件和学习进度运营台 | 可编排课程与课件、查看员工进度;视频观看统计按业务规则验收 |
|
||||||
| P0 | 主管复盘 + 人工校准 + 派发训练闭环 | 已挂 `复盘校准` 页面,接真实复盘、评分校准、学分和派发接口 | 保留一页式处理:看记录、写建议、校准总分、给学分、派训练 | 主管能从一页完成“看记录 -> 写建议 -> 校准评分 -> 派训练” |
|
| P1 | 考试 PC 运营台 | 主管端可出题,员工可答题,后端已具备幂等交卷;尚无独立 PC 题库、考试发布和成绩运营页 | HR/主管能在 PC 端维护、发布、查询和导出考试结果,权限与移动端一致 |
|
||||||
| P0 | 能力画像 / 等级证据包 / 激励规则 | 已挂 `成长激励` 页面,接画像、晋升证据包、预警、待训任务和专项派发接口 | 在成长页选择员工、专项场景和派发原因后派训练;规则先展示最小运营口径 | HR 能看到初/中/高级证据和学分规则口径,并能按场景派发专项 |
|
| P1 | 大喇叭文件分发 | 阶段二能力,尚无页面和生产业务流程 | 按岗位/项目/层级定向发布,支持摘要、已读未读和补推 |
|
||||||
| P1 | 学模块课程 / 考试后台 | 文档要求阶段二建设;当前无页面 | 暂不实现,保留 TODO | 阶段二专项设计后再建课程、课件、考试、成绩表 |
|
| P1 | 品检翻转 | 阶段二能力,尚无页面 | 明确图片分析模板、证据留存和业务巡检流程后再实现 |
|
||||||
| P1 | 大喇叭文件分发 | 总纲阶段二;当前无页面 | 暂不实现,保留 TODO | 半年会后按身份三轴做摘要、已读未读、补推 |
|
| P2 | 北森 SSO / 组织与考勤入口 | 阶段三能力,接口与授权边界未定 | 获得正式接口文档后完成跳转、同步、权限与审计验收 |
|
||||||
| P1 | 开放问题榜 | 阶段一只埋 `knowledge_gap`;当前无 UI | 暂不实现,保留 TODO | 阶段二消费 gap 池、上榜、最佳答案、沉淀入库 |
|
|
||||||
| P1 | 品检翻转 | 阶段二;当前无页面 | 暂不实现,保留 TODO | 依赖图片分析模板和业务巡检流程 |
|
|
||||||
| P2 | 北森 SSO / 考勤入口 | 阶段三;接口未知 | 暂不实现,保留 TODO | 阶段三拿到北森接口文档后做跳转/同步 |
|
|
||||||
|
|
||||||
## 本次交付边界
|
## 已移出 TODO(2026-07-18)
|
||||||
|
|
||||||
- 不新建数据库表。
|
- 组织与权限、复盘校准、成长激励、难点派发已有管理端页面和后端接口。
|
||||||
- 不改登录、密钥、模型配置、支付、部署脚本。
|
- 开放问题榜、悬赏积分、答案采纳和激励规则管理已经发布,不再按“当前无 UI”处理。
|
||||||
- 优先复用已有 `/api/aihr/mobile/practice/*` 与 `/api/train/practice/*` 接口。
|
- 企业知识空间、成员授权和全网 AI 搜索源配置已经发布;仍需正式业务账号和权限正反例验收。
|
||||||
- 组织人员快照在 `组织与权限` 页分页展示;业务页只取下拉候选,真实复盘范围由接口参数落到后端过滤。
|
|
||||||
- `组织与权限` 页暴露手机号覆盖数和疑似乱码数,只做质量提示,不展示手机号明细。
|
## 持续约束
|
||||||
- 组织同步预检同步返回手机号覆盖数、脱敏手机号数和疑似乱码数;手机号只统计可用于移动端登录的 11 位手机号。
|
|
||||||
- 规则配置中心先做运营口径展示;需要真实持久化时再补 `incentive_rule` 等表。
|
- 阶段一正式试点必须以唯一在职组织身份、同一统计窗口和严格预检为准,不能用历史 seed 或开发身份代替。
|
||||||
|
- 阶段二/三能力只有在业务、权限、安全与数据源明确后才进入实现,不以页面存在代替验收。
|
||||||
|
|||||||
+5
-5
@@ -23,10 +23,10 @@
|
|||||||
| [个人AI助理阶段二专项TechSpec.md](个人AI助理阶段二专项TechSpec.md) | 员工个人知识空间的物理分域、数据模型、API、检索融合、权限、安全、删除和测试规格 |
|
| [个人AI助理阶段二专项TechSpec.md](个人AI助理阶段二专项TechSpec.md) | 员工个人知识空间的物理分域、数据模型、API、检索融合、权限、安全、删除和测试规格 |
|
||||||
| [个人AI助理阶段二开发推进计划.md](个人AI助理阶段二开发推进计划.md) | 个人 AI 助理阶段二按 P0/P1 拆分的逐任务实施、测试、提交和试点闸门 |
|
| [个人AI助理阶段二开发推进计划.md](个人AI助理阶段二开发推进计划.md) | 个人 AI 助理阶段二按 P0/P1 拆分的逐任务实施、测试、提交和试点闸门 |
|
||||||
| [AI陪练二期开发推进计划.md](AI陪练二期开发推进计划.md) | 总纲阶段一执行文档:AI 陪练从 MVP 演示闭环推进到管家(生活顾问)岗位试点可用;区分工程就绪与正式业务试点证据 |
|
| [AI陪练二期开发推进计划.md](AI陪练二期开发推进计划.md) | 总纲阶段一执行文档:AI 陪练从 MVP 演示闭环推进到管家(生活顾问)岗位试点可用;区分工程就绪与正式业务试点证据 |
|
||||||
| [员工端版本功能对比与功能对齐清单-20260717.md](员工端版本功能对比与功能对齐清单-20260717.md) | 历史可运行版、历史需求/设计、当前 `mobile-uni`、本地待发布修复与客户逐条反馈的版本对比和优先级 |
|
| [员工端版本功能对比与功能对齐清单-20260717.md](员工端版本功能对比与功能对齐清单-20260717.md) | 旧版/历史需求/当前实现/生产验收的版本对比,以及 2026-07-17 客户反馈逐项处理结果 |
|
||||||
| [BRD_IMPLEMENTATION_AUDIT.md](BRD_IMPLEMENTATION_AUDIT.md) | 顶部维护现阶段结论与三端输入/BRD 匹配矩阵,下方保留功能、权限、迁移、线上资源和未完成项证据;不替代正式发布验收 |
|
| [BRD_IMPLEMENTATION_AUDIT.md](BRD_IMPLEMENTATION_AUDIT.md) | 当前生产基线、三端输入/BRD 匹配、客户反馈完成分层和正式试点剩余硬门槛;旧发布流水从当前真相源移除 |
|
||||||
| [BRD_PRODUCTION_MIGRATION_RUNBOOK.md](BRD_PRODUCTION_MIGRATION_RUNBOOK.md) | AIHR BRD 生产 schema/内置内容迁移顺序、只读核验和发布后回归口径 |
|
| [BRD_PRODUCTION_MIGRATION_RUNBOOK.md](BRD_PRODUCTION_MIGRATION_RUNBOOK.md) | AIHR BRD 生产 schema/内置内容迁移顺序、只读核验和发布后回归口径 |
|
||||||
| [20260708/uni-app用户侧前端重建计划.md](20260708/uni-app用户侧前端重建计划.md) | 当前用户侧 `mobile-uni/` 重建计划、三端页面拆分、portless 入口、真实浏览器验证和验收进展 |
|
| [20260708/uni-app用户侧前端重建计划.md](20260708/uni-app用户侧前端重建计划.md) | `mobile-uni/` 重建阶段留档;当前完成状态以 BRD 审查和版本功能对比为准 |
|
||||||
| [20260708/数字师傅学练问报整合方案.md](20260708/数字师傅学练问报整合方案.md) | 产品定义(学练问报+问题榜+学分晋升+个人 AI 助理)、半年会发布会方案分层及客户需求逐项处置对照 |
|
| [20260708/数字师傅学练问报整合方案.md](20260708/数字师傅学练问报整合方案.md) | 产品定义(学练问报+问题榜+学分晋升+个人 AI 助理)、半年会发布会方案分层及客户需求逐项处置对照 |
|
||||||
| [20260708/发布会演示候选题单.md](20260708/发布会演示候选题单.md) | 2026-07-08 发布会演示候选题单,作为产品讨论留档,不作为阶段一开发入口 |
|
| [20260708/发布会演示候选题单.md](20260708/发布会演示候选题单.md) | 2026-07-08 发布会演示候选题单,作为产品讨论留档,不作为阶段一开发入口 |
|
||||||
| [基于AI的银城员工端APP项目立项与开发规划会议-2026年07月07日-来自【Get 笔记】.md](基于AI的银城员工端APP项目立项与开发规划会议-2026年07月07日-来自【Get%20笔记】.md) | 2026-07-07 立项会纪要原文(总纲的输入源,只作留档) |
|
| [基于AI的银城员工端APP项目立项与开发规划会议-2026年07月07日-来自【Get 笔记】.md](基于AI的银城员工端APP项目立项与开发规划会议-2026年07月07日-来自【Get%20笔记】.md) | 2026-07-07 立项会纪要原文(总纲的输入源,只作留档) |
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
| [物业AI人力资源系统开发规格TechSpec.md](物业AI人力资源系统开发规格TechSpec.md) | 工程结构、数据模型、页面路由、API 和核心实现规格 |
|
| [物业AI人力资源系统开发规格TechSpec.md](物业AI人力资源系统开发规格TechSpec.md) | 工程结构、数据模型、页面路由、API 和核心实现规格 |
|
||||||
| [BACKLOG.md](BACKLOG.md) | 需求池与延后事项(B1–B8:数据权限/人设语音/生成图片/生成视频/员工画像/视觉检索/数字师傅) |
|
| [BACKLOG.md](BACKLOG.md) | 需求池与延后事项(B1–B8:数据权限/人设语音/生成图片/生成视频/员工画像/视觉检索/数字师傅) |
|
||||||
| [H5_REDESIGN.md](H5_REDESIGN.md) | H5 前端重构设计蓝本(随身师傅定位、双引擎首页、答案卡、岗位化、路线图) |
|
| [H5_REDESIGN.md](H5_REDESIGN.md) | H5 前端重构设计蓝本(随身师傅定位、双引擎首页、答案卡、岗位化、路线图) |
|
||||||
| [AI陪练功能优化与缺口分析(修订).md](AI陪练功能优化与缺口分析(修订).md) | 陪练功能缺口 24 项核实修订与排期建议(原 docx 的代码实况校对版,排期以此为准) |
|
| [AI陪练功能优化与缺口分析(修订).md](AI陪练功能优化与缺口分析%28修订%29.md) | 陪练功能缺口 24 项核实修订与排期建议(原 docx 的代码实况校对版,排期以此为准) |
|
||||||
| [PC管理端功能差异TODO.md](PC管理端功能差异TODO.md) | 阶段一管理端差异与阶段二/三延后项;不作为当前阶段一完成证明 |
|
| [PC管理端功能差异TODO.md](PC管理端功能差异TODO.md) | 阶段一管理端差异与阶段二/三延后项;不作为当前阶段一完成证明 |
|
||||||
| [feedback/](feedback/) | 用户反馈原始截图与解读(按日期归档,含 ANALYSIS.md) |
|
| [feedback/](feedback/) | 用户反馈原始截图与解读(按日期归档,含 ANALYSIS.md) |
|
||||||
| [CODEBASE_ORIGINS.md](CODEBASE_ORIGINS.md) | 代码库来源与上游仓库说明 |
|
| [CODEBASE_ORIGINS.md](CODEBASE_ORIGINS.md) | 代码库来源与上游仓库说明 |
|
||||||
@@ -71,6 +71,6 @@
|
|||||||
| [originals/AI人力资源系统项目规划方案与AI接口说明.docx](originals/AI人力资源系统项目规划方案与AI接口说明.docx) | [AI人力资源系统项目规划方案与AI接口说明.md](AI人力资源系统项目规划方案与AI接口说明.md) |
|
| [originals/AI人力资源系统项目规划方案与AI接口说明.docx](originals/AI人力资源系统项目规划方案与AI接口说明.docx) | [AI人力资源系统项目规划方案与AI接口说明.md](AI人力资源系统项目规划方案与AI接口说明.md) |
|
||||||
| [originals/物业AI人力资源系统业务需求文档BRD.docx](originals/物业AI人力资源系统业务需求文档BRD.docx) | [物业AI人力资源系统业务需求文档BRD.md](物业AI人力资源系统业务需求文档BRD.md) |
|
| [originals/物业AI人力资源系统业务需求文档BRD.docx](originals/物业AI人力资源系统业务需求文档BRD.docx) | [物业AI人力资源系统业务需求文档BRD.md](物业AI人力资源系统业务需求文档BRD.md) |
|
||||||
| [originals/物业AI人力资源系统开发规格TechSpec.docx](originals/物业AI人力资源系统开发规格TechSpec.docx) | [物业AI人力资源系统开发规格TechSpec.md](物业AI人力资源系统开发规格TechSpec.md) |
|
| [originals/物业AI人力资源系统开发规格TechSpec.docx](originals/物业AI人力资源系统开发规格TechSpec.docx) | [物业AI人力资源系统开发规格TechSpec.md](物业AI人力资源系统开发规格TechSpec.md) |
|
||||||
| [originals/AI陪练功能优化与缺口分析 补充功能.docx](originals/AI陪练功能优化与缺口分析%20补充功能.docx) | [AI陪练功能优化与缺口分析(修订).md](AI陪练功能优化与缺口分析(修订).md) |
|
| [originals/AI陪练功能优化与缺口分析 补充功能.docx](originals/AI陪练功能优化与缺口分析%20补充功能.docx) | [AI陪练功能优化与缺口分析(修订).md](AI陪练功能优化与缺口分析%28修订%29.md) |
|
||||||
| [originals/物业AI陪练系统一期建设实施方案.docx](originals/物业AI陪练系统一期建设实施方案.docx) | [legacy/物业AI陪练系统一期建设实施方案.md](legacy/物业AI陪练系统一期建设实施方案.md) |
|
| [originals/物业AI陪练系统一期建设实施方案.docx](originals/物业AI陪练系统一期建设实施方案.docx) | [legacy/物业AI陪练系统一期建设实施方案.md](legacy/物业AI陪练系统一期建设实施方案.md) |
|
||||||
| [originals/物业管家与生活顾问AI陪练系统建设方案.docx](originals/物业管家与生活顾问AI陪练系统建设方案.docx) | 旧原始方案,仅归档 |
|
| [originals/物业管家与生活顾问AI陪练系统建设方案.docx](originals/物业管家与生活顾问AI陪练系统建设方案.docx) | 旧原始方案,仅归档 |
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
# 下一步工作计划(BRD 对齐版)
|
|
||||||
|
|
||||||
> 版本:v2.1(2026-07-15 二次修订:发布前只跑本地预检、remote match+schema 移到发布后;案例底线补齐算术;CER 阈值归 B4 确认;B7 按生产实测字段改写)
|
|
||||||
> 基准:《物业AI人力资源系统业务需求文档BRD.md》v1.2(唯一事实源)
|
|
||||||
> 阶段边界:《银城员工端APP分阶段实施总纲.md》阶段一(陪练)+ 2026-07-08《数字师傅学练问报整合方案》定案
|
|
||||||
> 现状证据:《BRD_IMPLEMENTATION_AUDIT.md》2026-07-15 最新条目 + 本日生产只读复核
|
|
||||||
> 时间锚点:半年会产品发布(须带一线真实使用数据)→ 2026-09 收费季前试点可用
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 0. 当前基线(2026-07-15 生产实测)
|
|
||||||
|
|
||||||
**已完成**(不再列入待办):
|
|
||||||
- 生产已发布至 `eacf1a0a` 批次并有后续静态增量,线上 H5 = `index-rPeDLbpR.js`;发布预检通过资源/后端哈希与健康检查。
|
|
||||||
- 生产 schema **16/16 齐备**,内置 Prompt **6/6**,生活顾问启用场景 **14 条**(含服务推介/增值 1、日常服务 1)。
|
|
||||||
- **组织同步已线上闭环**:开放平台拉取公司 17 / 部门 963 / 员工 3417;`aihr_org_snapshot` 3417 行,手机号可映射 **3392**,在职 2943。主管身份与项目数据权限的数据基础已就位。
|
|
||||||
|
|
||||||
**真实缺口**(本计划的全部工作对象):
|
|
||||||
- 正式试点证据全部为 0:评分校准 0/20、SOP 人工评审 0/14、案例 0/20、满意度 0、候选资料 0(L1-B/C/D)。
|
|
||||||
- SOP 文档仅 3/5,缺服务推介/增值与日常服务两类的真实业务内容确认(4.3.4、L1-B)。
|
|
||||||
- 方言 ASR 零实测(9.1 MVP 阻塞项、L1-C ≤5s)。
|
|
||||||
- 仓库有 17 个已跟踪修改 + 2 个未跟踪文件未收拢,发布预检拒绝任何脏工作区,当前修复批次无法发布。
|
|
||||||
- 25 名员工手机号不可用(上游数据问题,不阻塞,需反馈开放平台)。
|
|
||||||
- PII 出境条款、成本计量契约、HR 学分规则等外部输入未闭合(G3/G6、4.5)。
|
|
||||||
|
|
||||||
**结论:最大阻塞已从"发布与组织数据"转移到"试点圈定(B3)与内容/评审样本"。** 所有新增页面/功能默认冻结(守 MVP 切割线,BRD 附录 C 头号风险 = 范围失控)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. 主线 A:锁定发布批次,原子发布(本周内)
|
|
||||||
|
|
||||||
目标:把 `eacf1a0a` 之后累积的修复(G3 脱敏补强、案例音频收紧、岗位-SOP 收口等)作为一个命名 release batch 发布,线上 = release commit。
|
|
||||||
|
|
||||||
| # | 任务 | 依据 | 完成定义 | 期限 |
|
|
||||||
|---|---|---|---|---|
|
|
||||||
| A1 | 收拢工作区:对当前 17 个已跟踪修改按内容分批提交(后端服务/测试、文档、前端各一批),2 个未跟踪文件(本计划、`processing-import-ui.test.sh`)一并提交或显式移出;形成命名 release commit | `release-preflight.sh` 拒绝任何脏工作区 | `git status --porcelain` 为空;release commit 落字 | 07-16 |
|
|
||||||
| A2 | 确定发布窗口 + 备份/回滚责任人 | 12.1、Runbook 前置条件 1 | 窗口时间、执行人、回滚人三项落字 | 07-16 |
|
|
||||||
| A3 | **一次原子切换**:锁定提交 → 干净 worktree 构建三端 → **本地预检**(`release-preflight.sh` 不带 remote 开关;发布前线上还是旧版本,remote match 必然失败)→ DB/静态资源/后端备份 → 同步静态资源与后端、重启。**当前批次未包含 SQL 迁移;若收拢后出现新迁移,从本批次拆出并按 Runbook 单独执行** | 6.3、L1-C、preflight 脚本 71–72 行开关耦合 | 本地预检通过 → 发布完成;任一步失败按备份回滚,当天不重试第二次 | 07-17 |
|
|
||||||
| A4 | **发布后远端复检与回归**:`RELEASE_REMOTE_URL=https://peilian.njzhmj.top RELEASE_VERIFY_REMOTE_MATCH=true RELEASE_VERIFY_REMOTE_BACKEND=true RELEASE_VERIFY_REMOTE_SCHEMA=true ./scripts/release-preflight.sh`(此时线上=本地构建,match 可通过)+ 认证态浏览器回归(员工/主管/管理端各 1 条路径,正式 OTP)+ 非 strict `./scripts/demo-check.sh` 输出数据现状(**strict 门禁留到 B3 窗口确定后**,strict 模式强制要求 `AIHR_PILOT_START_DATE/END_DATE`) | 10.2、`demo-check.sh` 参数约束 | 远端静态资源、后端 hash 与 schema 复检通过;三端认证态回归留证;数据缺口清单留档审计记录 | 07-17 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. 主线 B:外部输入催办清单(今天发出,B3 为最大阻塞)
|
|
||||||
|
|
||||||
每项需在发出时填负责人与回复期限;到兜底触发日仍无答复即升级 HR 负责人(BRD 第 13 章"集成负责人指派"至今未闭合)。
|
|
||||||
|
|
||||||
| # | 需要的输入 | 提供方 | 负责人 | 回复期限 | 兜底触发日 | 阻塞的 BRD 条款 | 不给的后果 |
|
|
||||||
|---|---|---|---|---|---|---|---|
|
|
||||||
| B3 | **试点项目圈定(1–2 个住宅项目)+ 窗口起止日期 + ≥20 名员工名单**(组织数据已就位,可直接从 3392 条手机号映射中圈人) | HR 负责人 | 待指派 | 07-18 | 07-22 | 10.2-D | M5 全部指标无分母;半年会没有"真实使用数据" |
|
|
||||||
| B2 | 补 2 份真实 SOP 文档(现 3/5),并由业务确认全部五类核心流程的成功条件、价格/取消规则、回访口径;随后完成 14 条场景/SOP 的人工评审(现 0/14) | 内容负责人/HR | 待指派 | 07-20 | 07-24 | 4.3.4、L1-B(SOP≥5) | SOP 覆盖与 RAG 可用率(≥80%)无法验收 |
|
|
||||||
| B9 | **历史案例批量提供**:试点前 **≥20 条**历史案例语音/材料入库并脱敏审核,不依赖试点新增量补齐验收底线;试点期继续按"每周每项目 1 条"采集新案例 | 各项目负责人 | 待指派 | 07-22 | 07-25 | 4.6、L1-B(案例≥20) | 案例库验收必然失败 |
|
|
||||||
| B4 | 方言 ASR 厂商选型(**阶段一只选 1 种方言**,按试点区域确认;BRD 9.1 只要求 1 条路径)+ 费用授权 + **同时确认 CER 达标阈值**(BRD 只定了 ≤5s 响应,识别准确率的验收线需业务拍板,否则 C3 实测无法判定"达标") | 技术组+HR | 待指派 | 07-20 | 07-24 | 4.3.3、9.1、L1-C | MVP 阻塞项零实测,且测了也无法判定通过 |
|
|
||||||
| B5 | 案例讲解视频预渲染样片 1 条(半年会素材;**不阻塞案例上传闭环验收**——L0-4 只要求"语音上传→AI 整理") | 业务 | 待指派 | 07-31 | 08-05 | 4.6、9.1 | 半年会演示缺 1 条示范视频(止损线内最低配置) |
|
|
||||||
| B6 | 大模型/ASR/TTS 供应商 PII 留存与跨境条款确认(音频本体、图片本体外发部分) | 法务/安全 | 待指派 | 07-24 | 07-31 | G3、G6、F3 | 生产前闸门无法关闭 |
|
|
||||||
| B7 | 组织快照最小字段清单与保留期:生产实测姓名 0、部门 0(展示字段默认关已生效),但 `project_name` 仍保留 3417 行;需法务/安全核对 `project_name`、`person_phone` 等仍保留字段是否在最小清单内,及历史清理范围 | 法务/安全 | 待指派 | 07-24 | 07-31 | 5.4(只存 party_id 硬约束) | P0 存储边界无法关闭 |
|
|
||||||
| B8 | 认证等级/学分规则契约(初/中/高级条件、学分来源与分值、防刷) | HR | 待指派 | 07-31 | 08-07 | 4.5、10.2-A | 成长页只能继续挂"规则待配置、不生效" |
|
|
||||||
| B10 | 25 名员工手机号不可用 → 反馈开放平台修数(低优先级,不阻塞) | 开放平台 | 待指派 | 07-31 | — | 5.4 | 25 人无法登录 APP |
|
|
||||||
|
|
||||||
追办顺序:**B3 → B9 → B2 → B4**,其余并行。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. 主线 C:工程收尾(小、快、不开新战线)
|
|
||||||
|
|
||||||
| # | 任务 | 依据 | 完成定义 | 期限 |
|
|
||||||
|---|---|---|---|---|
|
|
||||||
| C1 | "问师傅"文案对齐:`pages/user/today/index.vue` 的"语音提问,快速解答"**直接改为符合现状的文字**(语音问答入 backlog,届时复用 `speech.ts` + `/api/ai/asr`,不新增接口) | 4.7、2026-07-15 审计 | 首页承诺与 SOP 页能力一致 | 07-16(随 A1 批次发布) |
|
|
||||||
| C2 | 主管身份与项目数据权限验收:组织数据已就位,用正式主管账号认证态验证——本项目团队可见、跨项目不可见、训练记录/待复盘按项目过滤 | 5.4、G3、L1-B | 认证态回归留证写入审计记录 | 07-18 |
|
|
||||||
| C3 | 方言实测(B4 选型后):**1 种方言**,固定样本集(≥20 条真实短音频),记录字错率(CER)与单轮响应 P95(≤5s,L1-C);CER 与 B4 确认的阈值比对——**阈值未确认前只记录数据、不判定达标** | 4.3.3、9.1、L1-C | 样本数、CER、P95 三项数据落审计记录;CER ≤ B4 阈值且 P95 ≤5s 才在验收表标"通过" | B4+3 天 |
|
|
||||||
| C4 | LLM/ASR/TTS 调用计量:待 B6/财务给出计费字段与单价后,新增租户范围 `llm_call_log`(模块/模型/token/延迟/费用)+ 月度上限告警与自动降级;此前维持手动断路器,不硬编码价格 | 6.3、G6 | 有持久化计量与可配置上限 | B6 后一周内 |
|
|
||||||
| C5 | 案例入库流水线支援 B9:批量导入入口复用现有上传/整理/筛选链路,脱敏门禁逐条通过;不为批量导入新做页面 | 4.6、L1-B | ≥20 条历史案例状态"已入库"且脱敏扫描 0 命中 | 07-25 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. 主线 D:正式试点与 L1 验收(B3 就位后启动,目标 8 月中出证据包)
|
|
||||||
|
|
||||||
按 BRD 10.2 四组验收逐项闭合,全部以严格门禁 + 正式窗口数据为准,**禁止 seed/烟测/演示账号冒充**(审计第 5 节完成定义)。
|
|
||||||
|
|
||||||
| 周次 | 动作 | 闭合的验收项 |
|
|
||||||
|---|---|---|
|
|
||||||
| 试点第 0 周(预备) | 试点名单在组织快照中逐一核对(手机号可登录);SOP 5 流程入库 + 14 条评审完成(B2);**历史案例 ≥20 条入库审核完成(B9/C5)**;员工开通与培训动员(配 G4 激励沟通) | L1-B:SOP≥5、组织导入、项目级权限 |
|
|
||||||
| 试点第 1–2 周 | ≥20 名员工真实对练(人均目标 10 次);每日一练推送;主管完成复盘与派发闭环;同步采集满意度(1–5 分);案例按"每周每项目 1 条"继续新增 | L1-A 育闭环;L1-D 人均次数/完训率/满意度 |
|
|
||||||
| 试点第 2 周起 | 人工校准 ≥20 条,计算 AI/人工分档一致率(目标 ≥70%);统计 RAG 可用回答率(目标 ≥80%);抽查人工复核可否决 AI 分的证据(G1/G2) | L1-C 一致率/可用率;G1/G2 |
|
|
||||||
| 试点收口 | 案例库 ≥20 条(存量+增量,脱敏门禁通过);`GET /api/train/practice/export` 按窗口导出正式 CSV;以试点窗口日期跑 `AIHR_PILOT_STRICT=true AIHR_PILOT_START_DATE=<起> AIHR_PILOT_END_DATE=<止> ./scripts/demo-check.sh` 全绿;形成 L1 验收证据包 | L1 全项;半年会"真实使用数据" |
|
|
||||||
|
|
||||||
**半年会演示止损线**(07-08 定案):只保「生活顾问的一天」主线,实操**问 + 练**两个模块;陪练 + 总结卡 + 1 条示范视频为最低配置,其余全部可砍。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 5. 明确不做(守边界,防范围失控)
|
|
||||||
|
|
||||||
| 项 | 依据 |
|
|
||||||
|---|---|
|
|
||||||
| 个人 AI 助理/个人知识空间(文字/图片/文件/链接收藏、混合问答、PPT) | BRD 4.8 明确阶段二;有独立 TechSpec 与推进计划 |
|
|
||||||
| 员工端图片/视频训练输入(4.3.3 终态缺口) | 《AI陪练二期开发推进计划》约定文本场景稳定后独立评估;届时只落有业务目的的场景(拍照报修、品检) |
|
|
||||||
| 开放问题榜、积分/排行榜/荣誉墙运营化 | 总纲阶段二;07-08 定案排行榜默认关 |
|
|
||||||
| 师徒关系/拜师池/带徒福利 | 业务已否决(07-08) |
|
|
||||||
| G5 情绪树洞 | 业务/法务/安全决策未定,在匿名边界与零落库合同明确前保持未实现,不用陪练情绪数据冒充 |
|
|
||||||
| 企微/钉钉/工单集成、SSO、知识图谱、多项目类型 | D2/D4/D8 既定决策不变 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 6. 里程碑总览
|
|
||||||
|
|
||||||
```
|
|
||||||
07-15(今日) B 催办清单发出(B3 置顶) + C1 文案修改
|
|
||||||
07-16 A1 收拢工作区成 release commit + A2 发布窗口落字
|
|
||||||
07-17 A3 原子发布(预检→备份→切换→回归) + A4 结构回归与数据缺口留档
|
|
||||||
07-18 C2 主管身份/项目权限认证态验收(组织数据已就位,不依赖外部)
|
|
||||||
07-18~07-25 B2 SOP 补齐与评审 / B9+C5 历史案例 ≥20 条入库 / C3 方言实测(依赖 B4)
|
|
||||||
07-28~08-08 D 试点窗口(1–2 项目、≥20 人、2 周;以 B3 实际答复为准)
|
|
||||||
08-11~08-15 L1 证据包收口:strict 门禁全绿(带试点窗口日期)+ CSV 导出
|
|
||||||
半年会前 「生活顾问的一天」演示彩排 ×2 + 录屏兜底(沿用 BRD 11.2 彩排纪律)
|
|
||||||
2026-09 前 收费季试点可用状态确认
|
|
||||||
```
|
|
||||||
|
|
||||||
## 7. 风险与止损
|
|
||||||
|
|
||||||
1. **B3 试点圈定拖延是当前最大单点风险**(组织数据已就位,决策成本已最低):07-22 仍无答复,升级 HR 负责人;试点每晚一周,半年会"真实使用数据"窗口就少一周。
|
|
||||||
2. **案例 20 条**:依赖 B9 存量导入;若试点前不足 20 条,立即提高采集频率(每项目每周 2–3 条)并如实下调收口预期,不用未脱敏或演示数据凑数。
|
|
||||||
3. **发布失败**:A3 原子流程任一步失败即按备份回滚,当天不重试第二次,先归因。
|
|
||||||
4. **范围失控**(BRD 附录 C 头号风险):任何新页面/新功能请求一律进 `docs/BACKLOG.md`;每周对照本计划复盘一次偏差。
|
|
||||||
5. **方言不达标**:若 CER/P95 不达标,按 BRD 9.2 止损——保"1 条方言路径可演示",验收表如实标注差距,不虚标通过。
|
|
||||||
6. **计划保鲜**:《BRD_IMPLEMENTATION_AUDIT.md》条目非严格时序,引用前须以"生产只读复核 + 线上实测"确认基线;本计划每次执行前先校验第 0 节事实是否仍成立。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*本计划由工程侧起草,v2.1 已按 Codex 审查修订;B 表负责人/期限需业务方确认后生效。执行进展回写《BRD_IMPLEMENTATION_AUDIT.md》,本文件只改计划不记证据。*
|
|
||||||
@@ -1,201 +1,88 @@
|
|||||||
# 员工端版本功能对比与功能对齐清单
|
# 员工端版本功能对比与功能对齐清单
|
||||||
|
|
||||||
> 日期:2026-07-17
|
> 客户反馈基线:2026-07-17;当前工程与生产状态更新:2026-07-18。
|
||||||
> 范围:截至 2026-07-17 09:46 收到的客户反馈,重点比较历史可运行移动端、历史需求/设计、当前 `mobile-uni` 实现和本地待发布修复。
|
|
||||||
> 重要边界:本清单核对的是仓库源码和项目文档,不等同于线上生产版本验收。本轮未重新核验线上 H5,因此“当前实现”不能直接表述为“线上已生效”。
|
|
||||||
>
|
>
|
||||||
> Figma 需求覆盖专项审计见:[FIGMA需求覆盖与版本偏差审计-20260717.md](FIGMA需求覆盖与版本偏差审计-20260717.md)。该审计确认:Figma 只能作为视觉与交互事实源,不能单独替代功能需求和阶段边界。
|
> 本清单用于区分“旧版真有、历史规划、本轮新增、当前实现和生产验收”。视觉事实以 Figma 正式画板为准,功能事实以业务文档、当前代码和真实运行证据为准;Figma 未画不等于可以删除,Figma 已画也不等于已经开发或属于当前阶段。
|
||||||
|
|
||||||
## 1. 先给结论
|
## 1. 客观结论
|
||||||
|
|
||||||
客户所说的“主要功能被删完了”不能原样认定为事实,但反映了真实的版本连续性问题。当前反馈实际混合了四类情况:
|
客户所说“主要功能被删完了”不是对全部功能的准确描述,但准确暴露了版本连续性失控:旧版语音输入/播报等能力在 `mobile-uni` 重建时曾回退,历史规划和新增需求又混在同一批反馈中,而 Figma 没有完整承载非视觉规则。
|
||||||
|
|
||||||
1. **确认回退**:历史可运行移动端确实有、切换到 `mobile-uni` 后缺失或弱化,例如“问师傅”语音提问、SOP 回答和总结卡语音播报。
|
截至 2026-07-18:确认回退已恢复,本轮明确要求的学习、反馈、问题榜、考试和全网 AI 能力也已实现并发布。当前不能再说“尚未发布”,但仍必须保留两个边界:
|
||||||
2. **历史规划未完成**:需求文档或 Figma 已设计,但没有证据证明曾形成可运行版本,例如开放问题榜/有奖问答、完整课程考试、主管批量派发等。
|
|
||||||
3. **新增或扩大范围**:本轮才明确增加,例如“问 AI(全网)”、总结卡下载图片、生成题目与点评逐条播报、主管一键切换学员身份。
|
|
||||||
4. **正确收口或体验缺陷**:岗位不应由员工随意切换,这是权限纠正,不是删功能;“提交没反应”“录音归属错误”“快捷问题错位”属于缺陷,不应包装成功能调整。
|
|
||||||
|
|
||||||
因此,后续不能再用“旧版/新版”两个模糊概念沟通。必须按本清单逐项确认:**旧版是否真有、历史是否承诺、当前是否实现、是否已经发布**。
|
1. 生产包、schema、公开接口和关键管理页已验证,不等于正式账号写链路、真机能力和严格试点已验收。
|
||||||
|
2. 奖励按积分/学习学分实现,不是现金、不可提现;岗位仍由组织系统决定,员工不能自行改岗。
|
||||||
|
|
||||||
## 2. 对比口径
|
## 2. 证据层级
|
||||||
|
|
||||||
| 对比层 | 本清单定义 | 主要证据 | 能证明什么 |
|
| 层级 | 主要证据 | 能证明什么 |
|
||||||
|
|---|---|---|
|
||||||
|
| 历史可运行版 | `mobile/src/App.vue`、`mobile/src/data/*` | 旧源码实际存在过的交互,不代表今天仍在线 |
|
||||||
|
| 历史需求/设计 | BRD、阶段总纲、会议纪要、Figma | 功能被提出、规划或设计过,不单独证明已交付 |
|
||||||
|
| 当前实现 | `mobile-uni/`、`frontend/`、`backend/ruoyi-modules/ruoyi-aihr/` | 当前代码和接口能力 |
|
||||||
|
| 本地验证 | 自动化测试、真实本地 API、浏览器操作和截图 | 当前构建在验证环境可运行 |
|
||||||
|
| 生产部署 | 提交、构建哈希、迁移记录、服务与 HTTP | 版本和 schema 已进入现网 |
|
||||||
|
| 生产业务验收 | 正式账号、真机、真实内容/权限/试点窗口 | 客户业务可按正式规则使用;当前仅部分完成 |
|
||||||
|
|
||||||
|
当前生产基线为提交 `32fa376d`;21 个迁移已执行,目标 schema `34/34`,管理端、H5、后端产物哈希一致。管理端关键页和移动端匿名首屏已浏览器复核;正式 OTP 认证写链路与真机权限未重放。
|
||||||
|
|
||||||
|
## 3. 客户反馈版本对比
|
||||||
|
|
||||||
|
| 客户反馈/能力 | 历史判断 | 当前结果 | 当前完成层级与剩余边界 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 历史可运行版 | 仓库保留的旧移动端 `mobile/` | `mobile/src/App.vue`、`mobile/src/data/*` | 能证明旧源码里实际存在过的交互 |
|
| 不同角色看到不同页面 | 旧版已有三类入口,BRD 持续要求 | 员工、候选人、主管独立页面保留 | 已实现并部署;正式角色和项目权限正反例待生产账号验收 |
|
||||||
| 历史需求/设计 | BRD、分阶段总纲、推进计划、会议纪要、Figma 清单 | 本文末尾“证据来源” | 能证明功能被提出、规划或设计过,不能单独证明已经开发上线 |
|
| 不同岗位看到不同内容 | 历史目标,旧版只做了部分展示差异 | 岗位来自组织身份;五岗位场景/题库已落地,训练和学习按岗位分发 | 已部署;正式岗位内容、SOP 和资格规则仍需业务审核 |
|
||||||
| 当前开发版 | 当前权威用户侧工程 `mobile-uni/` | `mobile-uni/src/pages/*`、后端 `ruoyi-aihr` | 能证明当前工作树的实现状态 |
|
| 主管也要学习 | 本轮明确新增,旧版无稳定双身份证据 | 主管可在工作台/学习端切换,组织角色不变 | 已实现并部署;生产正式主管账号待重放 |
|
||||||
| 本地修复版 | 当前工作树里尚未发布的反馈修复 | `git diff` 与相关测试 | 只能表述为“本地已修”,不能表述为“客户已可用” |
|
| 岗位在哪里修改 | 正式口径一直应来自人力/组织系统 | 员工端只读,岗位错误联系 HR,不提供自由切换 | 正确收口,不应恢复演示性改岗 |
|
||||||
| 线上生产版 | `https://peilian.njzhmj.top/h5/` 的真实部署 | 线上资源、认证账号、真实接口和浏览器回归 | 本轮未复核,暂不下结论 |
|
| 全局字体可调 | 本轮适老化新增,旧版无开关证据 | 标准/大字/超大字三档全局持久化,同构页面响应式增高 | 已部署、本地视觉通过;真机触控、键盘、读屏待验收 |
|
||||||
|
| 问师傅语音提问 | 旧版明确有,切换工程时确认回退 | 录音、停止、转写和选择音频兜底已恢复,复用 `/api/ai/asr` | 已部署;正式 ASR、真机麦克风和弱网待验收 |
|
||||||
|
| 回答/总结卡语音播报 | 旧版确认有,曾回退 | SOP 回答、总结卡、每日题、参考答案、AI 对话、点评和候选题目均提供播报;TTS 失败可降级设备语音 | 已部署;正式 TTS 和真实设备播放待验收 |
|
||||||
|
| “每个文字都能点播报” | 旧版只能证明关键答案/总结卡,不支持“所有 UI 文字”说法 | 对业务关键内容提供统一播报,不把每个标签做成可点击 | 客户表述被合理收敛,兼顾可用性和无障碍 |
|
||||||
|
| 录音不属于当前账号 | 缺陷,不是功能差异 | 请求身份、资源归属、页面代次和旧请求回写均已收紧 | 已部署、本地双账号验证;生产认证态待复验 |
|
||||||
|
| 点提交没反应 | 缺陷 | 增加 loading、成功/失败提示和可见输入/按钮状态 | 已部署、本地交互通过;生产真机点击待复验 |
|
||||||
|
| 问师傅上传图片/视频 | 旧版未确认;属于历史规划/本轮明确化 | 图片/视频只用于本次现场分析,不自动进入共享知识库 | 已部署;PII 外发、大小限制、失败状态和真机选择待验收 |
|
||||||
|
| 总结卡下载图片 | 本轮新增,旧版无证据 | 总结卡可下载 PNG;无聊天模型时只摘录真实命中原文并保留来源 | 已部署;iOS/Android H5 文件/相册行为待验收 |
|
||||||
|
| 每日三题每天变化 | 历史目标,旧版没有稳定动态题库证据 | 按日期、岗位和员工身份确定性轮换;同日稳定、相邻日不重复 | 已实现并部署;正式内容审核与长期去重样本待验收 |
|
||||||
|
| 同一专项内容不能总重复 | 历史目标,旧版无版本/去重保证 | 专项保存内容版本、题目/参考答案快照和内容哈希 | 已实现并部署;正式运营样本待观察 |
|
||||||
|
| 学员评价题目有用/无用 | 历史计划有,旧版仅 SOP 赞踩 | 每日题/专项题已支持有用/无用反馈 | 已实现并部署;生产正式员工写链路待复验 |
|
||||||
|
| 管理端常见难题排序 | BRD 有团队短板目标,旧版只有薄弱项展示 | 可按岗位、时间、次数、人数、均分查看并一键派专项 | 生产页面已验证;正式团队数据待验收 |
|
||||||
|
| 指派显示人名而非编号 | 体验缺陷 | 从项目在职人员选择姓名 | 已部署;依赖正式组织和项目范围 |
|
||||||
|
| 一次多选、简化字段、快捷日期 | 本轮新增/设计细化 | 最多 100 人,多选、默认值、当天/明天/3 天/7 天、幂等提交和逐人结果 | 已实现并部署;生产大团队、时区边界和失败隔离待验收 |
|
||||||
|
| 有奖征问题和征答案 | 历史阶段二规划,本轮要求一并实现 | 开放问题榜、全员回答、审核、最佳答案、积分规则和双账户已落地 | 已部署;奖励仅积分/学分,正式运营规则与认证写链路待验收 |
|
||||||
|
| “员工每天可以赚钱” | 从未批准现金日结 | 只实现积分/学习学分,不实现现金、提现、预算或税务流程 | 现金化需业务、财务、法务另行批准 |
|
||||||
|
| 岗位入职测试 | 历史规划,旧版无完整可运行证据 | 主管选择岗位/项目/员工、组卷、发布、截止日期和成绩;员工答题、播报、提交和逐题结果 | 已部署;提交幂等本地通过,生产正式账号待重放 |
|
||||||
|
| 问 AI(全网) | 本轮新增;历史基线是企业内部知识 | 与问师傅分入口、接口、来源和免责声明;提供方须公网 HTTPS、连接测试成功后才可启用 | 管理页已生产验证;正式密钥/真实外部回答尚未验收,未配置时明确不可用 |
|
||||||
|
|
||||||
状态说明:
|
## 4. Figma 对比结论
|
||||||
|
|
||||||
- **保留**:当前仍有等价主链路。
|
Figma 已完成全文件结构和视觉复核,当前实测为 81 个顶层页面、78 张 `Screen/` 画板。“我”页标准/大字/超大字已改为同一信息架构和同一数据语义,底栏、安全区和超大字重叠已修。代码另行完成真实页面多视口视觉验收。
|
||||||
- **部分保留**:有基础能力,但范围、内容或角色未覆盖完整。
|
|
||||||
- **确认回退**:历史可运行源码里有,当前权威工程缺失。
|
|
||||||
- **本地已修未发布**:当前工作树已补,但尚未完成线上发布验证。
|
|
||||||
- **历史规划未实现**:需求/设计里有,没有证据证明旧版真正交付。
|
|
||||||
- **新增需求**:本轮扩大了原有范围,应重新评估安全、成本和排期。
|
|
||||||
- **待确认**:现有证据不能支持客户记忆或开发方判断,需要原版本包、旧链接或验收记录。
|
|
||||||
|
|
||||||
### 2.1 本轮恢复结果(2026-07-17 晚间,本地未发布)
|
设计仍不能替代以下非视觉规则:身份与项目权限、录音归属、幂等、题目轮换、积分分账、供应商安全、知识空间授权、生产发布和正式试点门禁。后续给 Codex 的任务必须同时写明功能事实源、Figma node、阶段、必须保留能力、明确不做项和分层验收。
|
||||||
|
|
||||||
本轮已按“功能真实可用 + 同尺寸视觉复核”执行,不再只检查页面结构:
|
## 5. 生产发布结果与未完成验证
|
||||||
|
|
||||||
- 恢复问师傅语音录制与选择音频兜底,继续复用 `/api/ai/asr`;恢复 SOP 回答、总结卡、每日题、参考答案、AI 对话、训练结果和候选人面试内容播报。TTS 优先走 `/api/ai/tts`,本地未配置 TTS 模型时 H5 自动降级到设备语音,并已实际切换到“停止播报”状态。
|
### 已确认
|
||||||
- 恢复总结卡生成与 PNG 下载。无对话模型时只摘录检索命中的 SOP 原文,并标明来源,不编造推荐话术或异议答案;本地已实际生成并触发下载成功提示。
|
|
||||||
- 恢复主管“工作台/学习端”切换,切换只改变显示模式,不修改组织系统中的主管身份;已用主管真实登录态进入员工今日页并返回主管工作台。
|
|
||||||
- 恢复主管按姓名多选、当天/明天/3 天内/7 天内快捷截止日期和逐人派发结果;已向 2 名团队成员真实提交,接口返回 2/2 成功。
|
|
||||||
- 每日题从固定 3 题改为 7 组共 21 题,按日期、岗位和员工身份确定性轮换;同一员工同一天稳定、相邻日期不重复,仍保持每日 3 题。
|
|
||||||
- 全局字号恢复标准/大字/超大字三档并持久化;员工端关键页已在 400×900 下逐档截图,超大字页验证了换行、卡片自增高、底栏安全区和无横向溢出。
|
|
||||||
|
|
||||||
上述段落记录的是 2026-07-17 晚间的中间状态。用户随后要求“一并实现”,最终状态以 2.2 为准;第 3–5 节保留为需求来源与实施前差距快照,不再代表当前工作树完成度。
|
- 分支 `codex/multi-tenant-knowledge-platform` 已推送,生产提交为 `32fa376d`。
|
||||||
|
- 管理端、移动端 H5、后端和 21 个迁移脚本已发布;备份位于 `/opt/wygj/backups/release-20260718005151`。
|
||||||
|
- 根站、H5、租户接口、员工首页 API、服务状态和 schema 已验证;知识空间排序规则问题已修复。
|
||||||
|
- 管理端首页、常见难题、问题榜运营、知识空间、全网 AI 配置及 390×844 H5 已浏览器查看,无最终控制台/请求错误。
|
||||||
|
|
||||||
### 2.2 全量实现结果(2026-07-18,本地未发布)
|
### 尚未确认
|
||||||
|
|
||||||
| 客户反馈能力 | 本轮落地结果 | 本地证据 |
|
- 正式 OTP 下员工、主管、候选人和后台账号的完整读写与越权反例。
|
||||||
|---|---|---|
|
- 真实 iOS/Android 的麦克风、音频选择、图片/视频选择、下载、设备语音、键盘和读屏。
|
||||||
| 不同角色、岗位内容与主管学习 | 员工/候选人/主管独立入口继续保留;主管可在工作台和学员模式间切换且不改变组织身份;岗位、项目和人员范围由组织数据约束 | 角色深链、主管学员模式、岗位只读和团队范围测试通过 |
|
- 正式 ASR/TTS、全网 AI 提供方和真实业务内容配置。
|
||||||
| 问师傅语音、生成内容播报 | 语音录制、音频选择兜底、ASR、TTS/设备语音降级恢复;每日题、参考答案、评分点评、候选题目、问题内容支持播报 | H5 交互和服务调用已验证 |
|
- 严格试点窗口的完训、人工校准、SOP 评审、满意度和案例门槛。
|
||||||
| 图片/视频与总结卡下载 | 问师傅支持仅本次查询使用的图片/视频附件;总结卡可生成并下载 PNG,来源继续可追溯 | 浏览器交互已验证 |
|
|
||||||
| 全局字号 | 标准/大字/超大字三档全局持久化;可见业务文字最低 12px,输入框采用 `border-box`,问题榜四个筛选标签在窄屏完整显示 | 400×900、430px 和超大字状态逐页截图复核 |
|
|
||||||
| 训练题变化、反馈与常见难题 | 每日三题按日期、岗位和员工身份轮换;每日题/专项支持有用与无用反馈;主管和管理端可按岗位、时间范围、次数/人数/均分查看难题并一键派专项 | 真实 API 创建专项成功,管理端页面已登录复核 |
|
|
||||||
| 指派专项 | 显示真实姓名,支持最多 100 人多选,提供当天/明天/3 天内/7 天内快捷截止日期;批量提交具有请求幂等和逐人结果 | 真实 API 指派和超时重进机制已验证 |
|
|
||||||
| 开放问题榜、有奖征问题/答案 | 已实现提问、全员回答、审核、最佳答案、积分规则、积分/学习学分双账户和后台运营;奖励明确不是现金且不能提现 | 真实 API 完成提问→回答→审核→最佳答案→发奖,重复选优不重复发奖 |
|
|
||||||
| 完整岗位考试 | 已实现主管选择岗位、项目、真实员工多选、组卷、发布、截止日期和成绩查询;员工可答题、播报、提交、查看逐题结果;提交具备幂等重放 | 真实 API 发布考试并完成 100 分提交;同请求重放返回相同记录和时间 |
|
|
||||||
| 问 AI(全网) | 与企业问师傅分入口、分接口、分提示;仅允许已测试启用的 HTTPS 提供方,禁用或未配置时明确不可用且不生成假答案 | 能力探测、禁用查询、安全边界和管理页已验证;真实外部回答待配置正式密钥后验证 |
|
|
||||||
| “点提交没反应”、录音串号、快捷标签错位 | 已补明确错误/加载状态、账号与页面代次隔离、旧请求回写保护;修正提交/输入宽度与筛选标签布局 | 自动化测试、真实浏览器请求和逐页截图均通过 |
|
|
||||||
|
|
||||||
最终本地完成层级为:**已实现、自动化验证、真实 API 验证、浏览器交互验证、逐页视觉验证**。尚未执行生产发布,因此不能表述为“客户线上已可用”。“员工每天赚钱”按已批准的积分/学习学分落地,没有擅自实现现金、提现、预算或税务流程。
|
|
||||||
|
|
||||||
## 3. 核心功能版本矩阵
|
|
||||||
|
|
||||||
### 3.1 角色、岗位与学习
|
|
||||||
|
|
||||||
| 功能 | 历史可运行版 | 历史要求/设计 | 当前开发版 | 客观判断 | 建议 |
|
|
||||||
|---|---|---|---|---|---|
|
|
||||||
| 员工、候选人、主管看到不同页面 | 旧版已有三类角色入口与不同首页 | BRD 和 Figma 均要求分角色 | `mobile-uni` 仍有员工、候选人、主管独立页面 | **保留**,不是整体删除 | 继续用正式账号做三角色回归,不用截图代替权限验证 |
|
|
||||||
| 不同岗位看到不同内容 | 旧版有岗位标签和部分展示差异,业务内容仍以生活顾问为主 | 总纲要求按条线/岗位分发,第一波生活顾问,项目经理第二波 | 当前员工岗位来自组织身份,但训练派发仍固定查询“生活顾问”场景 | **部分保留**,岗位身份已接,岗位内容尚未完整产品化 | P1 建岗位→场景→SOP→每日题映射,先明确“四保一服”首批岗位清单 |
|
|
||||||
| 主管同时作为学员学习 | 没有找到稳定的双身份切换证据 | 客户本轮明确提出“主管也要学习” | 本地已增加“工作台/学习端”显式切换,组织角色保持主管;已用主管登录态双向切换 | **新增需求,本地已实现并交互验证,未发布** | 发布后用正式主管账号复验工作台权限正例/反例 |
|
|
||||||
| 员工自行切换岗位 | 旧版存在演示性岗位切换痕迹 | 正式口径要求岗位来自人力/组织系统 | 本地已移除员工自由切换,改为 HR 组织同步只读 | **正确收口**,不应恢复随意切换 | 保持只读;提供“岗位有误,联系 HR”入口和同步状态 |
|
|
||||||
| 岗前/入职任务 | 旧版没有形成正式任务闭环证据 | BRD 一期要求岗位 SOP、岗前/入职任务和资格门禁 | 当前有员工岗前任务、完成回写和资格状态页面,但正式规则/数据未配置 | **部分实现** | HR 提供正式任务与资格规则后再验收,不用空表或 seed 宣称完成 |
|
|
||||||
| 主管/经理配置岗位入职测试 | 未找到旧版已实现证据 | 阶段二“学”模块要求课程、考试、截止时间;BRD 有上岗资格 | 当前无主管/经理端出题、组卷、发布考试闭环 | **历史规划未实现/待确认** | 让客户提供曾用旧链接或验收截图;若确认要做,纳入学模块专项 |
|
|
||||||
| 全局字号调节 | 未找到旧版字号开关 | Figma `4:16` 已修为标准/大字/超大字三张同构画板 | 本地已实现全局三档、持久化和页面响应式自增高;400×900 逐档及关键页超大字已截图复核 | **新增无障碍需求,本地已实现并视觉验证,未发布** | 发布后补真实 iOS/Android 与 375–430px 触控、键盘和读屏复验 |
|
|
||||||
|
|
||||||
### 3.2 “问师傅”、语音与多媒体
|
|
||||||
|
|
||||||
| 功能 | 历史可运行版 | 历史要求/设计 | 当前开发版 | 客观判断 | 建议 |
|
|
||||||
|---|---|---|---|---|---|
|
|
||||||
| 问师傅文字提问 | 旧版有 SOP 搜索 | 一期核心 | 当前保留,查询企业授权知识空间并显示引用 | **保留** | 继续保持“有依据才回答”,不兜造假答案 |
|
|
||||||
| 问师傅语音提问 | 旧版明确有“语音提问/选择语音”并走 ASR | 产品方案明确“问”支持语音提问 | 本地已恢复录音、停止录音、转写和选择音频兜底,复用 `speech.ts` 与 `/api/ai/asr` | **确认回退已在本地恢复,未发布** | 发布前补正式 ASR 配置和真机麦克风权限/弱网复验 |
|
|
||||||
| SOP 回答语音播报 | 旧版回答有“听一遍” | 历史要求 TTS,产品强调语音优先 | 本地已补“语音播报” | **本地已修未发布** | 发布后用真实 TTS 配置验证播放、停止、失败提示 |
|
|
||||||
| 总结卡语音播报 | 旧版有总结卡 TTS | 总纲明确“长文总结卡 + 语音播报(能力已有)” | 本地已补总结卡播报 | **本地已修未发布** | 与回答播报共用控制器,避免同时播放 |
|
|
||||||
| “每个文字都能点播报” | 旧版能确认的是回答与总结卡播报,不能证明每段文字逐字可点 | 设计原则是话术大字+语音,并非所有文字元素都可播 | 当前只对答案、总结卡、每日题、AI 对话等关键内容提供播报 | **客户表述扩大** | 对业务关键内容提供统一播报按钮,不做所有 UI 文本逐元素点击 |
|
|
||||||
| 生成题目/AI 对话/点评播报 | 未找到旧版完整覆盖证据 | 语音优先原则支持该方向 | 本地已覆盖每日题题干、AI 角色回复、点评、参考答案、训练结果和候选面试内容 | **新增增强,本地已实现并构建验证,未发布** | 发布后逐页验证播放、停止、切换内容时释放音频和设备语音降级 |
|
|
||||||
| 员工作答语音转文字 | 旧版已有训练语音能力方向 | 一期明确 ASR→文本→提交→评分 | 当前每日题和对练支持录音/选音频、转写后编辑提交 | **保留** | 发布后验证录音权限、账号归属和弱网降级 |
|
|
||||||
| 录音“不属于当前账号” | 不属于产品功能 | 无历史需求差异 | 本地已修请求身份/归属处理,提交失败也补可见提示 | **缺陷,本地已修未发布** | 用两个真实账号交叉验证自己的录音可提交、他人资源不可读 |
|
|
||||||
| 提交按钮无反应 | 不属于产品功能 | 无历史需求差异 | 本地增加失败 toast 和输入区域/按钮可见性修正 | **缺陷,本地已修未发布** | 仍需手机端真实点击回归,不能只靠单测关闭 |
|
|
||||||
| 问师傅上传图片/视频 | 旧版问师傅未确认有此能力 | BRD/缺口文档把图片/视频情境列为新增或后置能力 | 本地已增加图片/视频仅用于本次现场分析,不写入共享知识库 | **历史规划项,本地已补最小版未发布** | 先验收大小限制、权限、PII 外发和失败提示,再决定是否留存 |
|
|
||||||
| 总结卡下载图片 | 未找到旧版证据 | 历史文档强调总结卡,没有明确图片下载验收 | 本地已补 PNG 下载;无聊天模型时可基于真实命中原文生成,并已实际触发下载成功提示 | **新增需求,本地已功能与视觉验证,未发布** | 发布后验证 iOS/Android H5 下载、文件名和相册/文件权限 |
|
|
||||||
| 问 AI(全网) | 旧版没有 | 2026-07-08 会议明确当时是“不联网的内部知识” | 当前问师傅只查授权的企业/个人知识空间,不是公网搜索 | **新增范围** | 单独立项为“外部 AI”,与问师傅分入口、分来源、分免责声明;先评估版权、错误信息和数据外发 |
|
|
||||||
|
|
||||||
### 3.3 练习、每日题与内容变化
|
|
||||||
|
|
||||||
| 功能 | 历史可运行版 | 历史要求/设计 | 当前开发版 | 客观判断 | 建议 |
|
|
||||||
|---|---|---|---|---|---|
|
|
||||||
| 场景对练、提交、AI 评分 | 旧版有演示主链路 | 一期核心 | 当前文字/语音作答、AI 评分、记录、低分再练均在 | **保留并增强** | 用正式场景和人工校准验证,不用 seed 结果代替业务验收 |
|
|
||||||
| “专项”的定义 | 旧版主要是主管给员工派场景 | 计划中专项=按岗位/短板派发的训练任务或训练营 | 当前实现为“主管给一名员工派一个训练场景”,不是固定的一道题 | **功能在,但产品解释不清** | 页面改名为“专项训练任务”,显示场景、对象、原因、截止时间和内容版本 |
|
|
||||||
| 同一专项每次内容不同 | 旧版没有内容版本/去重保证 | 历史目标是 AI 控制生成、动态难度与多场景 | 当前真 LLM 可让对话变化,但 seed 降级与场景锚点可能重复;没有题目版本和去重契约 | **部分实现** | P0 加 `content_version`/题目快照/最近使用去重,保留 seed 降级但不可每天原样重复 |
|
|
||||||
| 每日三题每天变化 | 未找到旧版动态题库闭环 | 总纲要求 3 个月覆盖 100 个常见场景 | 本地已扩为 7 组共 21 题,按日期、岗位和员工身份轮换;同日稳定、相邻日不重复 | **明确缺口已完成第一阶段修复,未发布** | 后续继续把正式岗位题库扩到 100 个常见场景,并保留题目快照与版本审计 |
|
|
||||||
| 选择岗位/条线生成题目和参考答案 | 未找到旧版已实现证据 | 历史要求按岗位推题,后续 AI 辅助出题 | 当前没有主管按条线生成题库的完整入口 | **历史规划未实现** | P1 先做审核式生成:选择岗位→生成草稿→人工确认→版本化发布 |
|
|
||||||
| 学员评价题目有用/无用 | 旧版 SOP 答案已有赞/踩,不等于训练题评价 | 二期计划明确问答打勾/打叉 | 当前 SOP 答案可反馈;每日题/专项题没有逐题有用/无用 | **部分实现** | P1 复用反馈模型到训练题,区分“答案准确性”和“题目有用性” |
|
|
||||||
| 管理端按常见难题排序 | 旧版主管端有薄弱项/风险展示 | BRD 要求错题、团队短板、专项派发 | 当前主管团队已有错题聚合、次数/人数/均分等数据,但运营排序闭环不完整 | **部分实现** | P1 增加按出现次数、涉及人数、低分程度排序,并支持一键生成专项 |
|
|
||||||
| 训练后整体满意度 | 旧版没有完整正式窗口证据 | 试点要求收集反馈 | 当前有 1–5 分满意度和意见 | **保留/新增完成** | 与“逐题有用性”分开统计,避免一个指标代替另一个 |
|
|
||||||
|
|
||||||
### 3.4 主管派发、激励与问题榜
|
|
||||||
|
|
||||||
| 功能 | 历史可运行版 | 历史要求/设计 | 当前开发版 | 客观判断 | 建议 |
|
|
||||||
|---|---|---|---|---|---|
|
|
||||||
| 指派时显示员工姓名 | 旧版多为演示数据 | 正式权限要求稳定组织身份 | 本地已改为从当前项目在职人员中选择姓名,不再手填人员编号 | **本地已修未发布** | 生产需正式组织同步和项目权限数据,不能用本地姓名 seed 验收 |
|
|
||||||
| 一次多选人员 | 未找到旧版已实现证据 | Figma 有“人员/岗位/场景/截止时间”,但不证明已开发 | 本地已支持按姓名多选、最多 100 人、单次批量接口和逐人结果,超时重进可复用幂等请求 ID | **新增需求,本地已实现并真实提交 2/2 成功,未发布** | 发布后以大团队验证 100 人上限、权限、超时重试和逐人失败隔离 |
|
|
||||||
| 简化字段、默认值 | 未找到旧版完整证据 | 属于交互优化 | 当前已有默认场景/默认原因,但表单仍偏技术化 | **体验改进** | 保留对象、场景、截止时间三项必填,其他默认折叠 |
|
|
||||||
| 今天/明天/3天内/7天内快捷日期 | 未找到旧版已实现证据 | Figma 明确有截止时间 | 本地已增加 `dueDate`、四个快捷项和逐人到期结果;3 天内真实派发显示 2026-07-20 | **历史设计细化已在本地实现,未发布** | 发布后复验时区、当天边界和后台准确日期 |
|
|
||||||
| 有奖征问题/有奖答案 | 旧版没有可运行证据 | 2026-07-08 已定为阶段二“开放问题榜”,有双入口、全员作答、最佳答案和奖励 | 当前阶段一没有问题榜 UI/业务闭环 | **历史规划未实现,不是当前版误删** | P2 按阶段二单独实施,不应临时塞进“问师傅”页 |
|
|
||||||
| “员工每天可以赚钱” | 旧版没有 | 历史口径是积分/悬赏/学分分账,奖励规则需后台配置,并未批准现金日结 | 当前没有现金收益闭环 | **新增且有运营/财务风险** | 先由业务确认积分、礼品或现金及税务/预算规则,研发不直接实现“赚钱”文案 |
|
|
||||||
|
|
||||||
## 4. 客户逐条反馈归类
|
|
||||||
|
|
||||||
| 客户反馈 | 归类 | 当前结论 |
|
|
||||||
|---|---|---|
|
|
||||||
| “不同岗位看到的页面不一样?” | 能力确认 | 三角色页面不同;不同员工岗位内容只部分覆盖,不能笼统回答“都不一样” |
|
|
||||||
| “有奖征问题和征答案放哪里了?” | 历史阶段二规划 | 设计和总纲里有,当前阶段一未实现;应作为开放问题榜,不塞进问师傅 |
|
|
||||||
| “字体能调大吗?有很多老年人” | 新增无障碍需求 | 没有旧版字号开关证据;大字设计不等于可调字号 |
|
|
||||||
| “原来很多优点都没了,例如每个文字语音播报” | 部分属实、部分扩大 | 旧版可确认回答/总结卡 TTS,不能确认所有文字可点;关键播报已在本地恢复/扩展 |
|
|
||||||
| “录音不属于当前账号” | 缺陷 | 本地已修,待双账号和线上验证 |
|
|
||||||
| “点提交没反应” | 缺陷 | 本地补错误反馈,待真机回归 |
|
|
||||||
| “快捷问题错位” | 视觉缺陷 | 需要按正式 Figma/手机宽度做视觉验收,不能只看 DOM 顺序判断已修 |
|
|
||||||
| “要能上传图片和视频” | 历史规划/本地最小实现 | 已做仅本次查询附件分析,未发布,不等于共享知识库上传 |
|
|
||||||
| “生成的问题也要语音播放” | 新增增强 | 本地已覆盖每日题/AI 对话,其他生成内容仍需统一核对 |
|
|
||||||
| “总结卡可以下载图片” | 新增增强 | 本地已补 PNG 下载,未发布 |
|
|
||||||
| “语音播报亮点全没了” | 确认回退 | 问师傅语音输入和关键输出播报均已在本地恢复;无 TTS 模型时 H5 已验证设备语音降级 |
|
|
||||||
| “岗位身份在哪里修改?” | 权限口径冲突 | 员工不应自行修改;本地已改为 HR 组织同步只读 |
|
|
||||||
| “指派要显示人名,不是编号” | 缺陷/体验 | 本地已改项目内在职员工姓名选择,依赖正式组织数据 |
|
|
||||||
| “增加问 AI(全网)” | 新增范围 | 当前会议基线是内部知识,不联网;需独立产品和安全决策 |
|
|
||||||
| “指派人员可多选、字段更简、快捷日期” | 新增 + 历史设计细化 | 本地已完成姓名多选、字段收敛、四档快捷日期、逐人结果和幂等批量提交 |
|
|
||||||
| “专项是什么?今天明天会不会同一道题?” | 产品定义/内容机制 | 专项是场景任务;当前无题目版本和去重保证,客户担忧成立 |
|
|
||||||
| “主管也要学习、不同岗位内容不同” | 历史目标 + 当前缺口 | 主管学习端切换本地已实现且不改组织角色;全岗位内容矩阵仍未完成,不能把生活顾问内容冒充全岗位覆盖 |
|
|
||||||
| “每天题目不一样、学员评有用无用” | 历史目标 + 新机制 | 每日题已本地改为 21 题按人按日轮换;SOP 有赞踩,训练题逐题有用/无用仍未实现 |
|
|
||||||
| “岗位入职测试保留在主管/经理角色” | 待确认 | 当前只有员工任务/资格与候选人面试;未找到旧版主管端考试配置证据 |
|
|
||||||
|
|
||||||
## 5. 优先级建议
|
|
||||||
|
|
||||||
### P0:先恢复版本连续性和可用性
|
|
||||||
|
|
||||||
1. 恢复“问师傅”语音输入,解决首页“语音提问”文案与实际能力不一致。
|
|
||||||
2. 完成回答、总结卡、每日题、AI 对话、评分点评的统一播报验收。
|
|
||||||
3. 真机复验录音归属、提交反馈、附件上传、总结卡下载。
|
|
||||||
4. 建每日题/专项的内容快照、版本号和去重规则,停止固定三题反复出现。
|
|
||||||
5. 用正式组织账号验证岗位只读、员工姓名派发和项目范围权限。
|
|
||||||
|
|
||||||
### P1:补齐阶段一产品完整性
|
|
||||||
|
|
||||||
1. 主管“工作台/学习端”双模式。
|
|
||||||
2. 岗位→场景→SOP→每日题的统一映射,明确首批岗位内容清单。
|
|
||||||
3. 指派多人、截止时间和快捷日期;每人生成独立任务记录。
|
|
||||||
4. 训练题有用/无用反馈、团队常见难题排序和一键派专项。
|
|
||||||
5. 全局字号三档与老年用户真机可读性验收。
|
|
||||||
|
|
||||||
### P2:按原阶段二单独立项
|
|
||||||
|
|
||||||
1. 开放问题榜、有奖征问题、全员回答、最佳答案、激励规则。
|
|
||||||
2. 完整课程、考试、题库、截止时间和成绩留档。
|
|
||||||
3. “问 AI(全网)”外部信息能力;必须与内部问师傅分来源和权限。
|
|
||||||
4. 现金型奖励需业务、财务、法务先确认,不作为普通前端功能直接上线。
|
|
||||||
|
|
||||||
## 6. 对客户的建议回复
|
## 6. 对客户的建议回复
|
||||||
|
|
||||||
> 之前的功能要求文档和旧版源码已经找到,并已按“旧版实际有过、历史规划但未上线、本轮新增”三类逐项对齐。问师傅语音输入、回答/总结卡播报等确认回退已在本地恢复;同时补齐了三级字号、总结卡图片下载、主管学习端、批量派发/快捷日期和每日题轮换。有奖问答、完整学习考试和问 AI 全网仍分别属于后续阶段或新增专项,不会因为 Figma 已画就混入当前版本。岗位继续以人力系统身份为准,员工不能随意改岗。当前结论是“本地实现并完成相应功能/视觉验证”,尚未发布生产。
|
> 已经按旧版源码、历史文档、Figma 和当前生产版本逐项对齐。旧版确认存在的语音输入、回答与总结卡播报已经恢复;本轮提出的三级字号、图片总结卡、主管学习端、多人派发与快捷日期、每日题轮换/反馈、常见难题、开放问题榜、岗位考试和全网 AI 也已进入生产包。岗位继续以人力系统身份为准,奖励当前是积分/学习学分,不是现金。现网版本、数据库结构和关键页面已经验证;下一步是用正式账号和真实手机完成录音、下载、权限、外部模型及试点窗口验收,不能把这部分写成已经完成。
|
||||||
|
|
||||||
## 7. 对齐与验收流程
|
## 7. 证据来源
|
||||||
|
|
||||||
1. **客户确认分类**:逐项确认“旧版真有/历史规划/新增需求/不再需要”。
|
- 当前工程与生产状态:[README.md](../README.md)、[BRD_IMPLEMENTATION_AUDIT.md](BRD_IMPLEMENTATION_AUDIT.md)、[BRD_PRODUCTION_MIGRATION_RUNBOOK.md](BRD_PRODUCTION_MIGRATION_RUNBOOK.md)。
|
||||||
2. **冻结对比基线**:给旧版源码、当前开发包和目标版本各自标记 commit、构建时间和访问地址。
|
- 设计审计:[FIGMA需求覆盖与版本偏差审计-20260717.md](FIGMA需求覆盖与版本偏差审计-20260717.md)、[FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md)。
|
||||||
3. **先修 P0**:只处理确认回退和阻断缺陷,不同时扩张阶段二范围。
|
- 阶段与产品定义:[银城员工端APP分阶段实施总纲.md](银城员工端APP分阶段实施总纲.md)、[20260708/数字师傅学练问报整合方案.md](20260708/数字师傅学练问报整合方案.md)。
|
||||||
4. **测试版验收**:按账号、岗位、页面、操作、期望结果记录,不再用聊天截图代替验收单。
|
- API 与运行边界:[API_INTEGRATION.md](API_INTEGRATION.md)、[DEMO_ACCEPTANCE.md](DEMO_ACCEPTANCE.md)。
|
||||||
5. **发布后复核**:本地完成、构建通过、线上资源同步、正式账号验证分别记录,不合并成一个“已完成”。
|
- 历史可运行源码:`mobile/src/App.vue`;当前权威源码:`mobile-uni/`、`frontend/`、`backend/ruoyi-modules/ruoyi-aihr/`。
|
||||||
|
|
||||||
## 8. 证据来源
|
|
||||||
|
|
||||||
- 当前工程边界:[README.md](../README.md)、[AGENTS.md](../AGENTS.md)。
|
|
||||||
- 当前实现与试点事实:[BRD_IMPLEMENTATION_AUDIT.md](BRD_IMPLEMENTATION_AUDIT.md)、[FIGMA_IMPLEMENTATION_MATRIX.md](FIGMA_IMPLEMENTATION_MATRIX.md)。
|
|
||||||
- 阶段边界:[银城员工端APP分阶段实施总纲.md](银城员工端APP分阶段实施总纲.md)、[AI陪练二期开发推进计划.md](AI陪练二期开发推进计划.md)。
|
|
||||||
- 产品定案:[20260708/数字师傅学练问报整合方案.md](20260708/数字师傅学练问报整合方案.md)、[2026-07-08 产品讨论纪要](20260708/企业内部AI培训学习APP产品需求与发布会内容讨论-2026年07月08日-来自【Get%20笔记】.md)。
|
|
||||||
- 业务原始范围:[物业AI人力资源系统业务需求文档BRD.md](物业AI人力资源系统业务需求文档BRD.md)、[legacy/物业AI陪练系统一期建设实施方案.md](legacy/物业AI陪练系统一期建设实施方案.md)。
|
|
||||||
- 设计状态:[FIGMA_DESIGN_INVENTORY.md](FIGMA_DESIGN_INVENTORY.md)、[H5_REDESIGN.md](H5_REDESIGN.md)。注意:Figma 清单中的 `[x]` 只证明设计画板或对应页面状态,不能单独证明线上功能已交付。
|
|
||||||
- 历史可运行源码:`mobile/src/App.vue`(问师傅语音输入约 1009–1017 行、回答播报约 1021–1027 行、回答/总结卡 TTS 约 1804–1894 行)。
|
|
||||||
- 当前权威源码:`mobile-uni/src/pages/user/*`、`mobile-uni/src/pages/supervisor/*`、`mobile-uni/src/services/position.ts`、`backend/ruoyi-modules/ruoyi-aihr/`。
|
|
||||||
|
|
||||||
## 9. 尚需补齐的证据
|
|
||||||
|
|
||||||
- 客户口中的“上一版”具体访问地址、安装包、发布时间或 commit 尚未确认;当前只能用仓库保留的 `mobile/` 作为历史可运行源码基线。
|
|
||||||
- “主管/经理曾能配置岗位入职测试”“每个文字都能点播报”暂未找到足够旧版证据,需要旧录屏或验收单确认。
|
|
||||||
- 当前本地反馈修复尚未发布,线上是否仍是旧资源、本地修复是否在 iOS/Android H5 上工作,需在发布窗口单独验证。
|
|
||||||
|
|||||||
Reference in New Issue
Block a user