diff --git a/issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv b/issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv index ddfef145..6ec10ea4 100644 --- a/issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv +++ b/issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv @@ -1,10 +1,10 @@ -ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes -R0,P15-P18路线图合同建档,创建并校验P15-P18 roadmap preflight 执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv,manual,DONE,DONE,DONE,issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv,[],作为后续六个月总控合同 -R1,P14基线冻结与双提交,封板P14运营化产物并按计划完成基线提交收口,两笔chore提交完成且工作区清空,manual: git status && git log --oneline -n 2,manual,DONE,DONE,DONE,.github/workflows/ci-minimal.yml | .github/workflows/ci-regression.yml | docs/feature-matrix.md | docs/ops/ci-regression-reporting.md | issues/2026-02-13_00-11-56-p14-l5-operationalization.csv | scripts/coverage_gate.js | scripts/openapi_diff_check.py | scripts/validate_regression_report.py | scripts/validate-feature-matrix.py | server/.env.example | server/package.json | server/package-lock.json | server/scripts/export_openapi.js | server/src/app.js | server/src/config.js | server/src/index.js | server/src/observability/tracing.js | server/src/routes/invoicePool/read.js | server/src/routes/reimbursements.js | server/src/routes/workflow.js | server/tests/unit/services/ | server/tests/unit/utils/,"[""R0""]",本次以两笔chore提交完成基线封板 -R2,P15合同锚点校正,修正P15A伪文件锚点并补齐P15B列表/撤回能力合同,不再引用不存在文件且P15B覆盖列表与撤回流程,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv,"[""R0""]",P15A-2 锚定 constants/auth/workflow;P15B补齐列表与撤回 -R3,Skills与MCP装配计划建档,固定skills安装与MCP启用边界并完成第一波必要skills安装,playwright与security-best-practices可用且MCP策略已固定,manual: ls -1 /home/shunli/.codex/skills,manual,DONE,DONE,DONE,/home/shunli/.codex/config.toml | /home/shunli/.codex/skills/playwright | /home/shunli/.codex/skills/security-best-practices,"[""R0""]",已安装 playwright 与 security-best-practices;MCP继续按需启用,仅预留postgres/github -R4,P15A启动就绪审查,冻结P15A权限矩阵与接口落点避免开工后反复改合同,权限矩阵和落点与真实代码锚点一致,manual,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | server/src/constants/permissions.js | server/src/plugins/auth.js | server/src/routes/workflow.js | server/src/routes/leave.js | client/src/components/navigation/NavLinks.tsx | client/src/router/index.tsx,"[""R2""]",不改表结构;不扩transfer到leave -R5,P15B启动就绪审查,冻结P15B四层模型与账本语义及列表/撤回边界,四层模型与账本语义和接口范围全部固定,manual,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv | server/prisma/schema.prisma | server/src/routes/leave.js | server/src/routes/workflow.js,"[""R2""]",默认自然日+半天边界;日历与节假日算法后置 -R6,P16共享主数据蓝图,定义 LegalEntity HolidayCalendar CostCenter DocumentCategory Supplier 的模型与API边界,主数据模型和API范围固定且可被leave purchase asset复用,manual,manual,TODO,TODO,TODO,module:master-data,"[""R5""]",先共享主数据后扩业务,避免再次耦回system.settings -R7,P17轻采购蓝图,定义轻采购V1范围仅覆盖申请审批预算校验供应商与归档,采购范围固定且明确不含收货三单匹配与ERP过账,manual,manual,TODO,TODO,TODO,module:procurement,"[""R6""]",依赖Supplier与CostCenter等主数据 -R8,P18固资台账蓝图,定义资产卡片领用归还调拨盘点的V1范围,资产台账范围固定且明确不含折旧过账与ERP集成,manual,manual,TODO,TODO,TODO,module:assets,"[""R6""]",建议引用LegalEntity CostCenter DocumentCategory +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +R0,P15-P18路线图合同建档,创建并校验P15-P18 roadmap preflight 执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv,manual,DONE,DONE,DONE,issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv,[],作为后续六个月总控合同 +R1,P14基线冻结与双提交,封板P14运营化产物并按计划完成基线提交收口,两笔chore提交完成且工作区清空,manual: git status && git log --oneline -n 2,manual,DONE,DONE,DONE,.github/workflows/ci-minimal.yml | .github/workflows/ci-regression.yml | docs/feature-matrix.md | docs/ops/ci-regression-reporting.md | issues/2026-02-13_00-11-56-p14-l5-operationalization.csv | scripts/coverage_gate.js | scripts/openapi_diff_check.py | scripts/validate_regression_report.py | scripts/validate-feature-matrix.py | server/.env.example | server/package.json | server/package-lock.json | server/scripts/export_openapi.js | server/src/app.js | server/src/config.js | server/src/index.js | server/src/observability/tracing.js | server/src/routes/invoicePool/read.js | server/src/routes/reimbursements.js | server/src/routes/workflow.js | server/tests/unit/services/ | server/tests/unit/utils/,"[""R0""]",本次以两笔chore提交完成基线封板 +R2,P15合同锚点校正,修正P15A伪文件锚点并补齐P15B列表/撤回能力合同,不再引用不存在文件且P15B覆盖列表与撤回流程,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv,"[""R0""]",P15A-2 锚定 constants/auth/workflow;P15B补齐列表与撤回 +R3,Skills与MCP装配计划建档,固定skills安装与MCP启用边界并完成第一波必要skills安装,playwright与security-best-practices可用且MCP策略已固定,manual: ls -1 /home/shunli/.codex/skills,manual,DONE,DONE,DONE,/home/shunli/.codex/config.toml | /home/shunli/.codex/skills/playwright | /home/shunli/.codex/skills/security-best-practices,"[""R0""]",已安装 playwright 与 security-best-practices;MCP继续按需启用,仅预留postgres/github +R4,P15A启动就绪审查,冻结P15A权限矩阵与接口落点避免开工后反复改合同,权限矩阵和落点与真实代码锚点一致,manual,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv | server/src/constants/permissions.js | server/src/plugins/auth.js | server/src/routes/workflow.js | server/src/routes/leave.js | client/src/components/navigation/NavLinks.tsx | client/src/router/index.tsx,"[""R2""]",不改表结构;不扩transfer到leave +R5,P15B启动就绪审查,冻结P15B四层模型与账本语义及列表/撤回边界,四层模型与账本语义和接口范围全部固定,manual,manual,DONE,DONE,DONE,issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv | server/prisma/schema.prisma | server/src/routes/leave.js | server/src/routes/workflow.js,"[""R2""]",默认自然日+半天边界;日历与节假日算法后置 +R6,P16共享主数据蓝图,定义 LegalEntity HolidayCalendar CostCenter DocumentCategory Supplier 的模型与API边界,主数据模型和API范围固定且可被leave purchase asset复用,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv | server/prisma/schema.prisma | server/src/constants/permissions.js | server/src/routes/budgets.js | server/src/routes/configRead.js,"[""R5""]",P16-1与P16-2已冻结 主数据先行以避免再次耦回system.settings +R7,P17轻采购蓝图,定义轻采购V1范围仅覆盖申请审批预算校验供应商与归档,采购范围固定且明确不含收货三单匹配与ERP过账,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv | server/prisma/schema.prisma | server/src/routes/workflow.js | server/src/routes/budgets.js,"[""R6""]",P17-1与P17-2已冻结 采购依赖Supplier与CostCenter +R8,P18固资台账蓝图,定义资产卡片领用归还调拨盘点的V1范围,资产台账范围固定且明确不含折旧过账与ERP集成,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv | server/prisma/schema.prisma | server/src/routes/audit.js | server/src/routes/workflow.js,"[""R6""]",P18-1与P18-2已冻结 引用LegalEntity CostCenter DocumentCategory diff --git a/issues/2026-03-07_08-15-48-p16-p18-blueprints.csv b/issues/2026-03-07_08-15-48-p16-p18-blueprints.csv new file mode 100644 index 00000000..a8a3db3c --- /dev/null +++ b/issues/2026-03-07_08-15-48-p16-p18-blueprints.csv @@ -0,0 +1,10 @@ +ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes +P16-0,P16到P18蓝图合同建档,创建并校验P16到P18蓝图执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,[],覆盖R6到R8三阶段蓝图冻结 +P16-1,共享主数据模型边界冻结,定义LegalEntity HolidayCalendar CostCenter DocumentCategory Supplier的模型字段关系与归属边界,五类主数据的模型职责和引用边界全部固定,grep -n 'P16-1' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/src/routes/departments.js | server/src/routes/budgets.js | server/src/routes/configRead.js,["P16-0"],LegalEntity先绑定员工与单据归属 HolidayCalendar暂只支持日级能力 +P16-2,共享主数据API权限与迁移策略冻结,固定主数据CRUD API 权限码 seed策略与现有department budget leave的迁移接入顺序,API范围 权限边界 种子策略与迁移顺序固定,grep -n 'P16-2' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/src/constants/permissions.js | server/src/scripts/seed-config.js | server/src/app.js | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx,["P16-1"],落地顺序固定为LegalEntity CostCenter DocumentCategory HolidayCalendar Supplier +P17-0,P17轻采购蓝图冻结,固定轻采购V1合同范围与前置依赖使其严格依赖P16主数据,轻采购蓝图具备独立可执行边界且明确依赖P16,grep -n 'P17-0' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,["P16-2"],仅做蓝图冻结 不直接进入编码 +P17-1,轻采购模型与流程边界冻结,定义PurchaseRequest PurchaseOrder ProcurementAttachment与预算校验 工作流审批 归档边界,采购数据模型与审批流范围固定且不含收货三单匹配,grep -n 'P17-1' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/src/routes/workflow.js | server/src/routes/budgets.js,["P17-0"],预算校验只消费CostCenter与BudgetPool 不改财务过账 +P17-2,轻采购API权限与前端入口冻结,固定procurement权限 API路由 菜单入口与供应商引用方式,采购API 权限与UI守卫点固定且只引用P16主数据,grep -n 'P17-2' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/src/constants/permissions.js | server/src/app.js | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx,["P17-1"],Supplier为必选主数据 合同与采购单仅做留档 +P18-0,P18固资台账蓝图冻结,固定资产卡片与流转盘点的V1边界并锚定对P16的引用,资产蓝图具备独立可执行边界且明确不含会计折旧,grep -n 'P18-0' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,["P16-2"],仅做蓝图冻结 不直接进入编码 +P18-1,固资模型与生命周期边界冻结,定义AssetCategory AssetCard AssetAssignment AssetTransfer InventoryCheck的模型与状态机,资产模型与领用归还 调拨 盘点范围固定,grep -n 'P18-1' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/src/routes/workflow.js | server/src/routes/departments.js,["P18-0"],资产取得来源允许手工建卡或引用采购结果但不强依赖采购闭环 +P18-2,固资API权限与交接边界冻结,固定asset权限 API路由 审计留痕与采购主数据交接方式,资产API 权限 盘点动作 审计留痕与移交边界固定,grep -n 'P18-2' issues/2026-03-07_08-15-48-p16-p18-blueprints.csv,manual,DONE,DONE,DONE,server/src/constants/permissions.js | server/src/routes/audit.js | server/src/app.js | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx,["P18-1"],引用LegalEntity CostCenter DocumentCategory 若已有采购结果则仅接收只读来源单据号