@epoint-testtech/ep-stage-skill 0.0.4-alpha.1 → 0.0.6
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.
- package/SKILL.md +27 -27
- package/codex-skill/ep-stage/glue-create-project/SKILL.md +223 -206
- package/codex-skill/ep-stage/glue-generate-testcase/SKILL.md +275 -274
- package/codex-skill/ep-stage/glue-generate-testcase/examples/observable-testcase.json +40 -40
- package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-schema.md +95 -112
- package/codex-skill/ep-stage/glue-generate-testcase/references/testcase-tpl.md +72 -72
- package/codex-skill/ep-stage/glue-run-test/SKILL.md +295 -289
- package/codex-skill/ep-stage/glue-run-test/references/ai-runtime-loop.md +30 -0
- package/codex-skill/ep-stage/glue-run-test/references/crud-pipeline.md +132 -145
- package/codex-skill/ep-stage/glue-run-test/references/gap-review-protocol.md +44 -43
- package/codex-skill/ep-stage/glue-run-test/references/harness-principles.md +46 -46
- package/codex-skill/ep-stage/glue-run-test/references/playwright-cli-odav.md +166 -0
- package/codex-skill/ep-stage/glue-run-test/scripts/extract-page-elements-eval.mjs +233 -0
- package/codex-skill/ep-stage/glue-run-test/scripts/generate-crud-spec.mjs +149 -149
- package/codex-skill/ep-stage/page-element-scan/SKILL.md +91 -0
- package/codex-skill/ep-stage/page-element-scan/evals/evals.json +37 -0
- package/codex-skill/ep-stage/page-element-scan/evals/fixtures/sample-list-page.html +85 -0
- package/codex-skill/ep-stage/page-element-scan/references/pagination-controls.md +153 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements-eval.mjs +233 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/extract-page-elements.mjs +298 -0
- package/codex-skill/ep-stage/page-element-scan/scripts/scan-page.mjs +749 -0
- package/codex-skill/ep-stage/recording-to-glue/SKILL.md +28 -28
- package/codex-skill/ep-stage/scripts/validate-skill.mjs +98 -95
- package/dist/src/cli/generate-testcase.d.ts +17 -51
- package/dist/src/cli/generate-testcase.d.ts.map +1 -1
- package/dist/src/cli/generate-testcase.js +74 -181
- package/dist/src/cli/index.d.ts +3 -2
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +51 -17
- package/dist/src/cli/run.d.ts +136 -29
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +507 -65
- package/dist/src/cli/spec.d.ts +17 -13
- package/dist/src/cli/spec.d.ts.map +1 -1
- package/dist/src/cli/spec.js +59 -33
- package/dist/src/contracts/crud-business-module.d.ts +6 -0
- package/dist/src/contracts/crud-business-module.d.ts.map +1 -1
- package/dist/src/contracts/glue-contract-v1.d.ts +98 -0
- package/dist/src/contracts/glue-contract-v1.d.ts.map +1 -0
- package/dist/src/contracts/glue-contract-v1.js +9 -0
- package/dist/src/contracts/observable-chain.d.ts +4 -0
- package/dist/src/contracts/observable-chain.d.ts.map +1 -1
- package/dist/src/extractors/code-list-json5.d.ts +192 -0
- package/dist/src/extractors/code-list-json5.d.ts.map +1 -0
- package/dist/src/extractors/code-list-json5.js +91 -0
- package/dist/src/extractors/html-page.d.ts +9 -0
- package/dist/src/extractors/html-page.d.ts.map +1 -1
- package/dist/src/extractors/html-page.js +26 -2
- package/dist/src/extractors/prd-extractor.d.ts +70 -0
- package/dist/src/extractors/prd-extractor.d.ts.map +1 -0
- package/dist/src/extractors/prd-extractor.js +248 -0
- package/dist/src/generators/agent-inferred-workflow-script.js +66 -66
- package/dist/src/generators/stage-skeleton-script.d.ts +87 -20
- package/dist/src/generators/stage-skeleton-script.d.ts.map +1 -1
- package/dist/src/generators/stage-skeleton-script.js +647 -238
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/normalizers/crud-contract.d.ts +3 -0
- package/dist/src/normalizers/crud-contract.d.ts.map +1 -1
- package/dist/src/normalizers/crud-contract.js +3 -0
- package/dist/src/runtime/ai-runtime-trace.d.ts +88 -0
- package/dist/src/runtime/ai-runtime-trace.d.ts.map +1 -0
- package/dist/src/runtime/ai-runtime-trace.js +119 -0
- package/dist/src/testcase/button-interaction-inference.d.ts +37 -0
- package/dist/src/testcase/button-interaction-inference.d.ts.map +1 -0
- package/dist/src/testcase/button-interaction-inference.js +385 -0
- package/dist/src/testcase/contract-testcase-assembler.d.ts +44 -0
- package/dist/src/testcase/contract-testcase-assembler.d.ts.map +1 -0
- package/dist/src/testcase/contract-testcase-assembler.js +806 -0
- package/dist/src/testcase/prd-button-mapper.d.ts +72 -0
- package/dist/src/testcase/prd-button-mapper.d.ts.map +1 -0
- package/dist/src/testcase/prd-button-mapper.js +148 -0
- package/dist/src/testcase/runtime-context.d.ts +9 -0
- package/dist/src/testcase/runtime-context.d.ts.map +1 -0
- package/dist/src/testcase/runtime-context.js +1 -0
- package/dist/src/testcase/test-access.d.ts +38 -0
- package/dist/src/testcase/test-access.d.ts.map +1 -0
- package/dist/src/testcase/test-access.js +106 -0
- package/dist/src/testcase/testcase-execution-fields.d.ts +10 -0
- package/dist/src/testcase/testcase-execution-fields.d.ts.map +1 -0
- package/dist/src/testcase/testcase-execution-fields.js +1 -0
- package/dist/src/testcase/testcase-generator.d.ts.map +1 -1
- package/dist/src/testcase/testcase-generator.js +6 -0
- package/dist/src/testcase/testcase-markdown.d.ts +11 -0
- package/dist/src/testcase/testcase-markdown.d.ts.map +1 -0
- package/dist/src/testcase/testcase-markdown.js +181 -0
- package/dist/src/testcase/testcase-skeleton.d.ts +4 -0
- package/dist/src/testcase/testcase-skeleton.d.ts.map +1 -1
- package/dist/src/testcase/testcase-spec-assembly.d.ts +4 -0
- package/dist/src/testcase/testcase-spec-assembly.d.ts.map +1 -1
- package/dist/src/testcase/testcase-v1-draft.d.ts +58 -0
- package/dist/src/testcase/testcase-v1-draft.d.ts.map +1 -0
- package/dist/src/testcase/testcase-v1-draft.js +13 -0
- package/dist/src/validation/contract.d.ts +14 -0
- package/dist/src/validation/contract.d.ts.map +1 -0
- package/dist/src/validation/contract.js +132 -0
- package/dist/src/validation/credentials.d.ts +7 -2
- package/dist/src/validation/credentials.d.ts.map +1 -1
- package/dist/src/validation/credentials.js +15 -4
- package/dist/src/validation/index.d.ts +1 -0
- package/dist/src/validation/index.d.ts.map +1 -1
- package/dist/src/validation/index.js +1 -0
- package/dist/src/validation/testcase.d.ts +9 -7
- package/dist/src/validation/testcase.d.ts.map +1 -1
- package/dist/src/validation/testcase.js +181 -34
- package/docs/README.md +124 -134
- package/docs/mvp-usage-guide.md +298 -298
- package/examples/schemeresource-observable-docs/schemeresource.context.md +20 -20
- package/examples/schemeresource.module-hints.json +38 -38
- package/examples/schemeresource.observable.code_list.md +37 -37
- package/examples/zwplace-observable-docs/zwplace.context.md +16 -16
- package/examples/zwplace-placecategory-validation.json +29 -29
- package/examples/zwplace.module-hints.json +69 -69
- package/examples/zwplace.observable.code_list.md +37 -37
- package/package.json +2 -2
- package/codex-skill/ep-stage/.omc/state/sessions/d636ad35-5fc9-4d5e-85b0-2bcad7d86ee5/pre-tool-advisory-throttle.json +0 -10
- package/dist/test/cli/extract-contract.test.d.ts +0 -2
- package/dist/test/cli/extract-contract.test.d.ts.map +0 -1
- package/dist/test/cli/extract-contract.test.js +0 -32
- package/dist/test/cli/generate-testcase-inference.test.d.ts +0 -2
- package/dist/test/cli/generate-testcase-inference.test.d.ts.map +0 -1
- package/dist/test/cli/generate-testcase-inference.test.js +0 -63
- package/dist/test/cli/generate-testcase-paths.test.d.ts +0 -2
- package/dist/test/cli/generate-testcase-paths.test.d.ts.map +0 -1
- package/dist/test/cli/generate-testcase-paths.test.js +0 -165
- package/dist/test/cli/generate-testcase-requirements.test.d.ts +0 -2
- package/dist/test/cli/generate-testcase-requirements.test.d.ts.map +0 -1
- package/dist/test/cli/generate-testcase-requirements.test.js +0 -229
- package/dist/test/cli/generate-testcase.test.d.ts +0 -2
- package/dist/test/cli/generate-testcase.test.d.ts.map +0 -1
- package/dist/test/cli/generate-testcase.test.js +0 -130
- package/dist/test/cli/index.test.d.ts +0 -2
- package/dist/test/cli/index.test.d.ts.map +0 -1
- package/dist/test/cli/index.test.js +0 -113
- package/dist/test/cli/probe.test.d.ts +0 -2
- package/dist/test/cli/probe.test.d.ts.map +0 -1
- package/dist/test/cli/probe.test.js +0 -31
- package/dist/test/cli/run.test.d.ts +0 -2
- package/dist/test/cli/run.test.d.ts.map +0 -1
- package/dist/test/cli/run.test.js +0 -149
- package/dist/test/cli/spec-boundary.test.d.ts +0 -2
- package/dist/test/cli/spec-boundary.test.d.ts.map +0 -1
- package/dist/test/cli/spec-boundary.test.js +0 -198
- package/dist/test/cli/spec.test.d.ts +0 -2
- package/dist/test/cli/spec.test.d.ts.map +0 -1
- package/dist/test/cli/spec.test.js +0 -196
- package/dist/test/code-list.test.d.ts +0 -2
- package/dist/test/code-list.test.d.ts.map +0 -1
- package/dist/test/code-list.test.js +0 -39
- package/dist/test/crud-contract.test.d.ts +0 -2
- package/dist/test/crud-contract.test.d.ts.map +0 -1
- package/dist/test/crud-contract.test.js +0 -799
- package/dist/test/gap-inference.test.d.ts +0 -2
- package/dist/test/gap-inference.test.d.ts.map +0 -1
- package/dist/test/gap-inference.test.js +0 -597
- package/dist/test/generalization.test.d.ts +0 -2
- package/dist/test/generalization.test.d.ts.map +0 -1
- package/dist/test/generalization.test.js +0 -73
- package/dist/test/inference/module-hints-inference.test.d.ts +0 -2
- package/dist/test/inference/module-hints-inference.test.d.ts.map +0 -1
- package/dist/test/inference/module-hints-inference.test.js +0 -25
- package/dist/test/inference/source-analysis.test.d.ts +0 -2
- package/dist/test/inference/source-analysis.test.d.ts.map +0 -1
- package/dist/test/inference/source-analysis.test.js +0 -23
- package/dist/test/material-inventory.test.d.ts +0 -2
- package/dist/test/material-inventory.test.d.ts.map +0 -1
- package/dist/test/material-inventory.test.js +0 -154
- package/dist/test/observable-chain.test.d.ts +0 -2
- package/dist/test/observable-chain.test.d.ts.map +0 -1
- package/dist/test/observable-chain.test.js +0 -123
- package/dist/test/observable-pipeline.test.d.ts +0 -2
- package/dist/test/observable-pipeline.test.d.ts.map +0 -1
- package/dist/test/observable-pipeline.test.js +0 -470
- package/dist/test/page-structure.test.d.ts +0 -2
- package/dist/test/page-structure.test.d.ts.map +0 -1
- package/dist/test/page-structure.test.js +0 -45
- package/dist/test/scenario-inference.test.d.ts +0 -2
- package/dist/test/scenario-inference.test.d.ts.map +0 -1
- package/dist/test/scenario-inference.test.js +0 -73
- package/dist/test/stage-context.test.d.ts +0 -2
- package/dist/test/stage-context.test.d.ts.map +0 -1
- package/dist/test/stage-context.test.js +0 -395
- package/dist/test/testcase-generator.test.d.ts +0 -2
- package/dist/test/testcase-generator.test.d.ts.map +0 -1
- package/dist/test/testcase-generator.test.js +0 -276
- package/dist/test/testcase-skeleton.test.d.ts +0 -2
- package/dist/test/testcase-skeleton.test.d.ts.map +0 -1
- package/dist/test/testcase-skeleton.test.js +0 -185
- package/dist/test/testcase-spec-assembly.test.d.ts +0 -2
- package/dist/test/testcase-spec-assembly.test.d.ts.map +0 -1
- package/dist/test/testcase-spec-assembly.test.js +0 -105
- package/dist/test/util/credentials.test.d.ts +0 -2
- package/dist/test/util/credentials.test.d.ts.map +0 -1
- package/dist/test/util/credentials.test.js +0 -64
- package/dist/test/util/i18n-testcase.test.d.ts +0 -2
- package/dist/test/util/i18n-testcase.test.d.ts.map +0 -1
- package/dist/test/util/i18n-testcase.test.js +0 -119
- package/dist/test/util/softlink.test.d.ts +0 -2
- package/dist/test/util/softlink.test.d.ts.map +0 -1
- package/dist/test/util/softlink.test.js +0 -82
- package/dist/test/validation/credentials.test.d.ts +0 -2
- package/dist/test/validation/credentials.test.d.ts.map +0 -1
- package/dist/test/validation/credentials.test.js +0 -72
- package/dist/test/validation/projects-index.test.d.ts +0 -2
- package/dist/test/validation/projects-index.test.d.ts.map +0 -1
- package/dist/test/validation/projects-index.test.js +0 -48
- package/dist/test/validation/testcase.test.d.ts +0 -2
- package/dist/test/validation/testcase.test.d.ts.map +0 -1
- package/dist/test/validation/testcase.test.js +0 -129
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -7
package/docs/README.md
CHANGED
|
@@ -1,134 +1,124 @@
|
|
|
1
|
-
# @epoint-testtech/ep-stage-skill
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
## 定位
|
|
6
|
-
|
|
7
|
-
`ep-stage-skill` 是 **ep-stage 生态的 AI
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
##
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
->
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
--
|
|
50
|
-
--
|
|
51
|
-
--
|
|
52
|
-
--
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
- 真实页面定位补证由 `e2e/glue-code-mvp` 的 gap-executor 试点 runner 执行。
|
|
126
|
-
|
|
127
|
-
## 生态关系
|
|
128
|
-
|
|
129
|
-
```text
|
|
130
|
-
ep-stage-skill(AI 驱动 / 解析 + 组装)
|
|
131
|
-
├── 消费 stage-core(定位器、自动填充)
|
|
132
|
-
├── 消费 stage-create glue 骨架(skeletons)
|
|
133
|
-
└── 产出测试脚本 → 落袋到 stage-create 项目
|
|
134
|
-
```
|
|
1
|
+
# @epoint-testtech/ep-stage-skill
|
|
2
|
+
|
|
3
|
+
> ep-stage 胶水编码 Skill 与 CLI — 从 `code_list.json5` 生成用例、契约、脚本任务并驱动执行闭环
|
|
4
|
+
|
|
5
|
+
## 定位
|
|
6
|
+
|
|
7
|
+
`ep-stage-skill` 是 **ep-stage 生态的 AI 驱动层**。它同时提供:
|
|
8
|
+
|
|
9
|
+
- 面向 Claude Code / Codex 的 Skill 文案与执行剧本。
|
|
10
|
+
- 面向确定性处理的 TypeScript CLI。
|
|
11
|
+
- 上游物料抽取、契约生成、用例装配、spec 组装、AI Runtime 任务准备和执行报告衔接能力。
|
|
12
|
+
|
|
13
|
+
当前正式用户链路以三个 Skill 为入口:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
/glue-create-project -> /glue-generate-testcase -> /glue-run-test
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Skill 外发形式
|
|
20
|
+
|
|
21
|
+
AI Agent 可发现的 Skill 入口通过双目录 symlink 暴露:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
.claude/skills/{glue-create-project, glue-generate-testcase, glue-run-test, recording-to-glue}
|
|
25
|
+
.agents/skills/{glue-create-project, glue-generate-testcase, glue-run-test, recording-to-glue}
|
|
26
|
+
-> packages/ep-stage-skill/codex-skill/ep-stage/<skill>/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
用户行为文案以 `packages/ep-stage-skill/codex-skill/ep-stage/*/SKILL.md` 为准。
|
|
30
|
+
|
|
31
|
+
## 当前链路
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
需求目录/_docs/code_list.json5
|
|
35
|
+
-> testcase 子命令解析物料、提取契约、生成 testcase
|
|
36
|
+
-> testcase.json5 + testcase.md + credentials.template.json5 + .ep-stage/contract.json5
|
|
37
|
+
-> spec / prepare-tasks 子命令组装 glue 骨架并生成 AI Runtime tasks
|
|
38
|
+
-> Agent 使用真实页面 O-D-A-V 产出 ai-snippets.json5
|
|
39
|
+
-> run 子命令合并 resolved snippet 并执行完整 spec
|
|
40
|
+
-> glue-report / repair-report
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## CLI 子命令
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 生成用例、契约、审阅视图和凭据模板
|
|
47
|
+
pnpm --filter @epoint-testtech/ep-stage-skill cli -- testcase \
|
|
48
|
+
--code-list <需求目录/_docs/code_list.json5> \
|
|
49
|
+
--tests-dir <glue项目>/src/tests/<需求名> \
|
|
50
|
+
--requirement-dir <需求目录/_docs> \
|
|
51
|
+
--project-dir <glue项目> \
|
|
52
|
+
--direct-url <待测列表页直达 URL>
|
|
53
|
+
|
|
54
|
+
# 基于 testcase.json5 + contract.json5 生成初始 glue spec
|
|
55
|
+
pnpm --filter @epoint-testtech/ep-stage-skill cli -- spec \
|
|
56
|
+
--testcase <glue项目>/src/tests/<需求名>/testcase.json5 \
|
|
57
|
+
--out <glue项目>/src/tests/<需求名>/crud.spec.ts
|
|
58
|
+
|
|
59
|
+
# 准备执行任务:缺 spec 时自动补组装 glue 骨架,并输出 AI Runtime tasks
|
|
60
|
+
pnpm --filter @epoint-testtech/ep-stage-skill cli -- prepare-tasks \
|
|
61
|
+
--testcase <glue项目>/src/tests/<需求名>/testcase.json5
|
|
62
|
+
|
|
63
|
+
# 合并 Agent 产出的 ai-snippets.json5 并执行完整 spec
|
|
64
|
+
pnpm --filter @epoint-testtech/ep-stage-skill cli -- run \
|
|
65
|
+
--testcase <glue项目>/src/tests/<需求名>/testcase.json5 \
|
|
66
|
+
--ai-snippets <glue项目>/src/tests/<需求名>/.ep-stage/ai-snippets.json5 \
|
|
67
|
+
--headless false
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> 正常用户不需要直接运行这些命令;Skill 会按步骤包装调用。开发调试时可用 `pnpm --filter @epoint-testtech/ep-stage-skill cli -- <subcommand>` 直接验证 CLI 行为。
|
|
71
|
+
|
|
72
|
+
## 输入与产物
|
|
73
|
+
|
|
74
|
+
### 输入
|
|
75
|
+
|
|
76
|
+
`testcase` 子命令的正式输入是需求目录下的:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
_docs/code_list.json5
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`code_list.json5` 只记录上游研发对需求和出码产物的结构化总结,不应写入测试执行结果、最终 Playwright locator、账号密码或运行态页面观察。
|
|
83
|
+
|
|
84
|
+
### 产物
|
|
85
|
+
|
|
86
|
+
| 产物 | 说明 |
|
|
87
|
+
|------|------|
|
|
88
|
+
| `testcase.json5` | 用例事实源,后续 `/glue-run-test` 的入口 |
|
|
89
|
+
| `testcase.md` | 人工审阅视图,每次重跑会按 `testcase.json5` 重新渲染 |
|
|
90
|
+
| `credentials.template.json5` | 凭据模板 |
|
|
91
|
+
| `credentials.json5` | 实际测试凭据,由人工填写或交互生成,通常不提交 |
|
|
92
|
+
| `.ep-stage/contract.json5` | 下游消费契约,记录可信槽位、证据和未解析项 |
|
|
93
|
+
| `.ep-stage/inference-trace.json` | 用例生成过程账本 |
|
|
94
|
+
| `.ep-stage/ai-runtime-trace.json5` | run 阶段任务和结果账本 |
|
|
95
|
+
| `.ep-stage/ai-snippets.json5` | Agent Runtime 产出的 resolved snippets |
|
|
96
|
+
| `.ep-stage/repair-runs/<round>/repair-report.md` | 执行失败时的修补建议 |
|
|
97
|
+
|
|
98
|
+
## 关键约束
|
|
99
|
+
|
|
100
|
+
- `code_list.json5` 是上游输入,不反灌测试契约、运行结果或账号密码。
|
|
101
|
+
- `contract.json5` 中每个非平凡字段都应有来源;无法确认的字段进入 `unresolvedSlots`。
|
|
102
|
+
- 生成策略只使用 `glue` / `ai`;阻断场景用 `coverageStatus: blocked` 表达。
|
|
103
|
+
- `glue-run-test` 不重新钻探上游物料,只消费 `testcase.json5` 和 `.ep-stage/contract.json5`。
|
|
104
|
+
- AI Runtime 只合并 `status="resolved"` 的 snippet;缺 resolved 结果时停止并写 `needs_review`,不追加占位代码。
|
|
105
|
+
- 真实系统执行必须使用有界面模式,便于人工观察运行态推理和业务副作用。
|
|
106
|
+
|
|
107
|
+
## 开发
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
pnpm build
|
|
111
|
+
pnpm test
|
|
112
|
+
pnpm typecheck
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 生态关系
|
|
116
|
+
|
|
117
|
+
```text
|
|
118
|
+
ep-stage-skill(Skill + CLI)
|
|
119
|
+
├── 消费 stage-create glue 模板项目
|
|
120
|
+
├── 消费 stage-core 基础能力
|
|
121
|
+
├── 读取需求目录 _docs/code_list.json5
|
|
122
|
+
├── 产出 testcase / contract / trace / spec / snippets
|
|
123
|
+
└── 驱动 glue-report 与 repair-report 闭环
|
|
124
|
+
```
|