ace-assign 0.37.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.
- checksums.yaml +7 -0
- data/.ace-defaults/assign/catalog/composition-rules.yml +211 -0
- data/.ace-defaults/assign/catalog/recipes/batch-tasks.recipe.yml +44 -0
- data/.ace-defaults/assign/catalog/recipes/documentation.recipe.yml +35 -0
- data/.ace-defaults/assign/catalog/recipes/fix-and-review.recipe.yml +32 -0
- data/.ace-defaults/assign/catalog/recipes/implement-simple.recipe.yml +29 -0
- data/.ace-defaults/assign/catalog/recipes/implement-with-pr.recipe.yml +48 -0
- data/.ace-defaults/assign/catalog/recipes/release-only.recipe.yml +34 -0
- data/.ace-defaults/assign/catalog/steps/apply-feedback.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/commit.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/create-pr.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/create-retro.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/fix-tests.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/lint.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/mark-task-done.step.yml +57 -0
- data/.ace-defaults/assign/catalog/steps/onboard-base.step.yml +19 -0
- data/.ace-defaults/assign/catalog/steps/onboard.step.yml +19 -0
- data/.ace-defaults/assign/catalog/steps/plan-task.step.yml +17 -0
- data/.ace-defaults/assign/catalog/steps/pre-commit-review.step.yml +34 -0
- data/.ace-defaults/assign/catalog/steps/push-to-remote.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/rebase-with-main.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/reflect-and-refactor.step.yml +57 -0
- data/.ace-defaults/assign/catalog/steps/release-minor.step.yml +23 -0
- data/.ace-defaults/assign/catalog/steps/release.step.yml +23 -0
- data/.ace-defaults/assign/catalog/steps/reorganize-commits.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/research.step.yml +19 -0
- data/.ace-defaults/assign/catalog/steps/review-pr.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/security-audit.step.yml +22 -0
- data/.ace-defaults/assign/catalog/steps/split-subtree-root.step.yml +25 -0
- data/.ace-defaults/assign/catalog/steps/squash-changelog.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/task-load.step.yml +29 -0
- data/.ace-defaults/assign/catalog/steps/update-docs.step.yml +38 -0
- data/.ace-defaults/assign/catalog/steps/update-pr-desc.step.yml +28 -0
- data/.ace-defaults/assign/catalog/steps/verify-e2e.step.yml +42 -0
- data/.ace-defaults/assign/catalog/steps/verify-test-suite.step.yml +48 -0
- data/.ace-defaults/assign/catalog/steps/verify-test.step.yml +36 -0
- data/.ace-defaults/assign/catalog/steps/work-on-task.step.yml +23 -0
- data/.ace-defaults/assign/config.yml +48 -0
- data/.ace-defaults/assign/presets/fix-bug.yml +65 -0
- data/.ace-defaults/assign/presets/quick-implement.yml +41 -0
- data/.ace-defaults/assign/presets/release-only.yml +35 -0
- data/.ace-defaults/assign/presets/work-on-docs.yml +41 -0
- data/.ace-defaults/assign/presets/work-on-task.yml +179 -0
- data/.ace-defaults/nav/protocols/skill-sources/ace-assign.yml +19 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-assign.yml +19 -0
- data/CHANGELOG.md +1415 -0
- data/README.md +87 -0
- data/Rakefile +16 -0
- data/docs/exit-codes.md +61 -0
- data/docs/getting-started.md +121 -0
- data/docs/handbook.md +40 -0
- data/docs/usage.md +224 -0
- data/exe/ace-assign +16 -0
- data/handbook/guides/fork-context.g.md +231 -0
- data/handbook/skills/as-assign-compose/SKILL.md +24 -0
- data/handbook/skills/as-assign-create/SKILL.md +23 -0
- data/handbook/skills/as-assign-drive/SKILL.md +24 -0
- data/handbook/skills/as-assign-prepare/SKILL.md +23 -0
- data/handbook/skills/as-assign-recover-fork/SKILL.md +22 -0
- data/handbook/skills/as-assign-run-in-batches/SKILL.md +23 -0
- data/handbook/skills/as-assign-start/SKILL.md +25 -0
- data/handbook/workflow-instructions/assign/compose.wf.md +256 -0
- data/handbook/workflow-instructions/assign/create.wf.md +215 -0
- data/handbook/workflow-instructions/assign/drive.wf.md +666 -0
- data/handbook/workflow-instructions/assign/prepare.wf.md +469 -0
- data/handbook/workflow-instructions/assign/recover-fork.wf.md +233 -0
- data/handbook/workflow-instructions/assign/run-in-batches.wf.md +212 -0
- data/handbook/workflow-instructions/assign/start.wf.md +46 -0
- data/lib/ace/assign/atoms/assign_frontmatter_parser.rb +173 -0
- data/lib/ace/assign/atoms/catalog_loader.rb +101 -0
- data/lib/ace/assign/atoms/composition_rules.rb +219 -0
- data/lib/ace/assign/atoms/number_generator.rb +110 -0
- data/lib/ace/assign/atoms/preset_expander.rb +277 -0
- data/lib/ace/assign/atoms/step_file_parser.rb +207 -0
- data/lib/ace/assign/atoms/step_numbering.rb +227 -0
- data/lib/ace/assign/atoms/step_sorter.rb +66 -0
- data/lib/ace/assign/atoms/tree_formatter.rb +106 -0
- data/lib/ace/assign/cli/commands/add.rb +102 -0
- data/lib/ace/assign/cli/commands/assignment_target.rb +55 -0
- data/lib/ace/assign/cli/commands/create.rb +63 -0
- data/lib/ace/assign/cli/commands/fail.rb +43 -0
- data/lib/ace/assign/cli/commands/finish.rb +88 -0
- data/lib/ace/assign/cli/commands/fork_run.rb +229 -0
- data/lib/ace/assign/cli/commands/list.rb +166 -0
- data/lib/ace/assign/cli/commands/retry_cmd.rb +42 -0
- data/lib/ace/assign/cli/commands/select.rb +45 -0
- data/lib/ace/assign/cli/commands/start.rb +40 -0
- data/lib/ace/assign/cli/commands/status.rb +407 -0
- data/lib/ace/assign/cli.rb +144 -0
- data/lib/ace/assign/models/assignment.rb +107 -0
- data/lib/ace/assign/models/assignment_info.rb +66 -0
- data/lib/ace/assign/models/queue_state.rb +326 -0
- data/lib/ace/assign/models/step.rb +197 -0
- data/lib/ace/assign/molecules/assignment_discoverer.rb +57 -0
- data/lib/ace/assign/molecules/assignment_manager.rb +276 -0
- data/lib/ace/assign/molecules/fork_session_launcher.rb +102 -0
- data/lib/ace/assign/molecules/queue_scanner.rb +130 -0
- data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +376 -0
- data/lib/ace/assign/molecules/step_renumberer.rb +227 -0
- data/lib/ace/assign/molecules/step_writer.rb +246 -0
- data/lib/ace/assign/organisms/assignment_executor.rb +1299 -0
- data/lib/ace/assign/version.rb +7 -0
- data/lib/ace/assign.rb +141 -0
- metadata +289 -0
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,1415 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.37.0] - 2026-03-23
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Rewrote README with step/substep terminology, real `ace-assign status` output example, ace-overseer onboarding path, and links to step catalog, presets, and composition rules.
|
|
14
|
+
- Replaced residual "phases" terminology with "steps" in docs/handbook.md, docs/getting-started.md, and e2e fixture directories.
|
|
15
|
+
- Fixed broken "See Also" links in docs/exit-codes.md pointing to non-existent README anchors.
|
|
16
|
+
|
|
17
|
+
### Technical
|
|
18
|
+
- Normalized code formatting across 40+ lib and test files via StandardRB autofix (style-only, no behavior changes).
|
|
19
|
+
|
|
20
|
+
## [0.36.13] - 2026-03-23
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Refreshed `README.md` to the current package layout pattern with logo/badges header, compatibility line, quick links, and use-case-oriented overview content.
|
|
24
|
+
- Updated README skill inventory to include `as-assign-recover-fork` and aligned the footer to the canonical ACE package format.
|
|
25
|
+
|
|
26
|
+
## [0.36.12] - 2026-03-22
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- Unified assignment preset naming to `work-on-task` by removing `work-on-tasks` from defaults and fixtures.
|
|
30
|
+
- Restored single-task shorthand support by normalizing `--taskref` inputs to `taskrefs` during preset validation/expansion.
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Updated assign prepare workflow/skill docs and E2E fixture expectations to treat `work-on-task` as the single canonical preset for single-task and batch flows.
|
|
34
|
+
|
|
35
|
+
## [0.36.11] - 2026-03-22
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
- Restored the `ace-assign` default fork timeout to `1800` in `ace-assign/.ace-defaults/assign/config.yml`.
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- Realigned assignment default provider/timeout guidance in `.ace/assign/config.yml` with package defaults for this release cycle.
|
|
42
|
+
|
|
43
|
+
## [0.36.10] - 2026-03-22
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- Documented assignment config provider/timeout default tuning in release notes for `.ace/assign/config.yml` and `ace-assign/.ace-defaults/assign/config.yml`.
|
|
47
|
+
- Restored missing trailing newline in `handbook/workflow-instructions/assign/run-in-batches.wf.md`.
|
|
48
|
+
|
|
49
|
+
## [0.36.9] - 2026-03-22
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- Remove `mise exec --` wrapper from test fixture strings to match updated command invocation style.
|
|
53
|
+
- Clarified release notes for this version to include shipped assignment default config tuning in `.ace/assign/config.yml` and `ace-assign/.ace-defaults/assign/config.yml` (provider/timeout defaults).
|
|
54
|
+
|
|
55
|
+
## [0.36.8] - 2026-03-22
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
- Mark task completion flows to archive tasks as well in both single-task and batch presets.
|
|
59
|
+
- Load task-done updates through the canonical `wfi://task/update` workflow and ensure parent-task closure updates are archived.
|
|
60
|
+
|
|
61
|
+
## [0.36.7] - 2026-03-22
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
- `mark-task-done` step now checks and closes parent tasks when all children are done, preventing status drift in task hierarchies.
|
|
65
|
+
|
|
66
|
+
## [0.36.6] - 2026-03-22
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
- Add `create-retro` as the final child step in review-cycle fork subtrees, ensuring each review cycle captures its own retrospective.
|
|
70
|
+
- Add ordering rules (`retro-after-release`, `retro-after-apply-feedback`) to composition rules.
|
|
71
|
+
- Declare `review-sessions` as consumed input for the `create-retro` step.
|
|
72
|
+
|
|
73
|
+
## [0.36.5] - 2026-03-22
|
|
74
|
+
|
|
75
|
+
### Technical
|
|
76
|
+
- Clarified release notes to document the intentional `codex:gpt@yolo` assignment default required for current Codex CLI compatibility.
|
|
77
|
+
|
|
78
|
+
## [0.36.4] - 2026-03-22
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
- Clarified that assignment execution remains on `codex:gpt@yolo` because the current Codex CLI cannot combine `--full-auto` with `--dangerously-bypass-approvals-and-sandbox`.
|
|
82
|
+
|
|
83
|
+
## [0.36.3] - 2026-03-22
|
|
84
|
+
|
|
85
|
+
### Fixed
|
|
86
|
+
- Clarified the documented assignment execution default after docs drift described it as `codex:codex@yolo` instead of the intentional `codex:gpt@yolo`.
|
|
87
|
+
|
|
88
|
+
## [0.36.2] - 2026-03-22
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
- Remove trailing empty lines in code blocks across documentation files.
|
|
92
|
+
|
|
93
|
+
## [0.36.1] - 2026-03-22
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
- Include `docs/**/*` in gemspec so documentation ships with the gem.
|
|
97
|
+
- Remove piped command example from usage guide to align with command-integrity contract.
|
|
98
|
+
|
|
99
|
+
## [0.36.0] - 2026-03-22
|
|
100
|
+
|
|
101
|
+
### Added
|
|
102
|
+
- Added tutorial-style `docs/getting-started.md` and `docs/handbook.md` for clearer onboarding and package workflow discovery
|
|
103
|
+
- Added `docs/demo/ace-assign-getting-started.tape` and `docs/demo/ace-assign-getting-started.gif` demo artifacts
|
|
104
|
+
|
|
105
|
+
### Changed
|
|
106
|
+
- Rewrote `README.md` as a concise landing page with value-first messaging and documentation links
|
|
107
|
+
- Refreshed `docs/usage.md` to align with current CLI commands, scoped assignment examples, and command-integrity guidance
|
|
108
|
+
- Updated gemspec summary/description text to match the new README tagline and positioning
|
|
109
|
+
|
|
110
|
+
## [0.35.1] - 2026-03-21
|
|
111
|
+
|
|
112
|
+
### Added
|
|
113
|
+
- `mark-tasks-done` step (number 155) in `work-on-tasks` preset to mark parent/umbrella tasks as done after all subtask forks complete
|
|
114
|
+
|
|
115
|
+
## [0.35.0] - 2026-03-21
|
|
116
|
+
|
|
117
|
+
### Added
|
|
118
|
+
- `create-retro` step in `work-on-task` and `work-on-tasks` presets to capture process learnings after each assignment
|
|
119
|
+
|
|
120
|
+
### Changed
|
|
121
|
+
- `verify-e2e` step now runs E2E tests with fix loops (up to 3 cycles) instead of only reviewing coverage; runs in forked context
|
|
122
|
+
- `update-pr-desc` step now runs in forked context to prevent context-pressure truncation of grouped-stats output
|
|
123
|
+
|
|
124
|
+
## [0.34.1] - 2026-03-18
|
|
125
|
+
|
|
126
|
+
### Changed
|
|
127
|
+
- Added `unit-coverage-reviewed` decision evidence to `TS-ASSIGN-001` and `TS-ASSIGN-002` E2E scenarios to map coverage against related unit tests.
|
|
128
|
+
|
|
129
|
+
## [0.34.0] - 2026-03-18
|
|
130
|
+
|
|
131
|
+
### Changed
|
|
132
|
+
- Renamed "phases" to "steps" throughout the assignment system: models, atoms, molecules, organisms, CLI commands, config, catalog, and all user-facing strings
|
|
133
|
+
- Renamed file extension from `.ph.md` to `.st.md` for step files
|
|
134
|
+
- Renamed catalog directory from `catalog/phases/` to `catalog/steps/` and files from `*.phase.yml` to `*.step.yml`
|
|
135
|
+
- Renamed YAML keys: `sub-phases` → `sub-steps`, `sub_phases` → `sub_steps`
|
|
136
|
+
|
|
137
|
+
### Fixed
|
|
138
|
+
- `AssignmentExecutor.start` now reads `config["steps"]` matching what `AssignmentLauncher.write_job_file` writes (was reading `config["phases"]`, causing "No phases defined in config" error)
|
|
139
|
+
|
|
140
|
+
## [0.33.1] - 2026-03-18
|
|
141
|
+
|
|
142
|
+
### Changed
|
|
143
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
## [0.33.0] - 2026-03-18
|
|
147
|
+
|
|
148
|
+
### Changed
|
|
149
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
## [0.32.4] - 2026-03-15
|
|
153
|
+
|
|
154
|
+
### Technical
|
|
155
|
+
- Optimized test suite I/O: reuse one tmpdir per test class instead of creating/destroying per test method (~176 → ~16 tmpdir cycles)
|
|
156
|
+
- Removed 2 unnecessary `sleep(0.1)` calls in assignment manager tests (200ms saved)
|
|
157
|
+
- Converted bare `Dir.mktmpdir` calls to shared class-level tmpdir in fork session launcher tests
|
|
158
|
+
|
|
159
|
+
## [0.32.3] - 2026-03-15
|
|
160
|
+
|
|
161
|
+
### Fixed
|
|
162
|
+
- Release step catalog entry now references `wfi://release/publish` workflow
|
|
163
|
+
- Review cycle release instructions in work-on-task and work-on-tasks presets now point to `ace-bundle wfi://release/publish`
|
|
164
|
+
|
|
165
|
+
### Changed
|
|
166
|
+
- Drive workflow batch continuation rule prevents driver from pausing between child fork-runs
|
|
167
|
+
- Drive workflow adds transient network failure retry guidance (wait 30s, re-fork once)
|
|
168
|
+
|
|
169
|
+
## [0.32.2] - 2026-03-15
|
|
170
|
+
|
|
171
|
+
### Changed
|
|
172
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
173
|
+
|
|
174
|
+
## [0.32.1] - 2026-03-13
|
|
175
|
+
|
|
176
|
+
### Fixed
|
|
177
|
+
- Rendered `verify-test-suite` and `verify-e2e` assignment steps now use assignment-safe step templates instead of persisting the full broad audit workflow bodies.
|
|
178
|
+
- Cleaned assignment overlay serialization so generated child steps no longer leak nested `Assignment-specific context` / `Task context` headers or malformed double bullets.
|
|
179
|
+
|
|
180
|
+
### Technical
|
|
181
|
+
- Preserved local assignment render metadata when canonical step catalog entries merge with workflow-backed skill metadata.
|
|
182
|
+
- Added regression coverage for step-template rendering and structural assignment-overlay cleanup.
|
|
183
|
+
|
|
184
|
+
## [0.32.0] - 2026-03-13
|
|
185
|
+
|
|
186
|
+
### Changed
|
|
187
|
+
- Switched generated assignment artifacts for public steps to use workflow-backed execution references instead of generated `skill:` step contracts.
|
|
188
|
+
- Restored assignment-specific orchestration overlays for `work-on-task` and `work-on-tasks` while keeping canonical workflow bodies as the reusable execution source.
|
|
189
|
+
|
|
190
|
+
### Technical
|
|
191
|
+
- Promoted `workflow` to a first-class parsed/runtime step field across assignment status, queue scanning, and step persistence.
|
|
192
|
+
- Updated assign resolver, executor, presets, and regression fixtures to materialize public steps from canonical workflow bodies with provenance metadata.
|
|
193
|
+
|
|
194
|
+
## [0.31.5] - 2026-03-13
|
|
195
|
+
|
|
196
|
+
### Technical
|
|
197
|
+
- Completed canonical assign skill catalog composition and workflow-backed step metadata wiring for public assignments.
|
|
198
|
+
|
|
199
|
+
## [0.31.4] - 2026-03-13
|
|
200
|
+
|
|
201
|
+
### Changed
|
|
202
|
+
- Updated canonical assign skills to explicitly run bundled workflows in the current project and execute them end-to-end.
|
|
203
|
+
|
|
204
|
+
## [0.31.3] - 2026-03-13
|
|
205
|
+
|
|
206
|
+
### Added
|
|
207
|
+
- Added pre-flight prerequisite validation to `TC-005-no-skip-policy` fixture setup so scenario runs verify required workflow and skill files exist before policy checks execute.
|
|
208
|
+
|
|
209
|
+
### Technical
|
|
210
|
+
- Hardened `TS-ASSIGN-001` fixture setup and verification flow by capturing pre-flight exit status and output artifacts.
|
|
211
|
+
|
|
212
|
+
## [0.31.2] - 2026-03-12
|
|
213
|
+
|
|
214
|
+
### Changed
|
|
215
|
+
- Updated the prepare-workflow E2E fixtures to use the current top-level `steps:` schema for single-task and batch workflows.
|
|
216
|
+
- Refreshed hierarchy E2E guidance to capture copied auto-completion reports and to use the current fixture layout under `fixtures/*/jobs/`.
|
|
217
|
+
|
|
218
|
+
## [0.31.1] - 2026-03-10
|
|
219
|
+
|
|
220
|
+
### Fixed
|
|
221
|
+
- Restored canonical skill resolution to honor nav source priority while preserving package-default fallback discovery for local monorepo workflows and tests.
|
|
222
|
+
|
|
223
|
+
### Changed
|
|
224
|
+
- Added a runtime dependency on `ace-support-nav` so assignment skill discovery shares the same source registry semantics as `skill://` navigation.
|
|
225
|
+
|
|
226
|
+
### Technical
|
|
227
|
+
- Replaced invalid shell-tool allowances in canonical assignment skills with repo-approved tooling metadata and expanded resolver regression coverage for override precedence.
|
|
228
|
+
|
|
229
|
+
## [0.31.0] - 2026-03-09
|
|
230
|
+
|
|
231
|
+
### Changed
|
|
232
|
+
- Switched `SkillAssignSourceResolver` defaults to canonical `skill-sources` discovery and removed hardcoded provider-tree fallback paths as the primary model.
|
|
233
|
+
- Updated assign defaults and compose workflow guidance to describe compatibility catalog entries as non-authoritative inputs.
|
|
234
|
+
|
|
235
|
+
### Technical
|
|
236
|
+
- Updated resolver and assignment executor regression fixtures to register canonical skill sources (`handbook/skills`) instead of relying on `.claude/skills` defaults.
|
|
237
|
+
- Clarified vision documentation that canonical skills live in package `handbook/skills` and provider trees are generated projections.
|
|
238
|
+
|
|
239
|
+
## [0.30.0] - 2026-03-09
|
|
240
|
+
|
|
241
|
+
### Added
|
|
242
|
+
- Added canonical workflow skills for assignment operations: `as-assign-compose`, `as-assign-create`, `as-assign-drive`, `as-assign-prepare`, and `as-assign-run-in-batches` under `handbook/skills/`.
|
|
243
|
+
|
|
244
|
+
### Changed
|
|
245
|
+
- Expanded `skill://` canonical discovery coverage for `ace-assign` beyond the initial single-skill seed.
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
## [0.29.0] - 2026-03-09
|
|
249
|
+
|
|
250
|
+
### Added
|
|
251
|
+
- Canonical skill resolution in `SkillAssignSourceResolver` with assign-capable filtering by `skill.kind` and `assign.source`
|
|
252
|
+
- Step catalog reordering in `AssignmentExecutor` to prioritize canonical assign-capable skills over compatibility bridge entries
|
|
253
|
+
|
|
254
|
+
## [0.28.0] - 2026-03-09
|
|
255
|
+
|
|
256
|
+
### Added
|
|
257
|
+
- Added `skill-sources` gem defaults registration at `.ace-defaults/nav/protocols/skill-sources/ace-assign.yml` so `skill://` can discover canonical `handbook/skills` entries from `ace-assign`.
|
|
258
|
+
|
|
259
|
+
## [0.27.0] - 2026-03-09
|
|
260
|
+
|
|
261
|
+
### Added
|
|
262
|
+
- Added canonical orchestration skill example at `handbook/skills/as-assign-start/SKILL.md` for typed skill taxonomy tracing.
|
|
263
|
+
- Restored `assign/start` as a legacy compatibility workflow binding for canonical orchestration skill discovery.
|
|
264
|
+
|
|
265
|
+
### Changed
|
|
266
|
+
- Added projected provider-facing `.agent/skills/as-assign-start/SKILL.md` entry for representative orchestration skill parity.
|
|
267
|
+
|
|
268
|
+
## [0.26.2] - 2026-03-08
|
|
269
|
+
|
|
270
|
+
### Changed
|
|
271
|
+
- Clarified batch-parallel scheduling in `assign/drive` and `assign/run-in-batches`: `max_parallel` is a rolling in-flight concurrency cap (slot refill), not a fixed wave size.
|
|
272
|
+
- Added explicit rolling scheduler-loop guidance for parallel batch execution in `assign/drive`.
|
|
273
|
+
- Added user-document tracking frontmatter to `ace-assign` user docs (`README.md`, `docs/usage.md`).
|
|
274
|
+
|
|
275
|
+
### Technical
|
|
276
|
+
- Added missing guide frontmatter to `handbook/guides/fork-context.g.md` so package docs are consistently tracked by `ace-docs`.
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
## [0.26.1] - 2026-03-08
|
|
280
|
+
|
|
281
|
+
### Fixed
|
|
282
|
+
- `fork-run` now marks scoped leaf fork roots as `in_progress` before launching, preventing pending-state drift that could trigger repeated self-delegation loops in batch child execution.
|
|
283
|
+
- Scoped `status` output no longer shows fork execution guidance for already-completed fork steps.
|
|
284
|
+
|
|
285
|
+
### Changed
|
|
286
|
+
- Updated `assign/drive` workflow delegation rules to explicitly prevent calling `fork-run` again when already operating inside the same scoped fork boundary.
|
|
287
|
+
|
|
288
|
+
### Technical
|
|
289
|
+
- Added regressions for leaf-root fork activation and scoped done-step status guidance behavior.
|
|
290
|
+
|
|
291
|
+
## [0.26.0] - 2026-03-08
|
|
292
|
+
|
|
293
|
+
### Added
|
|
294
|
+
- Added batch scheduling metadata (`batch_parent`, `parallel`, `max_parallel`, `fork_retry_limit`) to step parsing/model/status JSON so assignment drivers can orchestrate controlled fork fan-out.
|
|
295
|
+
- Added `--max-parallel` guidance to run-in-batches workflow/skill contracts with default parallel cap semantics.
|
|
296
|
+
|
|
297
|
+
### Fixed
|
|
298
|
+
- Corrected status `FORK` column semantics to reflect `context: fork` instead of child presence, preventing non-fork batch parents from being misinterpreted as fork targets.
|
|
299
|
+
|
|
300
|
+
### Changed
|
|
301
|
+
- Updated run-in-batches guidance so `--sequential` now preserves per-item fork execution while switching scheduler mode to sequential metadata.
|
|
302
|
+
- Updated drive workflow delegation guidance to use fork-context signals and document retry-then-stop behavior for parallel child failures.
|
|
303
|
+
|
|
304
|
+
## [0.25.1] - 2026-03-08
|
|
305
|
+
|
|
306
|
+
### Changed
|
|
307
|
+
- Removed the legacy `as-assign-start` compatibility skill entrypoint.
|
|
308
|
+
|
|
309
|
+
### Technical
|
|
310
|
+
- Removed the `assign/start` legacy compatibility workflow file and retained `assign/create` as the public creation flow.
|
|
311
|
+
|
|
312
|
+
## [0.25.0] - 2026-03-08
|
|
313
|
+
|
|
314
|
+
### Added
|
|
315
|
+
- Added phrase-intent metadata (`intent.phrases`) for core compose targets: `work-on-task`, `verify-test-suite`, `reorganize-commits`, `push-to-remote`, `create-pr`, and `update-pr-desc`.
|
|
316
|
+
- Added new compose-target steps `squash-changelog` and `rebase-with-main` with skill mappings to `as-docs-squash-changelog` and `as-git-rebase`.
|
|
317
|
+
|
|
318
|
+
### Changed
|
|
319
|
+
- Reworked `assign/create` workflow to support preset input, explicit step-list intent, freeform high-level intent, and job-file passthrough while preserving deterministic `ace-assign create FILE` runtime boundary.
|
|
320
|
+
- Reworked `assign/compose` workflow with deterministic phrase matching, explicit-intent precedence, and named hard-rule reorder explanations.
|
|
321
|
+
- Extended composition hard-ordering guidance with `squash-before-rebase`, `rebase-before-push`, and `rebase-before-update-pr`.
|
|
322
|
+
|
|
323
|
+
### Technical
|
|
324
|
+
- Added workflow-level guidance clarifying that skill-backed step expansion stays runtime-owned via `assign.source` during `ace-assign create`.
|
|
325
|
+
|
|
326
|
+
## [0.24.0] - 2026-03-08
|
|
327
|
+
|
|
328
|
+
### Added
|
|
329
|
+
- Added `codex` to the default `subtree.native_review_clients` allow-list so subtree pre-commit review can use native `/review` in Codex runtimes.
|
|
330
|
+
|
|
331
|
+
### Technical
|
|
332
|
+
- Updated assignment-executor skill-source regression fixtures to the current `wfi://task/work` resolution path and `ace-task` workflow layout.
|
|
333
|
+
|
|
334
|
+
## [0.23.1] - 2026-03-08
|
|
335
|
+
|
|
336
|
+
### Fixed
|
|
337
|
+
- Updated assignment release guidance so `release*` child steps consistently route through `/as-release`, including suffixed review-cycle release steps.
|
|
338
|
+
|
|
339
|
+
### Changed
|
|
340
|
+
- Updated release step, preset, and fixture instructions to describe coordinated multi-package releases and both package and root changelog updates.
|
|
341
|
+
|
|
342
|
+
## [0.23.0] - 2026-03-08
|
|
343
|
+
|
|
344
|
+
### Changed
|
|
345
|
+
- Remove hardcoded `providers.cli_args` config; use ace-llm `@preset` suffixes for provider permission flags
|
|
346
|
+
- Reframed the public assignment UX around `as-assign-create` + `as-assign-drive`, including explicit `--run` create-to-drive handoff guidance in the create workflow.
|
|
347
|
+
- Reclassified `as-assign-start` and `as-assign-prepare` as legacy/internal compatibility skills (`user-invocable: false`) so they are no longer presented as primary public entrypoints.
|
|
348
|
+
|
|
349
|
+
### Technical
|
|
350
|
+
- Updated `assign/start` workflow positioning and fixture usage comments to stop teaching prepare/start as the recommended public flow.
|
|
351
|
+
- Expanded task usage documentation for this slice with explicit create-only, create-then-drive, and advanced `ace-assign create FILE` scenarios plus `--run` edge handling notes.
|
|
352
|
+
|
|
353
|
+
## [0.22.7] - 2026-03-08
|
|
354
|
+
|
|
355
|
+
### Technical
|
|
356
|
+
- Stabilized create-command path-relativity test setup by pinning `PROJECT_ROOT_PATH` to the temp workspace and clearing `ProjectRootFinder` cache around the test.
|
|
357
|
+
|
|
358
|
+
## [0.22.6] - 2026-03-08
|
|
359
|
+
|
|
360
|
+
### Fixed
|
|
361
|
+
- Rebalanced active step selection after `add --child` when injecting under the currently active step so execution moves into the newly created child subtree.
|
|
362
|
+
|
|
363
|
+
### Technical
|
|
364
|
+
- Added `StepWriter#mark_pending` to clear runtime-only step state when demoting blocked active parents.
|
|
365
|
+
- Added regression coverage for active-step rebalance behavior in parent/child/grandchild injection flows and for the new pending-state writer helper.
|
|
366
|
+
- Hardened TS-ASSIGN-002 Goal 5 artifacts to require JSON status oracles for scoped and unscoped assertions, reducing false positives from report synthesis drift.
|
|
367
|
+
|
|
368
|
+
## [0.22.5] - 2026-03-07
|
|
369
|
+
|
|
370
|
+
### Technical
|
|
371
|
+
- Updated create-command path-relativity test setup to run from the temporary cache directory so `Created:` output remains relative when expected.
|
|
372
|
+
|
|
373
|
+
## [0.22.4] - 2026-03-07
|
|
374
|
+
|
|
375
|
+
### Technical
|
|
376
|
+
- **ace-assign v0.22.4**: Removed no-op release entries from package changelog history (`0.22.3`, `0.22.1`) and refactored a create-command path-relativity test to use the shared temporary cache helper.
|
|
377
|
+
|
|
378
|
+
## [0.22.2] - 2026-03-07
|
|
379
|
+
|
|
380
|
+
### Fixed
|
|
381
|
+
- Normalized `ace-assign create` output path formatting so `Created:` and `Created from hidden spec:` use the same display-path strategy.
|
|
382
|
+
|
|
383
|
+
### Technical
|
|
384
|
+
- Added regression coverage for relative create output formatting and legacy `steps/` source-config path preservation.
|
|
385
|
+
|
|
386
|
+
## [0.22.0] - 2026-03-07
|
|
387
|
+
|
|
388
|
+
### Added
|
|
389
|
+
- `ace-assign create` now reports hidden-spec provenance with `Created from hidden spec: ...` when source config is under `.ace-local/assign/jobs/`.
|
|
390
|
+
- Added create-command and assignment-executor coverage for hidden-spec path retention and provenance output.
|
|
391
|
+
|
|
392
|
+
### Changed
|
|
393
|
+
- Assignment source-config archiving now preserves existing `jobs/` paths (including hidden specs in `.ace-local/assign/jobs/`) and archives non-job source configs into `<task>/jobs/<assignment-id>-job.yml` instead of `steps/`.
|
|
394
|
+
- `assign/create` workflow and `as-assign-create` skill contract now document the tracer path `work-on-task --taskref <id>` with hidden-spec rendering and deterministic `ace-assign create FILE` handoff.
|
|
395
|
+
|
|
396
|
+
## [0.21.3] - 2026-03-07
|
|
397
|
+
|
|
398
|
+
### Technical
|
|
399
|
+
- Completed shine-cycle assignment release step for PR #241: review execution remained blocked by upstream provider broken-pipe errors, and apply-feedback confirmed no pending items to apply.
|
|
400
|
+
|
|
401
|
+
## [0.21.2] - 2026-03-07
|
|
402
|
+
|
|
403
|
+
### Technical
|
|
404
|
+
- Completed fit-cycle assignment release step for PR #241: review execution failed upstream with provider broken-pipe errors, and apply-feedback confirmed no pending items in session context.
|
|
405
|
+
|
|
406
|
+
## [0.21.1] - 2026-03-07
|
|
407
|
+
|
|
408
|
+
### Technical
|
|
409
|
+
- Completed valid-cycle feedback application pass for PR #241 and confirmed there were no pending medium+ review feedback items to apply before release.
|
|
410
|
+
|
|
411
|
+
## [0.21.0] - 2026-03-07
|
|
412
|
+
|
|
413
|
+
### Added
|
|
414
|
+
- New `pre-commit-review` step catalog entry for subtree task workflows, enabling native client review gate behavior before verification/release.
|
|
415
|
+
- New subtree review defaults in assign config: `pre_commit_review`, `pre_commit_review_provider`, `pre_commit_review_block`, and `native_review_clients`.
|
|
416
|
+
|
|
417
|
+
### Changed
|
|
418
|
+
- `task/work` workflow sub-step sequence now includes `pre-commit-review` between `work-on-task` and `verify-test`.
|
|
419
|
+
- Child step instruction generation now renders config-aware native review run/skip/block guidance for `pre-commit-review`.
|
|
420
|
+
|
|
421
|
+
## [0.20.1] - 2026-03-05
|
|
422
|
+
|
|
423
|
+
### Fixed
|
|
424
|
+
- `fork-run` stall detection now targets the in-progress step within the subtree (`in_progress_in_subtree`) instead of the global current step, preventing `stall_reason` from being written to the wrong step during parallel fork execution.
|
|
425
|
+
- Stall-reason clearing on successful rerun now skips steps that never had a `stall_reason`, avoiding unnecessary file I/O on every subtree step.
|
|
426
|
+
|
|
427
|
+
## [0.20.0] - 2026-03-05
|
|
428
|
+
|
|
429
|
+
### Added
|
|
430
|
+
- Provider-specific session detection fallback in `ForkSessionLauncher` — when a provider doesn't return a native `session_id`, scans local session storage via `SessionFinder` to detect the forked session by prompt matching.
|
|
431
|
+
- Session metadata file (`<root>-session.yml`) written for every fork run, capturing `session_id`, `provider`, `model`, and `completed_at` for traceability.
|
|
432
|
+
- Stall error messages now include `Session: <id>` when session metadata is available, enabling direct trace to agent session.
|
|
433
|
+
|
|
434
|
+
## [0.19.3] - 2026-03-05
|
|
435
|
+
|
|
436
|
+
### Technical
|
|
437
|
+
- Extracted `STALL_REASON_MAX = 2000` constant in `ForkRun` to replace magic number and serve as shared source of truth for production code and tests.
|
|
438
|
+
- Tightened truncation test assertion to pin exact expected output length rather than a loose upper bound.
|
|
439
|
+
|
|
440
|
+
## [0.19.2] - 2026-03-05
|
|
441
|
+
|
|
442
|
+
### Fixed
|
|
443
|
+
- Simplified Layer 1 last-message write in `ForkSessionLauncher` from check-then-write to a single read-based guard, reducing double file access and improving robustness.
|
|
444
|
+
- Multiline `stall_reason` values in `ace-assign status` output now display with indented continuation lines for readable terminal formatting.
|
|
445
|
+
|
|
446
|
+
### Technical
|
|
447
|
+
- Added `test_stall_reason_cleared_after_successful_rerun` regression test verifying `stall_reason` is cleared across all subtree steps after a successful rerun.
|
|
448
|
+
|
|
449
|
+
## [0.19.1] - 2026-03-05
|
|
450
|
+
|
|
451
|
+
### Fixed
|
|
452
|
+
- `read_last_message` now rescues `SystemCallError` to prevent I/O errors from masking the stall error message.
|
|
453
|
+
- Clear stale `stall_reason` from all subtree step files on successful fork-run completion, preventing misleading status after recovery.
|
|
454
|
+
|
|
455
|
+
### Technical
|
|
456
|
+
- Added comment in `ForkSessionLauncher` documenting the blocking assumption that makes the Layer 1 check-then-write pattern safe from concurrent writes.
|
|
457
|
+
|
|
458
|
+
## [0.19.0] - 2026-03-05
|
|
459
|
+
|
|
460
|
+
### Added
|
|
461
|
+
- Surface forked agent last message on stall: `fork-run` now reads the agent's last message from `<cache_dir>/sessions/<fork_root>-last-message.md` and includes it in the stall error output.
|
|
462
|
+
- `stall_reason` field added to Step model and frontmatter: persisted when a fork stall is detected, visible via `ace-assign status`.
|
|
463
|
+
- Two-layer last-message capture: `ForkSessionLauncher` writes `result[:text]` after session ends (Layer 1 for all providers); Codex gets timeout-resilient capture via `--output-last-message` (Layer 2).
|
|
464
|
+
|
|
465
|
+
## [0.18.2] - 2026-03-04
|
|
466
|
+
|
|
467
|
+
### Fixed
|
|
468
|
+
- Enforced single-active subtree invariants in fork execution paths: `fork-run` and scoped `advance` now reject multiple in-progress steps in the same subtree and reuse existing active subtree work instead of activating sibling steps.
|
|
469
|
+
|
|
470
|
+
### Changed
|
|
471
|
+
- QueueState now exposes `in_progress_steps` and `in_progress_in_subtree` helpers used by fork/scoped execution guards.
|
|
472
|
+
|
|
473
|
+
## [0.18.1] - 2026-03-04
|
|
474
|
+
|
|
475
|
+
### Changed
|
|
476
|
+
- Default assignment cache directory now uses `.ace-local/assign`.
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
## [0.18.0] - 2026-03-04
|
|
480
|
+
|
|
481
|
+
### Changed
|
|
482
|
+
- Normalize `providers.cli_args` values to arrays and support mixed string/array CLI argument merging in fork launcher.
|
|
483
|
+
|
|
484
|
+
## [0.17.3] - 2026-03-04
|
|
485
|
+
|
|
486
|
+
### Changed
|
|
487
|
+
- Convert review cycles in assignment presets and prepare fixtures to forked cycle-parent steps with `sub_steps: [review-pr, apply-feedback, release]` for valid/fit/shine cycles
|
|
488
|
+
- Align compose recipes to the forked review-cycle model and set default `review_cycles` to 3
|
|
489
|
+
- Update assign compose/prepare workflow instructions and examples to document forked review-cycle expansion semantics
|
|
490
|
+
|
|
491
|
+
## [0.17.2] - 2026-03-04
|
|
492
|
+
|
|
493
|
+
### Fixed
|
|
494
|
+
- Workflow instructions (create, drive, start) corrected to use `.ace-local/assign/` path (not `.ace-local/ace-assign/`)
|
|
495
|
+
|
|
496
|
+
## [0.17.1] - 2026-03-04
|
|
497
|
+
|
|
498
|
+
### Fixed
|
|
499
|
+
- README assignment storage path corrected to short-name convention (`.ace-local/assign/` not `.ace-local/ace-assign/`)
|
|
500
|
+
|
|
501
|
+
## [0.17.0] - 2026-03-04
|
|
502
|
+
|
|
503
|
+
### Changed
|
|
504
|
+
- Default cache directory migrated from `.cache/ace-assign` to `.ace-local/assign`
|
|
505
|
+
|
|
506
|
+
## [0.16.2] - 2026-03-04
|
|
507
|
+
|
|
508
|
+
### Changed
|
|
509
|
+
- Rename PR skill references in assignment defaults from `ace-git-create-pr` / `ace-git-update-pr-desc` to `ace-github-pr-create` / `ace-github-pr-update`
|
|
510
|
+
- Update PR skill references in assign workflows and E2E fixture presets to the new `ace-github-pr-*` naming convention
|
|
511
|
+
|
|
512
|
+
## [0.16.1] - 2026-03-04
|
|
513
|
+
|
|
514
|
+
### Fixed
|
|
515
|
+
- Correct `.agents/skills` typo to `.agent/skills` in default config and `SkillAssignSourceResolver` — skill discovery now uses the canonical provider-neutral path
|
|
516
|
+
|
|
517
|
+
## [0.16.0] - 2026-03-04
|
|
518
|
+
|
|
519
|
+
### Added
|
|
520
|
+
- New `onboard-base` catalog step — loads base project context via `ace-bundle project-base`
|
|
521
|
+
- New `task-load` catalog step — loads task behavioral spec via `ace-bundle task://<taskref>`
|
|
522
|
+
- Taskref placeholder substitution in catalog step descriptions — `<taskref>` in step descriptions is replaced with actual task reference during child instruction building
|
|
523
|
+
|
|
524
|
+
### Changed
|
|
525
|
+
- Default assignment presets updated to use ace-task
|
|
526
|
+
|
|
527
|
+
### Fixed
|
|
528
|
+
- Apply session 8q2 learnings to workflow and presets
|
|
529
|
+
|
|
530
|
+
### Technical
|
|
531
|
+
- Increase timeout for hierarchy E2E scenario
|
|
532
|
+
|
|
533
|
+
## [0.15.1] - 2026-03-01
|
|
534
|
+
|
|
535
|
+
### Added
|
|
536
|
+
- Fork-run crash recovery protocol in drive workflow — detection, commit partial work, progress report, inject recovery steps, re-fork pattern for partial completion scenarios
|
|
537
|
+
|
|
538
|
+
## [0.15.0] - 2026-02-28
|
|
539
|
+
|
|
540
|
+
### Added
|
|
541
|
+
- Add `verify-test-suite` step to `work-on-task` preset between `mark-task-done` and `verify-e2e` with profiling and performance budget enforcement
|
|
542
|
+
- Add `verify-test-suite` step (number 012) to `work-on-tasks` preset between batch-parent and `verify-e2e`
|
|
543
|
+
- Enrich `verify-test-suite` step catalog with structured steps: `run-package-tests`, `check-performance-budgets`, `fix-violations`, `run-suite`
|
|
544
|
+
- Add performance budget thresholds to step definition: atoms <50ms, molecules <100ms, integration <1s, full package <30s
|
|
545
|
+
- Move `verify-test-suite` from Optional to Core in compose workflow for "Implement + PR" and "Batch tasks" intents
|
|
546
|
+
- Add `verify-test-suite` inclusion guidance note to compose workflow Step Selection Guidelines
|
|
547
|
+
|
|
548
|
+
### Changed
|
|
549
|
+
- Strengthen `verify-test-suite` composition rule from `recommended` to `required` when assignment includes `work-on-task` or `fix-bug`
|
|
550
|
+
|
|
551
|
+
## [0.14.0] - 2026-02-28
|
|
552
|
+
|
|
553
|
+
### Added
|
|
554
|
+
- Add `verify-e2e` step to catalog: E2E coverage review and targeted scenario execution for modified packages
|
|
555
|
+
- Add `update-docs` step to catalog: public-facing documentation updates when CLI contracts or public APIs change
|
|
556
|
+
- Add `verify-e2e` and `update-docs` steps to `work-on-task` preset (between `mark-task-done` and `release-minor`, and between `release-minor` and `create-pr`)
|
|
557
|
+
- Add batch-level `verify-e2e` (step 015) and `update-docs` (step 025) to `work-on-tasks` preset
|
|
558
|
+
- Add ordering rules to `composition-rules.yml`: `e2e-before-release`, `update-docs-after-release`, `update-docs-before-pr`, `e2e-after-verify`
|
|
559
|
+
- Add conditional rule to suggest `verify-e2e` and `update-docs` when assignment touches CLI commands or public API
|
|
560
|
+
- Add `e2e-review-run-pair` and `docs-update-validate-pair` to composition pairs
|
|
561
|
+
- Update `compose.wf.md` Step Selection Guidelines table to include `verify-e2e` and `update-docs` in all relevant workflow intents with skip guidance
|
|
562
|
+
|
|
563
|
+
## [0.13.4] - 2026-02-26
|
|
564
|
+
|
|
565
|
+
### Fixed
|
|
566
|
+
- Restore scoped status filter compatibility by honoring legacy `filter` formats (`010.01` and `(assignment@)010.01`) while preserving explicit `--assignment` targeting precedence
|
|
567
|
+
- Restore scoped fork PID telemetry lines in `status` output (`Scoped Fork PID`, PID tree, and PID file path) when fork metadata exists
|
|
568
|
+
|
|
569
|
+
### Added
|
|
570
|
+
- Re-add explicit `--filter` option to `status` command for CLI-level backward compatibility
|
|
571
|
+
- Add regression coverage ensuring `assignment` target overrides `filter` when both are provided
|
|
572
|
+
|
|
573
|
+
## [0.13.3] - 2026-02-26
|
|
574
|
+
|
|
575
|
+
### Added
|
|
576
|
+
- Document `advance()` legacy bridge behavior with explanatory comment
|
|
577
|
+
- Add `start` and piped stdin examples to CLI `--help` output
|
|
578
|
+
- Add "Starting Work" section to `docs/usage.md` documenting sequential auto-advance, explicit `start`, and piped stdin
|
|
579
|
+
|
|
580
|
+
### Changed
|
|
581
|
+
- Use standard Keep a Changelog section headers (replace non-standard `Technical` with `Changed`)
|
|
582
|
+
|
|
583
|
+
## [0.13.2] - 2026-02-26
|
|
584
|
+
|
|
585
|
+
### Fixed
|
|
586
|
+
- Short-circuit stdin read in `finish` when `--report` file content is already present, preventing unnecessary I/O or blocking
|
|
587
|
+
- Narrow `rescue` in `read_stdin_if_piped` to `IOError, Errno::EBADF` instead of broad `StandardError`
|
|
588
|
+
- Validate `fork_root` existence in `find_target_step_for_start` consistently regardless of `step_number` presence
|
|
589
|
+
|
|
590
|
+
### Added
|
|
591
|
+
- Integration test for `finish` auto-advance and `start` conflict detection across sequential steps
|
|
592
|
+
- Test for `--report` file precedence over piped stdin when both are present
|
|
593
|
+
|
|
594
|
+
## [0.13.1] - 2026-02-26
|
|
595
|
+
|
|
596
|
+
### Fixed
|
|
597
|
+
- Raise `StepNotFoundError` in `start_step` and `finish_step` when `--assignment <id@root>` specifies a non-existent subtree root, preventing silent fallback to the global queue
|
|
598
|
+
- Use `ConfigNotFoundError` (exit 3) in `advance()` for missing report files, consistent with `finish` command behavior
|
|
599
|
+
|
|
600
|
+
### Added
|
|
601
|
+
- Add positive test cases for `start` and `finish` commands with explicit `step` argument targeting
|
|
602
|
+
|
|
603
|
+
## [0.13.0] - 2026-02-26
|
|
604
|
+
|
|
605
|
+
### Added
|
|
606
|
+
- Add `start` command for explicit step lifecycle control: `ace-assign start [STEP]`
|
|
607
|
+
- Add `finish` command replacing `report`: `ace-assign finish [STEP] --report <file>` or via piped stdin
|
|
608
|
+
- Support piped stdin as report source in `finish`, eliminating mandatory temp-file creation
|
|
609
|
+
- Enforce strict `start` conflict detection: fails when another step is already `in_progress`
|
|
610
|
+
- Add `start_step` and `finish_step` APIs to assignment executor for programmatic lifecycle control
|
|
611
|
+
|
|
612
|
+
### Changed
|
|
613
|
+
- Replace `ace-assign report` with `ace-assign finish --report <file>` across all docs and workflows
|
|
614
|
+
- Update `assign/create.wf.md` and `assign/drive.wf.md` to use `finish` command pattern
|
|
615
|
+
- Update `README.md`, `docs/usage.md`, and `docs/exit-codes.md` to reflect new command surface
|
|
616
|
+
- Deterministic report input precedence: `--report` file wins over stdin when both are present
|
|
617
|
+
|
|
618
|
+
### Removed
|
|
619
|
+
- Remove `report` command from CLI surface (replaced by `finish`)
|
|
620
|
+
|
|
621
|
+
### Changed
|
|
622
|
+
- Replace `report_command_test.rb` with `finish_command_test.rb` and `start_command_test.rb`
|
|
623
|
+
- Update e2e test runner docs in `ace-assign` and `ace-overseer` to use `finish` pattern
|
|
624
|
+
|
|
625
|
+
## [0.12.23] - 2026-02-26
|
|
626
|
+
|
|
627
|
+
### Fixed
|
|
628
|
+
- Anchor FORK column detection regex to CHILDREN pattern in `assign/drive` workflow, preventing false matches on step names containing 'yes'
|
|
629
|
+
|
|
630
|
+
## [0.12.22] - 2026-02-26
|
|
631
|
+
|
|
632
|
+
### Added
|
|
633
|
+
- Add explicit FORK column to status output showing "yes" for steps with children, making delegation signal unmissable
|
|
634
|
+
- Introduce adaptive recovery for failed subtrees with retry/fail-children strategies
|
|
635
|
+
- Introduce fork PID telemetry and scoped status filtering for subprocess tracking
|
|
636
|
+
|
|
637
|
+
### Changed
|
|
638
|
+
- Decouple assignment targeting from environment variables; rely on explicit `--assignment <id>` flags
|
|
639
|
+
- Enhance plan-task instructions for behavioral spec adherence
|
|
640
|
+
- Update `assign/drive` workflow to reference FORK column instead of subtle "Fork subtree detected" message
|
|
641
|
+
|
|
642
|
+
### Technical
|
|
643
|
+
- Add validation order to E2E test expectations
|
|
644
|
+
- Update E2E test runner and verifier configurations
|
|
645
|
+
- Add test for FORK column in status output
|
|
646
|
+
|
|
647
|
+
## [0.12.21] - 2026-02-25
|
|
648
|
+
|
|
649
|
+
### Changed
|
|
650
|
+
- Remove runtime assignment context coupling to `ACE_ASSIGN_ID` and `ACE_ASSIGN_FORK_ROOT`; assignment targeting now relies on explicit `--assignment <id>` and scoped `--assignment <id>@<step>` usage.
|
|
651
|
+
- Update `assign/drive` workflow and fork-context guide to use explicit assignment flags for subprocess delegation.
|
|
652
|
+
|
|
653
|
+
### Fixed
|
|
654
|
+
- Eliminate scoped report/status behavior that depended on mutable process environment, reducing cross-process/test leakage risk.
|
|
655
|
+
|
|
656
|
+
## [0.12.20] - 2026-02-25
|
|
657
|
+
|
|
658
|
+
### Changed
|
|
659
|
+
- Update generated `plan-task` step action instructions to require planning against behavioral spec sections, cover relevant operating modes, and report missing spec details in a `Behavioral Gaps` section
|
|
660
|
+
|
|
661
|
+
## [0.12.19] - 2026-02-24
|
|
662
|
+
|
|
663
|
+
### Fixed
|
|
664
|
+
- Apply assignment scope (`<id>@<step>`) during report execution by setting `ACE_ASSIGN_FORK_ROOT` for the report command, so child-step completions resolve in the correct subtree.
|
|
665
|
+
|
|
666
|
+
### Technical
|
|
667
|
+
- Harden TS-ASSIGN-002 hierarchy E2E runner/verifier instructions for scoped completion commands and scoped subtree status assertions.
|
|
668
|
+
|
|
669
|
+
## [0.12.18] - 2026-02-23
|
|
670
|
+
|
|
671
|
+
### Technical
|
|
672
|
+
- Updated internal dependency version constraints to current releases
|
|
673
|
+
|
|
674
|
+
## [0.12.17] - 2026-02-22
|
|
675
|
+
|
|
676
|
+
### Changed
|
|
677
|
+
- Migrate CLI to standard help pattern: register HelpCommand for `--help`/`-h`, simplify `start()` by removing DWIM default routing
|
|
678
|
+
|
|
679
|
+
## [0.12.16] - 2026-02-22
|
|
680
|
+
|
|
681
|
+
### Fixed
|
|
682
|
+
- Prevent fork subtree recursion by auto-scoping `status` command to `ACE_ASSIGN_FORK_ROOT` when set
|
|
683
|
+
- Mark first workable child step as `in_progress` before launching forked session in `fork-run`
|
|
684
|
+
|
|
685
|
+
## [0.12.15] - 2026-02-22
|
|
686
|
+
|
|
687
|
+
### Technical
|
|
688
|
+
- Update `ace-bundle project` → `ace-bundle load project` in README, fork-context guide, and test fixture
|
|
689
|
+
|
|
690
|
+
## [0.12.14] - 2026-02-22
|
|
691
|
+
|
|
692
|
+
### Added
|
|
693
|
+
- Subtree guard step in drive workflow — driver reviews all fork report files before continuing to next step
|
|
694
|
+
- Report review instruction in split-subtree-root step template for fork context
|
|
695
|
+
|
|
696
|
+
## [0.12.13] - 2026-02-22
|
|
697
|
+
|
|
698
|
+
### Added
|
|
699
|
+
- Background execution guidance for fork-run in drive workflow (10-30 min timeout handling)
|
|
700
|
+
- Timeout note in split-subtree-root step template for environments with bash limits
|
|
701
|
+
|
|
702
|
+
## [0.12.11] - 2026-02-22
|
|
703
|
+
|
|
704
|
+
### Changed
|
|
705
|
+
- Migrate skill naming and invocation references to hyphenated `ace-*` format (no underscores).
|
|
706
|
+
|
|
707
|
+
## [0.12.10] - 2026-02-21
|
|
708
|
+
|
|
709
|
+
### Technical
|
|
710
|
+
- Stabilize `TS-ASSIGN-004` by replacing live `fork-run` invocation with deterministic scoped `status --assignment <id>@<step>` assertions
|
|
711
|
+
- Rewrite `TS-ASSIGN-006` to deterministic preset-expansion verification using `Ace::Assign::Atoms::PresetExpander` (no chat-skill invocation dependency)
|
|
712
|
+
- Add prepare-workflow fixture presets (`work-on-task.yml`, `work-on-tasks.yml`) for reproducible E2E generation checks
|
|
713
|
+
|
|
714
|
+
## [0.12.9] - 2026-02-21
|
|
715
|
+
|
|
716
|
+
### Changed
|
|
717
|
+
- Migrate skill name references to colon-free convention (`ace_domain_action` format) for non-Claude Code agent compatibility
|
|
718
|
+
- Update catalog steps and presets with new skill name format
|
|
719
|
+
- Update workflow instructions with new skill invocation patterns
|
|
720
|
+
|
|
721
|
+
## [0.12.8] - 2026-02-21
|
|
722
|
+
|
|
723
|
+
### Added
|
|
724
|
+
- Verification instructions in `mark-task-done` step requiring status confirmation after `ace-taskflow task done`
|
|
725
|
+
- Subtree completion section in drive workflow requiring task status verification before reporting complete
|
|
726
|
+
|
|
727
|
+
## [0.12.7] - 2026-02-21
|
|
728
|
+
|
|
729
|
+
### Fixed
|
|
730
|
+
- Add `CACHE_BASE` env var support to `cache_dir` so E2E sandboxes resolve the correct cache path
|
|
731
|
+
- Graceful return in `advance()` when fork subtree is exhausted (prevents "No step currently in progress" error)
|
|
732
|
+
- Nil guard in `report` command when `advance()` returns `completed: nil` after subtree exhaustion
|
|
733
|
+
|
|
734
|
+
## [0.12.6] - 2026-02-21
|
|
735
|
+
|
|
736
|
+
### Technical
|
|
737
|
+
- Add E2E tests for prepare workflow (from preset and from informal instructions)
|
|
738
|
+
- Fix `ASSIGNMENT_DIR` lookup in injection/renumbering E2E tests to use dynamic directory discovery
|
|
739
|
+
- Reorganize TS-ASSIGN-003b fixtures: replace flat `job.yaml` with structured `steps/` directory
|
|
740
|
+
|
|
741
|
+
## [0.12.5] - 2026-02-20
|
|
742
|
+
|
|
743
|
+
### Technical
|
|
744
|
+
- Update slash command refs to use git namespace (ace:git-create-pr, ace:git-update-pr-desc)
|
|
745
|
+
|
|
746
|
+
## [0.12.4] - 2026-02-19
|
|
747
|
+
|
|
748
|
+
### Technical
|
|
749
|
+
- Namespace workflow instructions into domain-specific subdirectories with updated wfi:// protocol URIs
|
|
750
|
+
- Update skill name references to use namespaced ace:namespace-action format
|
|
751
|
+
|
|
752
|
+
## [0.12.3] - 2026-02-19
|
|
753
|
+
|
|
754
|
+
### Changed
|
|
755
|
+
- Added clarifying comments for `skill: null` and `context.default: null` in reflect-and-refactor step
|
|
756
|
+
|
|
757
|
+
## [0.12.2] - 2026-02-19
|
|
758
|
+
|
|
759
|
+
### Changed
|
|
760
|
+
- Clarified `reflect-after-verify` ordering note to distinguish baseline verify from post-refactor re-verify
|
|
761
|
+
- Consolidated duplicate conditional suggestions for `work-on-task` into single entry with per-step strength overrides
|
|
762
|
+
|
|
763
|
+
## [0.12.1] - 2026-02-19
|
|
764
|
+
|
|
765
|
+
### Fixed
|
|
766
|
+
- `reflect-verify-cycle` pair changed from `sequential` to `conditional` — prevents overriding optional strength of reflect-and-refactor
|
|
767
|
+
- Renamed `max_recursion` to `max_reruns` in replan config for clarity
|
|
768
|
+
|
|
769
|
+
## [0.12.0] - 2026-02-19
|
|
770
|
+
|
|
771
|
+
### Added
|
|
772
|
+
- New `reflect-and-refactor` step in catalog — analyzes implementation against ATOM principles and executes targeted refactoring before PR creation
|
|
773
|
+
- Composition rules for reflect-and-refactor: ordering (after verify, before mark-done/release/retro), pairs (verify cycle, fix cycle, replan cycle), and conditional suggestion
|
|
774
|
+
- `create-retro` step now consumes `findings-report` from reflect-and-refactor as recommended prerequisite
|
|
775
|
+
- `implement-with-pr` recipe updated to include optional reflect-and-refactor step after work-on-task
|
|
776
|
+
|
|
777
|
+
## [0.11.18] - 2026-02-19
|
|
778
|
+
|
|
779
|
+
### Changed
|
|
780
|
+
- Remove dead `print_fork_scope_guidance` method and duplicate `fork_scope_root` definition from status command
|
|
781
|
+
|
|
782
|
+
## [0.11.17] - 2026-02-17
|
|
783
|
+
|
|
784
|
+
### Fixed
|
|
785
|
+
|
|
786
|
+
- `assignment_state` now checks `completed` before `failed` — assignments where all steps are done/failed correctly report `:completed` instead of `:failed`
|
|
787
|
+
|
|
788
|
+
### Added
|
|
789
|
+
|
|
790
|
+
- `recently_active?` method on `QueueState` to detect stale in-progress steps (threshold: 1 hour)
|
|
791
|
+
- New `:stalled` assignment state for in-progress steps with no recent activity
|
|
792
|
+
|
|
793
|
+
## [0.11.16] - 2026-02-17
|
|
794
|
+
|
|
795
|
+
### Added
|
|
796
|
+
|
|
797
|
+
- `current_in_subtree` method on `QueueState` to find in-progress step within a subtree
|
|
798
|
+
|
|
799
|
+
### Fixed
|
|
800
|
+
|
|
801
|
+
- Fork root executor now checks for existing in-progress step in subtree before advancing to next workable step
|
|
802
|
+
|
|
803
|
+
## [0.11.15] - 2026-02-17
|
|
804
|
+
|
|
805
|
+
### Added
|
|
806
|
+
- New catalog step definition `split-subtree-root` for split parent/fork-root orchestration instructions (default template in `.ace-defaults/assign/catalog/steps/`)
|
|
807
|
+
|
|
808
|
+
### Changed
|
|
809
|
+
- Split parent steps with `sub_steps` now materialize as orchestration-only subtree roots:
|
|
810
|
+
- parent `skill` is removed to avoid duplicate execution semantics
|
|
811
|
+
- parent keeps `source_skill` metadata for traceability
|
|
812
|
+
- parent instructions are rendered from catalog template (project-overridable)
|
|
813
|
+
- Step catalog resolution now merges project overrides with default catalog by step name, so projects can override a single step definition without replacing the entire catalog
|
|
814
|
+
|
|
815
|
+
### Fixed
|
|
816
|
+
- Fork root parent steps no longer instruct direct `work-on-task` execution and now clearly drive subtree delegation/execution (`fork-run` + `assign-drive`) through child steps
|
|
817
|
+
|
|
818
|
+
## [0.11.14] - 2026-02-17
|
|
819
|
+
|
|
820
|
+
### Fixed
|
|
821
|
+
- Scoped status rendering for nested roots (for example `--assignment <id>@010.01`) now prints the subtree hierarchy correctly instead of collapsing to an empty queue section
|
|
822
|
+
- Runtime-expanded child steps now use explicit `taskref` metadata (when present) for deterministic task context, and preserve it in child step frontmatter
|
|
823
|
+
- Fork session launcher now loads `ace/llm` so `fork-run` handles provider errors without crashing on uninitialized LLM error constants
|
|
824
|
+
|
|
825
|
+
### Changed
|
|
826
|
+
- Preset expansion now substitutes placeholders across all step fields (including nested metadata), not only `name` and `instructions`
|
|
827
|
+
|
|
828
|
+
## [0.11.13] - 2026-02-17
|
|
829
|
+
|
|
830
|
+
### Fixed
|
|
831
|
+
- Scoped status (`--assignment <id>@<step>`) now selects the actionable step within the subtree instead of always reporting the scope root as current
|
|
832
|
+
- Runtime sub-step expansion now generates step-specific action instructions per child step and keeps parent goals as a verification checklist (instead of copy-pasting orchestration text into every child)
|
|
833
|
+
|
|
834
|
+
## [0.11.12] - 2026-02-17
|
|
835
|
+
|
|
836
|
+
### Added
|
|
837
|
+
- E2E regression scenario `TS-ASSIGN-005-no-skip-policy` to enforce hard no-skip drive policy and keep `ace:assign-drive` skill thin
|
|
838
|
+
|
|
839
|
+
### Changed
|
|
840
|
+
- `drive-assignment` workflow now enforces hard no-skip execution for planned steps and removes skip-assessment behavior
|
|
841
|
+
- Added required attempt-first failure evidence (command + exact error) and post-report/fail status transition verification in drive workflow
|
|
842
|
+
|
|
843
|
+
## [0.11.11] - 2026-02-17
|
|
844
|
+
|
|
845
|
+
### Changed
|
|
846
|
+
- `drive-assignment` workflow now auto-delegates detected fork-enabled subtrees via `ace-assign fork-run --assignment <id>@<root>` before inline step execution
|
|
847
|
+
- Fork context guide now documents the runtime delegation path where parent drive sessions detect subtree roots and delegate scoped execution with `fork-run`
|
|
848
|
+
|
|
849
|
+
## [0.11.10] - 2026-02-17
|
|
850
|
+
|
|
851
|
+
### Changed
|
|
852
|
+
- Use `Atoms::NumberGenerator.subtask` for sub-step numbering in runtime expansion to keep numbering logic centralized
|
|
853
|
+
- Tree formatter state labels now explicitly include `pending` and `in_progress`
|
|
854
|
+
|
|
855
|
+
### Fixed
|
|
856
|
+
- Added coverage for fork-scoped advancement when global current step is outside scoped subtree
|
|
857
|
+
- Added stable tests for CLI provider env propagation and query-interface sandbox propagation
|
|
858
|
+
|
|
859
|
+
## [0.11.9] - 2026-02-17
|
|
860
|
+
|
|
861
|
+
### Added
|
|
862
|
+
- Regression coverage for fork-scoped advancement when global current step is outside the scoped subtree
|
|
863
|
+
|
|
864
|
+
### Changed
|
|
865
|
+
- `ace-assign status` now prints explicit `Current Status: <status>` for easier machine parsing and E2E assertions
|
|
866
|
+
|
|
867
|
+
### Fixed
|
|
868
|
+
- Fork-scoped report advancement now selects and completes the next in-subtree step instead of completing an out-of-scope global current step
|
|
869
|
+
- E2E assertions for `parent` frontmatter now accept both single-quoted and double-quoted YAML scalars to avoid formatting-only false negatives
|
|
870
|
+
|
|
871
|
+
## [0.11.8] - 2026-02-17
|
|
872
|
+
|
|
873
|
+
### Added
|
|
874
|
+
- Shared assignment target parser for CLI commands with scoped syntax support: `--assignment <id>@<step>`
|
|
875
|
+
- New command tests covering assignment target parsing and scoped subtree execution behavior
|
|
876
|
+
- New E2E scenario scaffold for fork subtree scope isolation verification (`TS-ASSIGN-004`)
|
|
877
|
+
|
|
878
|
+
### Changed
|
|
879
|
+
- Assignment-targeting commands (`status`, `report`, `fail`, `add`, `retry`, `fork-run`) now use a shared target resolver
|
|
880
|
+
- `ace-assign fork-run` accepts subtree root from scoped assignment target (`<id>@<step>`) and validates conflicts with `--root`
|
|
881
|
+
- Scoped status output (`--assignment <id>@<step>`) now renders only the selected node subtree and uses the scope root as displayed current step
|
|
882
|
+
|
|
883
|
+
### Fixed
|
|
884
|
+
- Removed global current-step coupling in `fork-run` so subtree execution can start from any explicitly scoped root node
|
|
885
|
+
|
|
886
|
+
## [0.11.7] - 2026-02-17
|
|
887
|
+
|
|
888
|
+
### Added
|
|
889
|
+
- `ForkSessionLauncher` molecule to execute forked subtree sessions synchronously via `ace-llm` (`/ace:assign-drive`)
|
|
890
|
+
- Fork execution config defaults under assign namespace:
|
|
891
|
+
- `execution.provider`, `execution.timeout`
|
|
892
|
+
- `providers.cli`, `providers.cli_args`
|
|
893
|
+
|
|
894
|
+
### Changed
|
|
895
|
+
- `ace-assign fork-run` now launches provider sessions directly (blocking) instead of printing shell instructions
|
|
896
|
+
- `fork-run` supports `--provider`, `--cli-args`, and `--timeout` overrides
|
|
897
|
+
- Post-launch validation enforces subtree outcome: complete (success), failed/incomplete (error)
|
|
898
|
+
|
|
899
|
+
### Technical
|
|
900
|
+
- Add `ace-llm` runtime dependency for provider-driven fork execution
|
|
901
|
+
- Add command and molecule tests for launcher integration and fork-run completion/error paths
|
|
902
|
+
|
|
903
|
+
## [0.11.6] - 2026-02-17
|
|
904
|
+
|
|
905
|
+
### Added
|
|
906
|
+
- `ace-assign fork-run` command to initialize subtree-scoped fork execution using `ACE_ASSIGN_ID` and `ACE_ASSIGN_FORK_ROOT`
|
|
907
|
+
- Subtree scope helpers in queue state (`in_subtree?`, `subtree_steps`, `subtree_complete?`, `next_workable_in_subtree`, `nearest_fork_ancestor`)
|
|
908
|
+
|
|
909
|
+
### Changed
|
|
910
|
+
- Status output now detects forked ancestor scope and guides operators to run `fork-run` for whole-subtree delegation
|
|
911
|
+
- Report output now distinguishes subtree completion from full assignment completion when fork scope is active
|
|
912
|
+
- Fork context guide and workflow docs updated for explicit parent-only fork semantics and subtree execution model
|
|
913
|
+
|
|
914
|
+
### Fixed
|
|
915
|
+
- Split-substep expansion no longer writes `context: fork` on child steps (`onboard`, `plan-task`, `work-on-task`) when parent is forked
|
|
916
|
+
- Queue advancement in fork scope now stays inside `ACE_ASSIGN_FORK_ROOT` subtree and does not leak into sibling steps
|
|
917
|
+
|
|
918
|
+
## [0.11.5] - 2026-02-17
|
|
919
|
+
|
|
920
|
+
### Fixed
|
|
921
|
+
- Ensure runtime-expanded sub-steps are concrete and executable by materializing catalog metadata (skill, step focus) instead of generic placeholder instructions
|
|
922
|
+
- Preserve task context during sub-step expansion so child steps receive parent task instructions for deterministic parameter extraction
|
|
923
|
+
- Start assignments on the first workable leaf step (not parent container steps), preventing blocked progression in parent-child trees
|
|
924
|
+
- Use a single fork entrypoint for forked sub-step subtrees (first child), avoiding nested fork-per-child behavior
|
|
925
|
+
|
|
926
|
+
## [0.11.4] - 2026-02-17
|
|
927
|
+
|
|
928
|
+
### Changed
|
|
929
|
+
- Clarify assignment responsibility boundaries in workflow docs:
|
|
930
|
+
- `compose-assignment` is catalog-only and no longer models source/frontmatter ingestion
|
|
931
|
+
- `start-assignment` explicitly distinguishes catalog composition vs deterministic prepare/runtime expansion
|
|
932
|
+
- `prepare-assignment` explicitly documents runtime metadata expansion as the canonical path
|
|
933
|
+
- Update assignment skills metadata to reflect compose/prepare boundary semantics
|
|
934
|
+
|
|
935
|
+
## [0.11.3] - 2026-02-17
|
|
936
|
+
|
|
937
|
+
### Added
|
|
938
|
+
- `SkillAssignSourceResolver` molecule to resolve skill frontmatter `assign.source` URIs (currently `wfi://...`) into workflow assignment metadata
|
|
939
|
+
- Default config paths for skill/workflow discovery:
|
|
940
|
+
- `skill_source_paths`: `.agents/skills`, `.claude/skills`
|
|
941
|
+
- `workflow_source_paths`: `ace-taskflow/handbook/workflow-instructions`, `ace-assign/handbook/workflow-instructions`
|
|
942
|
+
|
|
943
|
+
### Changed
|
|
944
|
+
- `AssignmentExecutor.start` now enriches steps with skill-declared workflow `assign.sub-steps` before expansion, enabling deterministic runtime sub-step materialization without compose-specific wiring
|
|
945
|
+
- `compose-assignment` workflow is now catalog-only and no longer documents source/frontmatter-driven step composition
|
|
946
|
+
|
|
947
|
+
## [0.11.2] - 2026-02-16
|
|
948
|
+
|
|
949
|
+
### Technical
|
|
950
|
+
- Add test cases for new composition ordering rules (`onboard-before-plan`, `plan-before-implementation`) and conditional `plan-task` suggestion
|
|
951
|
+
|
|
952
|
+
## [0.11.1] - 2026-02-16
|
|
953
|
+
|
|
954
|
+
### Fixed
|
|
955
|
+
- Consolidate duplicate conditional trigger for work-on-task in composition-rules
|
|
956
|
+
|
|
957
|
+
## [0.11.0] - 2026-02-16
|
|
958
|
+
|
|
959
|
+
### Added
|
|
960
|
+
- JIT plan-task step in implement-with-pr and implement-simple recipes (optional, between onboard and work-on-task)
|
|
961
|
+
- Composition rules: `onboard-before-plan` and `plan-before-implementation` ordering
|
|
962
|
+
- Conditional suggestion: recommend plan-task when work-on-task is included
|
|
963
|
+
|
|
964
|
+
### Changed
|
|
965
|
+
- plan-task step catalog entry: produces `[implementation-plan]` only (removed `task-spec`), consumes `[project-context, task-spec]`
|
|
966
|
+
|
|
967
|
+
## [0.10.2] - 2026-02-16
|
|
968
|
+
|
|
969
|
+
### Changed
|
|
970
|
+
- Rename review cycle steps by type: `review-cycle-1` → `review-valid-1`, `review-cycle-2` → `review-fit-1` (with matching apply/release steps)
|
|
971
|
+
- Add shine review cycle (`review-shine-1`, `apply-shine-1`, `release-shine-1`) to `work-on-task` and `work-on-tasks` presets
|
|
972
|
+
- Update `default_count` from 2 to 3 in composition rules to reflect three review types (valid, fit, shine)
|
|
973
|
+
- Renumber post-review steps: reorganize-commits → 130, push-to-remote → 140, update-pr-desc → 150
|
|
974
|
+
|
|
975
|
+
## [0.10.1] - 2026-02-16
|
|
976
|
+
|
|
977
|
+
### Added
|
|
978
|
+
- **Preset progression**: `preset_progression` mapping in composition rules (cycle 1→`code-valid`, 2→`code-fit`, 3→`code-shine`)
|
|
979
|
+
|
|
980
|
+
### Changed
|
|
981
|
+
- Review cycle presets in `work-on-task.yml` and `work-on-tasks.yml` now use step-specific presets instead of `code-deep`
|
|
982
|
+
- Updated `implement-with-pr.recipe.yml` to reference `preset_progression` from composition rules
|
|
983
|
+
- Updated `compose-assignment.wf.md` with preset progression documentation and examples
|
|
984
|
+
|
|
985
|
+
## [0.9.3] - 2026-02-15
|
|
986
|
+
|
|
987
|
+
### Fixed
|
|
988
|
+
- **AssignFrontmatterParser**: Validate that hint `include`/`skip` values are strings (rejects non-string types with descriptive error)
|
|
989
|
+
|
|
990
|
+
## [0.9.2] - 2026-02-14
|
|
991
|
+
|
|
992
|
+
### Fixed
|
|
993
|
+
|
|
994
|
+
- Frontmatter parser now rejects hints with both `include` and `skip` (mutual exclusivity validation)
|
|
995
|
+
|
|
996
|
+
## [0.9.1] - 2026-02-14
|
|
997
|
+
|
|
998
|
+
### Fixed
|
|
999
|
+
|
|
1000
|
+
- Tree formatter now correctly handles child-before-parent input ordering (two-pass index build)
|
|
1001
|
+
- Added regression test for unordered tree formatter input
|
|
1002
|
+
|
|
1003
|
+
## [0.9.0] - 2026-02-15
|
|
1004
|
+
|
|
1005
|
+
### Added
|
|
1006
|
+
|
|
1007
|
+
- Declarative assignment frontmatter: `assign:` block in `.s.md` and `.wf.md` files declares assignment intent (goal, variables, hints, sub-steps, context, parent)
|
|
1008
|
+
- `AssignFrontmatterParser` atom for extracting and validating `assign:` frontmatter blocks
|
|
1009
|
+
- `TreeFormatter` atom for rendering assignment hierarchy as indented tree with Unicode connectors
|
|
1010
|
+
- Parent-child assignment linking via `parent` field in Assignment model
|
|
1011
|
+
- `ace-assign list --tree` option for hierarchical assignment view
|
|
1012
|
+
- Sub-step fork enforcement in executor: steps with sub-steps create batch parent in fork context
|
|
1013
|
+
- Compose workflow integration: step 0 reads `assign:` frontmatter as structured input
|
|
1014
|
+
- `documentation.recipe.yml` for documentation workflows with research step
|
|
1015
|
+
- `release-only.recipe.yml` for version bump workflows without code changes
|
|
1016
|
+
- `work-on-docs.yml` preset exposing documentation workflow
|
|
1017
|
+
- `release-only.yml` preset exposing release-only workflow
|
|
1018
|
+
- `quick-implement.yml` preset for simple task implementation
|
|
1019
|
+
- `fix-bug.yml` preset for bug fix with review workflow
|
|
1020
|
+
|
|
1021
|
+
### Changed
|
|
1022
|
+
|
|
1023
|
+
- Update timestamp dependency from `ace-support-timestamp` to `ace-b36ts`
|
|
1024
|
+
|
|
1025
|
+
## [0.8.3] - 2026-02-14
|
|
1026
|
+
|
|
1027
|
+
### Added
|
|
1028
|
+
|
|
1029
|
+
- New `mark-task-done` step for marking tasks as done in ace-taskflow after implementation
|
|
1030
|
+
- Composition rule to order `mark-task-done` after `work-on-task`
|
|
1031
|
+
- Conditional rule suggesting `mark-task-done` when assignment includes `work-on-task`
|
|
1032
|
+
- `mark-task-done` step in `work-on-task` preset (runs `ace-taskflow task done`)
|
|
1033
|
+
- Mark-done instruction in `work-on-tasks` child template for per-task completion
|
|
1034
|
+
- `mark-task-done` step in `implement-with-pr`, `implement-simple`, and `fix-and-review` recipes
|
|
1035
|
+
|
|
1036
|
+
## [0.8.2] - 2026-02-13
|
|
1037
|
+
|
|
1038
|
+
### Fixed
|
|
1039
|
+
|
|
1040
|
+
- `list` command now shows filtered count context (e.g., `1/2 assignment(s) shown`) when completed assignments are hidden
|
|
1041
|
+
|
|
1042
|
+
## [0.8.1] - 2026-02-13
|
|
1043
|
+
|
|
1044
|
+
### Added
|
|
1045
|
+
|
|
1046
|
+
- Tests for `--assignment` flag targeting on `add`, `fail`, `report`, and `retry` commands
|
|
1047
|
+
- Performance documentation note on `AssignmentDiscoverer#find_all`
|
|
1048
|
+
|
|
1049
|
+
### Fixed
|
|
1050
|
+
|
|
1051
|
+
- Null safety for `info.name` in `list` command table output
|
|
1052
|
+
|
|
1053
|
+
## [0.8.0] - 2026-02-13
|
|
1054
|
+
|
|
1055
|
+
### Added
|
|
1056
|
+
|
|
1057
|
+
- Multi-assignment support with `.current` symlink for explicit assignment selection
|
|
1058
|
+
- `ace-assign list` command with table/JSON output, `--task` filter, and `--all` flag
|
|
1059
|
+
- `ace-assign select <id>` command for switching active assignment
|
|
1060
|
+
- `AssignmentInfo` model wrapping assignment with computed state and progress
|
|
1061
|
+
- `AssignmentDiscoverer` molecule for finding and filtering assignments
|
|
1062
|
+
- `--assignment` flag on `status`, `report`, `fail`, `add`, and `retry` commands
|
|
1063
|
+
- `ACE_ASSIGN_ID` environment variable for workflow context propagation
|
|
1064
|
+
- Assignment state computation: running, paused, completed, failed
|
|
1065
|
+
- Other assignments section in `status` output
|
|
1066
|
+
- Context propagation and multi-assignment management documentation in drive-assignment workflow
|
|
1067
|
+
|
|
1068
|
+
## [0.7.5] - 2026-02-13
|
|
1069
|
+
|
|
1070
|
+
### Fixed
|
|
1071
|
+
|
|
1072
|
+
- Misplaced doc block: `check_pair_completeness` documentation was above `check_conditional_rule`
|
|
1073
|
+
- Duplicate examples in `prepare-assignment.wf.md` now accurately reflect renamed `work-on-task` preset
|
|
1074
|
+
- `CatalogLoader.parse_step_file` now warns on stderr when a step YAML file fails to parse (was silently returning nil)
|
|
1075
|
+
- `compose-assignment.wf.md` uses Read/Glob tool references instead of `cat`/`ls` per project conventions
|
|
1076
|
+
|
|
1077
|
+
### Changed
|
|
1078
|
+
|
|
1079
|
+
- Added inline documentation for prefix matching constraints in `find_step_index`
|
|
1080
|
+
- Added comment clarifying that mixed "and"/"or" conjunctions are not supported in conditional rules
|
|
1081
|
+
|
|
1082
|
+
## [0.7.4] - 2026-02-13
|
|
1083
|
+
|
|
1084
|
+
### Added
|
|
1085
|
+
|
|
1086
|
+
- New step catalog entries: `push-to-remote`, `release`, `reorganize-commits`
|
|
1087
|
+
|
|
1088
|
+
### Fixed
|
|
1089
|
+
|
|
1090
|
+
- Missing `skill: ace:apply-feedback` in work-on-tasks preset apply-feedback steps
|
|
1091
|
+
- Ordering rules now match suffixed step names via prefix matching (e.g., `release` matches `release-minor`, `release-patch-1`)
|
|
1092
|
+
- Conditional composition rules with "and" conjunction now correctly require all conditions (was using `any?` instead of `all?`)
|
|
1093
|
+
|
|
1094
|
+
### Changed
|
|
1095
|
+
|
|
1096
|
+
- Renamed `work-on-task-with-pr` preset to `work-on-task` (now the default/primary workflow)
|
|
1097
|
+
- Updated workflow documentation to reflect preset rename
|
|
1098
|
+
|
|
1099
|
+
## [0.7.3] - 2026-02-13
|
|
1100
|
+
|
|
1101
|
+
### Added
|
|
1102
|
+
|
|
1103
|
+
- **Step catalog system**: Registry of available step types with prerequisites, produces/consumes, context defaults, and skip conditions (14 step definitions)
|
|
1104
|
+
- **Composition rules**: Declarative ordering constraints, step pairs, and conditional suggestions for intelligent assignment composition
|
|
1105
|
+
- **Recipe system**: Flexible example patterns replacing rigid presets (4 recipes: implement-with-pr, implement-simple, batch-tasks, fix-and-review)
|
|
1106
|
+
- **Compose-assignment workflow**: LLM-driven assignment composition from step catalog and user intent
|
|
1107
|
+
- `CatalogLoader` atom for loading and querying step catalog YAML files
|
|
1108
|
+
- `CompositionRules` atom for loading, validating ordering, and suggesting step additions
|
|
1109
|
+
- Conditional composition rule logic in `suggest_additions` for context-dependent step suggestions
|
|
1110
|
+
|
|
1111
|
+
### Changed
|
|
1112
|
+
|
|
1113
|
+
- Drive-assignment workflow now includes step decision points for skip assessment and adaptation
|
|
1114
|
+
- Start-assignment workflow updated to offer compose as alternative path
|
|
1115
|
+
|
|
1116
|
+
### Fixed
|
|
1117
|
+
|
|
1118
|
+
- `apply-feedback.step.yml` now correctly references `ace:apply-feedback` skill (was null)
|
|
1119
|
+
|
|
1120
|
+
## [0.7.2] - 2026-02-12
|
|
1121
|
+
|
|
1122
|
+
### Changed
|
|
1123
|
+
|
|
1124
|
+
- E2E tests renamed from COWORKER to ASSIGN terminology
|
|
1125
|
+
- All test references updated: coworker → assign, session → assignment, step → step, jobs → steps
|
|
1126
|
+
|
|
1127
|
+
## [0.7.1] - 2026-02-11
|
|
1128
|
+
|
|
1129
|
+
### Fixed
|
|
1130
|
+
|
|
1131
|
+
- E2E test scenario.yml files now use correct `test-id` field (was `test-suite-id`)
|
|
1132
|
+
- E2E test case .tc.md files now use correct `tc-id` field (was `test-id`)
|
|
1133
|
+
|
|
1134
|
+
## [0.7.0] - 2026-02-11
|
|
1135
|
+
|
|
1136
|
+
### Fixed
|
|
1137
|
+
|
|
1138
|
+
- Array instruction substitution in foreach expansion now properly handles {{item}} placeholders
|
|
1139
|
+
- Removed deprecated work-on-task preset (use `/ace:work-on-task` skill directly)
|
|
1140
|
+
|
|
1141
|
+
### Changed
|
|
1142
|
+
|
|
1143
|
+
- work-on-tasks preset simplified with onboard step and direct skill delegation
|
|
1144
|
+
|
|
1145
|
+
## [0.6.0] - 2026-02-11
|
|
1146
|
+
|
|
1147
|
+
### Changed
|
|
1148
|
+
|
|
1149
|
+
- Package renamed from ace-coworker to ace-assign
|
|
1150
|
+
- Internal "session" concept renamed to "assignment"
|
|
1151
|
+
- Internal "step" concept renamed to "step"
|
|
1152
|
+
- Step file extension changed from .j.md to .st.md
|
|
1153
|
+
- Cache directory changed from .cache/ace-coworker/ to .cache/ace-assign/
|
|
1154
|
+
- Skills renamed from /ace:coworker-* to /ace:assign-*
|
|
1155
|
+
- New combined /ace:assign-start skill added (prepare + create in one step)
|
|
1156
|
+
|
|
1157
|
+
## [0.5.3] - 2026-02-01
|
|
1158
|
+
|
|
1159
|
+
### Changed
|
|
1160
|
+
|
|
1161
|
+
- Removed `prepare` CLI command - use `/ace:assign-prepare` workflow instead (handles informal instructions and customizations)
|
|
1162
|
+
|
|
1163
|
+
## [0.5.2] - 2026-01-31
|
|
1164
|
+
|
|
1165
|
+
### Fixed
|
|
1166
|
+
|
|
1167
|
+
- `prepare` CLI now uses Base36 timestamps (e.g., `8ouxjt`) instead of datetime format
|
|
1168
|
+
- `prepare` CLI now outputs step files to task's `steps/` folder (e.g., `.ace-taskflow/v.0.9.0/tasks/253-xxx/steps/`) when task refs provided
|
|
1169
|
+
- Correctly extracts parent task ID from subtask refs (e.g., `253.01` -> task folder `253-xxx`)
|
|
1170
|
+
|
|
1171
|
+
## [0.5.1] - 2026-01-31
|
|
1172
|
+
|
|
1173
|
+
### Fixed
|
|
1174
|
+
|
|
1175
|
+
- `prepare` CLI command now actually works - implements preset loading, parameter parsing, and job.yaml generation (was just a stub in 0.5.0)
|
|
1176
|
+
|
|
1177
|
+
## [0.5.0] - 2026-01-31
|
|
1178
|
+
|
|
1179
|
+
### Added
|
|
1180
|
+
|
|
1181
|
+
- **Multi-task step preparation**: New `work-on-tasks` preset enables batch processing of multiple tasks in a single job
|
|
1182
|
+
- `PresetExpander` atom for expanding preset templates with `expansion:` directives
|
|
1183
|
+
- Support for `batch-parent` and `foreach` expansion directives in presets
|
|
1184
|
+
- Array parameter parsing supporting comma-separated (`148,149,150`), range (`148-152`), and pattern (`240.*`) syntax
|
|
1185
|
+
- Pre-assigned step numbers in job.yaml are now preserved by AssignmentExecutor
|
|
1186
|
+
- Updated prepare-assignment workflow documentation with multi-task examples
|
|
1187
|
+
|
|
1188
|
+
### Fixed
|
|
1189
|
+
|
|
1190
|
+
- CLI help commands now return exit code 0 correctly
|
|
1191
|
+
|
|
1192
|
+
## [0.4.3] - 2026-01-30
|
|
1193
|
+
|
|
1194
|
+
### Changed
|
|
1195
|
+
|
|
1196
|
+
- Rewrote MT-ASSIGN-003 E2E test to match implemented behavior (dynamic hierarchy via `add --after --child` instead of static config)
|
|
1197
|
+
|
|
1198
|
+
### Technical
|
|
1199
|
+
|
|
1200
|
+
- MT-ASSIGN-003 test verified and stamped
|
|
1201
|
+
|
|
1202
|
+
## [0.4.2] - 2026-01-30
|
|
1203
|
+
|
|
1204
|
+
### Fixed
|
|
1205
|
+
|
|
1206
|
+
- MAX_DEPTH constant corrected to 2 (allowing 3 levels max: 010.01.01) to match documented behavior
|
|
1207
|
+
- CLI `add --child` command now validates depth upfront with clear error message before calling executor
|
|
1208
|
+
|
|
1209
|
+
### Changed
|
|
1210
|
+
|
|
1211
|
+
- `auto_complete_parents` now emits warning when safety iteration limit is reached
|
|
1212
|
+
- `rollback_renames` now captures and reports rollback failures instead of silently swallowing them
|
|
1213
|
+
|
|
1214
|
+
## [0.4.1] - 2026-01-30
|
|
1215
|
+
|
|
1216
|
+
### Changed
|
|
1217
|
+
|
|
1218
|
+
- `Ace::Assign.cache_dir` now returns an absolute path resolved from project root
|
|
1219
|
+
- Cache directory respects `PROJECT_ROOT_PATH` environment variable for sandboxed/isolated testing
|
|
1220
|
+
|
|
1221
|
+
## [0.4.0] - 2026-01-30
|
|
1222
|
+
|
|
1223
|
+
### Added
|
|
1224
|
+
|
|
1225
|
+
- **Hierarchical step structure**: Steps can now have nested sub-steps (010.01, 010.02) with parent-child relationships
|
|
1226
|
+
- New `StepNumbering` atom for parsing and generating hierarchical step numbers
|
|
1227
|
+
- `--after` option for `add` command: inject steps after specific step numbers (`ace-assign add verify --after 010`)
|
|
1228
|
+
- `--child` option for `add` command: create nested child steps (`ace-assign add verify --after 010 --child`)
|
|
1229
|
+
- `--flat` option for `status` command: show flat list without hierarchy indentation
|
|
1230
|
+
- Automatic step renumbering when inserting steps at occupied positions
|
|
1231
|
+
- `children_of`, `descendants_of`, `has_incomplete_children?` methods on QueueState for hierarchy traversal
|
|
1232
|
+
- `hierarchical` method on QueueState for tree-structured display
|
|
1233
|
+
- Parent number extraction from filenames in `StepFileParser.parse_filename`
|
|
1234
|
+
- Audit trail metadata: `added_by`, `parent`, `renumbered_from`, `renumbered_at` fields for tracking step history
|
|
1235
|
+
- O(1) child lookups via parent index in QueueState for improved performance
|
|
1236
|
+
|
|
1237
|
+
### Changed
|
|
1238
|
+
|
|
1239
|
+
- Auto-complete parents now handles multi-level hierarchies in a single pass (grandparents complete when parents complete)
|
|
1240
|
+
- Auto-complete now includes in_progress parents (not just pending) when all children finish
|
|
1241
|
+
- Status command now shows hierarchical structure when nested steps exist
|
|
1242
|
+
- Advance operation respects hierarchy: parent steps wait for all children to complete
|
|
1243
|
+
|
|
1244
|
+
### Fixed
|
|
1245
|
+
|
|
1246
|
+
- Cascade renumbering to descendants: when a step is shifted, all its children are also renamed to prevent orphaning
|
|
1247
|
+
- Enforce hierarchy in `advance`: prevent marking parent as done while children are incomplete
|
|
1248
|
+
- Validate `--after` step existence before injection (raises StepNotFoundError if not found)
|
|
1249
|
+
- Replace fragile `instance_variable_set` mutation with local tracking Set in auto_complete_parents
|
|
1250
|
+
- Add safety guard to prevent infinite loops in auto-completion (max iterations = step count)
|
|
1251
|
+
- Re-scan state after auto_complete_parents to ensure find_next_step uses fresh data
|
|
1252
|
+
- Use `next_workable` instead of `next_pending` in find_next_step to respect hierarchy
|
|
1253
|
+
- QueueState now supports `top_level`, `all_numbers`, and `next_workable` methods
|
|
1254
|
+
|
|
1255
|
+
## [0.3.1] - 2026-01-30
|
|
1256
|
+
|
|
1257
|
+
### Fixed
|
|
1258
|
+
|
|
1259
|
+
- Step files already in a `steps/` directory are kept in place instead of being moved to a nested path when creating assignments
|
|
1260
|
+
|
|
1261
|
+
## [0.3.0] - 2026-01-30
|
|
1262
|
+
|
|
1263
|
+
### Added
|
|
1264
|
+
|
|
1265
|
+
- **Fork context support for steps**: Enable step files to declare `context: fork` in frontmatter to run steps in isolated agent contexts via Claude Code's Task tool
|
|
1266
|
+
- New `context` field in Step model with `fork?` predicate method
|
|
1267
|
+
- Context validation rejecting invalid values with helpful error messages (valid values: `fork`)
|
|
1268
|
+
- `handbook/guides/fork-context.g.md` documentation for the fork context feature
|
|
1269
|
+
- Status command outputs Task tool instructions for fork-context steps
|
|
1270
|
+
- Shell escaping for step names in Task tool description field
|
|
1271
|
+
- E2E test (TC-005) for fork context feature validation
|
|
1272
|
+
|
|
1273
|
+
### Changed
|
|
1274
|
+
|
|
1275
|
+
- Centralized `VALID_CONTEXTS` constant in Step model, referenced by parser
|
|
1276
|
+
- QueueScanner surfaces ArgumentError for invalid step files instead of silent nil return
|
|
1277
|
+
- Status output uses plain text separators instead of markdown backticks for better terminal compatibility
|
|
1278
|
+
- Use deterministic project root from cache_dir instead of Dir.pwd
|
|
1279
|
+
- Updated `work-on-task` preset to demonstrate fork pattern
|
|
1280
|
+
|
|
1281
|
+
## [0.2.1] - 2026-01-29
|
|
1282
|
+
|
|
1283
|
+
### Fixed
|
|
1284
|
+
|
|
1285
|
+
- Cache directory initialization bug where `.cache/ace-assign/` was never created before `generate_assignment_id` called `Dir.mkdir()`, causing `Errno::ENOENT` crash on first use
|
|
1286
|
+
|
|
1287
|
+
### Added
|
|
1288
|
+
|
|
1289
|
+
- CLI exit codes documentation (`docs/exit-codes.md`) documenting exit codes 0-3 with meanings and examples
|
|
1290
|
+
|
|
1291
|
+
### Changed
|
|
1292
|
+
|
|
1293
|
+
- Updated E2E test TC-004 to reflect actual `start` command behavior (migration alias to `create` with deprecation warning, exit 0)
|
|
1294
|
+
- Added TC-004b test case to verify cache directory auto-creation on first use
|
|
1295
|
+
- Added cache directory setup to E2E test environment setup to prevent ENOENT errors on first-time runs
|
|
1296
|
+
|
|
1297
|
+
## [0.1.7] - 2026-01-28
|
|
1298
|
+
|
|
1299
|
+
### Fixed
|
|
1300
|
+
|
|
1301
|
+
- CLI exit code wrapper propagation via `@captured_exit_code` and `wrap_command` method
|
|
1302
|
+
- Race condition in `append_report` file locking: rewrite content in-place on locked file descriptor instead of temp file + rename (preserves POSIX locks)
|
|
1303
|
+
- Assignment ID generation max retry limit (100 attempts) to prevent infinite loop
|
|
1304
|
+
- E2E test comment: "creates separate .r.md report file" (was "appends report inline")
|
|
1305
|
+
|
|
1306
|
+
### Added
|
|
1307
|
+
|
|
1308
|
+
- Prepare command stub with helpful message directing users to create job.yaml manually or use the prepare-assignment workflow
|
|
1309
|
+
|
|
1310
|
+
### Changed
|
|
1311
|
+
|
|
1312
|
+
- Improve error messages with actionable suggestions (e.g., "Try 'ace-assign add' or 'ace-assign retry'")
|
|
1313
|
+
- Migration UX for deprecated commands (start → create) with warning message
|
|
1314
|
+
|
|
1315
|
+
## [0.1.6] - 2026-01-28
|
|
1316
|
+
|
|
1317
|
+
### Changed
|
|
1318
|
+
|
|
1319
|
+
- Split `assignment.wf.md` into focused workflows: `create-assignment.wf.md` (assignment creation) and `drive-assignment.wf.md` (execution loop)
|
|
1320
|
+
- Renamed `prepare-assignment-job.wf.md` → `prepare-assignment.wf.md` for verb-first naming convention
|
|
1321
|
+
- Renamed skill `ace_assign-start` → `ace_assign-drive` for clarity
|
|
1322
|
+
- All assign skills now use thin wrapper pattern pointing to workflows via `ace-bundle`
|
|
1323
|
+
|
|
1324
|
+
### Technical
|
|
1325
|
+
|
|
1326
|
+
- Fixed file extension documentation: `*.md` → `*.st.md` for step files in create-assignment workflow
|
|
1327
|
+
- Clarified "source of truth" is `ace-assign status` command in workflow documentation
|
|
1328
|
+
- Added note about archived job.yaml being for provenance only, not status queries
|
|
1329
|
+
- Changed "Job files" → "Step files" terminology in README for clarity
|
|
1330
|
+
|
|
1331
|
+
## [0.1.5] - 2026-01-28
|
|
1332
|
+
|
|
1333
|
+
### Added
|
|
1334
|
+
|
|
1335
|
+
- Separate step and report files with `.st.md` and `.r.md` extensions
|
|
1336
|
+
- New `reports/` directory structure for storing completion reports separately from step files
|
|
1337
|
+
- Report files include YAML frontmatter with `step`, `name`, and `completed_at` fields for traceability
|
|
1338
|
+
|
|
1339
|
+
### Changed
|
|
1340
|
+
|
|
1341
|
+
- Step files now use `.st.md` extension (was `.md`)
|
|
1342
|
+
- Reports are written to separate `.r.md` files instead of being embedded in step bodies
|
|
1343
|
+
- `StepFileParser.extract_fields()` now returns `nil` for report (loaded separately)
|
|
1344
|
+
- `StepFileParser.parse_filename()` handles both `.st.md` and `.r.md` extensions
|
|
1345
|
+
- `StepFileParser.generate_filename()` produces `.st.md` filenames
|
|
1346
|
+
- `StepFileParser.generate_report_filename()` produces `.r.md` filenames
|
|
1347
|
+
- `StepSorter.sort_key()` strips `.st.md` extension
|
|
1348
|
+
- `QueueScanner.scan()` and `step_numbers()` glob for `*.st.md` files
|
|
1349
|
+
- `QueueScanner.load_report()` loads report content from corresponding `.r.md` file
|
|
1350
|
+
- `AssignmentManager.create()` creates both `steps/` and `reports/` directories
|
|
1351
|
+
- `Assignment.reports_dir` returns path to reports directory
|
|
1352
|
+
- `StepWriter.mark_done()` accepts `reports_dir:` parameter and writes report separately
|
|
1353
|
+
- `StepWriter.append_report()` accepts `reports_dir:` parameter and updates report files
|
|
1354
|
+
- `StepWriter.write_report()` private helper for atomic report file writes
|
|
1355
|
+
- `AssignmentExecutor.advance()` passes `reports_dir` to `mark_done()`
|
|
1356
|
+
- CLI status command fallback filename uses `.st.md` extension
|
|
1357
|
+
- `Step.to_display_row()` fallback filename uses `.st.md` extension
|
|
1358
|
+
|
|
1359
|
+
## [0.1.4] - 2026-01-28
|
|
1360
|
+
|
|
1361
|
+
### Added
|
|
1362
|
+
|
|
1363
|
+
- Archive job.yaml to task's `steps/` directory after assignment creation (`{assignment_id}-job.yml`)
|
|
1364
|
+
|
|
1365
|
+
## [0.1.3] - 2026-01-28
|
|
1366
|
+
|
|
1367
|
+
### Technical
|
|
1368
|
+
|
|
1369
|
+
- Standardize instructions format to arrays in prepare-assignment workflow doc
|
|
1370
|
+
- Update e2e tests for workflow lifecycle with error paths and state verification
|
|
1371
|
+
- Update CHANGELOGs with complete fix descriptions
|
|
1372
|
+
|
|
1373
|
+
## [0.1.2] - 2026-01-28
|
|
1374
|
+
|
|
1375
|
+
### Fixed
|
|
1376
|
+
|
|
1377
|
+
- CLI `start` command crashes with positional argument (`ace-assign start job.yaml`) because `option :config` requires `--config` flag — renamed command to `create` with `argument :config`
|
|
1378
|
+
- `ace-bundle wfi://prepare-assignment` fails due to missing project-level wfi:// protocol registration
|
|
1379
|
+
|
|
1380
|
+
### Added
|
|
1381
|
+
|
|
1382
|
+
- Support array format for step instructions in presets (joined with newlines via `normalize_instructions`)
|
|
1383
|
+
|
|
1384
|
+
### Changed
|
|
1385
|
+
|
|
1386
|
+
- Rename CLI `start` command to `create` (CLI creates assignment; "start" is the skill that begins agent work)
|
|
1387
|
+
- Preset files (`work-on-task.yml`, `work-on-task-with-pr.yml`) now use array instructions format
|
|
1388
|
+
- Updated workflow instructions and README to reflect `create` command and array instructions format
|
|
1389
|
+
|
|
1390
|
+
## [0.1.1] - 2026-01-28
|
|
1391
|
+
|
|
1392
|
+
### Fixed
|
|
1393
|
+
|
|
1394
|
+
- Persist skill field from job.yaml steps through full pipeline (StepWriter, StepFileParser, QueueScanner, Step model)
|
|
1395
|
+
- Display skill in status command output for current step
|
|
1396
|
+
- Pass through extra step fields (beyond name/instructions) from job.yaml via AssignmentExecutor
|
|
1397
|
+
- Update default job.yaml output path in prepare-assignment workflow to task folder
|
|
1398
|
+
|
|
1399
|
+
## [0.1.0] - 2026-01-28
|
|
1400
|
+
|
|
1401
|
+
### Added
|
|
1402
|
+
|
|
1403
|
+
- Initial release with work queue-based assignment management
|
|
1404
|
+
- CLI commands: start, status, report, fail, add, retry
|
|
1405
|
+
- File-based queue storage with markdown step files
|
|
1406
|
+
- Assignment persistence via assignment.yaml
|
|
1407
|
+
- History preservation (failed steps remain visible)
|
|
1408
|
+
- Dynamic step addition with automatic numbering
|
|
1409
|
+
- Retry mechanism that creates new steps linked to original
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
## [0.12.12] - 2026-02-22
|
|
1413
|
+
|
|
1414
|
+
### Fixed
|
|
1415
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|