docs: classify dev smoke mutation authority

This commit is contained in:
Codex
2026-05-23 02:25:32 +00:00
committed by unidesk-code-queue-runner
parent 02e7f79553
commit 67fee32beb
2 changed files with 32 additions and 0 deletions
+30
View File
@@ -42,6 +42,36 @@ live-read browser audit 只用于观察已部署 UI,不授权写入。未获
每次新派一批任务、接收一批 completed unread 结果,或者发生实质态势变化时,都要同步更新 `#20` 的正文主表;如果当天有滚动简报,则同时更新当日简报 issue 的正文主内容,而不是只在聊天中补上下文。
## DEV 测试授权分级
`DEV` 只说明目标环境,不自动说明允许的写入级别。所有 runner prompt 和 supervisor closeout 都必须把 DEV 验证分成 `read-only``live-read``live-mutating` 三类;如果 prompt 没有显式分类,默认按 `read-only` 处理。
| 分级 | 含义 | 常见允许动作 | 禁止动作 |
| --- | --- | --- | --- |
| `read-only` | 不连接或不观察正在运行的 DEV 服务,只验证源码、本地 contract、fixture、mock、dry-run 或静态输出。 | `git diff``rg`、类型检查、unit/contract test、CLI `--dry-run`、生成计划或补文档。 | 访问 live service、触发任务、写数据库、部署、重启、rollout、真实硬件或虚拟硬件动作。 |
| `live-read` | 读取正在运行的 DEV 服务、日志、health、status、metrics、Kubernetes 只读对象或只读 API,不改变 live 状态。 | `GET /health``GET /status`、只读 proxy、`kubectl get/describe/logs`、只读 CLI status/diagnostics。 | `POST/PUT/PATCH/DELETE``kubectl apply/delete/rollout restart`、触发 schedule/job/task、写 issue/PR 之外的 runtime 状态、任何会创建 operation/audit/evidence 的动作。 |
| `live-mutating` | 在 DEV 环境执行会改变 live 状态的命令,即使目标是 smoke、复测或诊断。 | 经 prompt 明确授权的 dev deploy/apply/rollout、trigger/run/retry、task submit/steer、写配置、创建 operation/audit/evidence、HWLAB M3 DO/DI 链路触发。 | 任何未被 prompt 精确列出的 live mutation;生产写入、密钥读取、数据库手工 patch、Code Queue 高风险干预仍按更高安全边界处理。 |
`DEV smoke``M3 smoke``live smoke``复测``验证` 这类词本身不构成 live mutation 授权。只要命令会改变 DEV runtime、触发真实或虚拟设备动作、创建任务/operation/audit/evidence、改变 deployment 或写入服务状态,就必须归入 `live-mutating`
派单 prompt 必须显式写出:
- `DEV test class`:只能是 `read-only``live-read``live-mutating`
- `允许的 live mutation`:若 class 是 `live-mutating`,必须逐项列出允许的命令形态或动作、目标环境/服务/namespace、可接受的状态变化、观察和回滚步骤;若没有授权,写 `none`
- `禁止动作`:至少说明 prod mutation、密钥明文、数据库手工 patch、Code Queue backend 重启/重建、运行中任务 interrupt/cancel 是否禁止;未写明的高风险动作一律禁止。
- `closeout 字段`runner final response 必须报告实际执行的 test class、是否发生 live mutation、执行命令摘要、目标环境、证据链接或 ID,以及未覆盖风险。
runner 收到未分类或含糊的 prompt 时,只能执行 `read-only` 范围;如果完成任务需要 `live-read``live-mutating`,必须停在计划和待授权状态,列出拟执行命令、风险和需要指挥官补充的授权,不能自行把“DEV”解释成允许写入。
supervisor closeout 不能只看 runner 的成功自述,必须核对 prompt 授权和实际命令级别:
- `read-only` closeout 应证明没有 live service 写入,证据来自 diff、静态检查、unit/contract test 或 dry-run 输出。
- `live-read` closeout 应记录读取的 DEV endpoint、service、namespace 或日志范围,并明确没有触发 runtime 状态变化。
- `live-mutating` closeout 应指出 prompt 中的明确授权、实际变更目标、operation/audit/evidence/task/job ID、回滚或恢复观察,以及 prod 未触碰。
- 如果 runner 在没有明确 prompt 授权时执行了 live mutation,即使 smoke 结果成功,也不能把任务验收为正常完成;指挥官应先核实 live 状态和 blast radius,再把它记录为治理缺陷或 follow-up,并修正后续 prompt 模板。
HWLAB M3 口径使用同一分级:只读报告、fixture、LOCAL/DRY-RUN 和 diagnostics 只能算 `read-only``live-read`;触发 `res_boxsimu_1:DO1 -> hwlab-patch-panel -> res_boxsimu_2:DI1` 的可信闭环属于 `live-mutating`,必须有 prompt 明确授权并在 closeout 中给出 operation / audit / evidence 关联。
## 任务设计
每个 Code Queue task 都必须有清晰且狭窄的 ownership 边界。