diff --git a/issues/2026-03-21_12-00-00-r13-small-team-profile.csv b/issues/2026-03-21_12-00-00-r13-small-team-profile.csv new file mode 100644 index 00000000..68f2e31e --- /dev/null +++ b/issues/2026-03-21_12-00-00-r13-small-team-profile.csv @@ -0,0 +1,8 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R13-0,R13执行合同建档与边界冻结,创建并校验小团队模式收敛合同 CSV 并冻结本阶段只做产品收敛 导航整理 工作区设置与 Portal 结果收敛的边界,CSV 校验通过且明确本阶段不引入新业务复杂度 只做小团队产品收敛,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_12-00-00-r13-small-team-profile.csv,manual,DONE,DONE,DONE,issues/2026-03-21_12-00-00-r13-small-team-profile.csv|issues/2026-03-21_10-20-00-r12-internal-oa-roadmap-refresh.csv,[],none +R13-1,WorkspaceSettings 单例配置与 API,新增工作区单例配置 WorkspaceSetting 与 system workspace/navigation API 作为小团队模式事实源,支持读取与更新单例工作区配置 支持返回产品模式 模块显隐与导航结构,cd server && npm run prisma:validate && npm test && git diff --check,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/src/routes/systemWorkspace.js|server/src/app.js|server/src/scripts/seed-config.js|server/tests,"[""R13-0""]",none +R13-2,主导航与 Portal 收敛,基于工作区模式把导航 Portal 首页和搜索结果收敛到小团队默认入口 并降级采购差旅预算 AP 等重模块,非管理员默认仅见 Portal 团队 请假 报销 资产 周报 待办 公告 管理员仍可访问备用模块,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/components/navigation/NavLinks.tsx|client/src/components/navigation/Topbar.tsx|client/src/pages/PortalHomePage.tsx|client/src/api/systemWorkspace.ts|client/src/router/index.tsx|server/src/routes/search.js,"[""R13-1""]",none +R13-3,Workspace Setup 初始化向导,新增工作区初始化向导 引导管理员完成公司名称 主导航模式 默认通知和模块可见性配置,首次管理员登录可进入初始化向导并在 30 分钟内完成小团队基础设置,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/WorkspaceSetupPage.tsx|client/src/router/index.tsx|server/src/routes/systemWorkspace.js|server/src/routes/me.js,"[""R13-1""]",none +R13-4,角色预设与权限简化映射,在 UI 层提供老板 管理员 员工 主管的推荐角色预设并映射到现有权限组合 不重写后端权限体系,管理员配置员工角色时可一键选择预设 角色说明和导航行为与小团队产品一致,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/auth/permissions.ts|client/src/pages/UserManagementPage.tsx|client/src/pages/PeoplePage.tsx,"[""R13-2""]",none +R13-5,Portal Search 结果收敛,调整 Portal 卡片 搜索默认排序和模块显隐 让结果优先覆盖人 公告 资产 请假 报销 周报 待办,Portal 首屏不再突出预算 AP 支付批次 搜索默认优先返回小团队核心对象,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/portal.js|server/src/routes/search.js|client/src/pages/PortalHomePage.tsx|client/src/components/GlobalSearchDialog.tsx,"[""R13-2""]",none +R13-6,R13回归与验收收口,完成工作区模式 导航收敛 初始化向导与 Portal/Search 收敛后的整体验收,小团队模式开启后现有报销 请假 资产 公告 登录零回归 且非管理员默认看不到降级模块,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && npm run test:e2e,manual,DONE,DONE,DONE,issues/2026-03-21_12-00-00-r13-small-team-profile.csv|server/scripts/regression-all.sh|client/tests/e2e,"[""R13-3"",""R13-4"",""R13-5""]",none diff --git a/issues/2026-03-21_12-10-00-r14-people-lifecycle.csv b/issues/2026-03-21_12-10-00-r14-people-lifecycle.csv new file mode 100644 index 00000000..aab331ae --- /dev/null +++ b/issues/2026-03-21_12-10-00-r14-people-lifecycle.csv @@ -0,0 +1,8 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R14-0,R14执行合同建档与范围冻结,创建并校验入转离与资产闭环合同 CSV 并冻结本阶段只做人员生命周期与资产交接闭环,CSV 校验通过且明确不引入绩效 薪酬 打卡等 HR 深水区,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_12-10-00-r14-people-lifecycle.csv,manual,DONE,DONE,DONE,issues/2026-03-21_12-10-00-r14-people-lifecycle.csv|issues/2026-03-21_12-00-00-r13-small-team-profile.csv,[],"已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-1,员工档案字段扩展,为 Employee 扩展 employment_status probation_end_date last_working_date work_location emergency_contact 与 notes 字段,员工档案支持入职期 在职 离职中 停用等状态与小团队必要档案字段,cd server && npm run prisma:validate && npm test,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/prisma/migrations|server/src/routes/users.js|server/src/routes/employees.js,"[""R14-0""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-2,生命周期事件与 checklist,新增 EmployeeLifecycleEvent 和 EmployeeChecklistTask 并支持入职 转正 调岗 离职事件留痕与 checklist 管理,发起 onboarding transfer regularize offboarding 后都能生成事件记录和 checklist 项,cd server && npm test && git diff --check,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/src/routes/employeeLifecycle.js|server/src/app.js|server/tests,"[""R14-1""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-3,离职资产交接与账号停用约束,在离职完成前校验未归还资产和未处理待办 并在完成离职时停用账号与主导航业务入口,未归还资产或未处理待办时离职不可完成 完成离职后账号不可再访问主业务入口,cd server && npm test && ./scripts/regression-workflow-actions.sh,manual,DONE,DONE,DONE,server/src/routes/employeeLifecycle.js|server/src/routes/assets.js|server/src/routes/workflow.js|server/src/plugins/auth.js|server/tests,"[""R14-2""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-4,团队页与员工档案页,新增 PeoplePage 和 EmployeeProfilePage 支持人员列表 生命周期面板 资产关联与员工自助档案,管理员可查看人员列表 生命周期和资产关联 员工可查看并维护自助档案字段,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/PeoplePage.tsx|client/src/pages/EmployeeProfilePage.tsx|client/src/router/index.tsx|client/src/api/employees.ts|client/src/pages/AssetRegistryPage.tsx,"[""R14-2""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-5,文档与 runbook 同步,补齐管理员关于入职 离职 资产交接和账号回收的操作手册与上线步骤,管理员手册和试运行 runbook 可指导真实执行入职和离职演练,git diff --check,manual,DONE,DONE,DONE,deploy/trialrun/runbook.md|deploy/trialrun/checklist.md|docs/admin-handbook.md|docs/employee-quickstart.md,"[""R14-3""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" +R14-6,R14回归与验收收口,完成员工生命周期 档案 资产交接和账号停用后的整体验收,入职和离职至少各跑通一条真实链路 且报销 请假 资产零回归,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,issues/2026-03-21_12-10-00-r14-people-lifecycle.csv|server/scripts/regression-all.sh|client/src/pages/PeoplePage.tsx,"[""R14-4"",""R14-5""]","已补管理端 profile 验证:administration@hyinda.com -> status=archived, employmentStatus=inactive" diff --git a/issues/2026-03-21_12-20-00-r15-team-presence.csv b/issues/2026-03-21_12-20-00-r15-team-presence.csv new file mode 100644 index 00000000..b604f1fb --- /dev/null +++ b/issues/2026-03-21_12-20-00-r15-team-presence.csv @@ -0,0 +1,7 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R15-0,R15执行合同建档与范围冻结,创建并校验团队在岗视图合同 CSV 并冻结本阶段只做请假联动的轻量状态板,CSV 校验通过且明确不做打卡 排班 迟到早退等复杂考勤,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_12-20-00-r15-team-presence.csv,manual,DONE,DONE,DONE,issues/2026-03-21_12-20-00-r15-team-presence.csv|issues/2026-03-21_12-10-00-r14-people-lifecycle.csv,[],none +R15-1,EmployeePresence 模型与 API,新增员工每日状态记录 EmployeePresence 与 me/team/summary API,员工可查看和更新当日状态 团队可查询当天汇总分布,cd server && npm run prisma:validate && npm test,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/src/routes/presence.js|server/src/app.js|server/tests,"[""R15-0""]",none +R15-2,请假联动与冲突规则,把已批准请假自动同步到状态板 并定义 leave_sync 优先级和手工覆盖边界,当天有请假覆盖时团队视图强制展示 leave 且普通员工不可覆盖 leave_sync 记录,cd server && npm test && ./scripts/regression-workflow-actions.sh,manual,DONE,DONE,DONE,server/src/routes/presence.js|server/src/routes/leave.js|server/tests,"[""R15-1""]",none +R15-3,团队在岗页与 Portal 卡片,新增 TeamPresencePage 并在 Portal 增加今日团队状态卡片与员工快捷更新入口,老板和行政可在单页看到今日在岗分布 员工可在 Portal 10 秒内更新状态,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/TeamPresencePage.tsx|client/src/pages/PortalHomePage.tsx|client/src/router/index.tsx|client/src/api/presence.ts,"[""R15-1""]",none +R15-4,站内提醒与每日视图,补齐团队状态的站内提醒和筛选视图 支持查看全部 在岗 不在岗,状态变更和关键缺失可通过站内提醒和团队页筛选发现,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/notifications.js|client/src/pages/TeamPresencePage.tsx|client/src/pages/NotificationsPage.tsx,"[""R15-3""]",none +R15-5,R15回归与验收收口,完成团队状态 API 请假联动 Portal 卡片与提醒后的整体验收,请假审批通过后团队状态自动体现 且 Portal 登录 主导航 现有请假主链路零回归,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && npm run test:e2e,manual,DONE,DONE,DONE,issues/2026-03-21_12-20-00-r15-team-presence.csv|server/scripts/regression-all.sh|client/tests/e2e/team-presence.spec.ts,"[""R15-2"",""R15-4""]",none diff --git a/issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv b/issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv new file mode 100644 index 00000000..26414d27 --- /dev/null +++ b/issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv @@ -0,0 +1,8 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R16-0,R16执行合同建档与范围冻结,创建并校验周报与待办合同 CSV 并冻结本阶段只做小团队周报和个人待办,CSV 校验通过且明确不引入项目管理 甘特图 CRM 等复杂协作平台能力,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv,manual,DONE,DONE,DONE,issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv|issues/2026-03-21_12-20-00-r15-team-presence.csv,[],none +R16-1,WeeklyReport 模型与 API,新增周报模型与 me/team API 支持懒创建 draft 保存与提交,每个员工每周最多一份周报 首次访问自动创建 draft 可提交汇总,cd server && npm run prisma:validate && npm test,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/src/routes/weeklyReports.js|server/src/app.js|server/tests,"[""R16-0""]",none +R16-2,TodoItem 模型与 API,新增待办模型与列表 创建 编辑 完成 取消 API 支持手工创建与周报派生,待办支持 assignee priority dueDate status source 并可从周报动作派生,cd server && npm run prisma:validate && npm test,manual,DONE,DONE,DONE,server/prisma/schema.prisma|server/src/routes/todos.js|server/src/app.js|server/tests,"[""R16-0""]",none +R16-3,周报页 待办页与老板汇总,新增 WeeklyReportsPage 和 TodosPage 并为老板提供团队周报汇总视图,员工可提交周报和维护待办 老板可查看团队周报汇总和需协助人员,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/WeeklyReportsPage.tsx|client/src/pages/TodosPage.tsx|client/src/router/index.tsx|client/src/api/weeklyReports.ts|client/src/api/todos.ts,"[""R16-1"",""R16-2""]",none +R16-4,提醒策略与站内通知,补齐周中 周五和周一的站内提醒规则并在 Portal 暴露未提交周报和高优先级待办摘要,提醒不会打断主业务 并且老板 Portal 可看到未提交周报人数和高优先级待办,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/notifications.js|server/src/jobs|client/src/pages/PortalHomePage.tsx|client/src/pages/NotificationsPage.tsx,"[""R16-3""]",none +R16-5,Portal Search 公告联动,将周报与待办纳入 Portal 卡片 搜索优先级和公告工作台联动,Portal 首屏可展示本周周报和待办摘要 搜索可命中周报与待办对象,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/portal.js|server/src/routes/search.js|client/src/pages/PortalHomePage.tsx|client/src/components/GlobalSearchDialog.tsx,"[""R16-3""]",none +R16-6,R16回归与验收收口,完成周报 待办 提醒和 Portal 联动后的整体验收,全员可提交周报 老板可查看团队汇总 且现有报销 请假 公告 Portal 零回归,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && npm run test:e2e,manual,DONE,DONE,DONE,issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv|server/scripts/regression-all.sh|client/tests/e2e/weekly-report-todo.spec.ts,"[""R16-4"",""R16-5""]",none diff --git a/issues/2026-03-21_12-40-00-r17-small-team-go-live.csv b/issues/2026-03-21_12-40-00-r17-small-team-go-live.csv new file mode 100644 index 00000000..a9e40861 --- /dev/null +++ b/issues/2026-03-21_12-40-00-r17-small-team-go-live.csv @@ -0,0 +1,8 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R17-0,R17执行合同建档与上线边界冻结,创建并校验小团队上线收口合同 CSV 并冻结本阶段只做默认配置 放量 文档 手册 试点和验收,CSV 校验通过且明确目标是小团队真正可用而不是继续扩展新模块,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_12-40-00-r17-small-team-go-live.csv,manual,DONE,DONE,DONE,issues/2026-03-21_12-40-00-r17-small-team-go-live.csv|issues/2026-03-21_12-30-00-r16-weekly-report-todo.csv,[],none +R17-1,默认配置与功能开关收口,为 trialrun 和 seed 打开 small_team_internal profile 与核心小团队功能开关 并默认降级重模块,trialrun 默认开启 Portal 公告 周报 待办 团队状态 人员生命周期 并默认关闭 payment batch cutover 与重模块主导航,cd server && npm test && git diff --check,manual,DONE,DONE,DONE,server/src/scripts/seed-config.js|server/.env.example|deploy/trialrun/.env.example|server/src/services/featureFlags/index.js,"[""R17-0""]",none +R17-2,存量员工与资产数据整理支撑,提供小团队上线所需的人员档案 资产归属和部门关系整理支撑接口或导入校验,管理员可在上线前核对员工档案 部门关系和资产归属缺口,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/employees.js|server/src/routes/assets.js|client/src/pages/PeoplePage.tsx|client/src/pages/AssetRegistryPage.tsx,"[""R17-1""]",none +R17-3,管理员手册与员工使用手册,新增 admin-handbook 和 employee-quickstart 并补齐试运行 runbook/checklist 的小团队模式步骤,管理员和员工均有可执行手册 支撑首次配置 入职 离职 周报与团队状态的真实演练,git diff --check,manual,DONE,DONE,DONE,docs/admin-handbook.md|docs/employee-quickstart.md|deploy/trialrun/runbook.md|deploy/trialrun/checklist.md,"[""R17-1""]",none +R17-4,全员试点与观测留痕,补齐试点观测字段 页面或文档留痕 支撑 4 周使用观测和真实验收记录,系统可记录或沉淀全员使用情况 周报提交率 关键阻塞和试点观察结论,cd server && npm test && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,server/src/routes/portal.js|client/src/pages/PortalHomePage.tsx|docs/admin-handbook.md|docs/feature-matrix.md,"[""R17-2"",""R17-3""]",none +R17-5,默认收口无用主导航模块,按小团队产品模式彻底收口全员默认导航 仅为管理员保留备用企业模块入口,全员默认主导航仅剩 Portal 团队 请假 报销 资产 周报 待办 公告 管理员附加入口符合约定,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/components/navigation/NavLinks.tsx|client/src/router/index.tsx|client/src/pages/PortalHomePage.tsx,"[""R17-1""]",none +R17-6,R17最终验收,完成默认配置 文档手册 试点观测和主导航收口后的最终验收,全员账户 档案 部门关系已补齐 入职离职资产交接至少各跑通一次 全员连续使用周报与团队状态且主回归 E2E 全绿,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && npm run test:e2e,manual,DOING,TODO,TODO,issues/2026-03-21_12-40-00-r17-small-team-go-live.csv|server/scripts/regression-all.sh|client/tests/e2e|docs/admin-handbook.md|docs/employee-quickstart.md,"[""R17-4"",""R17-5""]",代码/文档/回归基线已完成;仍待真实 4 周试点观测与全员连续使用证据后再关单