ace-test 0.6.1 → 0.7.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -0
- data/README.md +12 -0
- data/handbook/agents/profile-tests.ag.md +2 -2
- data/handbook/agents/test.ag.md +4 -4
- data/handbook/guides/test-organization.g.md +21 -22
- data/handbook/guides/test-performance.g.md +1 -1
- data/handbook/guides/testable-code-patterns.g.md +1 -1
- data/handbook/guides/testing-philosophy.g.md +17 -11
- data/handbook/guides/testing.g.md +26 -37
- data/handbook/skills/as-test-verify-suite/SKILL.md +15 -3
- data/handbook/templates/test-responsibility-map.template.md +8 -9
- data/handbook/workflow-instructions/test/analyze-failures.wf.md +2 -2
- data/handbook/workflow-instructions/test/create-cases.wf.md +1 -1
- data/handbook/workflow-instructions/test/optimize.wf.md +1 -1
- data/handbook/workflow-instructions/test/plan.wf.md +1 -1
- data/lib/ace/test/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0f6c8febd7cff4963e31d233c0c200bc3616698238b5417ba8f4ae506409dba5
|
|
4
|
+
data.tar.gz: 99ff797e28b835cf3d47ff4e8c4727359c2a02419f14d7100588cc4eb54f996e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58336d9f304a219d0967bee8a57cbb748908b63a0252bc351ec3e726f4eaabc0026eed1fffdf1b1c6a932f78080bf39909379a04aea222056f80280d1bc21e7b
|
|
7
|
+
data.tar.gz: e457f888095656701f9c468e25746e40c9dddd3af35b8ca3dfaf57c3cfbaa016854c2e851b77f5f32b202bada727b1a537887fafdfe6a1daed7fbc09fa5bf2e0
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.7.2] - 2026-04-13
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **ace-test v0.7.2**: Moved package coverage to test/fast and updated the testing contract.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [0.7.1] - 2026-04-11
|
|
16
|
+
|
|
17
|
+
### Technical
|
|
18
|
+
- Added the missing `0.7.0` changelog release section so package release history aligns with the shipped version line.
|
|
19
|
+
|
|
20
|
+
## [0.7.0] - 2026-04-11
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Migrated deterministic package coverage to `test/fast/` and refreshed package docs to publish the fast-only testing contract (`ace-test ace-test` / `ace-test ace-test all`) without introducing `test/feat/` or `test/e2e`.
|
|
24
|
+
|
|
25
|
+
## [0.6.6] - 2026-04-11
|
|
26
|
+
|
|
27
|
+
### Technical
|
|
28
|
+
- Updated packaged testing agents to use `target` consistently for package-level scopes and refreshed examples around `fast` and `feat`.
|
|
29
|
+
|
|
30
|
+
## [0.6.5] - 2026-04-11
|
|
31
|
+
|
|
32
|
+
### Technical
|
|
33
|
+
- Synced the canonical `as-test-verify-suite` skill description with the new assignment verification contract so packaged step metadata matches `ace-test <package> all` plus plain `ace-test-suite`.
|
|
34
|
+
|
|
35
|
+
## [0.6.4] - 2026-04-11
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- Rewrote testing guides and responsibility-map templates to define the public ACE testing taxonomy as `fast`, `feat`, and `e2e`.
|
|
39
|
+
- Added repository-level testing-pattern guidance that explains the new directory layout and command surface.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
- Expanded `as-test-verify-suite` canonical skill metadata so public `verify-test-suite` assign-step discovery is skill-owned while keeping step-template rendering in catalog YAML.
|
|
43
|
+
|
|
44
|
+
## [0.6.2] - 2026-03-29
|
|
45
|
+
|
|
46
|
+
### Technical
|
|
47
|
+
- Normalized published gem metadata so RubyGems and Ruby Toolbox use current release information instead of the 1980 fallback date.
|
|
48
|
+
|
|
9
49
|
## [0.6.1] - 2026-03-29
|
|
10
50
|
|
|
11
51
|
### Technical
|
data/README.md
CHANGED
|
@@ -36,5 +36,17 @@
|
|
|
36
36
|
|
|
37
37
|
**Verify full-suite health** - use `/as-test-verify-suite` to confirm that the complete test suite passes after changes, coordinating with [`ace-test-runner`](../ace-test-runner) for execution.
|
|
38
38
|
|
|
39
|
+
## Testing Contract
|
|
40
|
+
|
|
41
|
+
This package is **fast-only** in the ACE testing model.
|
|
42
|
+
|
|
43
|
+
- Deterministic coverage lives under `test/fast/`.
|
|
44
|
+
- This migration does not introduce `test/feat/` or `test/e2e/` for this package.
|
|
45
|
+
|
|
46
|
+
Verification commands:
|
|
47
|
+
|
|
48
|
+
- `ace-test ace-test`
|
|
49
|
+
- `ace-test ace-test all`
|
|
50
|
+
|
|
39
51
|
---
|
|
40
52
|
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
|
|
@@ -5,7 +5,7 @@ expected_params:
|
|
|
5
5
|
required: []
|
|
6
6
|
optional:
|
|
7
7
|
- count: 'Number of slowest tests to show (default: 10)'
|
|
8
|
-
- target: 'Test target - file, directory, or
|
|
8
|
+
- target: 'Test target - file, directory, or target'
|
|
9
9
|
- threshold: 'Only show tests exceeding this time (e.g., 100ms)'
|
|
10
10
|
last_modified: '2026-01-22'
|
|
11
11
|
type: agent
|
|
@@ -28,7 +28,7 @@ Your primary role is to analyze test performance and suggest optimizations:
|
|
|
28
28
|
# Profile 10 slowest tests
|
|
29
29
|
ace-test --profile 10
|
|
30
30
|
|
|
31
|
-
# Profile slowest tests in a specific
|
|
31
|
+
# Profile slowest tests in a specific target
|
|
32
32
|
ace-test atoms --profile 20
|
|
33
33
|
|
|
34
34
|
# Profile a specific test file
|
data/handbook/agents/test.ag.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Run tests with smart defaults and helpful diagnostics
|
|
|
4
4
|
expected_params:
|
|
5
5
|
required: []
|
|
6
6
|
optional:
|
|
7
|
-
- target: 'Test target - file path, directory (atoms, molecules), or
|
|
7
|
+
- target: 'Test target - file path, directory (atoms, molecules), or target name'
|
|
8
8
|
- profile: 'Profile N slowest tests to identify performance issues'
|
|
9
9
|
- verbose: 'Show detailed test output'
|
|
10
10
|
last_modified: '2026-01-22'
|
|
@@ -42,11 +42,11 @@ ace-test-suite
|
|
|
42
42
|
# Run single test file
|
|
43
43
|
ace-test test/atoms/pattern_analyzer_test.rb
|
|
44
44
|
|
|
45
|
-
# Run test directory/
|
|
45
|
+
# Run test directory/target
|
|
46
46
|
ace-test atoms
|
|
47
47
|
ace-test molecules
|
|
48
48
|
ace-test organisms
|
|
49
|
-
ace-test
|
|
49
|
+
ace-test feat
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
### Profile Tests
|
|
@@ -54,7 +54,7 @@ ace-test integration
|
|
|
54
54
|
# Profile 10 slowest tests
|
|
55
55
|
ace-test --profile 10
|
|
56
56
|
|
|
57
|
-
# Profile slowest tests in a
|
|
57
|
+
# Profile slowest tests in a target
|
|
58
58
|
ace-test atoms --profile 10
|
|
59
59
|
```
|
|
60
60
|
|
|
@@ -9,36 +9,35 @@ ace-docs:
|
|
|
9
9
|
|
|
10
10
|
# Test Organization
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Top-Level Test Structure
|
|
13
13
|
|
|
14
|
-
All ACE gems
|
|
14
|
+
All ACE gems should converge on three top-level test directories:
|
|
15
15
|
|
|
16
16
|
```
|
|
17
17
|
test/
|
|
18
18
|
├── test_helper.rb
|
|
19
|
-
├──
|
|
20
|
-
├── atoms/
|
|
21
|
-
│ ├──
|
|
22
|
-
│ ├──
|
|
23
|
-
│
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
│ └──
|
|
27
|
-
├──
|
|
28
|
-
│
|
|
29
|
-
│
|
|
30
|
-
├──
|
|
31
|
-
|
|
32
|
-
└── integration/
|
|
33
|
-
└── cli_integration_test.rb
|
|
19
|
+
├── fast/
|
|
20
|
+
│ ├── atoms/
|
|
21
|
+
│ ├── molecules/
|
|
22
|
+
│ ├── organisms/
|
|
23
|
+
│ ├── models/
|
|
24
|
+
│ └── commands/
|
|
25
|
+
├── feat/
|
|
26
|
+
│ └── cli_contract_test.rb
|
|
27
|
+
├── e2e/
|
|
28
|
+
│ └── TS-PACKAGE-001-scenario/
|
|
29
|
+
│ └── scenario.yml
|
|
30
|
+
├── fixtures/
|
|
31
|
+
└── support/
|
|
34
32
|
```
|
|
35
33
|
|
|
36
34
|
## Key Conventions
|
|
37
35
|
|
|
38
|
-
- **
|
|
36
|
+
- **Top-level categories**: `test/fast/`, `test/feat/`, `test/e2e/`
|
|
37
|
+
- **Fast sublayers mirror ATOM**: atoms, molecules, organisms, models, commands
|
|
39
38
|
- **Suffix naming**: `pattern_analyzer_test.rb`, not `test_pattern_analyzer.rb`
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
39
|
+
- **Deterministic feature tests live in `test/feat/`**
|
|
40
|
+
- **Scenario workflows live in `test/e2e/TS-*/`**
|
|
42
41
|
|
|
43
42
|
## Benefits
|
|
44
43
|
|
|
@@ -47,7 +46,7 @@ test/
|
|
|
47
46
|
- Consistent across all ACE gems
|
|
48
47
|
- Less nesting = simpler paths
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
Use `ace-b36ts/test/` as the reference implementation for the new layout.
|
|
51
50
|
|
|
52
51
|
## Naming Conventions
|
|
53
52
|
|
|
@@ -137,4 +136,4 @@ end
|
|
|
137
136
|
## Related Guides
|
|
138
137
|
|
|
139
138
|
- [Testing Philosophy](guide://testing-philosophy) - Why this structure
|
|
140
|
-
- [Mocking Patterns](guide://mocking-patterns) - Test isolation patterns
|
|
139
|
+
- [Mocking Patterns](guide://mocking-patterns) - Test isolation patterns
|
|
@@ -242,7 +242,7 @@ end
|
|
|
242
242
|
| ace-git | `with_mock_repo_load` | Combines 6 stubs for RepoStatusLoader |
|
|
243
243
|
| ace-git | `with_mock_diff_orchestrator` | ConfigLoader + DiffGenerator + DiffFilter |
|
|
244
244
|
| ace-git-secrets | `with_rewrite_test_mocks` | gitleaks + rewriter + working directory |
|
|
245
|
-
| ace-
|
|
245
|
+
| ace-task | `with_real_test_project` | ConfigResolver + project setup |
|
|
246
246
|
| ace-docs | `with_empty_git_diff` | Simple DiffOrchestrator stub |
|
|
247
247
|
| ace-review | `stub_synthesizer_prompt_path` | ace-nav subprocess stub |
|
|
248
248
|
|
|
@@ -11,19 +11,17 @@ ace-docs:
|
|
|
11
11
|
|
|
12
12
|
## The Testing Pyramid
|
|
13
13
|
|
|
14
|
-
ACE follows a strict
|
|
14
|
+
ACE follows a strict three-level taxonomy with clear IO boundaries:
|
|
15
15
|
|
|
16
16
|
| Layer | Location | IO Policy | Purpose |
|
|
17
17
|
|-------|----------|-----------|---------|
|
|
18
|
-
| **
|
|
19
|
-
| **
|
|
20
|
-
| **
|
|
21
|
-
| **Integration** | `test/integration/` | **Mocked IO** | Test CLI/API surface with stubbed externals |
|
|
22
|
-
| **E2E** | `test/e2e/TS-*/scenario.yml` | **Real IO** | Validate the real system works |
|
|
18
|
+
| **Fast** | `test/fast/` | **No real IO** | Default fast loop for isolated package behavior |
|
|
19
|
+
| **Feat** | `test/feat/` | **Controlled local IO** | Deterministic feature and CLI contract coverage |
|
|
20
|
+
| **E2E** | `test/e2e/TS-*/scenario.yml` | **Real workflow IO** | Validate real user workflows in sandbox |
|
|
23
21
|
|
|
24
22
|
## IO Isolation Principle
|
|
25
23
|
|
|
26
|
-
**Default: No IO in
|
|
24
|
+
**Default: No real IO in fast tests.** This means:
|
|
27
25
|
|
|
28
26
|
- **No file system**: Use `MockGitRepo` or inline strings, not `File.read`
|
|
29
27
|
- **No network**: Use `WebMock` stubs, not real HTTP calls
|
|
@@ -36,9 +34,16 @@ ACE follows a strict testing pyramid with clear IO boundaries:
|
|
|
36
34
|
- Tests are deterministic (no flaky failures)
|
|
37
35
|
- CI doesn't need special setup
|
|
38
36
|
|
|
39
|
-
## When
|
|
37
|
+
## When Local IO is Allowed
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
Controlled local IO belongs in **feat** tests (`test/feat/`):
|
|
40
|
+
|
|
41
|
+
- local subprocesses
|
|
42
|
+
- tempdirs and filesystem setup
|
|
43
|
+
- config cascade and CLI contract checks
|
|
44
|
+
- deterministic package-level feature validation
|
|
45
|
+
|
|
46
|
+
Real workflow IO belongs in **E2E** (`test/e2e/TS-*/`):
|
|
42
47
|
|
|
43
48
|
- Executed by an agent, not the test runner
|
|
44
49
|
- Verify the full system works end-to-end
|
|
@@ -59,7 +64,8 @@ Writing tests first drives design and ensures testability. Follow the Red-Green-
|
|
|
59
64
|
|
|
60
65
|
### 2. Isolation
|
|
61
66
|
|
|
62
|
-
-
|
|
67
|
+
- Fast tests should stub boundaries and stay in-process
|
|
68
|
+
- Feat tests may cross controlled local boundaries, but should not depend on live external services
|
|
63
69
|
- Ensure tests clean up after themselves (reset state, delete created files/records)
|
|
64
70
|
- Tests must be independent and runnable in any order
|
|
65
71
|
|
|
@@ -79,4 +85,4 @@ Writing tests first drives design and ensures testability. Follow the Red-Green-
|
|
|
79
85
|
|
|
80
86
|
- [Test Organization](guide://test-organization) - Directory structure and naming
|
|
81
87
|
- [Mocking Patterns](guide://mocking-patterns) - How to isolate tests
|
|
82
|
-
- [Testing TDD Cycle](guide://testing-tdd-cycle) - Implementing the task cycle
|
|
88
|
+
- [Testing TDD Cycle](guide://testing-tdd-cycle) - Implementing the task cycle
|
|
@@ -19,44 +19,32 @@ conventions should be documented in `dev-taskflow/testing-guide.md` (if it exist
|
|
|
19
19
|
|
|
20
20
|
## 1. Testing Strategy
|
|
21
21
|
|
|
22
|
-
1. **
|
|
23
|
-
* **
|
|
24
|
-
|
|
25
|
-
* **
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* **End-to-End (E2E) / System Tests:** Test complete user flows or system functionalities, often
|
|
29
|
-
interacting with real external dependencies or a fully deployed environment. These are typically
|
|
30
|
-
slower and less frequent.
|
|
31
|
-
* **Performance Tests:** Measure response time, throughput, resource usage under specific conditions
|
|
32
|
-
or load.
|
|
33
|
-
* **Security Tests:** Identify vulnerabilities (e.g., penetration testing, dependency scanning).
|
|
34
|
-
|
|
35
|
-
2. **Directory Structure:** Organize tests logically, typically mirroring the source code structure.
|
|
36
|
-
*(Example structure - adjust based on project)*
|
|
22
|
+
1. **Public test categories:** ACE standardizes on three public categories:
|
|
23
|
+
* **Fast:** isolated package tests under `test/fast/`; no real subprocess, network, or session IO.
|
|
24
|
+
* **Feat:** deterministic feature tests under `test/feat/`; controlled local IO is allowed.
|
|
25
|
+
* **E2E:** agent-driven workflows under `test/e2e/`; real sandboxed workflow validation.
|
|
26
|
+
|
|
27
|
+
2. **Directory Structure:** Organize tests around those three top-level folders.
|
|
37
28
|
|
|
38
29
|
```text
|
|
39
30
|
project-root/
|
|
40
|
-
└──
|
|
41
|
-
├──
|
|
42
|
-
│
|
|
43
|
-
│
|
|
44
|
-
├──
|
|
45
|
-
│ └──
|
|
31
|
+
└── test/
|
|
32
|
+
├── fast/
|
|
33
|
+
│ ├── atoms/
|
|
34
|
+
│ ├── molecules/
|
|
35
|
+
│ ├── organisms/
|
|
36
|
+
│ └── models/
|
|
37
|
+
├── feat/
|
|
38
|
+
│ └── cli_contract_test.rb
|
|
46
39
|
├── e2e/
|
|
47
|
-
│ └──
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
├──
|
|
51
|
-
|
|
52
|
-
│ └── helpers.ext
|
|
53
|
-
└── test_helper.ext # Or 'spec_helper.ext' - Test configuration
|
|
40
|
+
│ └── TS-PACKAGE-001-scenario/
|
|
41
|
+
│ └── scenario.yml
|
|
42
|
+
├── fixtures/
|
|
43
|
+
├── support/
|
|
44
|
+
└── test_helper.rb
|
|
54
45
|
```
|
|
55
46
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
3. **Test Pyramid:** Aim for a healthy test pyramid: many fast unit tests at the base, fewer integration
|
|
59
|
-
tests, and even fewer slow E2E tests at the top.
|
|
47
|
+
3. **Test Pyramid:** Aim for many `fast` tests, fewer `feat` tests, and the smallest number of `e2e` scenarios.
|
|
60
48
|
|
|
61
49
|
## 2. Writing Good Tests
|
|
62
50
|
|
|
@@ -76,7 +64,7 @@ easier to guide the AI effectively.
|
|
|
76
64
|
* **Stateless Components:** Where possible, favor stateless components or functions, as state
|
|
77
65
|
management adds complexity to testing.
|
|
78
66
|
|
|
79
|
-
Following these principles makes it easier to write focused
|
|
67
|
+
Following these principles makes it easier to write focused fast tests and provide clearer instructions
|
|
80
68
|
to an AI agent when generating or modifying code.
|
|
81
69
|
|
|
82
70
|
1. **Clarity:**
|
|
@@ -85,7 +73,8 @@ to an AI agent when generating or modifying code.
|
|
|
85
73
|
* Keep tests focused on a single behavior or requirement.
|
|
86
74
|
|
|
87
75
|
2. **Isolation:**
|
|
88
|
-
*
|
|
76
|
+
* Fast tests should mock or fake dependencies and stay in-process.
|
|
77
|
+
* Feat tests may use controlled local IO when that is the behavior under test.
|
|
89
78
|
* Ensure tests clean up after themselves (reset state, delete created files/records) to avoid
|
|
90
79
|
interference. Use `before`/`after` hooks carefully.
|
|
91
80
|
|
|
@@ -145,9 +134,9 @@ to an AI agent when generating or modifying code.
|
|
|
145
134
|
## 8. Test Performance Optimization
|
|
146
135
|
|
|
147
136
|
For detailed patterns on test performance optimization including:
|
|
148
|
-
- Performance targets by test layer (
|
|
137
|
+
- Performance targets by test layer (Fast <10ms for atoms, Feat <500ms when practical, E2E slower by design)
|
|
149
138
|
- Composite test helpers (reduce deep nesting)
|
|
150
|
-
- E2E to
|
|
139
|
+
- E2E to feat migration when deterministic coverage is possible
|
|
151
140
|
- Subprocess stubbing patterns (Open3, DiffOrchestrator)
|
|
152
141
|
- Sleep stubbing for retry tests
|
|
153
142
|
- Zombie mocks detection and prevention
|
|
@@ -167,4 +156,4 @@ See: [Test Performance Guide](guide://test-performance)
|
|
|
167
156
|
|
|
168
157
|
* [Troubleshooting Workflow](guide://debug-troubleshooting.g)
|
|
169
158
|
* Relevant Workflow Instructions: [`work-on-task.wf.md`](wfi://task/work) (includes testing
|
|
170
|
-
guidance), [`analyze-failures.wf.md`](wfi://test/analyze-failures) (for classifying failing tests before changes), [`fix-tests.wf.md`](wfi://test/fix) (for applying fixes using analysis output)
|
|
159
|
+
guidance), [`analyze-failures.wf.md`](wfi://test/analyze-failures) (for classifying failing tests before changes), [`fix-tests.wf.md`](wfi://test/fix) (for applying fixes using analysis output)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: as-test-verify-suite
|
|
3
|
-
description:
|
|
3
|
+
description: Run modified-package deterministic verification plus the default fast monorepo suite
|
|
4
4
|
# bundle: wfi://test/verify-suite
|
|
5
5
|
# agent: general-purpose
|
|
6
6
|
user-invocable: true
|
|
@@ -24,10 +24,9 @@ integration:
|
|
|
24
24
|
- opencode
|
|
25
25
|
- pi
|
|
26
26
|
assign:
|
|
27
|
-
source: wfi://test/verify-suite
|
|
28
27
|
steps:
|
|
29
28
|
- name: verify-test-suite
|
|
30
|
-
description: Run package
|
|
29
|
+
description: Run modified-package deterministic verification plus the default fast monorepo suite
|
|
31
30
|
intent:
|
|
32
31
|
phrases:
|
|
33
32
|
- "run tests"
|
|
@@ -35,6 +34,19 @@ assign:
|
|
|
35
34
|
- "verify tests"
|
|
36
35
|
- "test changes"
|
|
37
36
|
- "check tests"
|
|
37
|
+
prerequisites:
|
|
38
|
+
- name: work-on-task
|
|
39
|
+
strength: recommended
|
|
40
|
+
reason: "Should have code changes to verify"
|
|
41
|
+
produces: [test-results]
|
|
42
|
+
consumes: [code-changes]
|
|
43
|
+
context:
|
|
44
|
+
default: null
|
|
45
|
+
reason: "Test execution needs access to project environment"
|
|
46
|
+
when_to_skip:
|
|
47
|
+
- "No code changes that could affect tests (documentation-only)"
|
|
48
|
+
- "Tests were already run and profiled in a previous step"
|
|
49
|
+
effort: light
|
|
38
50
|
tags: [testing, verification, performance]
|
|
39
51
|
skill:
|
|
40
52
|
kind: workflow
|
|
@@ -18,21 +18,20 @@ ace-docs:
|
|
|
18
18
|
|
|
19
19
|
- Total behaviors: {{count}}
|
|
20
20
|
- High risk: {{high_risk_count}}
|
|
21
|
-
-
|
|
22
|
-
-
|
|
21
|
+
- Fast tests planned: {{fast_count}}
|
|
22
|
+
- Feat tests planned: {{feat_count}}
|
|
23
23
|
- E2E tests planned: {{e2e_count}}
|
|
24
24
|
|
|
25
25
|
## Behaviors and Coverage
|
|
26
26
|
|
|
27
27
|
| Behavior | Risk | Layer | Test File / ID | Source of Truth | Notes |
|
|
28
28
|
|----------|------|-------|----------------|-----------------|-------|
|
|
29
|
-
| {{behavior}} | High/Med/Low |
|
|
29
|
+
| {{behavior}} | High/Med/Low | Fast/Feat/E2E | {{test_file}} | {{source}} | {{notes}} |
|
|
30
30
|
|
|
31
31
|
### Layer Legend
|
|
32
32
|
|
|
33
|
-
- **
|
|
34
|
-
- **
|
|
35
|
-
- **Integration (organisms)**: Component wiring, stubbed external, <500ms
|
|
33
|
+
- **Fast**: Isolated package tests in `test/fast`, no real external IO
|
|
34
|
+
- **Feat**: Deterministic feature tests in `test/feat`, controlled local IO
|
|
36
35
|
- **E2E**: Real I/O, sandboxed, seconds
|
|
37
36
|
|
|
38
37
|
### Risk Legend
|
|
@@ -72,8 +71,8 @@ Critical workflows requiring E2E validation:
|
|
|
72
71
|
|
|
73
72
|
## Action Items
|
|
74
73
|
|
|
75
|
-
- [ ] Create
|
|
76
|
-
- [ ] Create
|
|
74
|
+
- [ ] Create fast tests for: {{list}}
|
|
75
|
+
- [ ] Create feat tests for: {{list}}
|
|
77
76
|
- [ ] Create E2E test: TS-{{AREA}}-{{NNN}}
|
|
78
77
|
- [ ] Remove redundant tests: {{list}}
|
|
79
78
|
- [ ] Update fixtures: {{list}}
|
|
@@ -89,4 +88,4 @@ Critical workflows requiring E2E validation:
|
|
|
89
88
|
|
|
90
89
|
## Notes
|
|
91
90
|
|
|
92
|
-
{{additional_notes}}
|
|
91
|
+
{{additional_notes}}
|
|
@@ -90,7 +90,7 @@ Produce this section before exiting:
|
|
|
90
90
|
|
|
91
91
|
| Failure | Category | Evidence | Fix Target | Fix Target Layer | Primary Candidate Files | Fallback Candidate Files | Do-Not-Touch Boundaries | Confidence | Disconfirming Check |
|
|
92
92
|
|---|---|---|---|---|---|---|---|---|---|
|
|
93
|
-
| path/to/test_file.rb:TestName | implementation-bug | stacktrace + behavior mismatch summary | implementation code | implementation | app/service.rb, app/model.rb | test/
|
|
93
|
+
| path/to/test_file.rb:TestName | implementation-bug | stacktrace + behavior mismatch summary | implementation code | implementation | app/service.rb, app/model.rb | test/feat/foo_test.rb | test/e2e/** | high | run related tests after patch |
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
Then include:
|
|
@@ -117,4 +117,4 @@ Then include:
|
|
|
117
117
|
- No-touch boundaries are explicit per failure
|
|
118
118
|
- A single autonomous chosen fix decision is present per failure
|
|
119
119
|
- A prioritized first failure is selected
|
|
120
|
-
- No code/test edits were made in this workflow
|
|
120
|
+
- No code/test edits were made in this workflow
|
|
@@ -279,7 +279,7 @@ Create retro or update test helper comments:
|
|
|
279
279
|
# - with_mock_lint_context helper stubs all validators
|
|
280
280
|
# - Real CLI tests moved to test/e2e/
|
|
281
281
|
#
|
|
282
|
-
# See: .ace-
|
|
282
|
+
# See: .ace-task/.../retros/<timestamp>-<package>-test-optimization.md
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
## Common Optimization Patterns
|
|
@@ -287,7 +287,7 @@ Output the Test Responsibility Map document:
|
|
|
287
287
|
## Output
|
|
288
288
|
|
|
289
289
|
The test plan should be saved to:
|
|
290
|
-
- Task folder: `.ace-
|
|
290
|
+
- Task folder: `.ace-task/.../task-XXX/test-plan.md`
|
|
291
291
|
- Or reviewed in conversation before implementation
|
|
292
292
|
|
|
293
293
|
## Checklist Before Implementation
|
data/lib/ace/test/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-test
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-04-20 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: bundler
|