@epoint-testtech/ep-stage-skill 0.0.14 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-list-generate
|
|
3
3
|
description: 使用时机:当用户(上游研发/出码方)要「生成 / 编写 / 产出 code_list.json5(出码总结、测试输入物料清单)」、交付需求给下游胶水测试流程、或显式触发 `/code-list-generate <源码根路径>` 时使用。即使用户只说「帮我把这个需求的源码整理成下游测试要的输入文件」「code_list 怎么写」,也应主动使用本 skill。本 skill 引导从 epoint 系源码(perpage/*.html + *Action.java + Entity.java)和 PRD 中提取事实,产出符合下游契约的 code_list.json5。
|
|
4
|
-
version: 2026-08-
|
|
4
|
+
version: 2026-08-18+deletable-condition
|
|
5
5
|
argument-hint: "<源码根路径>(可选;不给则打印输入引导逐项询问)"
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -121,6 +121,8 @@ node <skill目录>/scripts/validate-code-list.mjs <需求目录>/_docs/code_list
|
|
|
121
121
|
|
|
122
122
|
**`scope: ['delete']` 的纪律**:只有「记录状态/条件阻断删除」的规则(如"在用数据不可删除")才配 `scope: ['delete']` + `assertionHint`。「未勾选拦截」(如"请选择要删除的数据!")、「二次确认文案」这类**操作前置提示不标 delete scope**(可标 `scope: ['ui']` 或并入其他规则的 description)——下游把 scope 含 delete 的规则当作删除断言策略来源(装配器虽有"优先阻断语义文案"的自愈,但只是兜底,不应依赖)。若确有多条 delete scope 规则,记录级阻断规则必须排最前。
|
|
123
123
|
|
|
124
|
+
**条件性删除必须标 `deletableCondition`**:阻断不是无条件成立、而是按记录状态/条件分流的(如"草稿可删、在用不可删"),这是业务常态。这类规则除了 `scope: ['delete']` + `assertionHint`(阻断文案),还必须补 `deletableCondition`(可删条件的文字描述,如 `'记录为草稿(DRAFT)状态'`)——下游删除用例保持单条,断言据此写**双预期**(满足可删条件→删除成功查无记录;命中阻断规则→提示且记录仍存在),骨架运行时分流断言;缺了这个字段,下游按无条件阻断处理(断言只写阻断单预期),可删路径在断言层面丢失。无条件阻断的规则(如"已归档数据一律不可删")不写该字段。
|
|
125
|
+
|
|
124
126
|
## 查询字段与数据主键
|
|
125
127
|
|
|
126
128
|
- `pages[role=list].queryFields[]`:`component: 'mini-textbox'` → 输入框;`'mini-combobox'` → 下拉。带 `bind: 'dataBean.xxx'` 时下游能推出字段名。
|
|
@@ -293,6 +293,9 @@
|
|
|
293
293
|
scope: ['delete'],
|
|
294
294
|
sourceKind: 'static_scan',
|
|
295
295
|
assertionHint: '<阻断提示原文,如 在用数据不可删除!>',
|
|
296
|
+
// 条件性删除(草稿可删/在用不可删这类按状态分流的规则)必须补:
|
|
297
|
+
// deletableCondition: '记录为草稿(DRAFT)状态',
|
|
298
|
+
// 无条件阻断规则不写。缺字段下游按无条件阻断处理(断言只写阻断单预期)。
|
|
296
299
|
evidence: ['src/main/java/com/epoint/<module>/action/<XxxListAction>.java#<deleteSelect>'],
|
|
297
300
|
},
|
|
298
301
|
],
|
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
| `scope` | **关键**。作用域数组:`create`/`update`/`delete`/`ui`/子表 id 等。**含 `delete` 的规则会把下游删除用例断言改为「阻断」,下游取阻断语义最明确的一条作为策略来源(装配器优先选 assertionHint 含"不可删除"类文案的规则,兜底取第一条)**——因此只有「记录状态/条件阻断删除」的规则才标 `delete`;「未勾选拦截」「二次确认」等操作前置提示标 `ui`,不要混入 delete scope |
|
|
114
114
|
| `sourceKind` | 通常 `static_scan` |
|
|
115
115
|
| `assertionHint` | 阻断/校验提示**主文案**(如"在用数据不可删除!"),下游直接用作预期断言值。**一条规则只放一个主文案**(下游只消费单值);同规则的其余文案写进 `description`,不要塞数组 |
|
|
116
|
+
| `deletableCondition` | **可选,仅 delete scope 规则用**。条件性删除(如"草稿可删、在用不可删")时填可删条件的文字描述(如 `'记录为草稿(DRAFT)状态'`);下游删除用例保持单条、断言写双预期(条件满足→删除成功查无记录 + 条件不满足→阻断提示且记录仍存在),骨架运行时分流断言。无条件阻断规则不写;缺字段时下游按无条件阻断处理(断言只写阻断单预期) |
|
|
116
117
|
| `evidence[]` | 源码相对路径#方法锚点 |
|
|
117
118
|
|
|
118
119
|
## 留空与省略约定
|