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.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/assign/catalog/composition-rules.yml +211 -0
  3. data/.ace-defaults/assign/catalog/recipes/batch-tasks.recipe.yml +44 -0
  4. data/.ace-defaults/assign/catalog/recipes/documentation.recipe.yml +35 -0
  5. data/.ace-defaults/assign/catalog/recipes/fix-and-review.recipe.yml +32 -0
  6. data/.ace-defaults/assign/catalog/recipes/implement-simple.recipe.yml +29 -0
  7. data/.ace-defaults/assign/catalog/recipes/implement-with-pr.recipe.yml +48 -0
  8. data/.ace-defaults/assign/catalog/recipes/release-only.recipe.yml +34 -0
  9. data/.ace-defaults/assign/catalog/steps/apply-feedback.step.yml +22 -0
  10. data/.ace-defaults/assign/catalog/steps/commit.step.yml +22 -0
  11. data/.ace-defaults/assign/catalog/steps/create-pr.step.yml +28 -0
  12. data/.ace-defaults/assign/catalog/steps/create-retro.step.yml +22 -0
  13. data/.ace-defaults/assign/catalog/steps/fix-tests.step.yml +22 -0
  14. data/.ace-defaults/assign/catalog/steps/lint.step.yml +22 -0
  15. data/.ace-defaults/assign/catalog/steps/mark-task-done.step.yml +57 -0
  16. data/.ace-defaults/assign/catalog/steps/onboard-base.step.yml +19 -0
  17. data/.ace-defaults/assign/catalog/steps/onboard.step.yml +19 -0
  18. data/.ace-defaults/assign/catalog/steps/plan-task.step.yml +17 -0
  19. data/.ace-defaults/assign/catalog/steps/pre-commit-review.step.yml +34 -0
  20. data/.ace-defaults/assign/catalog/steps/push-to-remote.step.yml +28 -0
  21. data/.ace-defaults/assign/catalog/steps/rebase-with-main.step.yml +28 -0
  22. data/.ace-defaults/assign/catalog/steps/reflect-and-refactor.step.yml +57 -0
  23. data/.ace-defaults/assign/catalog/steps/release-minor.step.yml +23 -0
  24. data/.ace-defaults/assign/catalog/steps/release.step.yml +23 -0
  25. data/.ace-defaults/assign/catalog/steps/reorganize-commits.step.yml +28 -0
  26. data/.ace-defaults/assign/catalog/steps/research.step.yml +19 -0
  27. data/.ace-defaults/assign/catalog/steps/review-pr.step.yml +22 -0
  28. data/.ace-defaults/assign/catalog/steps/security-audit.step.yml +22 -0
  29. data/.ace-defaults/assign/catalog/steps/split-subtree-root.step.yml +25 -0
  30. data/.ace-defaults/assign/catalog/steps/squash-changelog.step.yml +28 -0
  31. data/.ace-defaults/assign/catalog/steps/task-load.step.yml +29 -0
  32. data/.ace-defaults/assign/catalog/steps/update-docs.step.yml +38 -0
  33. data/.ace-defaults/assign/catalog/steps/update-pr-desc.step.yml +28 -0
  34. data/.ace-defaults/assign/catalog/steps/verify-e2e.step.yml +42 -0
  35. data/.ace-defaults/assign/catalog/steps/verify-test-suite.step.yml +48 -0
  36. data/.ace-defaults/assign/catalog/steps/verify-test.step.yml +36 -0
  37. data/.ace-defaults/assign/catalog/steps/work-on-task.step.yml +23 -0
  38. data/.ace-defaults/assign/config.yml +48 -0
  39. data/.ace-defaults/assign/presets/fix-bug.yml +65 -0
  40. data/.ace-defaults/assign/presets/quick-implement.yml +41 -0
  41. data/.ace-defaults/assign/presets/release-only.yml +35 -0
  42. data/.ace-defaults/assign/presets/work-on-docs.yml +41 -0
  43. data/.ace-defaults/assign/presets/work-on-task.yml +179 -0
  44. data/.ace-defaults/nav/protocols/skill-sources/ace-assign.yml +19 -0
  45. data/.ace-defaults/nav/protocols/wfi-sources/ace-assign.yml +19 -0
  46. data/CHANGELOG.md +1415 -0
  47. data/README.md +87 -0
  48. data/Rakefile +16 -0
  49. data/docs/exit-codes.md +61 -0
  50. data/docs/getting-started.md +121 -0
  51. data/docs/handbook.md +40 -0
  52. data/docs/usage.md +224 -0
  53. data/exe/ace-assign +16 -0
  54. data/handbook/guides/fork-context.g.md +231 -0
  55. data/handbook/skills/as-assign-compose/SKILL.md +24 -0
  56. data/handbook/skills/as-assign-create/SKILL.md +23 -0
  57. data/handbook/skills/as-assign-drive/SKILL.md +24 -0
  58. data/handbook/skills/as-assign-prepare/SKILL.md +23 -0
  59. data/handbook/skills/as-assign-recover-fork/SKILL.md +22 -0
  60. data/handbook/skills/as-assign-run-in-batches/SKILL.md +23 -0
  61. data/handbook/skills/as-assign-start/SKILL.md +25 -0
  62. data/handbook/workflow-instructions/assign/compose.wf.md +256 -0
  63. data/handbook/workflow-instructions/assign/create.wf.md +215 -0
  64. data/handbook/workflow-instructions/assign/drive.wf.md +666 -0
  65. data/handbook/workflow-instructions/assign/prepare.wf.md +469 -0
  66. data/handbook/workflow-instructions/assign/recover-fork.wf.md +233 -0
  67. data/handbook/workflow-instructions/assign/run-in-batches.wf.md +212 -0
  68. data/handbook/workflow-instructions/assign/start.wf.md +46 -0
  69. data/lib/ace/assign/atoms/assign_frontmatter_parser.rb +173 -0
  70. data/lib/ace/assign/atoms/catalog_loader.rb +101 -0
  71. data/lib/ace/assign/atoms/composition_rules.rb +219 -0
  72. data/lib/ace/assign/atoms/number_generator.rb +110 -0
  73. data/lib/ace/assign/atoms/preset_expander.rb +277 -0
  74. data/lib/ace/assign/atoms/step_file_parser.rb +207 -0
  75. data/lib/ace/assign/atoms/step_numbering.rb +227 -0
  76. data/lib/ace/assign/atoms/step_sorter.rb +66 -0
  77. data/lib/ace/assign/atoms/tree_formatter.rb +106 -0
  78. data/lib/ace/assign/cli/commands/add.rb +102 -0
  79. data/lib/ace/assign/cli/commands/assignment_target.rb +55 -0
  80. data/lib/ace/assign/cli/commands/create.rb +63 -0
  81. data/lib/ace/assign/cli/commands/fail.rb +43 -0
  82. data/lib/ace/assign/cli/commands/finish.rb +88 -0
  83. data/lib/ace/assign/cli/commands/fork_run.rb +229 -0
  84. data/lib/ace/assign/cli/commands/list.rb +166 -0
  85. data/lib/ace/assign/cli/commands/retry_cmd.rb +42 -0
  86. data/lib/ace/assign/cli/commands/select.rb +45 -0
  87. data/lib/ace/assign/cli/commands/start.rb +40 -0
  88. data/lib/ace/assign/cli/commands/status.rb +407 -0
  89. data/lib/ace/assign/cli.rb +144 -0
  90. data/lib/ace/assign/models/assignment.rb +107 -0
  91. data/lib/ace/assign/models/assignment_info.rb +66 -0
  92. data/lib/ace/assign/models/queue_state.rb +326 -0
  93. data/lib/ace/assign/models/step.rb +197 -0
  94. data/lib/ace/assign/molecules/assignment_discoverer.rb +57 -0
  95. data/lib/ace/assign/molecules/assignment_manager.rb +276 -0
  96. data/lib/ace/assign/molecules/fork_session_launcher.rb +102 -0
  97. data/lib/ace/assign/molecules/queue_scanner.rb +130 -0
  98. data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +376 -0
  99. data/lib/ace/assign/molecules/step_renumberer.rb +227 -0
  100. data/lib/ace/assign/molecules/step_writer.rb +246 -0
  101. data/lib/ace/assign/organisms/assignment_executor.rb +1299 -0
  102. data/lib/ace/assign/version.rb +7 -0
  103. data/lib/ace/assign.rb +141 -0
  104. 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
+ ```