ace-test-runner-e2e 0.29.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 (76) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/e2e-runner/config.yml +70 -0
  3. data/.ace-defaults/nav/protocols/guide-sources/ace-test-runner-e2e.yml +11 -0
  4. data/.ace-defaults/nav/protocols/skill-sources/ace-test-runner-e2e.yml +19 -0
  5. data/.ace-defaults/nav/protocols/tmpl-sources/ace-test-runner-e2e.yml +12 -0
  6. data/.ace-defaults/nav/protocols/wfi-sources/ace-test-runner-e2e.yml +11 -0
  7. data/CHANGELOG.md +1166 -0
  8. data/LICENSE +21 -0
  9. data/README.md +42 -0
  10. data/Rakefile +15 -0
  11. data/exe/ace-test-e2e +15 -0
  12. data/exe/ace-test-e2e-sh +67 -0
  13. data/exe/ace-test-e2e-suite +13 -0
  14. data/handbook/guides/e2e-testing.g.md +124 -0
  15. data/handbook/guides/scenario-yml-reference.g.md +182 -0
  16. data/handbook/guides/tc-authoring.g.md +131 -0
  17. data/handbook/skills/as-e2e-create/SKILL.md +30 -0
  18. data/handbook/skills/as-e2e-fix/SKILL.md +35 -0
  19. data/handbook/skills/as-e2e-manage/SKILL.md +31 -0
  20. data/handbook/skills/as-e2e-plan-changes/SKILL.md +30 -0
  21. data/handbook/skills/as-e2e-review/SKILL.md +35 -0
  22. data/handbook/skills/as-e2e-rewrite/SKILL.md +31 -0
  23. data/handbook/skills/as-e2e-run/SKILL.md +48 -0
  24. data/handbook/skills/as-e2e-setup-sandbox/SKILL.md +34 -0
  25. data/handbook/templates/ace-taskflow-fixture.template.md +322 -0
  26. data/handbook/templates/agent-experience-report.template.md +89 -0
  27. data/handbook/templates/metadata.template.yml +49 -0
  28. data/handbook/templates/scenario.yml.template.yml +60 -0
  29. data/handbook/templates/tc-file.template.md +45 -0
  30. data/handbook/templates/test-report.template.md +94 -0
  31. data/handbook/workflow-instructions/e2e/analyze-failures.wf.md +126 -0
  32. data/handbook/workflow-instructions/e2e/create.wf.md +395 -0
  33. data/handbook/workflow-instructions/e2e/execute.wf.md +253 -0
  34. data/handbook/workflow-instructions/e2e/fix.wf.md +166 -0
  35. data/handbook/workflow-instructions/e2e/manage.wf.md +179 -0
  36. data/handbook/workflow-instructions/e2e/plan-changes.wf.md +255 -0
  37. data/handbook/workflow-instructions/e2e/review.wf.md +286 -0
  38. data/handbook/workflow-instructions/e2e/rewrite.wf.md +281 -0
  39. data/handbook/workflow-instructions/e2e/run.wf.md +355 -0
  40. data/handbook/workflow-instructions/e2e/setup-sandbox.wf.md +461 -0
  41. data/lib/ace/test/end_to_end_runner/atoms/display_helpers.rb +234 -0
  42. data/lib/ace/test/end_to_end_runner/atoms/prompt_builder.rb +199 -0
  43. data/lib/ace/test/end_to_end_runner/atoms/result_parser.rb +166 -0
  44. data/lib/ace/test/end_to_end_runner/atoms/skill_prompt_builder.rb +166 -0
  45. data/lib/ace/test/end_to_end_runner/atoms/skill_result_parser.rb +244 -0
  46. data/lib/ace/test/end_to_end_runner/atoms/suite_report_prompt_builder.rb +103 -0
  47. data/lib/ace/test/end_to_end_runner/atoms/tc_fidelity_validator.rb +39 -0
  48. data/lib/ace/test/end_to_end_runner/atoms/test_case_parser.rb +108 -0
  49. data/lib/ace/test/end_to_end_runner/cli/commands/run_suite.rb +130 -0
  50. data/lib/ace/test/end_to_end_runner/cli/commands/run_test.rb +156 -0
  51. data/lib/ace/test/end_to_end_runner/models/test_case.rb +47 -0
  52. data/lib/ace/test/end_to_end_runner/models/test_result.rb +115 -0
  53. data/lib/ace/test/end_to_end_runner/models/test_scenario.rb +90 -0
  54. data/lib/ace/test/end_to_end_runner/molecules/affected_detector.rb +92 -0
  55. data/lib/ace/test/end_to_end_runner/molecules/config_loader.rb +75 -0
  56. data/lib/ace/test/end_to_end_runner/molecules/failure_finder.rb +203 -0
  57. data/lib/ace/test/end_to_end_runner/molecules/fixture_copier.rb +35 -0
  58. data/lib/ace/test/end_to_end_runner/molecules/pipeline_executor.rb +121 -0
  59. data/lib/ace/test/end_to_end_runner/molecules/pipeline_prompt_bundler.rb +182 -0
  60. data/lib/ace/test/end_to_end_runner/molecules/pipeline_report_generator.rb +321 -0
  61. data/lib/ace/test/end_to_end_runner/molecules/pipeline_sandbox_builder.rb +131 -0
  62. data/lib/ace/test/end_to_end_runner/molecules/progress_display_manager.rb +172 -0
  63. data/lib/ace/test/end_to_end_runner/molecules/report_writer.rb +259 -0
  64. data/lib/ace/test/end_to_end_runner/molecules/scenario_loader.rb +254 -0
  65. data/lib/ace/test/end_to_end_runner/molecules/setup_executor.rb +181 -0
  66. data/lib/ace/test/end_to_end_runner/molecules/simple_display_manager.rb +72 -0
  67. data/lib/ace/test/end_to_end_runner/molecules/suite_progress_display_manager.rb +223 -0
  68. data/lib/ace/test/end_to_end_runner/molecules/suite_report_writer.rb +277 -0
  69. data/lib/ace/test/end_to_end_runner/molecules/suite_simple_display_manager.rb +116 -0
  70. data/lib/ace/test/end_to_end_runner/molecules/test_discoverer.rb +136 -0
  71. data/lib/ace/test/end_to_end_runner/molecules/test_executor.rb +332 -0
  72. data/lib/ace/test/end_to_end_runner/organisms/suite_orchestrator.rb +830 -0
  73. data/lib/ace/test/end_to_end_runner/organisms/test_orchestrator.rb +442 -0
  74. data/lib/ace/test/end_to_end_runner/version.rb +9 -0
  75. data/lib/ace/test/end_to_end_runner.rb +71 -0
  76. metadata +220 -0
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: as-e2e-manage
3
+ description: Orchestrate the 3-stage E2E test lifecycle pipeline (review → plan → rewrite)
4
+ # bundle: wfi://e2e/manage
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-bundle:*)
9
+ - Read
10
+ - Write
11
+ - Glob
12
+ - Grep
13
+ - Skill
14
+ argument-hint: "<package> [--dry-run] [--run-tests]"
15
+ last_modified: 2026-02-11
16
+ source: ace-test-runner-e2e
17
+ integration:
18
+ targets:
19
+ - claude
20
+ - codex
21
+ - gemini
22
+ - opencode
23
+ - pi
24
+ providers: {}
25
+ skill:
26
+ kind: workflow
27
+ execution:
28
+ workflow: wfi://e2e/manage
29
+ ---
30
+
31
+ Load and run `ace-bundle wfi://e2e/manage` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: as-e2e-plan-changes
3
+ description: Analyze coverage matrix and produce a concrete E2E test change plan
4
+ # bundle: wfi://e2e/plan-changes
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-bundle:*)
9
+ - Read
10
+ - Glob
11
+ - Grep
12
+ - Skill
13
+ argument-hint: "<package> [--review-report <path>] [--scope <scenario-id>]"
14
+ last_modified: 2026-02-11
15
+ source: ace-test-runner-e2e
16
+ integration:
17
+ targets:
18
+ - claude
19
+ - codex
20
+ - gemini
21
+ - opencode
22
+ - pi
23
+ providers: {}
24
+ skill:
25
+ kind: workflow
26
+ execution:
27
+ workflow: wfi://e2e/plan-changes
28
+ ---
29
+
30
+ Load and run `ace-bundle wfi://e2e/plan-changes` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: as-e2e-review
3
+ description: Deep exploration producing a coverage matrix of functionality, unit tests, and E2E tests
4
+ # bundle: wfi://e2e/review
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-bundle:*)
9
+ - Read
10
+ - Glob
11
+ - Grep
12
+ argument-hint: "<package> [--scope <scenario-id>]"
13
+ last_modified: 2026-02-11
14
+ source: ace-test-runner-e2e
15
+ integration:
16
+ targets:
17
+ - claude
18
+ - codex
19
+ - gemini
20
+ - opencode
21
+ - pi
22
+ providers: {}
23
+ assign:
24
+ source: wfi://e2e/review
25
+ steps:
26
+ - name: verify-e2e
27
+ description: Review E2E coverage for modified packages and run targeted scenarios
28
+ tags: [testing, e2e, verification]
29
+ skill:
30
+ kind: workflow
31
+ execution:
32
+ workflow: wfi://e2e/review
33
+ ---
34
+
35
+ Load and run `ace-bundle wfi://e2e/review` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: as-e2e-rewrite
3
+ description: Execute a change plan — delete, create, modify, and consolidate E2E tests
4
+ # bundle: wfi://e2e/rewrite
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-bundle:*)
9
+ - Read
10
+ - Write
11
+ - Glob
12
+ - Grep
13
+ - Skill
14
+ argument-hint: "<package> [--plan <path>] [--dry-run]"
15
+ last_modified: 2026-02-11
16
+ source: ace-test-runner-e2e
17
+ integration:
18
+ targets:
19
+ - claude
20
+ - codex
21
+ - gemini
22
+ - opencode
23
+ - pi
24
+ providers: {}
25
+ skill:
26
+ kind: workflow
27
+ execution:
28
+ workflow: wfi://e2e/rewrite
29
+ ---
30
+
31
+ Load and run `ace-bundle wfi://e2e/rewrite` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: as-e2e-run
3
+ description: Execute an E2E test scenario
4
+ # bundle: wfi://e2e/run
5
+ # agent: general-purpose
6
+ user-invocable: true
7
+ allowed-tools:
8
+ - Bash(ace-bundle:*)
9
+ - Read
10
+ - Write
11
+ - Glob
12
+ - Grep
13
+ argument-hint: "[package] [test-id] [--run-id ID] [--sandbox PATH] [--env K=V]"
14
+ last_modified: 2026-02-11
15
+ source: ace-test-runner-e2e
16
+ skill:
17
+ kind: workflow
18
+ execution:
19
+ workflow: wfi://e2e/run
20
+ ---
21
+
22
+ <!-- Route to the appropriate workflow based on arguments -->
23
+ <!-- --sandbox present → focused execution workflow (pre-populated sandbox) -->
24
+ <!-- --sandbox absent → full workflow (locate, setup, execute) -->
25
+
26
+ If `$ARGUMENTS` contains `--sandbox`:
27
+ read and run `ace-bundle wfi://e2e/execute`
28
+
29
+
30
+ Otherwise:
31
+
32
+ read and run `ace-bundle wfi://e2e/run`
33
+
34
+ ARGUMENTS: $ARGUMENTS
35
+
36
+ ## Execution Context
37
+
38
+ - `/as-e2e-run ...` is a chat slash command, not a shell command.
39
+ - Do **not** run `/ace-...` in bash (this causes `command not found` and no reports).
40
+ - If slash commands are unavailable in the current environment, report that limitation explicitly in `Issues`.
41
+
42
+ ## Subagent Return Contract
43
+
44
+ When invoked as a subagent (via a batch orchestrator such as `/as-assign-run-in-batches`), return a structured summary instead of verbose output:
45
+
46
+ Return `Test ID`, `Status`, `Passed`, `Failed`, `Total`, `Report Paths`, and `Issues`.
47
+
48
+ Do NOT include full report contents. Reports are written to disk; return only paths and summary counts for aggregation by the orchestrator.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: as-e2e-setup-sandbox
3
+ description: Standardized sandbox setup for safe E2E tests with external APIs
4
+ # bundle: wfi://e2e/setup-sandbox
5
+ # context: no-fork
6
+ # agent: general-purpose
7
+ user-invocable: true
8
+ allowed-tools:
9
+ - Bash(ace-bundle:*)
10
+ - Bash(ace-test:*)
11
+ - Bash(ace-nav:*)
12
+ - Read
13
+ - Write
14
+ - Edit
15
+ - Grep
16
+ - Glob
17
+ argument-hint: [test-id | scenario]
18
+ last_modified: 2026-02-01
19
+ source: ace-test-runner-e2e
20
+ integration:
21
+ targets:
22
+ - claude
23
+ - codex
24
+ - gemini
25
+ - opencode
26
+ - pi
27
+ providers: {}
28
+ skill:
29
+ kind: workflow
30
+ execution:
31
+ workflow: wfi://e2e/setup-sandbox
32
+ ---
33
+
34
+ Load and run `ace-bundle wfi://e2e/setup-sandbox` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
@@ -0,0 +1,322 @@
1
+ ---
2
+ doc-type: template
3
+ title: ACE Taskflow Test Fixture Template
4
+ purpose: Documentation for ace-test-runner-e2e/handbook/templates/ace-taskflow-fixture.template.md
5
+ ace-docs:
6
+ last-updated: 2026-02-25
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ # ACE Taskflow Test Fixture Template
11
+
12
+ This template provides scaffolding for E2E tests that need valid ace-taskflow structures.
13
+
14
+ ## Basic Task Fixture
15
+
16
+ Create a minimal valid taskflow structure:
17
+
18
+ ```bash
19
+ # Create release directory structure
20
+ mkdir -p "$REPO_DIR/.ace-taskflow/v.test/tasks/001-feature"
21
+
22
+ # Create a valid task file
23
+ cat > "$REPO_DIR/.ace-taskflow/v.test/tasks/001-feature/001-test-task.s.md" << 'EOF'
24
+ ---
25
+ id: v.test+task.001
26
+ status: pending
27
+ priority: medium
28
+ estimate: 1h
29
+ dependencies: []
30
+ ---
31
+
32
+ # Test Task Title
33
+
34
+ ## Objective
35
+
36
+ This is a test task for E2E testing purposes.
37
+
38
+ ## Implementation Plan
39
+
40
+ ### Execution Steps
41
+
42
+ - [ ] Step 1: First action
43
+ - [ ] Step 2: Second action
44
+
45
+ ## Acceptance Criteria
46
+
47
+ - [ ] Criterion 1
48
+ - [ ] Criterion 2
49
+ EOF
50
+ ```
51
+
52
+ ## Task with Worktree Metadata
53
+
54
+ For tests involving ace-git-worktree:
55
+
56
+ ```bash
57
+ cat > "$REPO_DIR/.ace-taskflow/v.test/tasks/001-feature/001-test-task.s.md" << 'EOF'
58
+ ---
59
+ id: v.test+task.001
60
+ status: in-progress
61
+ priority: medium
62
+ estimate: 1h
63
+ dependencies: []
64
+ worktree:
65
+ branch: 001-test-task
66
+ path: "../project-task.001"
67
+ created_at: '2026-01-15 10:00:00'
68
+ updated_at: '2026-01-15 10:00:00'
69
+ target_branch: main
70
+ ---
71
+
72
+ # Test Task with Worktree
73
+
74
+ ## Objective
75
+
76
+ Task with worktree metadata for worktree-related E2E tests.
77
+
78
+ ## Implementation Plan
79
+
80
+ ### Execution Steps
81
+
82
+ - [ ] Step 1: Work in worktree
83
+
84
+ ## Acceptance Criteria
85
+
86
+ - [ ] Worktree created
87
+ EOF
88
+ ```
89
+
90
+ ## Parent Task with Subtasks (Orchestrator)
91
+
92
+ For tests involving task hierarchies:
93
+
94
+ ```bash
95
+ # Create parent task directory
96
+ mkdir -p "$REPO_DIR/.ace-taskflow/v.test/tasks/100-parent-feature"
97
+
98
+ # Create orchestrator task
99
+ cat > "$REPO_DIR/.ace-taskflow/v.test/tasks/100-parent-feature/100-orchestrator.s.md" << 'EOF'
100
+ ---
101
+ id: v.test+task.100
102
+ status: pending
103
+ priority: high
104
+ estimate: 8h
105
+ dependencies: []
106
+ subtasks:
107
+ - 100.01
108
+ - 100.02
109
+ ---
110
+
111
+ # Parent Feature Task
112
+
113
+ ## Objective
114
+
115
+ Orchestrator task that coordinates subtasks.
116
+
117
+ ## Subtasks
118
+
119
+ - 100.01: First subtask
120
+ - 100.02: Second subtask
121
+
122
+ ## Acceptance Criteria
123
+
124
+ - [ ] All subtasks completed
125
+ EOF
126
+
127
+ # Create first subtask
128
+ cat > "$REPO_DIR/.ace-taskflow/v.test/tasks/100-parent-feature/100.01-first-subtask.s.md" << 'EOF'
129
+ ---
130
+ id: v.test+task.100.01
131
+ status: pending
132
+ priority: medium
133
+ estimate: 2h
134
+ dependencies: []
135
+ parent: 100
136
+ ---
137
+
138
+ # First Subtask
139
+
140
+ ## Objective
141
+
142
+ First part of the parent feature.
143
+
144
+ ## Implementation Plan
145
+
146
+ - [ ] Implement first component
147
+
148
+ ## Acceptance Criteria
149
+
150
+ - [ ] First component done
151
+ EOF
152
+
153
+ # Create second subtask
154
+ cat > "$REPO_DIR/.ace-taskflow/v.test/tasks/100-parent-feature/100.02-second-subtask.s.md" << 'EOF'
155
+ ---
156
+ id: v.test+task.100.02
157
+ status: pending
158
+ priority: medium
159
+ estimate: 2h
160
+ dependencies:
161
+ - 100.01
162
+ parent: 100
163
+ ---
164
+
165
+ # Second Subtask
166
+
167
+ ## Objective
168
+
169
+ Second part of the parent feature, depends on first.
170
+
171
+ ## Implementation Plan
172
+
173
+ - [ ] Implement second component
174
+
175
+ ## Acceptance Criteria
176
+
177
+ - [ ] Second component done
178
+ EOF
179
+ ```
180
+
181
+ ## Release Configuration
182
+
183
+ For tests that need a complete release setup:
184
+
185
+ ```bash
186
+ # Create release.yml
187
+ cat > "$REPO_DIR/.ace-taskflow/v.test/release.yml" << 'EOF'
188
+ id: v.test
189
+ title: Test Release
190
+ status: active
191
+ started: 2026-01-01
192
+ EOF
193
+ ```
194
+
195
+ ## Complete Test Setup Example
196
+
197
+ Combining all patterns:
198
+
199
+ ```bash
200
+ # Create isolated git repository
201
+ REPO_DIR="$TEST_DIR/test-repo"
202
+ mkdir -p "$REPO_DIR"
203
+ cd "$REPO_DIR"
204
+ git init --quiet .
205
+ git config user.email "test@example.com"
206
+ git config user.name "Test User"
207
+
208
+ # Create taskflow structure
209
+ mkdir -p .ace-taskflow/v.test/tasks/001-feature
210
+
211
+ # Create release configuration
212
+ cat > .ace-taskflow/v.test/release.yml << 'EOF'
213
+ id: v.test
214
+ title: Test Release
215
+ status: active
216
+ started: 2026-01-01
217
+ EOF
218
+
219
+ # Create task
220
+ cat > .ace-taskflow/v.test/tasks/001-feature/001-test-task.s.md << 'EOF'
221
+ ---
222
+ id: v.test+task.001
223
+ status: pending
224
+ priority: medium
225
+ estimate: 1h
226
+ dependencies: []
227
+ ---
228
+
229
+ # Test Task
230
+
231
+ ## Objective
232
+
233
+ Test task for E2E testing.
234
+
235
+ ## Implementation Plan
236
+
237
+ - [ ] Do something
238
+
239
+ ## Acceptance Criteria
240
+
241
+ - [ ] Done
242
+ EOF
243
+
244
+ # Commit the structure
245
+ git add .ace-taskflow/
246
+ git commit -m "Add taskflow structure" --quiet
247
+
248
+ # Set PROJECT_ROOT_PATH for isolated testing
249
+ export PROJECT_ROOT_PATH="$REPO_DIR"
250
+
251
+ # Now ace-taskflow commands will use this isolated structure
252
+ # ace-task show 001 # Should find the test task
253
+ ```
254
+
255
+ ## YAML Frontmatter Reference
256
+
257
+ ### Required Fields
258
+
259
+ | Field | Type | Description |
260
+ |-------|------|-------------|
261
+ | `id` | string | Task ID in format `v.{version}+task.{number}` |
262
+ | `status` | enum | One of: `pending`, `in-progress`, `done`, `blocked` |
263
+ | `priority` | enum | One of: `high`, `medium`, `low` |
264
+
265
+ ### Optional Fields
266
+
267
+ | Field | Type | Description |
268
+ |-------|------|-------------|
269
+ | `estimate` | string | Time estimate (e.g., `2h`, `1d`) |
270
+ | `dependencies` | array | Task IDs this task depends on |
271
+ | `parent` | string | Parent task number for subtasks |
272
+ | `subtasks` | array | Child task numbers for orchestrators |
273
+ | `worktree` | object | Worktree metadata if task uses worktree |
274
+
275
+ ### Status Values
276
+
277
+ - `pending` - Not started
278
+ - `in-progress` - Currently being worked on
279
+ - `done` - Completed
280
+ - `blocked` - Cannot proceed due to external blocker
281
+
282
+ ## Common Patterns
283
+
284
+ ### Testing Task Selection
285
+
286
+ ```bash
287
+ # Verify ace-taskflow can find the task
288
+ ace-task show 001
289
+ # Should output task details
290
+
291
+ # Verify task file path
292
+ ace-task show 001 --path
293
+ # Should output: .ace-taskflow/v.test/tasks/001-feature/001-test-task.s.md
294
+ ```
295
+
296
+ ### Testing Status Updates
297
+
298
+ ```bash
299
+ # Create task in pending state
300
+ # ... create task fixture ...
301
+
302
+ # Mark as in-progress
303
+ ace-task start 001
304
+ # Verify status changed
305
+
306
+ # Mark as done
307
+ ace-task done 001
308
+ # Verify status changed
309
+ ```
310
+
311
+ ### Testing Worktree Integration
312
+
313
+ ```bash
314
+ # Create task with worktree metadata
315
+ # ... create task fixture with worktree ...
316
+
317
+ # Create corresponding worktree
318
+ git worktree add "../project-task.001" -b 001-test-task
319
+
320
+ # Verify worktree detection
321
+ ace-git-worktree list
322
+ ```
@@ -0,0 +1,89 @@
1
+ ---
2
+ doc-type: template
3
+ title: "Agent Experience Report: {test-id}"
4
+ purpose: Documentation for ace-test-runner-e2e/handbook/templates/agent-experience-report.template.md
5
+ ace-docs:
6
+ last-updated: 2026-02-14
7
+ last-checked: 2026-03-21
8
+ ---
9
+
10
+ # Agent Experience Report: {test-id}
11
+
12
+ ## Summary
13
+
14
+ {Brief 2-3 sentence summary of the test execution experience. Note overall friction level: smooth, minor issues, significant friction, or blocking issues. If no friction was encountered, state "No significant friction encountered" and briefly note what worked well.}
15
+
16
+ ## Friction Points
17
+
18
+ | Severity | Category | Issue | Suggested Fix |
19
+ |----------|----------|-------|---------------|
20
+ | high/medium/low | docs/tool/cli | {Brief description} | {Actionable fix} |
21
+
22
+ ### Documentation Gaps
23
+
24
+ {List any documentation that was missing, unclear, incomplete, or outdated. Include specific files/sections where improvements would help.}
25
+
26
+ - {Documentation gap 1}
27
+ - {Documentation gap 2}
28
+
29
+ ### Tool Behavior Issues
30
+
31
+ {Describe any unexpected tool behavior, confusing error messages, or surprising results. Include the command and what was unexpected.}
32
+
33
+ - {Tool issue 1}
34
+ - {Tool issue 2}
35
+
36
+ ### API/CLI Friction
37
+
38
+ {Note any API or CLI friction: inconsistent flags, missing options, awkward workflows, or verbose output.}
39
+
40
+ - {CLI friction 1}
41
+ - {CLI friction 2}
42
+
43
+ ## Root Cause Analysis
44
+
45
+ {For any failures or significant friction, analyze WHY the issue occurred, not just WHAT happened. Consider: missing validation, unclear error messages, documentation gaps, design decisions, edge cases.}
46
+
47
+ ### {Issue 1 Title}
48
+
49
+ **What happened:** {Description}
50
+ **Why it happened:** {Root cause analysis}
51
+ **Impact:** {How it affected test execution}
52
+
53
+ ## Improvement Suggestions
54
+
55
+ {Concrete, actionable suggestions for improving the developer/agent experience. Prioritize by impact.}
56
+
57
+ ### High Priority
58
+
59
+ - [ ] {Suggestion 1}
60
+ - [ ] {Suggestion 2}
61
+
62
+ ### Medium Priority
63
+
64
+ - [ ] {Suggestion 3}
65
+
66
+ ### Low Priority
67
+
68
+ - [ ] {Suggestion 4}
69
+
70
+ ## Workarounds Used
71
+
72
+ {Document any workarounds the agent had to employ to complete the test. These indicate areas needing improvement.}
73
+
74
+ - **Issue:** {What required a workaround}
75
+ **Workaround:** {What was done instead}
76
+
77
+ ## Positive Observations
78
+
79
+ {Note what worked well, was well-documented, or provided good DX. This helps identify patterns to replicate.}
80
+
81
+ - {Positive observation 1}
82
+ - {Positive observation 2}
83
+
84
+ ## Recommendations for Test Scenario
85
+
86
+ {Suggestions for improving this specific test scenario based on execution experience.}
87
+
88
+ - {Recommendation 1}
89
+ - {Recommendation 2}
@@ -0,0 +1,49 @@
1
+ # E2E Test Run Metadata
2
+ # Generated by ace-test-runner-e2e workflow
3
+
4
+ # Run identification
5
+ run-id: "{run-id}"
6
+ test-id: "{test-id}"
7
+ package: "{package}"
8
+
9
+ # Per-TC identification (TS-format)
10
+ scenario_id: "{scenario-id}" # TS-{AREA}-{NNN} for TS-format, null for MT-format
11
+ tc_id: "{tc-id}" # TC-{NNN} for per-TC execution, null for full scenario
12
+ tc_independent: false # true if TC can run in isolation without prior state
13
+ setup_method: "agent" # "agent" (agent-driven) or "deterministic" (Ruby SetupExecutor)
14
+
15
+ # Execution details
16
+ agent: "{agent-name}"
17
+ started: "{start-timestamp}" # ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
18
+ completed: "{end-timestamp}" # ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
19
+ duration: "{duration-seconds}s"
20
+
21
+ # Test results
22
+ status: "pass|fail|partial|incomplete"
23
+ results:
24
+ passed: 0
25
+ failed: 0
26
+ total: 0
27
+
28
+ # Git context
29
+ git:
30
+ branch: "{branch-name}"
31
+ commit: "{commit-sha}"
32
+ dirty: false
33
+
34
+ # Tool versions
35
+ tools:
36
+ ruby: "{ruby-version}"
37
+ # Add other relevant tool versions
38
+ # standardrb: "{version}"
39
+ # rubocop: "{version}"
40
+
41
+ # Environment
42
+ environment:
43
+ os: "{os-name}"
44
+ arch: "{architecture}"
45
+
46
+ # Cleanup status
47
+ cleanup:
48
+ enabled: false
49
+ completed: false