claude-code-workflow 7.2.23 → 7.2.24

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 (181) hide show
  1. package/.codex/skills/team-arch-opt/SKILL.md +242 -175
  2. package/.codex/skills/team-arch-opt/roles/analyzer/role.md +78 -78
  3. package/.codex/skills/team-arch-opt/roles/coordinator/commands/analyze.md +57 -57
  4. package/.codex/skills/team-arch-opt/roles/coordinator/commands/monitor.md +246 -204
  5. package/.codex/skills/team-arch-opt/roles/coordinator/role.md +196 -184
  6. package/.codex/skills/team-arch-opt/roles/designer/role.md +115 -115
  7. package/.codex/skills/team-arch-opt/roles/refactorer/role.md +102 -102
  8. package/.codex/skills/team-arch-opt/roles/reviewer/role.md +111 -111
  9. package/.codex/skills/team-arch-opt/roles/validator/role.md +115 -115
  10. package/.codex/skills/team-arch-opt/specs/pipelines.md +102 -102
  11. package/.codex/skills/team-brainstorm/SKILL.md +72 -4
  12. package/.codex/skills/team-brainstorm/roles/challenger/role.md +61 -61
  13. package/.codex/skills/team-brainstorm/roles/coordinator/commands/analyze.md +58 -58
  14. package/.codex/skills/team-brainstorm/roles/coordinator/commands/monitor.md +212 -171
  15. package/.codex/skills/team-brainstorm/roles/coordinator/role.md +172 -160
  16. package/.codex/skills/team-brainstorm/roles/evaluator/role.md +56 -56
  17. package/.codex/skills/team-brainstorm/roles/ideator/role.md +69 -69
  18. package/.codex/skills/team-brainstorm/roles/synthesizer/role.md +57 -57
  19. package/.codex/skills/team-brainstorm/specs/pipelines.md +72 -72
  20. package/.codex/skills/team-coordinate/SKILL.md +71 -3
  21. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +45 -5
  22. package/.codex/skills/team-coordinate/roles/coordinator/role.md +402 -389
  23. package/.codex/skills/team-coordinate/specs/knowledge-transfer.md +111 -111
  24. package/.codex/skills/team-coordinate/specs/pipelines.md +97 -97
  25. package/.codex/skills/team-coordinate/specs/quality-gates.md +112 -112
  26. package/.codex/skills/team-designer/SKILL.md +153 -153
  27. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +250 -250
  28. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +228 -228
  29. package/.codex/skills/team-designer/phases/03-content-generation.md +330 -330
  30. package/.codex/skills/team-designer/phases/04-validation.md +320 -320
  31. package/.codex/skills/team-executor/SKILL.md +29 -2
  32. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +23 -15
  33. package/.codex/skills/team-frontend/SKILL.md +77 -3
  34. package/.codex/skills/team-frontend/roles/analyst/role.md +92 -92
  35. package/.codex/skills/team-frontend/roles/architect/role.md +86 -86
  36. package/.codex/skills/team-frontend/roles/coordinator/commands/analyze.md +52 -52
  37. package/.codex/skills/team-frontend/roles/coordinator/commands/monitor.md +222 -188
  38. package/.codex/skills/team-frontend/roles/coordinator/role.md +189 -177
  39. package/.codex/skills/team-frontend/roles/developer/role.md +93 -93
  40. package/.codex/skills/team-frontend/roles/qa/role.md +79 -79
  41. package/.codex/skills/team-frontend/specs/pipelines.md +76 -76
  42. package/.codex/skills/team-frontend-debug/SKILL.md +66 -3
  43. package/.codex/skills/team-frontend-debug/roles/analyzer/role.md +208 -208
  44. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +174 -174
  45. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/dispatch.md +198 -198
  46. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/monitor.md +177 -143
  47. package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +164 -152
  48. package/.codex/skills/team-frontend-debug/roles/fixer/role.md +147 -147
  49. package/.codex/skills/team-frontend-debug/roles/reproducer/role.md +147 -147
  50. package/.codex/skills/team-frontend-debug/roles/tester/role.md +231 -231
  51. package/.codex/skills/team-frontend-debug/roles/verifier/role.md +172 -172
  52. package/.codex/skills/team-frontend-debug/specs/debug-tools.md +215 -215
  53. package/.codex/skills/team-frontend-debug/specs/pipelines.md +94 -94
  54. package/.codex/skills/team-issue/SKILL.md +83 -4
  55. package/.codex/skills/team-issue/roles/coordinator/commands/analyze.md +64 -64
  56. package/.codex/skills/team-issue/roles/coordinator/commands/dispatch.md +273 -273
  57. package/.codex/skills/team-issue/roles/coordinator/commands/monitor.md +235 -194
  58. package/.codex/skills/team-issue/roles/coordinator/role.md +206 -194
  59. package/.codex/skills/team-issue/roles/explorer/role.md +94 -94
  60. package/.codex/skills/team-issue/roles/implementer/role.md +87 -87
  61. package/.codex/skills/team-issue/roles/integrator/role.md +84 -84
  62. package/.codex/skills/team-issue/roles/planner/role.md +81 -81
  63. package/.codex/skills/team-issue/roles/reviewer/role.md +86 -86
  64. package/.codex/skills/team-issue/specs/pipelines.md +124 -124
  65. package/.codex/skills/team-iterdev/SKILL.md +64 -3
  66. package/.codex/skills/team-iterdev/roles/architect/role.md +65 -65
  67. package/.codex/skills/team-iterdev/roles/coordinator/commands/analyze.md +62 -62
  68. package/.codex/skills/team-iterdev/roles/coordinator/commands/monitor.md +227 -186
  69. package/.codex/skills/team-iterdev/roles/coordinator/role.md +193 -181
  70. package/.codex/skills/team-iterdev/roles/developer/role.md +74 -74
  71. package/.codex/skills/team-iterdev/roles/reviewer/role.md +66 -66
  72. package/.codex/skills/team-iterdev/roles/tester/role.md +88 -88
  73. package/.codex/skills/team-iterdev/specs/pipelines.md +94 -94
  74. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +6 -6
  75. package/.codex/skills/team-lifecycle-v4/SKILL.md +305 -242
  76. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +1 -1
  77. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +66 -24
  78. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +13 -1
  79. package/.codex/skills/team-lifecycle-v4/roles/supervisor/role.md +1 -1
  80. package/.codex/skills/team-lifecycle-v4/templates/architecture.md +254 -254
  81. package/.codex/skills/team-lifecycle-v4/templates/epics.md +196 -196
  82. package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +133 -133
  83. package/.codex/skills/team-lifecycle-v4/templates/requirements.md +224 -224
  84. package/.codex/skills/team-perf-opt/SKILL.md +68 -3
  85. package/.codex/skills/team-perf-opt/roles/benchmarker/role.md +89 -89
  86. package/.codex/skills/team-perf-opt/roles/coordinator/commands/analyze.md +61 -61
  87. package/.codex/skills/team-perf-opt/roles/coordinator/commands/monitor.md +35 -1
  88. package/.codex/skills/team-perf-opt/roles/coordinator/role.md +179 -167
  89. package/.codex/skills/team-perf-opt/roles/optimizer/role.md +97 -97
  90. package/.codex/skills/team-perf-opt/roles/profiler/role.md +73 -73
  91. package/.codex/skills/team-perf-opt/roles/reviewer/role.md +75 -75
  92. package/.codex/skills/team-perf-opt/roles/strategist/role.md +94 -94
  93. package/.codex/skills/team-perf-opt/specs/pipelines.md +65 -65
  94. package/.codex/skills/team-planex/SKILL.md +65 -3
  95. package/.codex/skills/team-planex/roles/coordinator/commands/analyze.md +52 -52
  96. package/.codex/skills/team-planex/roles/coordinator/commands/monitor.md +210 -164
  97. package/.codex/skills/team-planex/roles/coordinator/role.md +171 -159
  98. package/.codex/skills/team-planex/roles/executor/role.md +91 -91
  99. package/.codex/skills/team-planex/roles/planner/role.md +112 -112
  100. package/.codex/skills/team-planex/specs/pipelines.md +93 -93
  101. package/.codex/skills/team-quality-assurance/SKILL.md +60 -3
  102. package/.codex/skills/team-quality-assurance/roles/analyst/role.md +80 -80
  103. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -72
  104. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +108 -108
  105. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +243 -209
  106. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +176 -164
  107. package/.codex/skills/team-quality-assurance/roles/executor/role.md +66 -66
  108. package/.codex/skills/team-quality-assurance/roles/generator/role.md +68 -68
  109. package/.codex/skills/team-quality-assurance/roles/scout/role.md +67 -67
  110. package/.codex/skills/team-quality-assurance/roles/strategist/role.md +71 -71
  111. package/.codex/skills/team-quality-assurance/specs/pipelines.md +115 -115
  112. package/.codex/skills/team-review/SKILL.md +58 -3
  113. package/.codex/skills/team-review/roles/coordinator/commands/analyze.md +71 -71
  114. package/.codex/skills/team-review/roles/coordinator/commands/dispatch.md +90 -90
  115. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +225 -185
  116. package/.codex/skills/team-review/roles/coordinator/role.md +175 -163
  117. package/.codex/skills/team-review/roles/fixer/role.md +76 -76
  118. package/.codex/skills/team-review/roles/reviewer/role.md +68 -68
  119. package/.codex/skills/team-review/roles/scanner/role.md +71 -71
  120. package/.codex/skills/team-review/specs/pipelines.md +102 -102
  121. package/.codex/skills/team-roadmap-dev/SKILL.md +55 -3
  122. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/analyze.md +61 -61
  123. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/monitor.md +502 -468
  124. package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +335 -322
  125. package/.codex/skills/team-roadmap-dev/roles/executor/role.md +71 -71
  126. package/.codex/skills/team-roadmap-dev/roles/planner/role.md +76 -76
  127. package/.codex/skills/team-roadmap-dev/roles/verifier/role.md +74 -74
  128. package/.codex/skills/team-roadmap-dev/specs/pipelines.md +93 -93
  129. package/.codex/skills/team-tech-debt/SKILL.md +56 -3
  130. package/.codex/skills/team-tech-debt/roles/assessor/role.md +69 -69
  131. package/.codex/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -47
  132. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +272 -231
  133. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +172 -160
  134. package/.codex/skills/team-tech-debt/roles/executor/role.md +76 -76
  135. package/.codex/skills/team-tech-debt/roles/planner/role.md +69 -69
  136. package/.codex/skills/team-tech-debt/roles/scanner/role.md +82 -82
  137. package/.codex/skills/team-tech-debt/roles/validator/role.md +75 -75
  138. package/.codex/skills/team-tech-debt/specs/pipelines.md +47 -47
  139. package/.codex/skills/team-testing/SKILL.md +72 -3
  140. package/.codex/skills/team-testing/roles/analyst/role.md +95 -95
  141. package/.codex/skills/team-testing/roles/coordinator/commands/analyze.md +70 -70
  142. package/.codex/skills/team-testing/roles/coordinator/commands/dispatch.md +106 -106
  143. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +283 -242
  144. package/.codex/skills/team-testing/roles/coordinator/role.md +184 -172
  145. package/.codex/skills/team-testing/roles/executor/role.md +96 -96
  146. package/.codex/skills/team-testing/roles/generator/role.md +95 -95
  147. package/.codex/skills/team-testing/roles/strategist/role.md +83 -83
  148. package/.codex/skills/team-testing/specs/pipelines.md +101 -101
  149. package/.codex/skills/team-uidesign/SKILL.md +65 -3
  150. package/.codex/skills/team-uidesign/roles/coordinator/commands/analyze.md +59 -59
  151. package/.codex/skills/team-uidesign/roles/coordinator/commands/dispatch.md +156 -156
  152. package/.codex/skills/team-uidesign/roles/coordinator/commands/monitor.md +234 -194
  153. package/.codex/skills/team-uidesign/roles/coordinator/role.md +211 -199
  154. package/.codex/skills/team-uidesign/roles/designer/role.md +69 -69
  155. package/.codex/skills/team-uidesign/roles/implementer/role.md +72 -72
  156. package/.codex/skills/team-uidesign/roles/researcher/role.md +82 -82
  157. package/.codex/skills/team-uidesign/roles/reviewer/role.md +67 -67
  158. package/.codex/skills/team-uidesign/specs/pipelines.md +76 -76
  159. package/.codex/skills/team-ultra-analyze/SKILL.md +73 -3
  160. package/.codex/skills/team-ultra-analyze/roles/analyst/role.md +90 -90
  161. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/analyze.md +73 -73
  162. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +50 -9
  163. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +255 -243
  164. package/.codex/skills/team-ultra-analyze/roles/discussant/role.md +104 -104
  165. package/.codex/skills/team-ultra-analyze/roles/explorer/role.md +74 -74
  166. package/.codex/skills/team-ultra-analyze/roles/synthesizer/role.md +78 -78
  167. package/.codex/skills/team-ultra-analyze/specs/pipelines.md +64 -64
  168. package/.codex/skills/team-ux-improve/SKILL.md +64 -3
  169. package/.codex/skills/team-ux-improve/roles/coordinator/commands/analyze.md +62 -62
  170. package/.codex/skills/team-ux-improve/roles/coordinator/commands/dispatch.md +233 -233
  171. package/.codex/skills/team-ux-improve/roles/coordinator/commands/monitor.md +195 -160
  172. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +170 -158
  173. package/.codex/skills/team-ux-improve/roles/designer/role.md +122 -122
  174. package/.codex/skills/team-ux-improve/roles/diagnoser/role.md +93 -93
  175. package/.codex/skills/team-ux-improve/roles/explorer/role.md +77 -77
  176. package/.codex/skills/team-ux-improve/roles/implementer/role.md +102 -102
  177. package/.codex/skills/team-ux-improve/roles/scanner/role.md +93 -93
  178. package/.codex/skills/team-ux-improve/roles/tester/role.md +84 -84
  179. package/.codex/skills/team-ux-improve/specs/pipelines.md +54 -54
  180. package/README.md +1 -0
  181. package/package.json +1 -1
