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
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: workflow
|
|
3
|
+
title: Create Assignment Workflow
|
|
4
|
+
purpose: workflow instruction for smart public create UX that renders hidden specs and calls deterministic ace-assign create
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-18
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Create Assignment Workflow
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
Create assignments through one public entrypoint while preserving deterministic runtime behavior:
|
|
15
|
+
|
|
16
|
+
1. Resolve user intent (preset, explicit steps, or high-level request)
|
|
17
|
+
2. Render a normalized hidden spec under `.ace-local/assign/jobs/`
|
|
18
|
+
3. Call `ace-assign create <hidden-spec-path>`
|
|
19
|
+
4. Optionally hand off to `/as-assign-drive` when `--run` is requested
|
|
20
|
+
|
|
21
|
+
Public UX:
|
|
22
|
+
- `/as-assign-create ...` creates an assignment
|
|
23
|
+
- `/as-assign-create ... --run` creates then immediately hands off to `/as-assign-drive`
|
|
24
|
+
|
|
25
|
+
## Supported Inputs
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Preset-style input
|
|
29
|
+
/as-assign-create work-on-task --taskref 123
|
|
30
|
+
|
|
31
|
+
# Explicit requested steps
|
|
32
|
+
/as-assign-create "run tests, reorganize commits, push to remote"
|
|
33
|
+
|
|
34
|
+
# High-level skill-backed intent
|
|
35
|
+
/as-assign-create "work on task 123 and create a PR"
|
|
36
|
+
|
|
37
|
+
# Existing job file passthrough
|
|
38
|
+
/as-assign-create path/to/job.yaml
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Runtime Boundary (Hard Rule)
|
|
42
|
+
|
|
43
|
+
`ace-assign create FILE` remains the deterministic runtime boundary.
|
|
44
|
+
|
|
45
|
+
- This workflow may parse user intent and render YAML.
|
|
46
|
+
- The CLI create command must still ingest a concrete file path.
|
|
47
|
+
- Do not add natural-language parsing inside `ace-assign create`.
|
|
48
|
+
|
|
49
|
+
## Process
|
|
50
|
+
|
|
51
|
+
### 1. Parse Input and Flags
|
|
52
|
+
|
|
53
|
+
Extract:
|
|
54
|
+
- Primary input payload (preset name, freeform text, or file path)
|
|
55
|
+
- Parameters (`--taskref`, `--taskrefs`, `--output`, etc.)
|
|
56
|
+
- `--run` flag (create-then-drive handoff)
|
|
57
|
+
|
|
58
|
+
Normalize freeform input for intent matching:
|
|
59
|
+
- lowercase
|
|
60
|
+
- trim whitespace
|
|
61
|
+
- split explicit step lists on commas and "and then"
|
|
62
|
+
|
|
63
|
+
### 2. Select Creation Path
|
|
64
|
+
|
|
65
|
+
Choose exactly one path:
|
|
66
|
+
|
|
67
|
+
#### Path A: Existing Job File
|
|
68
|
+
|
|
69
|
+
If input is an existing `.yml`/`.yaml` file path:
|
|
70
|
+
- Use it directly as create input
|
|
71
|
+
- Skip hidden-spec rendering
|
|
72
|
+
|
|
73
|
+
#### Path B: Preset/Recipe Input
|
|
74
|
+
|
|
75
|
+
If input is an exact preset/recipe-style request (for example `work-on-task --taskref 123`):
|
|
76
|
+
- Run `wfi://assign/prepare` to produce normalized job content
|
|
77
|
+
- Continue to hidden-spec rendering (step 4)
|
|
78
|
+
|
|
79
|
+
#### Path C: Explicit Step or Freeform Intent (Default)
|
|
80
|
+
|
|
81
|
+
For explicit or natural-language requests:
|
|
82
|
+
- Run `wfi://assign/compose` to resolve steps from canonical assign-capable skill data
|
|
83
|
+
- Preserve explicit user-requested steps as primary intent
|
|
84
|
+
- Keep catalog defaults and conditionals advisory unless a hard ordering/prerequisite rule applies
|
|
85
|
+
|
|
86
|
+
### 3. Resolve Explicit Steps (Path C)
|
|
87
|
+
|
|
88
|
+
For explicit-step requests (for example `run tests, reorganize commits, push to remote`):
|
|
89
|
+
- Resolve each phrase to one catalog step using step intent hints
|
|
90
|
+
- Canonical step source excludes capability skills; only assign-capable workflow/orchestration entries are eligible
|
|
91
|
+
- Normalize duplicates (same step requested multiple times -> one step, unless repetition is explicit)
|
|
92
|
+
- Preserve user order first
|
|
93
|
+
- Apply only hard ordering/prerequisite corrections and report each correction with the named rule
|
|
94
|
+
|
|
95
|
+
For unmatched phrases:
|
|
96
|
+
- Fail with actionable output that includes:
|
|
97
|
+
- the unmatched phrase
|
|
98
|
+
- closest step/skill candidates
|
|
99
|
+
|
|
100
|
+
Skill-backed steps (for example `work-on-task`) stay high-level in rendered YAML.
|
|
101
|
+
Runtime `ace-assign create` will materialize `assign.source` sub-steps deterministically.
|
|
102
|
+
|
|
103
|
+
### 4. Render Hidden Spec (Paths B/C)
|
|
104
|
+
|
|
105
|
+
Create hidden spec directory if missing:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
mkdir -p .ace-local/assign/jobs
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Render normalized YAML to a timestamped file:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
.ace-local/assign/jobs/<timestamp>-<assignment-slug>.yml
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Required structure:
|
|
118
|
+
|
|
119
|
+
```yaml
|
|
120
|
+
session:
|
|
121
|
+
name: <assignment-name>
|
|
122
|
+
description: <assignment-description>
|
|
123
|
+
|
|
124
|
+
steps:
|
|
125
|
+
- name: <step-name>
|
|
126
|
+
workflow: <workflow-ref-if-public-step>
|
|
127
|
+
instructions:
|
|
128
|
+
- <instruction line>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`instructions` are assignment overlay only. The reusable execution body comes from the referenced workflow during `ace-assign create`.
|
|
132
|
+
|
|
133
|
+
Rules:
|
|
134
|
+
- Each invocation writes a new file (no in-place mutation of prior hidden specs).
|
|
135
|
+
- Hidden specs are internal provenance artifacts; users are not required to edit them.
|
|
136
|
+
|
|
137
|
+
### 5. Create Assignment Deterministically
|
|
138
|
+
|
|
139
|
+
Invoke CLI boundary:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
ace-assign create .ace-local/assign/jobs/<timestamp>-<assignment-slug>.yml
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 6. Optional Immediate Handoff (`--run`)
|
|
146
|
+
|
|
147
|
+
If `--run` is present, hand off to drive as the last step:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
/as-assign-drive <assignment-id>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
If no workable step exists, keep creation successful and report why drive cannot continue.
|
|
154
|
+
|
|
155
|
+
### 7. Report Result
|
|
156
|
+
|
|
157
|
+
Display assignment summary plus hidden-spec provenance (for Paths B/C):
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Assignment: <name> (<id>)
|
|
161
|
+
Created: .ace-local/assign/<id>/
|
|
162
|
+
Created from hidden spec: .ace-local/assign/jobs/<timestamp>-<assignment-slug>.yml
|
|
163
|
+
|
|
164
|
+
Step 010: ...
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Error Handling
|
|
168
|
+
|
|
169
|
+
| Scenario | Action |
|
|
170
|
+
|----------|--------|
|
|
171
|
+
| Unknown explicit phrase | Return unmatched phrase + closest catalog/skill candidates; no assignment created |
|
|
172
|
+
| Conflicting explicit order | Reorder only by hard rule and report the named rule that required it |
|
|
173
|
+
| Hidden-spec render failure | Return concrete render error; no assignment created |
|
|
174
|
+
| `ace-assign create` rejection | Surface CLI error unchanged |
|
|
175
|
+
| `--run` requested but no workable step | Keep create success; report why drive did not continue |
|
|
176
|
+
|
|
177
|
+
## Edge Cases
|
|
178
|
+
|
|
179
|
+
- Re-running the same request creates a new hidden spec file.
|
|
180
|
+
- Explicit duplicate steps are normalized unless repetition is clearly requested.
|
|
181
|
+
- Explicit steps take precedence over recipe defaults when both are present.
|
|
182
|
+
- High-level skill-backed steps may expand into sub-steps at create runtime via `assign.source` metadata.
|
|
183
|
+
- `--run` is a workflow-level create-then-drive handoff, not natural-language parsing in `ace-assign create`.
|
|
184
|
+
- Quiet mode for `ace-assign create` suppresses non-essential output (including provenance line).
|
|
185
|
+
|
|
186
|
+
## Success Criteria
|
|
187
|
+
|
|
188
|
+
- Hidden spec is written under `.ace-local/assign/jobs/` for generated inputs
|
|
189
|
+
- `ace-assign create FILE` receives the rendered spec path
|
|
190
|
+
- Assignment metadata preserves hidden-spec provenance
|
|
191
|
+
- Explicit step requests map to expected steps with explainable ordering
|
|
192
|
+
- Capability skills remain excluded from assign composition
|
|
193
|
+
- Skill-backed steps still expand through runtime `assign.source` metadata
|
|
194
|
+
- `--run` (when requested) triggers drive handoff as the final workflow step
|
|
195
|
+
|
|
196
|
+
## Verification
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# Validate intent-resolution language exists in create workflow
|
|
200
|
+
rg -n "explicit|phrase|advisory|assign.source|--run" ace-assign/handbook/workflow-instructions/assign/create.wf.md
|
|
201
|
+
|
|
202
|
+
# Validate hidden-spec references remain present
|
|
203
|
+
rg -n "\.ace-local/assign/jobs|Created from hidden spec" ace-assign
|
|
204
|
+
|
|
205
|
+
# Validate package behavior
|
|
206
|
+
ace-test ace-assign
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Next Steps
|
|
210
|
+
|
|
211
|
+
After assignment creation:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
/as-assign-drive <assignment-id>
|
|
215
|
+
```
|