Files
Neo-ZQYY/docs/_overview/04a-feedback/P0-6-record.md
Neo 509cf43284 chore(docs): Wave 0 调研产出 + P0/P1/P2 反馈调研
建立项目级标杆文档 docs/_overview/ 作为产品全景索引,
解决"PRD 零碎、文档膨胀、跨子系统调研无入口"的问题。

主要内容:
- 00-index 总索引 + 维护协议 + 与 CLAUDE.md 关系
- 01-product-overview 产品全景脑图(6 角色 / 6 子系统 / 数据流 /
  7 业务概念 / 8+1 AI 矩阵 / 22 术语)
- 02a-miniprogram-page-matrix 小程序 21 页业务指纹
- 02b-adminweb-page-matrix admin-web 19 路由业务指纹
- 03-test-spec 测试规范 (L1-L5 分层 + 走查模板 + 75-95 case 估算)
- 04-doc-conflicts 39 条冲突索引(P0×8 / P1×13 / P2×13 + 5 子项)
- 04a/b/c-conflicts-*-detail 业务故事卡(7 字段:关联/逻辑/影响/选项/判定)
- 05-orphan-pages-cleanup admin-web 6 孤儿页面处置(1 归档 + 4 保留)
- WAVES-MASTER-PLAN.md 全 Wave 主计划(0-5,共 22-32 工作日)
- WAVE-1-KICKOFF.md Wave 1 实施 kickoff
- GLOBAL-DECISION-DASHBOARD.md 全局决策仪表板

反馈调研产物:
- 04a-feedback/ P0 两轮反馈(8+8 项决策 + D-1/2/3 + F-1/2 子代理产出)
- 04b-feedback/ P1 两轮反馈(13+1+5 项 + E-1/2/3/4 + G-1/2 子代理产出)
- 04c-feedback/ P2 反馈(13 项 + 5 子项 + H-1/2/3 子代理产出)
- NEO-DECISIONS-LOG 累积决策记录

关键追加发现 8 处 D Bug(原蓝本 0):
- P0-3 看板沙箱接入(Wave 1 W1-T1)
- P0-5 致命 1 (4 处 fdw_etl 残留, 已修 commit 17f045a)
- P0-5 致命 2 (JWT aud 缺失, 已修 commit 17f045a)
- P0-6 clearAllTasks 守卫 (Wave 3)
- P0-8 DBViewer 黑名单漏 (已修 commit 17f045a)
- P1-3 task-detail 跳转传 task_id 而非 customer_id
- P2-7 board-finance 隐式 null
- 2 个独立 Bug (page_context.created_at + ClueCategory 字典)

参考: docs/_overview/00-index.md
2026-05-04 07:38:28 +08:00

2.1 KiB

P0-6 临时守卫 + 沙箱收口后正式重设计 — 记录

日期:2026-05-04 / 触发:Neo 在 P0 反馈"我同意,但要记录下来"

一、问题简述

clearAllTasks 高危操作(DELETE /api/admin/task-engine/clear-all-tasks)无运行模式守卫,任何 super_admin 可点。文档明文标"测试用",但代码无 sandbox 判断。

详细业务故事见 04a-conflicts-P0-detail.md § P0-6

二、Neo 决策

两阶段方案:

阶段 1 — 临时止血(立即,Wave 1-3 任意时点)

  • 工作量:1h
  • 范围:admin-web TriggerJobs.tsx 顶部 danger 按钮加"二次确认弹窗 + 输入门店简称"
  • 后端不动(沙箱模式还未上线,沙箱判断暂时不需要)

阶段 2 — 沙箱收口后正式重设计(等 P0-7 完成)

  • 工作量:3-5h
  • 触发条件:P20 SPEC 实施完成 + Wave 1 沙箱走查通过
  • 范围:
    • 把"清空"语义拆为 "全局清空"(live 数据)和 "沙箱内清空"(按 runtime_mode='sandbox' AND sandbox_instance_id=?)
    • 后端加 ?scope=live|sandbox|both query param
    • 后端在 live 模式下默认拒绝 scope=live(必须显式参数 confirm=DROP_ALL_<site_code>)
    • 前端按当前 runtime_context 联动 disabled / 显示哪个清空选项

三、与其他主题的关系

  • 依赖 P0-7 沙箱收口完成(明确 runtime_mode + sandbox_instance_id 字段语义)
  • 关联 P20 SPEC §11.3 已指向 P0-7-runtime-context-todos.md,本记录可作为 todos 的子项
  • 不阻塞 Wave 1 主线工作

四、待办状态

  • 阶段 1 临时止血(Wave 1-3 任意时点)
  • 阶段 2 正式重设计(等 P0-7 收口后)

五、给 Neo 的提醒

P0-7 收口完成后,需要:

  1. 在 P20 SPEC § 7 安全 / 权限模型 中明文写出 clearAllTasks 在 live 与 sandbox 下的不同行为
  2. 在 admin-web RuntimeContext 页加一个"危险操作历史日志"展示哪些 sandbox 实例曾触发 clearAllTasks
  3. 把本文件状态从"记录"改为"已完成",归档到审计

本文件不替代代码实施,仅作为记录,等待 Wave 1-3 / P0-7 收口后执行。