@tea-agent/loop-agent 0.13.0-beta.0 → 0.13.0

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.
Files changed (282) hide show
  1. package/AGENTS.md +157 -155
  2. package/CHANGELOG.md +301 -322
  3. package/README.md +335 -345
  4. package/bin/agent-worker.js +22 -22
  5. package/bin/loop-agent.js +21 -21
  6. package/dist/commands/cursor-prompt.js +6 -6
  7. package/dist/commands/init.js +597 -528
  8. package/dist/commands/loop-benchmark.js +11 -11
  9. package/dist/commands/pi-reuse-benchmark.js +16 -16
  10. package/dist/executors/shell-executor.js +200 -21
  11. package/dist/infrastructure/evaluation/candidate-store.js +5 -1
  12. package/dist/sidecars/cursor-prompt/executor.js +1 -1
  13. package/dist/task/runtime.js +27 -27
  14. package/dist/worker/observe/static/api.js +46 -46
  15. package/dist/worker/observe/static/app.js +150 -150
  16. package/dist/worker/observe/static/constants.js +148 -148
  17. package/dist/worker/observe/static/copy.js +67 -67
  18. package/dist/worker/observe/static/dag-helpers.js +172 -172
  19. package/dist/worker/observe/static/dag-layout.d.ts +31 -31
  20. package/dist/worker/observe/static/dag-layout.js +83 -83
  21. package/dist/worker/observe/static/dag-model.js +72 -72
  22. package/dist/worker/observe/static/dom.js +212 -53
  23. package/dist/worker/observe/static/format-pool.js +67 -67
  24. package/dist/worker/observe/static/format.js +292 -292
  25. package/dist/worker/observe/static/index.html +308 -308
  26. package/dist/worker/observe/static/kpi.js +94 -94
  27. package/dist/worker/observe/static/relations.js +133 -133
  28. package/dist/worker/observe/static/router.js +93 -93
  29. package/dist/worker/observe/static/run-processing.js +148 -148
  30. package/dist/worker/observe/static/shell-chrome.js +68 -68
  31. package/dist/worker/observe/static/state.js +267 -253
  32. package/dist/worker/observe/static/styles.css +1902 -1902
  33. package/dist/worker/observe/static/views/batch.js +227 -227
  34. package/dist/worker/observe/static/views/dag-graph.js +172 -172
  35. package/dist/worker/observe/static/views/dag-inspector.js +627 -607
  36. package/dist/worker/observe/static/views/dag.js +371 -362
  37. package/dist/worker/observe/static/views/dashboard.js +509 -252
  38. package/dist/worker/observe/static/views/failures.js +143 -143
  39. package/dist/worker/observe/static/views/feature.js +492 -492
  40. package/dist/worker/observe/static/views/pool.js +350 -350
  41. package/dist/worker/observe/static/views/run.js +453 -453
  42. package/dist/worker/observe/static/views/session-timeline.js +219 -205
  43. package/dist/worker/observe/static/views/shell.js +7 -7
  44. package/dist/worker/observe/static/views/task.js +314 -314
  45. package/dist/worker/observe/static/views/timeline.js +163 -163
  46. package/dist/workflows/dag/backend-test-case-manifest.js +503 -0
  47. package/dist/workflows/dag/backend-test-execution-contract.js +353 -0
  48. package/dist/workflows/dag/backend-test-result-contract.js +568 -0
  49. package/dist/workflows/dag/canvas-observer.js +275 -275
  50. package/dist/workflows/dag/decision-envelope.js +57 -2
  51. package/dist/workflows/dag/frontend-implementation-contract.js +240 -0
  52. package/dist/workflows/dag/frontend-project-capability.js +309 -0
  53. package/dist/workflows/dag/frontend-repair.js +341 -0
  54. package/dist/workflows/dag/frontend-risk.js +161 -0
  55. package/dist/workflows/dag/frontend-verification-trace.js +190 -0
  56. package/dist/workflows/dag/init-hybrid.js +1020 -125
  57. package/dist/workflows/dag/repair-artifact.js +43 -3
  58. package/dist/workflows/dag/skill-instructions.js +4 -2
  59. package/dist/workflows/dag/types.js +29 -8
  60. package/docs/README.md +105 -104
  61. package/docs/agent-dag-recovery-playbook.md +195 -195
  62. package/docs/agent-dag-runner.md +67 -67
  63. package/docs/architecture/README.md +26 -26
  64. package/docs/architecture/dag-execution.md +140 -140
  65. package/docs/architecture/evolution.md +54 -54
  66. package/docs/architecture/facts-and-state.md +71 -71
  67. package/docs/architecture/runtime-boundaries.md +191 -191
  68. package/docs/architecture/system-overview.md +93 -93
  69. package/docs/architecture/worker-and-feature.md +85 -85
  70. package/docs/cursor-prompt-sidecar.md +36 -36
  71. package/docs/decisions/README.md +18 -18
  72. package/docs/design/README.md +167 -167
  73. package/docs/development-principles.md +73 -73
  74. package/docs/exec-plans/README.md +6 -6
  75. package/docs/exec-plans/active/README.md +1 -4
  76. package/docs/exec-plans/completed/README.md +106 -84
  77. package/docs/feature-workflow.md +414 -389
  78. package/docs/harness-methodology-debugging.md +153 -153
  79. package/docs/harness-methodology-tdd.md +130 -130
  80. package/docs/harness-methodology-verification.md +27 -27
  81. package/docs/init-surface.manifest.json +307 -289
  82. package/docs/loop-agent-harness.md +142 -142
  83. package/docs/production-readiness.md +96 -96
  84. package/docs/progress/README.md +76 -60
  85. package/docs/reports/README.md +150 -108
  86. package/docs/skills/README.md +7 -7
  87. package/docs/skills/vetted-skill-registry.md +29 -29
  88. package/docs/templates/adr.md +60 -60
  89. package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -94
  90. package/docs/templates/agent-dag-decision-envelope.schema.json +213 -213
  91. package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -117
  92. package/docs/templates/agent-dag-decision-gate.prompt.md +246 -246
  93. package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -98
  94. package/docs/templates/agent-dag-report.schema.json +473 -473
  95. package/docs/templates/agent-dag-review-verdict.prompt.md +68 -68
  96. package/docs/templates/agent-dag.base.json +190 -190
  97. package/docs/templates/agent-dag.final-verification.json +185 -185
  98. package/docs/templates/agent-dag.schema.json +411 -411
  99. package/docs/templates/agent-dag.supervised-implementation.json +620 -501
  100. package/docs/templates/backend-test-analysis.schema.json +44 -44
  101. package/docs/templates/backend-test-case-manifest.schema.json +190 -0
  102. package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
  103. package/docs/templates/backend-test-dag.generate-pytest.prompt.md +204 -202
  104. package/docs/templates/backend-test-dag.json +559 -311
  105. package/docs/templates/backend-test-dag.retrospect.prompt.md +139 -125
  106. package/docs/templates/backend-test-dag.review-cases.prompt.md +83 -81
  107. package/docs/templates/backend-test-execution.schema.json +133 -0
  108. package/docs/templates/backend-test-result.schema.json +99 -0
  109. package/docs/templates/branch-merge-report.md +93 -0
  110. package/docs/templates/exec-plan.md +64 -64
  111. package/docs/templates/feature-spec.md +53 -53
  112. package/docs/templates/frontend-design-contract.md +42 -42
  113. package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
  114. package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
  115. package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
  116. package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
  117. package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
  118. package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
  119. package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
  120. package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
  121. package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
  122. package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
  123. package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
  124. package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
  125. package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
  126. package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
  127. package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
  128. package/docs/templates/frontend-eval/metrics.md +138 -0
  129. package/docs/templates/frontend-eval/smoke-targets.md +53 -0
  130. package/docs/templates/frontend-implementation-contract.schema.json +27 -0
  131. package/docs/templates/frontend-task-constraints.md +35 -35
  132. package/docs/templates/frontend-task-requirement.md +70 -70
  133. package/docs/templates/frontend-test-dag.generate-cases.prompt.md +5 -5
  134. package/docs/templates/frontend-test-dag.json +23 -23
  135. package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +3 -3
  136. package/docs/templates/frontend-test-dag.retrospect.prompt.md +3 -3
  137. package/docs/templates/frontend-test-dag.review-cases.prompt.md +3 -3
  138. package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -3
  139. package/docs/templates/harness.schema.json +221 -221
  140. package/docs/templates/hybrid-dag.json +188 -188
  141. package/docs/templates/init-evolution-review.md +35 -35
  142. package/docs/templates/interactive-ui-round2-experiment.md +66 -66
  143. package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -118
  144. package/docs/templates/knowledge-sync-dag.json +178 -178
  145. package/docs/templates/knowledge-sync-draft.schema.json +71 -71
  146. package/docs/templates/product-line/AGENTS.md +8 -8
  147. package/docs/templates/product-line/README.md +9 -9
  148. package/docs/templates/product-line/acceptance.yaml +14 -14
  149. package/docs/templates/product-line/closeout.yaml +9 -9
  150. package/docs/templates/product-line/design.md +13 -13
  151. package/docs/templates/product-line/links.md +10 -10
  152. package/docs/templates/product-line/requirement.md +17 -17
  153. package/docs/templates/product-line/task-graph.yaml +15 -15
  154. package/docs/templates/product-line/task.yaml +64 -64
  155. package/docs/templates/product-line/test-plan.md +7 -7
  156. package/docs/templates/production-readiness-checklist.md +57 -57
  157. package/docs/templates/progress-log.md +17 -17
  158. package/docs/templates/project-start-checklist.md +9 -9
  159. package/docs/templates/qa-report.md +48 -48
  160. package/docs/templates/sprint-contract.md +29 -29
  161. package/docs/templates/worker-dogfood-evidence.md +80 -80
  162. package/docs/templates/worker-dogfood-setup.md +68 -68
  163. package/docs/verification-matrix.md +70 -70
  164. package/examples/decision-gate-agent-dag.json +177 -177
  165. package/examples/example-dag.json +46 -46
  166. package/examples/hybrid-loop-agent-dag.json +189 -189
  167. package/harness.json +66 -66
  168. package/package.json +52 -88
  169. package/scripts/check-product-line-docs.sh +29 -29
  170. package/scripts/check-task-pool-root.sh +32 -32
  171. package/scripts/kb-bootstrap-init-skeleton.sh +240 -240
  172. package/scripts/kb-graph-incremental-prepare.mjs +386 -386
  173. package/scripts/kb-graph-incremental-prepare.sh +5 -5
  174. package/scripts/kb-graph-materialize.mjs +105 -105
  175. package/scripts/kb-graph-materialize.sh +4 -4
  176. package/scripts/kb-graph-promote.mjs +164 -164
  177. package/scripts/kb-graph-promote.sh +4 -4
  178. package/scripts/kb-query.mjs +554 -554
  179. package/scripts/kb-query.sh +5 -5
  180. package/skills/agent-worker/SKILL.md +39 -39
  181. package/skills/agent-worker/references/agent-worker-operator.md +60 -60
  182. package/skills/ai-engineering-context/SKILL.md +48 -48
  183. package/skills/analyze-product-dependencies/SKILL.md +67 -67
  184. package/skills/analyze-product-dependencies/agents/openai.yaml +4 -4
  185. package/skills/analyze-product-dependencies/references/api-documentation-schema.md +30 -30
  186. package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +28 -28
  187. package/skills/analyze-product-dependencies/references/example.md +76 -76
  188. package/skills/analyze-product-dependencies/references/forward-test-cases.md +35 -35
  189. package/skills/analyze-product-dependencies/references/input-contract.md +11 -11
  190. package/skills/analyze-product-dependencies/references/scouting-rules.md +61 -61
  191. package/skills/analyze-product-dependencies/scripts/test-validators.mjs +267 -267
  192. package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +101 -101
  193. package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +142 -142
  194. package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +76 -76
  195. package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +146 -146
  196. package/skills/analyze-product-requirements/SKILL.md +90 -90
  197. package/skills/analyze-product-requirements/agents/openai.yaml +4 -4
  198. package/skills/analyze-product-requirements/references/acceptance-criteria.md +91 -91
  199. package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +56 -56
  200. package/skills/analyze-product-requirements/references/example.md +86 -86
  201. package/skills/analyze-product-requirements/references/forward-test-cases.md +66 -66
  202. package/skills/analyze-product-requirements/references/product-analysis-schema.md +32 -32
  203. package/skills/analyze-product-requirements/references/product-requirement-schema.md +33 -33
  204. package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +35 -35
  205. package/skills/analyze-product-requirements/scripts/test-validators.mjs +193 -193
  206. package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +69 -69
  207. package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +97 -97
  208. package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +98 -98
  209. package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +156 -156
  210. package/skills/browser-tools/SKILL.md +196 -0
  211. package/skills/browser-tools/browser-content.js +103 -0
  212. package/skills/browser-tools/browser-cookies.js +35 -0
  213. package/skills/browser-tools/browser-eval.js +53 -0
  214. package/skills/browser-tools/browser-hn-scraper.js +108 -0
  215. package/skills/browser-tools/browser-nav.js +44 -0
  216. package/skills/browser-tools/browser-pick.js +162 -0
  217. package/skills/browser-tools/browser-screenshot.js +34 -0
  218. package/skills/browser-tools/browser-start.js +86 -0
  219. package/skills/browser-tools/package-lock.json +2556 -0
  220. package/skills/browser-tools/package.json +19 -0
  221. package/skills/code-review-core/SKILL.md +20 -20
  222. package/skills/codebase-scout/SKILL.md +19 -19
  223. package/skills/frontend-design-review/SKILL.md +66 -66
  224. package/skills/frontend-design-review/references/review-checklist.md +58 -58
  225. package/skills/frontend-implementation/SKILL.md +49 -47
  226. package/skills/frontend-implementation/references/code-standards.md +32 -32
  227. package/skills/frontend-implementation/references/design-spec.md +46 -46
  228. package/skills/frontend-implementation/references/node-contracts.md +27 -76
  229. package/skills/frontend-review/SKILL.md +59 -59
  230. package/skills/frontend-review/references/review-findings.md +47 -47
  231. package/skills/frontend-verification/SKILL.md +53 -53
  232. package/skills/frontend-verification/references/verification-checklist.md +68 -68
  233. package/skills/grill-me/SKILL.md +10 -10
  234. package/skills/grill-with-docs/SKILL.md +88 -88
  235. package/skills/grill-with-docs/adr-format.md +47 -47
  236. package/skills/grill-with-docs/context-format.md +60 -60
  237. package/skills/init-capability-evolution/SKILL.md +70 -70
  238. package/skills/loop-agent/SKILL.md +151 -151
  239. package/skills/loop-agent/references/README.md +67 -67
  240. package/skills/loop-agent/references/command-reference.md +527 -505
  241. package/skills/loop-agent/references/docs-converge.md +126 -126
  242. package/skills/loop-agent/references/harness-policy.md +263 -263
  243. package/skills/loop-agent/references/hybrid-dag.md +243 -238
  244. package/skills/loop-agent/references/learned/README.md +21 -21
  245. package/skills/loop-agent/references/long-running-loop.md +57 -57
  246. package/skills/loop-agent/references/model-routing.md +36 -36
  247. package/skills/loop-agent/references/multi-worktree.md +54 -54
  248. package/skills/loop-agent/references/one-shot-runs.md +85 -85
  249. package/skills/loop-agent/references/orchestrator-and-interventions.md +169 -169
  250. package/skills/loop-agent/references/pi-prompt.md +23 -23
  251. package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -84
  252. package/skills/loop-agent/references/post-implementation-and-patterns.md +44 -44
  253. package/skills/loop-agent/references/task-workflow.md +89 -89
  254. package/skills/loop-agent/references/verification-and-failure-handling.md +141 -139
  255. package/skills/playwright-cli/SKILL.md +420 -420
  256. package/skills/playwright-cli/references/element-attributes.md +23 -23
  257. package/skills/playwright-cli/references/playwright-tests.md +39 -39
  258. package/skills/playwright-cli/references/request-mocking.md +87 -87
  259. package/skills/playwright-cli/references/running-code.md +241 -241
  260. package/skills/playwright-cli/references/session-management.md +225 -225
  261. package/skills/playwright-cli/references/storage-state.md +275 -275
  262. package/skills/playwright-cli/references/test-generation.md +433 -433
  263. package/skills/playwright-cli/references/tracing.md +139 -139
  264. package/skills/playwright-cli/references/video-recording.md +143 -143
  265. package/skills/playwright-cli-case-generator/SKILL.md +74 -74
  266. package/skills/requesting-code-review/SKILL.md +101 -101
  267. package/skills/requesting-code-review/code-reviewer.md +168 -168
  268. package/skills/systematic-debugging/CREATION-LOG.md +119 -119
  269. package/skills/systematic-debugging/SKILL.md +296 -296
  270. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  271. package/skills/systematic-debugging/condition-based-waiting.md +115 -115
  272. package/skills/systematic-debugging/defense-in-depth.md +122 -122
  273. package/skills/systematic-debugging/find-polluter.sh +63 -63
  274. package/skills/systematic-debugging/root-cause-tracing.md +169 -169
  275. package/skills/systematic-debugging/test-academic.md +14 -14
  276. package/skills/systematic-debugging/test-pressure-1.md +58 -58
  277. package/skills/systematic-debugging/test-pressure-2.md +68 -68
  278. package/skills/systematic-debugging/test-pressure-3.md +69 -69
  279. package/skills/test-driven-development/SKILL.md +20 -20
  280. package/skills/using-git-worktrees/SKILL.md +215 -215
  281. package/skills/verification-before-completion/SKILL.md +154 -154
  282. package/skills/webapp-testing/SKILL.md +19 -19
