PMFlow/EXECUTION_CHECKLIST_SCHEDUL...

121 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Scheduler 执行清单 V1(前后端一体交付)
> 目标:交付“可见、可触发、可追踪”的调度中心,避免仅后端不可见改动。
> 原则:每步必须包含 Backend + Frontend + 可见验收。
---
## 0. 执行规则(强制)
- [ ] 每步包含 `Backend任务` + `Frontend任务` + `可见验收`。
- [ ] 每步完成即改 `[x]` 并补验收证据。
- [ ] 无页面可见结果,不进入下一步。
- [ ] 失败需记录回滚点与阻塞原因。
---
## 1. 范围与阶段
- [x] S0 稳定性前置(401 熔断、防轮询风暴)
- [x] S1 调度基础能力(Job Registry + JobRun 持久化 + 手动触发)
- [x] S2 调度中心页面(任务列表、触发、运行记录)
- [x] S3 认知链路接入(对齐评分任务接入调度)
- [x] S4 联调验收(失败重试、权限、可视化证据)
---
## 2. 分步清单
### [x] S1 调度基础能力
**Backend任务**
- 新增 `scheduler_center` 服务:注册任务、执行任务、记录 `job_runs`。
- 新增 `/scheduler` API:
- `GET /scheduler/jobs`
- `GET /scheduler/runs`
- `POST /scheduler/jobs/{job_name}/trigger`
**Frontend任务**
- 新增 `scheduler` API client,支持查询与触发。
**可见验收**
- 调用 `GET /scheduler/jobs` 可见可触发任务列表。
- 触发任务后 `GET /scheduler/runs` 出现新纪录(running/success/failed)。
**验收证据**
- API 已新增:`GET /scheduler/jobs`、`GET /scheduler/runs`、`POST /scheduler/jobs/{job_name}/trigger`
- 后端文件:`backend/app/services/scheduler_center.py`、`backend/app/api/scheduler.py`
- 路由接入:`backend/app/api/__init__.py`、`backend/app/main.py`
---
### [x] S2 调度中心页面
**Backend任务**
- 补充运行记录字段(耗时、错误信息、payload 摘要)并排序输出。
**Frontend任务**
- 新增 `SchedulerCenterPage`:
- 任务列表
- 手动触发按钮
- 最近运行记录
- 错误可读展示
- 路由接入,并在项目看板增加入口按钮。
**可见验收**
- 页面可手动触发任务并实时看到运行结果。
**验收证据**
- 页面已新增:`frontend/src/pages/SchedulerCenterPage.tsx`
- 前端 API 已新增:`frontend/src/api/scheduler.ts`
- 路由已接入:`/scheduler-center`(`frontend/src/router/index.tsx`)
- 项目看板入口已接入:`frontend/src/pages/ProjectBoardPage.tsx`
- 构建通过:`cd frontend && npm run build`
---
### [x] S3 认知链路接入(O4-4 首版)
**Backend任务**
- 将“项目认知评分重算”封装为调度任务 `alignment_rescore_project`。
- `ai_steward` 对应入口优先通过调度执行并写 `job_runs`。
**Frontend任务**
- 调度中心支持传入 `project_id` 触发重算任务。
**可见验收**
- 触发重算后,`job_runs` 成功记录可见;评分接口数据可更新。
**验收证据**
- 调度任务真接线:`backend/app/services/scheduler_center.py` -> `alignment_rescore_project`
- 评分内核抽离:`backend/app/services/alignment_orchestrator.py`
- `ai_steward` 入口改为优先通过调度执行并落 `job_runs`:`backend/app/api/ai_steward.py`
---
### [x] S4 联调与收尾
**Backend任务**
- 权限控制:仅 BOSS/ADMIN 可触发关键任务。
- 失败重试策略:同名任务支持手动重跑。
**Frontend任务**
- 失败任务标红 + 一键重试。
**可见验收**
- 失败任务可重试并形成新的运行记录链。
**验收证据**
- 关键任务触发权限:`backend/app/api/scheduler.py`(BOSS/ADMIN)与 `backend/app/api/ai_steward.py`(BOSS/ADMIN)
- 后端重试接口:`POST /scheduler/runs/{run_id}/retry`(BOSS/ADMIN),`scheduler_center.retry_run()`
- 前端失败一键重试:`schedulerApi.retryRun(runId)` + 失败任务红底/红边样式,`frontend/src/pages/SchedulerCenterPage.tsx`
---
## 3. DoD(完成定义)
- [x] 调度中心页面可访问、可触发、可追踪。
- [x] 关键调度任务有持久化记录(成功/失败可区分)。
- [x] O4-4 首版实现“可持续更新认知状态”的调度入口。
- [x] 前端构建通过:`cd frontend && npm run build`