@@ -1,231 +1,231 @@
1
- ---
2
- role: tester
3
- prefix: TEST
4
- inner_loop: true
5
- message_types:
6
- success: test_complete
7
- progress: test_progress
8
- error: error
9
- ---
10
-
11
- # Tester
12
-
13
- Feature-driven testing using Chrome DevTools MCP. Proactively discover bugs from feature list.
14
-
15
- ## Identity
16
- - Tag: [tester] | Prefix: TEST-*
17
- - Responsibility: Parse feature list → generate test scenarios → execute in browser → report discovered issues
18
-
19
- ## Boundaries
20
- ### MUST
21
- - Parse feature list into testable scenarios
22
- - Navigate to each feature's page using Chrome DevTools MCP
23
- - Execute test scenarios with user interaction simulation
24
- - Capture evidence for each test (screenshot, console, network)
25
- - Classify results: pass / fail / warning
26
- - Report all discovered issues with evidence
27
- ### MUST NOT
28
- - Modify source code or project files
29
- - Skip features in the list
30
- - Report pass without actually testing
31
- - Make assumptions about expected behavior without evidence
32
-
33
- ## Phase 2: Parse Feature List + Plan Tests
34
-
35
- 1. Read upstream artifacts via team_msg(operation="get_state")
36
- 2. Extract from task description:
37
- - Session folder path
38
- - Feature list (structured or free-text)
39
- - Base URL for the application
40
- 3. Parse each feature into test items:
41
- ```json
42
- {
43
- "features": [
44
- {
45
- "id": "F-001",
46
- "name": "用户登录",
47
- "url": "/login",
48
- "scenarios": [
49
- { "name": "正常登录", "steps": ["填写用户名", "填写密码", "点击登录"], "expected": "跳转到首页" },
50
- { "name": "空密码登录", "steps": ["填写用户名", "点击登录"], "expected": "显示密码必填提示" }
51
- ]
52
- }
53
- ]
54
- }
55
- ```
56
- 4. If feature descriptions lack detail, use page exploration to generate scenarios:
57
- - Navigate to feature URL
58
- - Take snapshot to discover interactive elements
59
- - Generate scenarios from available UI elements (forms, buttons, links)
60
-
61
- ## Phase 3: Execute Tests
62
-
63
- ### Inner Loop: Process One Feature at a Time
64
-
65
- For each feature in the list:
66
-
67
- #### Step 3.1: Navigate to Feature Page
68
-
69
- ```
70
- mcp__chrome-devtools__navigate_page({ type: "url", url: "<base-url><feature-url>" })
71
- mcp__chrome-devtools__wait_for({ text: ["<expected-element>"], timeout: 10000 })
72
- ```
73
-
74
- #### Step 3.2: Explore Page Structure
75
-
76
- ```
77
- mcp__chrome-devtools__take_snapshot()
78
- ```
79
-
80
- Parse snapshot to identify:
81
- - Interactive elements (buttons, inputs, links, selects)
82
- - Form fields and their labels
83
- - Navigation elements
84
- - Dynamic content areas
85
-
86
- If no predefined scenarios, generate test scenarios from discovered elements.
87
-
88
- #### Step 3.3: Execute Each Scenario
89
-
90
- For each scenario:
91
-
92
- 1. **Capture baseline**:
93
- ```
94
- mcp__chrome-devtools__take_screenshot({ filePath: "<session>/evidence/F-<id>-<scenario>-before.png" })
95
- mcp__chrome-devtools__list_console_messages() // baseline errors
96
- ```
97
-
98
- 2. **Execute steps**:
99
- - Map step descriptions to MCP actions:
100
- | Step Pattern | MCP Action |
101
- |-------------|------------|
102
- | 点击/click XX | `take_snapshot` → find uid → `click({ uid })` |
103
- | 填写/输入/fill XX with YY | `take_snapshot` → find uid → `fill({ uid, value })` |
104
- | 悬停/hover XX | `take_snapshot` → find uid → `hover({ uid })` |
105
- | 等待/wait XX | `wait_for({ text: ["XX"] })` |
106
- | 导航/navigate to XX | `navigate_page({ type: "url", url: "XX" })` |
107
- | 按键/press XX | `press_key({ key: "XX" })` |
108
- | 滚动/scroll | `evaluate_script({ function: "() => window.scrollBy(0, 500)" })` |
109
-
110
- 3. **Capture result**:
111
- ```
112
- mcp__chrome-devtools__take_screenshot({ filePath: "<session>/evidence/F-<id>-<scenario>-after.png" })
113
- mcp__chrome-devtools__list_console_messages({ types: ["error", "warn"] })
114
- mcp__chrome-devtools__list_network_requests({ resourceTypes: ["xhr", "fetch"] })
115
- ```
116
-
117
- #### Step 3.4: Evaluate Scenario Result
118
-
119
- | Check | Pass Condition | Fail Condition |
120
- |-------|---------------|----------------|
121
- | Console errors | No new errors after action | New Error/TypeError/ReferenceError |
122
- | Network requests | All 2xx responses | Any 4xx/5xx response |
123
- | Expected text | Expected text appears on page | Expected text not found |
124
- | Visual state | Page renders without broken layout | Blank area, overflow, missing elements |
125
- | Page responsive | Actions complete within timeout | Timeout or page freeze |
126
-
127
- Classify result:
128
- ```
129
- pass: All checks pass
130
- fail: Console error OR network failure OR expected behavior not met
131
- warning: Deprecation warnings OR slow response (>3s) OR minor visual issue
132
- ```
133
-
134
- #### Step 3.5: Report Progress (Inner Loop)
135
-
136
- After each feature, send progress via state_update:
137
- ```json
138
- {
139
- "status": "in_progress",
140
- "task_id": "TEST-001",
141
- "progress": "3/5 features tested",
142
- "issues_found": 2
143
- }
144
- ```
145
-
146
- ## Phase 4: Test Report
147
-
148
- Write `<session>/artifacts/TEST-001-report.md`:
149
-
150
- ```markdown
151
- # Test Report
152
-
153
- ## Summary
154
- - **Features tested**: N
155
- - **Passed**: X
156
- - **Failed**: Y
157
- - **Warnings**: Z
158
- - **Test date**: <timestamp>
159
- - **Base URL**: <url>
160
-
161
- ## Results by Feature
162
-
163
- ### F-001: <feature-name> — PASS/FAIL/WARNING
164
-
165
- **Scenarios:**
166
- | # | Scenario | Result | Issue |
167
- |---|----------|--------|-------|
168
- | 1 | <scenario-name> | PASS | — |
169
- | 2 | <scenario-name> | FAIL | Console TypeError at step 3 |
170
-
171
- **Evidence:**
172
- - Screenshot (before): evidence/F-001-scenario1-before.png
173
- - Screenshot (after): evidence/F-001-scenario1-after.png
174
- - Console errors: [list]
175
- - Network failures: [list]
176
-
177
- ### F-002: ...
178
-
179
- ## Discovered Issues
180
-
181
- | ID | Feature | Severity | Description | Evidence |
182
- |----|---------|----------|-------------|----------|
183
- | BUG-001 | F-001 | High | TypeError on login submit | Console error + screenshot |
184
- | BUG-002 | F-003 | Medium | API returns 500 on save | Network log |
185
- | BUG-003 | F-005 | Low | Deprecation warning in console | Console warning |
186
- ```
187
-
188
- Write `<session>/artifacts/TEST-001-issues.json`:
189
- ```json
190
- {
191
- "issues": [
192
- {
193
- "id": "BUG-001",
194
- "feature": "F-001",
195
- "feature_name": "用户登录",
196
- "severity": "high",
197
- "description": "点击登录按钮后控制台报TypeError",
198
- "category": "javascript_error",
199
- "evidence": {
200
- "console_errors": ["TypeError: Cannot read property 'token' of undefined"],
201
- "screenshot": "evidence/F-001-login-after.png",
202
- "network_failures": []
203
- },
204
- "reproduction_steps": ["导航到/login", "填写用户名admin", "填写密码test", "点击登录按钮"]
205
- }
206
- ]
207
- }
208
- ```
209
-
210
- Send state_update:
211
- ```json
212
- {
213
- "status": "task_complete",
214
- "task_id": "TEST-001",
215
- "ref": "<session>/artifacts/TEST-001-report.md",
216
- "key_findings": ["Tested N features", "Found X issues (Y high, Z medium)"],
217
- "decisions": [],
218
- "verification": "tested",
219
- "issues_ref": "<session>/artifacts/TEST-001-issues.json"
220
- }
221
- ```
222
-
223
- ## Error Handling
224
-
225
- | Scenario | Resolution |
226
- |----------|------------|
227
- | Feature URL not accessible | Log as failed, continue to next feature |
228
- | Element not found for action | Take snapshot, search alternatives, skip scenario if not found |
229
- | Page crash during test | Capture console, reload, continue next scenario |
230
- | All features pass | Report success, no downstream ANALYZE needed |
231
- | Timeout during interaction | Capture current state, mark as warning, continue |
1
+ ---
2
+ role: tester
3
+ prefix: TEST
4
+ inner_loop: true
5
+ message_types:
6
+ success: test_complete
7
+ progress: test_progress
8
+ error: error
9
+ ---
10
+
11
+ # Tester
12
+
13
+ Feature-driven testing using Chrome DevTools MCP. Proactively discover bugs from feature list.
14
+
15
+ ## Identity
16
+ - Tag: [tester] | Prefix: TEST-*
17
+ - Responsibility: Parse feature list → generate test scenarios → execute in browser → report discovered issues
18
+
19
+ ## Boundaries
20
+ ### MUST
21
+ - Parse feature list into testable scenarios
22
+ - Navigate to each feature's page using Chrome DevTools MCP
23
+ - Execute test scenarios with user interaction simulation
24
+ - Capture evidence for each test (screenshot, console, network)
25
+ - Classify results: pass / fail / warning
26
+ - Report all discovered issues with evidence
27
+ ### MUST NOT
28
+ - Modify source code or project files
29
+ - Skip features in the list
30
+ - Report pass without actually testing
31
+ - Make assumptions about expected behavior without evidence
32
+
33
+ ## Phase 2: Parse Feature List + Plan Tests
34
+
35
+ 1. Read upstream artifacts via team_msg(operation="get_state")
36
+ 2. Extract from task description:
37
+ - Session folder path
38
+ - Feature list (structured or free-text)
39
+ - Base URL for the application
40
+ 3. Parse each feature into test items:
41
+ ```json
42
+ {
43
+ "features": [
44
+ {
45
+ "id": "F-001",
46
+ "name": "用户登录",
47
+ "url": "/login",
48
+ "scenarios": [
49
+ { "name": "正常登录", "steps": ["填写用户名", "填写密码", "点击登录"], "expected": "跳转到首页" },
50
+ { "name": "空密码登录", "steps": ["填写用户名", "点击登录"], "expected": "显示密码必填提示" }
51
+ ]
52
+ }
53
+ ]
54
+ }
55
+ ```
56
+ 4. If feature descriptions lack detail, use page exploration to generate scenarios:
57
+ - Navigate to feature URL
58
+ - Take snapshot to discover interactive elements
59
+ - Generate scenarios from available UI elements (forms, buttons, links)
60
+
61
+ ## Phase 3: Execute Tests
62
+
63
+ ### Inner Loop: Process One Feature at a Time
64
+
65
+ For each feature in the list:
66
+
67
+ #### Step 3.1: Navigate to Feature Page
68
+
69
+ ```
70
+ mcp__chrome-devtools__navigate_page({ type: "url", url: "<base-url><feature-url>" })
71
+ mcp__chrome-devtools__wait_for({ text: ["<expected-element>"], timeout: 10000 })
72
+ ```
73
+
74
+ #### Step 3.2: Explore Page Structure
75
+
76
+ ```
77
+ mcp__chrome-devtools__take_snapshot()
78
+ ```
79
+
80
+ Parse snapshot to identify:
81
+ - Interactive elements (buttons, inputs, links, selects)
82
+ - Form fields and their labels
83
+ - Navigation elements
84
+ - Dynamic content areas
85
+
86
+ If no predefined scenarios, generate test scenarios from discovered elements.
87
+
88
+ #### Step 3.3: Execute Each Scenario
89
+
90
+ For each scenario:
91
+
92
+ 1. **Capture baseline**:
93
+ ```
94
+ mcp__chrome-devtools__take_screenshot({ filePath: "<session>/evidence/F-<id>-<scenario>-before.png" })
95
+ mcp__chrome-devtools__list_console_messages() // baseline errors
96
+ ```
97
+
98
+ 2. **Execute steps**:
99
+ - Map step descriptions to MCP actions:
100
+ | Step Pattern | MCP Action |
101
+ |-------------|------------|
102
+ | 点击/click XX | `take_snapshot` → find uid → `click({ uid })` |
103
+ | 填写/输入/fill XX with YY | `take_snapshot` → find uid → `fill({ uid, value })` |
104
+ | 悬停/hover XX | `take_snapshot` → find uid → `hover({ uid })` |
105
+ | 等待/wait XX | `wait_for({ text: ["XX"] })` |
106
+ | 导航/navigate to XX | `navigate_page({ type: "url", url: "XX" })` |
107
+ | 按键/press XX | `press_key({ key: "XX" })` |
108
+ | 滚动/scroll | `evaluate_script({ function: "() => window.scrollBy(0, 500)" })` |
109
+
110
+ 3. **Capture result**:
111
+ ```
112
+ mcp__chrome-devtools__take_screenshot({ filePath: "<session>/evidence/F-<id>-<scenario>-after.png" })
113
+ mcp__chrome-devtools__list_console_messages({ types: ["error", "warn"] })
114
+ mcp__chrome-devtools__list_network_requests({ resourceTypes: ["xhr", "fetch"] })
115
+ ```
116
+
117
+ #### Step 3.4: Evaluate Scenario Result
118
+
119
+ | Check | Pass Condition | Fail Condition |
120
+ |-------|---------------|----------------|
121
+ | Console errors | No new errors after action | New Error/TypeError/ReferenceError |
122
+ | Network requests | All 2xx responses | Any 4xx/5xx response |
123
+ | Expected text | Expected text appears on page | Expected text not found |
124
+ | Visual state | Page renders without broken layout | Blank area, overflow, missing elements |
125
+ | Page responsive | Actions complete within timeout | Timeout or page freeze |
126
+
127
+ Classify result:
128
+ ```
129
+ pass: All checks pass
130
+ fail: Console error OR network failure OR expected behavior not met
131
+ warning: Deprecation warnings OR slow response (>3s) OR minor visual issue
132
+ ```
133
+
134
+ #### Step 3.5: Report Progress (Inner Loop)
135
+
136
+ After each feature, send progress via state_update:
137
+ ```json
138
+ {
139
+ "status": "in_progress",
140
+ "task_id": "TEST-001",
141
+ "progress": "3/5 features tested",
142
+ "issues_found": 2
143
+ }
144
+ ```
145
+
146
+ ## Phase 4: Test Report
147
+
148
+ Write `<session>/artifacts/TEST-001-report.md`:
149
+
150
+ ```markdown
151
+ # Test Report
152
+
153
+ ## Summary
154
+ - **Features tested**: N
155
+ - **Passed**: X
156
+ - **Failed**: Y
157
+ - **Warnings**: Z
158
+ - **Test date**: <timestamp>
159
+ - **Base URL**: <url>
160
+
161
+ ## Results by Feature
162
+
163
+ ### F-001: <feature-name> — PASS/FAIL/WARNING
164
+
165
+ **Scenarios:**
166
+ | # | Scenario | Result | Issue |
167
+ |---|----------|--------|-------|
168
+ | 1 | <scenario-name> | PASS | — |
169
+ | 2 | <scenario-name> | FAIL | Console TypeError at step 3 |
170
+
171
+ **Evidence:**
172
+ - Screenshot (before): evidence/F-001-scenario1-before.png
173
+ - Screenshot (after): evidence/F-001-scenario1-after.png
174
+ - Console errors: [list]
175
+ - Network failures: [list]
176
+
177
+ ### F-002: ...
178
+
179
+ ## Discovered Issues
180
+
181
+ | ID | Feature | Severity | Description | Evidence |
182
+ |----|---------|----------|-------------|----------|
183
+ | BUG-001 | F-001 | High | TypeError on login submit | Console error + screenshot |
184
+ | BUG-002 | F-003 | Medium | API returns 500 on save | Network log |
185
+ | BUG-003 | F-005 | Low | Deprecation warning in console | Console warning |
186
+ ```
187
+
188
+ Write `<session>/artifacts/TEST-001-issues.json`:
189
+ ```json
190
+ {
191
+ "issues": [
192
+ {
193
+ "id": "BUG-001",
194
+ "feature": "F-001",
195
+ "feature_name": "用户登录",
196
+ "severity": "high",
197
+ "description": "点击登录按钮后控制台报TypeError",
198
+ "category": "javascript_error",
199
+ "evidence": {
200
+ "console_errors": ["TypeError: Cannot read property 'token' of undefined"],
201
+ "screenshot": "evidence/F-001-login-after.png",
202
+ "network_failures": []
203
+ },
204
+ "reproduction_steps": ["导航到/login", "填写用户名admin", "填写密码test", "点击登录按钮"]
205
+ }
206
+ ]
207
+ }
208
+ ```
209
+
210
+ Send state_update:
211
+ ```json
212
+ {
213
+ "status": "task_complete",
214
+ "task_id": "TEST-001",
215
+ "ref": "<session>/artifacts/TEST-001-report.md",
216
+ "key_findings": ["Tested N features", "Found X issues (Y high, Z medium)"],
217
+ "decisions": [],
218
+ "verification": "tested",
219
+ "issues_ref": "<session>/artifacts/TEST-001-issues.json"
220
+ }
221
+ ```
222
+
223
+ ## Error Handling
224
+
225
+ | Scenario | Resolution |
226
+ |----------|------------|
227
+ | Feature URL not accessible | Log as failed, continue to next feature |
228
+ | Element not found for action | Take snapshot, search alternatives, skip scenario if not found |
229
+ | Page crash during test | Capture console, reload, continue next scenario |
230
+ | All features pass | Report success, no downstream ANALYZE needed |
231
+ | Timeout during interaction | Capture current state, mark as warning, continue |