@@ -1,74 +1,74 @@
1
- ---
2
- name: playwright-cli-case-generator
3
- description: 根据 FE-test RAG 知识包生成可由 playwright-cli 串行执行的前端功能测试用例、索引和 case manifest。
4
- ---
5
-
6
- # Playwright Test Generator
7
-
8
- 仅用于 FE-test DAG 的 `generate-frontend-functional-cases-pi`。本 skill
9
- 生成中文 Markdown 测试用例和 `manifest.json`,不执行浏览器、不生成
10
- Playwright/Pytest 源码,也不修改被测应用。
11
-
12
- ## 输入与边界
13
-
14
- - 只读取 `testcase/frontend/rag/context.md`、`coverage-map.md` 与已有
15
- `testcase/frontend/cases/`。
16
- - 只写 `testcase/frontend/cases/**`;不得回读 PRD、读取 `.harness/`,或写
17
- `testcase/frontend/evidence/**`。
18
- - 所有 API、字段限制、状态流转、数据来源、SLA、URL 与账号要求必须能在
19
- RAG 知识包中追溯。缺失信息标记 `blocked` 或“需人工确认”,不得猜测。
20
-
21
- ## 输出
22
-
23
- - 写 `index.md`、`manifest.json` 与独立 case 文件
24
- `FE-<FEATURE>-<NNN>-<dimension>.md`;`dimension` 仅为 `core`、`boundary`、
25
- `flow` 或 `backend`。
26
- - `manifest.json` 使用 `schemaVersion: 1`,每项只含 `caseId`、`casePath`、
27
- `dimension`、`acIds`、`evidenceDir`。所有 ID、路径和 evidenceDir 必须唯一,
28
- 并位于 `testcase/frontend/` 内。
29
- - `index.md` 按功能点列出 case、维度、AC、数据依赖、API 映射和预期执行状态。
30
-
31
- 每个 case 必须包含:
32
-
33
- 1. 元信息:功能、CRUD 分类、维度、关联 AC、RAG 来源、API 映射状态与数据策略。
34
- 2. 前置条件:独立 `-s=<case-id>` session、登录状态、fixture/存量数据、清理责任。
35
- 3. 可独立执行的命令序列:`open --browser=chrome --headed <base-url>`、按需登录/数据准备、
36
- `snapshot` 后优先使用元素引用、操作、UI 断言、可选 API 断言、cleanup、`close`。
37
- 4. 明确的 UI/API 预期与数据清理结果;无法满足的环境或数据依赖必须写为 `blocked`。
38
-
39
- 所有 snapshot、screenshot、trace 和 video 命令必须指向执行节点提供的
40
- `testcase/frontend/evidence/<case-id>/` 工作目录。命令必须使用现有
41
- `playwright-cli` skill 已声明的接口;不要生成 `requests --clear`、
42
- `request-body` 或 `response-body`。
43
-
44
- ## 覆盖矩阵
45
-
46
- | CRUD 类型 | 必选 | 条件 |
47
- | --- | --- | --- |
48
- | C-新增 | `core`、`boundary` | 有状态流转时 `flow`;有 API 映射时 `backend` |
49
- | R-查询 | `core` | 有搜索/筛选输入时 `boundary`;有 API 映射时 `backend` |
50
- | U-修改 | `core`、`boundary` | 有状态流转时 `flow`;有 API 映射时 `backend` |
51
- | D-删除 | `core` | 有 API 映射时 `backend` |
52
-
53
- - `boundary` 只从已知必填、长度、范围、精度、枚举或字符规则推导;无约束时
54
- 不伪造边界值。
55
- - `flow` 是自包含的多步状态旅程;每个关键步骤都有 UI 与已知数据一致性断言,
56
- 不依赖其他 case 创建的数据。
57
- - `backend` 只在 API 映射存在时使用 `requests` / `request <id>`,或在精确时序
58
- 下使用 `run-code`。错误、空态或超时使用 `route`,并在 cleanup 中 `unroute`。
59
- 响应字段和性能阈值必须来自 RAG。
60
-
61
- ## 数据策略
62
-
63
- - C-新增优先使用需求中给出的测试数据;仅在已授权 API 映射存在时才描述临时构造
64
- 与清理。
65
- - R/U/D 优先使用知识包登记的 fixture 或 test-data;不足时只能使用已授权的
66
- 测试环境 API 注入并清理。
67
- - 禁止使用生产 URL、真实用户凭据或不可清理的数据写入。无法证明隔离与清理时,
68
- case 必须为 `blocked`。
69
-
70
- ## 交接
71
-
72
- 生成结束时仅返回紧凑 JSON 摘要:case 总数、各维度数量、manifest 相对路径、
73
- blocked case ID 与原因。详细内容保留在 case 文件,供后续 manifest/map 子节点
74
- 逐 case 读取,避免把完整用例塞进上游上下文。
1
+ ---
2
+ name: playwright-cli-case-generator
3
+ description: 根据 FE-test RAG 知识包生成可由 playwright-cli 串行执行的前端功能测试用例、索引和 case manifest。
4
+ ---
5
+
6
+ # Playwright Test Generator
7
+
8
+ 仅用于 FE-test DAG 的 `generate-frontend-functional-cases-pi`。本 skill
9
+ 生成中文 Markdown 测试用例和 `manifest.json`,不执行浏览器、不生成
10
+ Playwright/Pytest 源码,也不修改被测应用。
11
+
12
+ ## 输入与边界
13
+
14
+ - 只读取 `testcase/frontend/rag/context.md`、`coverage-map.md` 与已有
15
+ `testcase/frontend/cases/`。
16
+ - 只写 `testcase/frontend/cases/**`;不得回读 PRD、读取 `.harness/`,或写
17
+ `testcase/frontend/evidence/**`。
18
+ - 所有 API、字段限制、状态流转、数据来源、SLA、URL 与账号要求必须能在
19
+ RAG 知识包中追溯。缺失信息标记 `blocked` 或“需人工确认”,不得猜测。
20
+
21
+ ## 输出
22
+
23
+ - 写 `index.md`、`manifest.json` 与独立 case 文件
24
+ `FE-<FEATURE>-<NNN>-<dimension>.md`;`dimension` 仅为 `core`、`boundary`、
25
+ `flow` 或 `backend`。
26
+ - `manifest.json` 使用 `schemaVersion: 1`,每项只含 `caseId`、`casePath`、
27
+ `dimension`、`acIds`、`evidenceDir`。所有 ID、路径和 evidenceDir 必须唯一,
28
+ 并位于 `testcase/frontend/` 内。
29
+ - `index.md` 按功能点列出 case、维度、AC、数据依赖、API 映射和预期执行状态。
30
+
31
+ 每个 case 必须包含:
32
+
33
+ 1. 元信息:功能、CRUD 分类、维度、关联 AC、RAG 来源、API 映射状态与数据策略。
34
+ 2. 前置条件:独立 `-s=<case-id>` session、登录状态、fixture/存量数据、清理责任。
35
+ 3. 可独立执行的命令序列:`open --browser=chrome --headed <base-url>`、按需登录/数据准备、
36
+ `snapshot` 后优先使用元素引用、操作、UI 断言、可选 API 断言、cleanup、`close`。
37
+ 4. 明确的 UI/API 预期与数据清理结果;无法满足的环境或数据依赖必须写为 `blocked`。
38
+
39
+ 所有 snapshot、screenshot、trace 和 video 命令必须指向执行节点提供的
40
+ `testcase/frontend/evidence/<case-id>/` 工作目录。命令必须使用现有
41
+ `playwright-cli` skill 已声明的接口;不要生成 `requests --clear`、
42
+ `request-body` 或 `response-body`。
43
+
44
+ ## 覆盖矩阵
45
+
46
+ | CRUD 类型 | 必选 | 条件 |
47
+ | --- | --- | --- |
48
+ | C-新增 | `core`、`boundary` | 有状态流转时 `flow`;有 API 映射时 `backend` |
49
+ | R-查询 | `core` | 有搜索/筛选输入时 `boundary`;有 API 映射时 `backend` |
50
+ | U-修改 | `core`、`boundary` | 有状态流转时 `flow`;有 API 映射时 `backend` |
51
+ | D-删除 | `core` | 有 API 映射时 `backend` |
52
+
53
+ - `boundary` 只从已知必填、长度、范围、精度、枚举或字符规则推导;无约束时
54
+ 不伪造边界值。
55
+ - `flow` 是自包含的多步状态旅程;每个关键步骤都有 UI 与已知数据一致性断言,
56
+ 不依赖其他 case 创建的数据。
57
+ - `backend` 只在 API 映射存在时使用 `requests` / `request <id>`,或在精确时序
58
+ 下使用 `run-code`。错误、空态或超时使用 `route`,并在 cleanup 中 `unroute`。
59
+ 响应字段和性能阈值必须来自 RAG。
60
+
61
+ ## 数据策略
62
+
63
+ - C-新增优先使用需求中给出的测试数据;仅在已授权 API 映射存在时才描述临时构造
64
+ 与清理。
65
+ - R/U/D 优先使用知识包登记的 fixture 或 test-data;不足时只能使用已授权的
66
+ 测试环境 API 注入并清理。
67
+ - 禁止使用生产 URL、真实用户凭据或不可清理的数据写入。无法证明隔离与清理时,
68
+ case 必须为 `blocked`。
69
+
70
+ ## 交接
71
+
72
+ 生成结束时仅返回紧凑 JSON 摘要:case 总数、各维度数量、manifest 相对路径、
73
+ blocked case ID 与原因。详细内容保留在 case 文件,供后续 manifest/map 子节点
74
+ 逐 case 读取,避免把完整用例塞进上游上下文。
@@ -1,101 +1,101 @@
1
- ---
2
- name: requesting-code-review
3
- description: 在完成任务、实现 major features,或 merge 前验证 work 是否满足 requirements 时使用
4
- ---
5
-
6
- # Requesting Code Review
7
-
8
- Dispatch code reviewer subagent,在问题级联前捕获 issue。Reviewer 获得精确 crafted 的 evaluation context — 绝不是你的 session history。这使 reviewer 聚焦 work product,而非你的 thought process,并保留你自己的 context 以继续工作。
9
-
10
- **Core principle:** Review early, review often.
11
-
12
- ## When to Request Review
13
-
14
- **Mandatory:**
15
- - subagent-driven development 中每个 task 之后
16
- - 完成 major feature 之后
17
- - merge 到 main 之前
18
-
19
- **Optional but valuable:**
20
- - 卡住时(fresh perspective)
21
- - refactoring 前(baseline check)
22
- - 修复 complex bug 之后
23
-
24
- ## How to Request
25
-
26
- **1. Get git SHAs:**
27
- ```bash
28
- BASE_SHA=$(git rev-parse HEAD~1) # or origin/main
29
- HEAD_SHA=$(git rev-parse HEAD)
30
- ```
31
-
32
- **2. Use the code reviewer template**(本 skill 目录下的 `code-reviewer.md`):
33
-
34
- **Placeholders:**
35
- - `{DESCRIPTION}` — 简要 summary of what you built
36
- - `{PLAN_OR_REQUIREMENTS}` — 它应做什么(contract、exec plan 或 requirements)
37
- - `{BASE_SHA}` — Starting commit
38
- - `{HEAD_SHA}` — Ending commit
39
-
40
- **3. Act on feedback:**
41
- - Critical issues 立即修复
42
- - Important issues 在继续前修复
43
- - Minor issues 稍后处理
44
- - Reviewer 有误时 push back(附 reasoning)
45
-
46
- ## Example
47
-
48
- ```
49
- [Just completed Task 2: Add verification function]
50
-
51
- You: Let me request code review before proceeding.
52
-
53
- BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
54
- HEAD_SHA=$(git rev-parse HEAD)
55
-
56
- [Dispatch code reviewer subagent]
57
- DESCRIPTION: Added verifyIndex() and repairIndex() with 4 issue types
58
- PLAN_OR_REQUIREMENTS: Task 2 from docs/exec-plans/active/deployment-plan.md
59
- BASE_SHA: a7981ec
60
- HEAD_SHA: 3df7661
61
-
62
- [Subagent returns]:
63
- Strengths: Clean architecture, real tests
64
- Issues:
65
- Important: Missing progress indicators
66
- Minor: Magic number (100) for reporting interval
67
- Assessment: Ready to proceed
68
-
69
- You: [Fix progress indicators]
70
- [Continue to Task 3]
71
- ```
72
-
73
- ## Integration with Harness Workflow
74
-
75
- **每个 work chunk 之后(Plan → Contract → Implement → Verify → Handoff):**
76
- - Implement 之后、Verify 之前 review
77
- - 在问题 compound 前捕获
78
- - 进入 next task 前修复
79
-
80
- **Before merge / Handoff:**
81
- - 宣称 complete 前 review
82
- - 对照 contract acceptance criteria 验证
83
-
84
- **Ad-Hoc Development:**
85
- - merge 前 review
86
- - 卡住时 review
87
-
88
- ## Red Flags
89
-
90
- **Never:**
91
- - 因 "it's simple" 跳过 review
92
- - 忽略 Critical issues
93
- - 带着未修复的 Important issues 继续
94
- - 与 valid technical feedback 争辩
95
-
96
- **If reviewer wrong:**
97
- - 用 technical reasoning push back
98
- - 展示证明其有效的 code/tests
99
- - 请求 clarification
100
-
101
- Template 见:requesting-code-review/code-reviewer.md
1
+ ---
2
+ name: requesting-code-review
3
+ description: 在完成任务、实现 major features,或 merge 前验证 work 是否满足 requirements 时使用
4
+ ---
5
+
6
+ # Requesting Code Review
7
+
8
+ Dispatch code reviewer subagent,在问题级联前捕获 issue。Reviewer 获得精确 crafted 的 evaluation context — 绝不是你的 session history。这使 reviewer 聚焦 work product,而非你的 thought process,并保留你自己的 context 以继续工作。
9
+
10
+ **Core principle:** Review early, review often.
11
+
12
+ ## When to Request Review
13
+
14
+ **Mandatory:**
15
+ - subagent-driven development 中每个 task 之后
16
+ - 完成 major feature 之后
17
+ - merge 到 main 之前
18
+
19
+ **Optional but valuable:**
20
+ - 卡住时(fresh perspective)
21
+ - refactoring 前(baseline check)
22
+ - 修复 complex bug 之后
23
+
24
+ ## How to Request
25
+
26
+ **1. Get git SHAs:**
27
+ ```bash
28
+ BASE_SHA=$(git rev-parse HEAD~1) # or origin/main
29
+ HEAD_SHA=$(git rev-parse HEAD)
30
+ ```
31
+
32
+ **2. Use the code reviewer template**(本 skill 目录下的 `code-reviewer.md`):
33
+
34
+ **Placeholders:**
35
+ - `{DESCRIPTION}` — 简要 summary of what you built
36
+ - `{PLAN_OR_REQUIREMENTS}` — 它应做什么(contract、exec plan 或 requirements)
37
+ - `{BASE_SHA}` — Starting commit
38
+ - `{HEAD_SHA}` — Ending commit
39
+
40
+ **3. Act on feedback:**
41
+ - Critical issues 立即修复
42
+ - Important issues 在继续前修复
43
+ - Minor issues 稍后处理
44
+ - Reviewer 有误时 push back(附 reasoning)
45
+
46
+ ## Example
47
+
48
+ ```
49
+ [Just completed Task 2: Add verification function]
50
+
51
+ You: Let me request code review before proceeding.
52
+
53
+ BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
54
+ HEAD_SHA=$(git rev-parse HEAD)
55
+
56
+ [Dispatch code reviewer subagent]
57
+ DESCRIPTION: Added verifyIndex() and repairIndex() with 4 issue types
58
+ PLAN_OR_REQUIREMENTS: Task 2 from ai_workspace/loop-agent/exec-plans/active/deployment-plan.md
59
+ BASE_SHA: a7981ec
60
+ HEAD_SHA: 3df7661
61
+
62
+ [Subagent returns]:
63
+ Strengths: Clean architecture, real tests
64
+ Issues:
65
+ Important: Missing progress indicators
66
+ Minor: Magic number (100) for reporting interval
67
+ Assessment: Ready to proceed
68
+
69
+ You: [Fix progress indicators]
70
+ [Continue to Task 3]
71
+ ```
72
+
73
+ ## Integration with Harness Workflow
74
+
75
+ **每个 work chunk 之后(Plan → Contract → Implement → Verify → Handoff):**
76
+ - Implement 之后、Verify 之前 review
77
+ - 在问题 compound 前捕获
78
+ - 进入 next task 前修复
79
+
80
+ **Before merge / Handoff:**
81
+ - 宣称 complete 前 review
82
+ - 对照 contract acceptance criteria 验证
83
+
84
+ **Ad-Hoc Development:**
85
+ - merge 前 review
86
+ - 卡住时 review
87
+
88
+ ## Red Flags
89
+
90
+ **Never:**
91
+ - 因 "it's simple" 跳过 review
92
+ - 忽略 Critical issues
93
+ - 带着未修复的 Important issues 继续
94
+ - 与 valid technical feedback 争辩
95
+
96
+ **If reviewer wrong:**
97
+ - 用 technical reasoning push back
98
+ - 展示证明其有效的 code/tests
99
+ - 请求 clarification
100
+
101
+ Template 见:requesting-code-review/code-reviewer.md