# Plan: S1 - 新增 GET /cron/ 路由 ## 目标 在 app.py 新增路由 `@app.route("/cron/")`,渲染 cron_job.html 模板。 复用现有 `_load_cron_jobs()` 查找 job 信息。job 不存在返回 404。 ## 涉及文件 - `app.py`: 新增路由函数 - `templates/cron_job.html`: 模板(S2 创建,S1 只引用) ## 数据流 1. Flask 接收 `/cron/` GET 请求 2. 调用 `_load_cron_jobs()` 获取所有 job 3. 遍历查找 id 匹配的 job 4. 找到 → render_template("cron_job.html", job=job) 5. 未找到 → 返回 404 ## 步骤 1. RED: 写测试 `test_s1_cron_route.py` — curl /cron/ → 200, /cron/nonexistent → 404 2. GREEN: 在 app.py 添加路由(在现有 /api/cron/logs/ 后面) 3. REFACTOR: 确认无重复代码 4. VERIFY: 运行测试 + smoketest ## 风险 - jinja2.exceptions.TemplateNotFound 如果 S2 还没创建模板 → S1 RED 时预计会看到此错误,这是预期 RED - 需要知道至少一个真实 job ID 用于测试