tester v2: 术语对齐 pytest/JUnit/Robot,补齐 automation 与 not-run

字段改名(每项取舍的理由见新增的 references/concepts.md):
- 用例 status -> lifecycle, suite -> tag, surface -> driver,
  cleanup -> teardown, skip_unless -> assume;删除 requires
- risk 取值 safe/act/harm -> readonly/mutating/destructive(单调三级,
  与 gate 正交)
- catalog auth_env -> authorize;授权变量统一为
  AUTHORIZE_MUTATING / AUTHORIZE_DESTRUCTIVE

新增用例字段 automation(automated/assisted/manual),默认 automated,
并在 validate 里机器校验:manual 禁用 driver 与 how.run 且必须有
how.steps;assisted 至少一步以 [人工] 开头。select 新增 --automation。

结果词新增 not-run,区分「主动不跑」(skipped:retired/pending/超风险
上限/未授权/assume 不成立)与「没轮到」(失败即停后、被分类前置挡住整组、
需人工而无人值守)。

status_probe 定为分类级前置条件:catalog 顶层为默认,categories[] 同名键
覆盖(缺省继承 / false 关闭 / mapping 整体替换)。select 按分类返回生效值,
并把 probe.url 用 vars 展开(solve Agent 无法自行解析 ${VAR} 的问题),
同批返回 vars 供 how 里的 ${...} 替换。

新增 references/concepts.md:术语表(每词一句唯一定义 + 业界锚点 +
反例)、v1->v2 映射、以及 risk/automation/not-run/status_probe 的设计理由。
其余文档(SKILL/README/schema/levels/run/maintain)与三个脚本(catalog、
generate_cases_csv、generate_run_csv)同步更新。
This commit is contained in:
2026-09-16 23:07:08 +08:00
parent ca3156ed93
commit cc9af04a40
12 changed files with 443 additions and 143 deletions
+4 -4
View File
@@ -11,8 +11,8 @@
python3 <skill-dir>/scripts/catalog.py next-id --root <root> --category <CAT>
```
3. 拟一条符合 [schema.md](schema.md) 的用例。`suite`/`risk` 按 [levels.md](levels.md):`smoke` 只能 `safe`;会动手用 `act`,难恢复用 `harm`。细分授权用 `gate`,不要发明新的 risk 名。
4. `surface=browser|mobile` 必须填 `session`,且 catalog 里已声明。
3. 拟一条符合 [schema.md](schema.md) 的用例。`tag`/`risk` 按 [levels.md](levels.md):`smoke` 只能 `readonly`;会改状态用 `mutating`,难恢复用 `destructive`。细分授权用 `gate`,不要发明新的 risk 名。需人工参与的填 `automation`(见 [concepts.md](concepts.md))。
4. `driver=browser|mobile` 必须填 `session`,且 catalog 里已声明。
5. `what` 和 `expected` 写成可观察信号,禁止「应该正常」。
6. 给用户看拟写内容。确认后写入 `cases/<category小写>.yaml` 的 `cases` 列表末尾。
7. `validate`。失败则修好再结束。通过后跑 `generate_cases_csv.py --root <root>` 刷新 `.pouch/tester/cases.csv`。不要手改这份 CSV。
@@ -20,13 +20,13 @@ python3 <skill-dir>/scripts/catalog.py next-id --root <root> --category <CAT>
## 完善 / 更新
1. `show --id <id>`。
2. 只改用户点名的字段(常见:`how`、`expected`、`risk`、`notes`)。
2. 只改用户点名的字段(常见:`how`、`expected`、`risk`、`automation`、`notes`)。
3. 展示 diff 或更新后的整条。确认后写回。
4. `validate`。通过后跑 `generate_cases_csv.py` 刷新 `cases.csv`。
## 退役
把 `status` 改为 `retired`,不要删文件、不要复用 id。`notes` 写原因。确认后写回,再跑 `generate_cases_csv.py`。
把 `lifecycle` 改为 `retired`,不要删文件、不要复用 id。`notes` 写原因。确认后写回,再跑 `generate_cases_csv.py`。
## 禁止