ace-assign 0.71.0 → 0.73.1

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/.ace-defaults/assign/catalog/steps/auto-merge.step.yml +8 -8
  3. data/.ace-defaults/assign/catalog/steps/create-pr.step.yml +1 -1
  4. data/.ace-defaults/assign/catalog/steps/mark-pr-ready.step.yml +1 -1
  5. data/.ace-defaults/assign/config.yml +0 -13
  6. data/.ace-defaults/assign/presets/fix-bug.yml +1 -1
  7. data/.ace-defaults/assign/presets/work-on-task-ace-development.yml +1 -1
  8. data/.ace-defaults/assign/presets/work-on-task-auto-merge.yml +1 -1
  9. data/.ace-defaults/assign/presets/work-on-task.yml +1 -1
  10. data/CHANGELOG.md +5 -2116
  11. data/README.md +58 -31
  12. data/docs/exit-codes.md +36 -44
  13. data/docs/getting-started.md +9 -4
  14. data/docs/usage.md +129 -522
  15. data/handbook/skills/as-assign-drive/SKILL.md +1 -4
  16. data/handbook/workflow-instructions/assign/drive.wf.md +47 -195
  17. data/handbook/workflow-instructions/assign/prepare.wf.md +1 -1
  18. data/handbook/workflow-instructions/assign/verify-test-suite.wf.md +8 -2
  19. data/lib/ace/assign/cli/commands/assignment_target.rb +2 -15
  20. data/lib/ace/assign/cli/commands/create.rb +1 -8
  21. data/lib/ace/assign/cli/commands/fail.rb +0 -6
  22. data/lib/ace/assign/cli/commands/finish.rb +2 -23
  23. data/lib/ace/assign/cli/commands/fork_session.rb +0 -1
  24. data/lib/ace/assign/cli/commands/select.rb +0 -1
  25. data/lib/ace/assign/cli/commands/start.rb +0 -2
  26. data/lib/ace/assign/cli/commands/status.rb +1 -31
  27. data/lib/ace/assign/cli/commands/step.rb +1 -3
  28. data/lib/ace/assign/cli.rb +1 -85
  29. data/lib/ace/assign/errors.rb +8 -80
  30. data/lib/ace/assign/models/assignment.rb +5 -28
  31. data/lib/ace/assign/molecules/assignment_manager.rb +0 -26
  32. data/lib/ace/assign/molecules/fork_session_launcher.rb +4 -12
  33. data/lib/ace/assign/molecules/lifecycle_exclusion.rb +15 -112
  34. data/lib/ace/assign/molecules/runtime_control_surface_runner.rb +6 -2
  35. data/lib/ace/assign/molecules/skill_assign_source_resolver.rb +9 -0
  36. data/lib/ace/assign/organisms/assignment_executor.rb +0 -6
  37. data/lib/ace/assign/organisms/task_assignment_creator.rb +3 -8
  38. data/lib/ace/assign/version.rb +1 -1
  39. data/lib/ace/assign.rb +0 -6
  40. metadata +22 -176
  41. data/.ace-defaults/assign/presets/close-delivery.yml +0 -57
  42. data/.ace-defaults/assign/presets/deliver-release.yml +0 -60
  43. data/.ace-defaults/assign/presets/integrate-batch.yml +0 -72
  44. data/.ace-defaults/assign/presets/supervise-delivery.yml +0 -69
  45. data/docs/protected-authority.md +0 -282
  46. data/exe/ace-scope-ready +0 -55
  47. data/lib/ace/assign/atoms/assignment_scope.rb +0 -58
  48. data/lib/ace/assign/atoms/attempt_state_machine.rb +0 -84
  49. data/lib/ace/assign/atoms/candidate_limits.rb +0 -20
  50. data/lib/ace/assign/atoms/delivery_parameters.rb +0 -19
  51. data/lib/ace/assign/atoms/evidence_digest.rb +0 -78
  52. data/lib/ace/assign/atoms/fixed_merge_schemas.rb +0 -398
  53. data/lib/ace/assign/atoms/git_blob_batch.rb +0 -59
  54. data/lib/ace/assign/authority/assignment_definition.rb +0 -35
  55. data/lib/ace/assign/authority/assignment_inventory.rb +0 -290
  56. data/lib/ace/assign/authority/campaign_consumer_policy.rb +0 -100
  57. data/lib/ace/assign/authority/campaign_execution.rb +0 -119
  58. data/lib/ace/assign/authority/campaign_round_transfer.rb +0 -82
  59. data/lib/ace/assign/authority/candidate_blob_batch.rb +0 -55
  60. data/lib/ace/assign/authority/candidate_head_comparison.rb +0 -139
  61. data/lib/ace/assign/authority/candidate_transfer.rb +0 -357
  62. data/lib/ace/assign/authority/cleanup_result_protection.rb +0 -53
  63. data/lib/ace/assign/authority/client.rb +0 -257
  64. data/lib/ace/assign/authority/command_execution.rb +0 -180
  65. data/lib/ace/assign/authority/deployment.rb +0 -627
  66. data/lib/ace/assign/authority/deployment_history.rb +0 -146
  67. data/lib/ace/assign/authority/endcap.rb +0 -457
  68. data/lib/ace/assign/authority/endcap_attempts.rb +0 -274
  69. data/lib/ace/assign/authority/endcap_campaign_results.rb +0 -232
  70. data/lib/ace/assign/authority/endcap_campaign_rounds.rb +0 -266
  71. data/lib/ace/assign/authority/endcap_contexts.rb +0 -23
  72. data/lib/ace/assign/authority/endcap_inboxes.rb +0 -37
  73. data/lib/ace/assign/authority/endcap_prepared_work.rb +0 -80
  74. data/lib/ace/assign/authority/endcap_publication.rb +0 -41
  75. data/lib/ace/assign/authority/endcap_results.rb +0 -398
  76. data/lib/ace/assign/authority/endcap_review_requests.rb +0 -183
  77. data/lib/ace/assign/authority/endcap_reviews.rb +0 -130
  78. data/lib/ace/assign/authority/endcap_service_context.rb +0 -38
  79. data/lib/ace/assign/authority/endcap_service_settlement.rb +0 -152
  80. data/lib/ace/assign/authority/evidence_transfer.rb +0 -67
  81. data/lib/ace/assign/authority/execution_scope_observation.rb +0 -903
  82. data/lib/ace/assign/authority/fixed_publication_lifecycle.rb +0 -176
  83. data/lib/ace/assign/authority/fixed_service_lifecycle.rb +0 -594
  84. data/lib/ace/assign/authority/inbox_context_original.rb +0 -113
  85. data/lib/ace/assign/authority/launch_attempt_consumers.rb +0 -51
  86. data/lib/ace/assign/authority/launch_campaign_registration.rb +0 -214
  87. data/lib/ace/assign/authority/launch_control_channel.rb +0 -313
  88. data/lib/ace/assign/authority/launch_control_exclusions.rb +0 -127
  89. data/lib/ace/assign/authority/launch_driver.rb +0 -393
  90. data/lib/ace/assign/authority/launch_input_inhibition.rb +0 -132
  91. data/lib/ace/assign/authority/launch_lifecycle.rb +0 -997
  92. data/lib/ace/assign/authority/launch_prepared_work.rb +0 -122
  93. data/lib/ace/assign/authority/launch_review.rb +0 -91
  94. data/lib/ace/assign/authority/launch_scope_abort.rb +0 -81
  95. data/lib/ace/assign/authority/launch_scope_admission.rb +0 -215
  96. data/lib/ace/assign/authority/launch_scope_close.rb +0 -146
  97. data/lib/ace/assign/authority/launch_scope_parent.rb +0 -44
  98. data/lib/ace/assign/authority/launch_scope_release.rb +0 -859
  99. data/lib/ace/assign/authority/launch_steering.rb +0 -353
  100. data/lib/ace/assign/authority/launch_stop.rb +0 -254
  101. data/lib/ace/assign/authority/maintenance_workspace_retirement.rb +0 -229
  102. data/lib/ace/assign/authority/ordinary_attempt_start.rb +0 -137
  103. data/lib/ace/assign/authority/ordinary_client.rb +0 -70
  104. data/lib/ace/assign/authority/ordinary_completion.rb +0 -104
  105. data/lib/ace/assign/authority/ordinary_effect_settlement.rb +0 -118
  106. data/lib/ace/assign/authority/ordinary_lifecycle.rb +0 -227
  107. data/lib/ace/assign/authority/ordinary_merge_evidence.rb +0 -81
  108. data/lib/ace/assign/authority/ordinary_peer.rb +0 -54
  109. data/lib/ace/assign/authority/ordinary_progress.rb +0 -162
  110. data/lib/ace/assign/authority/ordinary_queue.rb +0 -115
  111. data/lib/ace/assign/authority/ordinary_release_artifacts.rb +0 -143
  112. data/lib/ace/assign/authority/ordinary_results.rb +0 -206
  113. data/lib/ace/assign/authority/ordinary_review_evidence.rb +0 -180
  114. data/lib/ace/assign/authority/ordinary_reviews.rb +0 -214
  115. data/lib/ace/assign/authority/ordinary_server.rb +0 -75
  116. data/lib/ace/assign/authority/ordinary_supervisor.rb +0 -99
  117. data/lib/ace/assign/authority/original_inbox_selection.rb +0 -41
  118. data/lib/ace/assign/authority/posix_acl.rb +0 -59
  119. data/lib/ace/assign/authority/prepared_input.rb +0 -130
  120. data/lib/ace/assign/authority/prepared_queue.rb +0 -185
  121. data/lib/ace/assign/authority/prepared_task_context.rb +0 -116
  122. data/lib/ace/assign/authority/prepared_work.rb +0 -309
  123. data/lib/ace/assign/authority/prepared_worker.rb +0 -69
  124. data/lib/ace/assign/authority/private_directory.rb +0 -33
  125. data/lib/ace/assign/authority/protected_assignment_context.rb +0 -226
  126. data/lib/ace/assign/authority/readiness_hook.rb +0 -120
  127. data/lib/ace/assign/authority/receipt_transfer.rb +0 -48
  128. data/lib/ace/assign/authority/release_artifact_manifest.rb +0 -91
  129. data/lib/ace/assign/authority/retained_input.rb +0 -53
  130. data/lib/ace/assign/authority/router.rb +0 -81
  131. data/lib/ace/assign/authority/server.rb +0 -131
  132. data/lib/ace/assign/authority/service_cleanup_dispatch.rb +0 -88
  133. data/lib/ace/assign/authority/service_cleanup_evidence.rb +0 -180
  134. data/lib/ace/assign/authority/service_delivery_evidence.rb +0 -101
  135. data/lib/ace/assign/authority/service_evidence.rb +0 -286
  136. data/lib/ace/assign/authority/service_publication_evidence.rb +0 -110
  137. data/lib/ace/assign/authority/socket_server.rb +0 -255
  138. data/lib/ace/assign/authority/task_context_entry.rb +0 -32
  139. data/lib/ace/assign/authority/transfer_codec.rb +0 -189
  140. data/lib/ace/assign/cli/commands/attempt/base.rb +0 -84
  141. data/lib/ace/assign/cli/commands/attempt/evidence.rb +0 -28
  142. data/lib/ace/assign/cli/commands/attempt/finish.rb +0 -51
  143. data/lib/ace/assign/cli/commands/attempt/reconcile.rb +0 -49
  144. data/lib/ace/assign/cli/commands/attempt/start.rb +0 -45
  145. data/lib/ace/assign/cli/commands/attempt/status.rb +0 -54
  146. data/lib/ace/assign/cli/commands/authority/inbox_context_principal.rb +0 -25
  147. data/lib/ace/assign/cli/commands/authority/inbox_context_selection.rb +0 -28
  148. data/lib/ace/assign/cli/commands/authority/launch.rb +0 -97
  149. data/lib/ace/assign/cli/commands/authority/serve.rb +0 -31
  150. data/lib/ace/assign/cli/commands/authority/status.rb +0 -26
  151. data/lib/ace/assign/cli/commands/authority/task_context.rb +0 -31
  152. data/lib/ace/assign/cli/commands/authority/task_context_principal.rb +0 -25
  153. data/lib/ace/assign/cli/commands/authority/task_context_selection.rb +0 -30
  154. data/lib/ace/assign/cli/commands/authority/terminate.rb +0 -29
  155. data/lib/ace/assign/cli/commands/authority/worker.rb +0 -23
  156. data/lib/ace/assign/cli/commands/campaign_export_result.rb +0 -55
  157. data/lib/ace/assign/cli/commands/campaign_record_round.rb +0 -57
  158. data/lib/ace/assign/cli/commands/delivery.rb +0 -107
  159. data/lib/ace/assign/cli/commands/inbox_bind.rb +0 -34
  160. data/lib/ace/assign/cli/commands/protected_submission.rb +0 -61
  161. data/lib/ace/assign/cli/commands/resume.rb +0 -38
  162. data/lib/ace/assign/cli/commands/submit_candidate.rb +0 -34
  163. data/lib/ace/assign/cli/commands/submit_result.rb +0 -61
  164. data/lib/ace/assign/models/attempt.rb +0 -178
  165. data/lib/ace/assign/models/attempt_binding.rb +0 -116
  166. data/lib/ace/assign/models/evidence_event.rb +0 -86
  167. data/lib/ace/assign/models/execution_receipt.rb +0 -139
  168. data/lib/ace/assign/molecules/attempt_reconciler.rb +0 -127
  169. data/lib/ace/assign/molecules/attempt_store.rb +0 -201
  170. data/lib/ace/assign/molecules/canonical_attempt_state.rb +0 -151
  171. data/lib/ace/assign/molecules/canonical_evidence.rb +0 -170
  172. data/lib/ace/assign/molecules/canonical_read_commands.rb +0 -84
  173. data/lib/ace/assign/molecules/canonical_read_snapshot.rb +0 -313
  174. data/lib/ace/assign/molecules/evidence_calculator.rb +0 -237
  175. data/lib/ace/assign/molecules/evidence_journal.rb +0 -1899
  176. data/lib/ace/assign/molecules/execution_identity_resolver.rb +0 -137
  177. data/lib/ace/assign/molecules/execution_scope_lineage.rb +0 -345
  178. data/lib/ace/assign/molecules/fixed_effect_reference.rb +0 -31
  179. data/lib/ace/assign/molecules/installed_journal_read.rb +0 -143
  180. data/lib/ace/assign/molecules/journal_input_inhibition.rb +0 -78
  181. data/lib/ace/assign/molecules/journal_mutation.rb +0 -274
  182. data/lib/ace/assign/molecules/journal_prompt_mutation.rb +0 -241
  183. data/lib/ace/assign/molecules/ordinary_merge_cli.rb +0 -68
  184. data/lib/ace/assign/molecules/ordinary_merge_contract.rb +0 -410
  185. data/lib/ace/assign/molecules/original_launch_binding.rb +0 -37
  186. data/lib/ace/assign/molecules/proposal_journal.rb +0 -179
  187. data/lib/ace/assign/molecules/protected_control_exclusion.rb +0 -303
  188. data/lib/ace/assign/molecules/protected_workspace_exclusion.rb +0 -330
  189. data/lib/ace/assign/molecules/protected_workspace_provisioner.rb +0 -164
  190. data/lib/ace/assign/molecules/receipt_verifier.rb +0 -320
  191. data/lib/ace/assign/molecules/terminal_scope_receipt.rb +0 -88
  192. data/lib/ace/assign/organisms/attempt_coordinator.rb +0 -1374
  193. data/lib/ace/assign/organisms/delivery_coordinator.rb +0 -342
  194. data/lib/ace/assign/organisms/ordinary_driver.rb +0 -310
  195. data/lib/ace/assign/organisms/ordinary_merge_consumer.rb +0 -365
  196. data/lib/ace/assign/organisms/prepared_work_builder.rb +0 -194
  197. data/lib/ace/assign/organisms/protected_delivery_coordinator.rb +0 -100
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <div align="center">
2
2
  <h1> ACE - Assign </h1>
3
3
 
4
- Multi-step assignment execution with nesting, fork delegation, and inspectable traces.
4
+ Multi-step assignment plans with nesting, fork delegation, and inspectable state.
5
5
 
6
6
  <img src="../docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
7
7
  <br><br>
@@ -14,54 +14,81 @@
14
14
 
15
15
  > Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
16
16
 
17
+ > **State owner:** `.ace-local/assign/` -- assignment plans and step state owned
18
+ > by `ace-assign`. There is no second queue: the plan is the only place steps
19
+ > live, and coworker configuration or the private overseer list never copy
20
+ > them. The canonical flow is [docs/lab-flow.md](../docs/lab-flow.md).
21
+
17
22
  [Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
18
23
 
19
- `ace-assign` turns work into a multi-step assignment with nested substeps, fork delegation to long-running agent subprocesses, and inspectable session traces. Steps are defined from a [step catalog](.ace-defaults/assign/catalog/steps/) and assembled via [presets](.ace-defaults/assign/presets/work-on-task.yml) or composed manually. Each step can reference a [workflow instruction](../ace-task/handbook/workflow-instructions/task/work.wf.md) for execution details. Assignments are restartable -- failed steps keep their lineage so you can retry or inject fixes without losing history.
20
- ```
24
+ `ace-assign` turns work into a multi-step assignment with nested substeps and
25
+ fork delegation. Steps come from a [step catalog](.ace-defaults/assign/catalog/steps/)
26
+ and are assembled via [presets](.ace-defaults/assign/presets/work-on-task.yml) or
27
+ composed manually. Each step may reference a workflow instruction for execution
28
+ details. Assignments are restartable: failed steps keep their lineage so you can
29
+ retry or inject fixes without losing history.
21
30
 
22
- ❯ ace-assign status
23
- 8qm5rt work-on-task-8qm.t.5nx-job.yml | running | 64/71 done | current: 100.01 review-pr | last: 070.03 release
24
- hidden: 66 | done: 64 active: 1 pending: 5 failed: 1
25
- 100.01 active review-pr
26
- 100.02 next apply-feedback
27
- 100.03 next release
28
- 130 next reorganize-commits
29
- 140 next push-to-remote
31
+ ```bash
32
+ ace-assign status
33
+ # abc123 work-on-task-abc456 | running | 4/7 done | current: 100 review-pr
30
34
  ```
31
35
 
32
- Use `ace-assign status --mode full` when you need the whole tree, and `ace-assign step` when you need the raw instructions for the current or next step.
36
+ Use `ace-assign status --mode full` for the whole tree and `ace-assign step` for
37
+ the current or next step instructions.
33
38
 
39
+ The local lifecycle is:
34
40
 
35
- The easiest way to start is through [ace-overseer](../ace-overseer) -- define a task and run `ace-overseer work-on --task <ref> --preset work-on-task` , which creates the assignment, worktree, and terminal window in one shot.
41
+ 1. `ace-assign create` expands a preset or YAML definition into numbered steps
42
+ (`010`, `010.01`, …) with `pending` → `in_progress` → `done`/`failed` state.
43
+ 2. `ace-assign step` / `start` / `finish` / `fail` drive one step at a time;
44
+ `/as-assign-drive` wraps this loop for agents.
45
+ 3. `ace-assign add` / `retry` / `fork-run` adapt the plan while it runs.
36
46
 
37
- ## Testing Contract
47
+ The easiest way to start is through [ace-overseer](../ace-overseer):
48
+ `ace-overseer work-on --task <ref>` creates the worktree, assignment, and
49
+ terminal in one shot.
38
50
 
39
- - `ace-test ace-assign` runs the default deterministic package loop (`test/fast`).
40
- - `ace-test ace-assign feat` runs deterministic feature/contract coverage (`test/feat`).
41
- - `ace-test ace-assign all` runs full package deterministic coverage (`fast` + `feat`).
42
- - `ace-test-e2e ace-assign` runs scenario workflows under `test/e2e`.
51
+ ## Use Cases
43
52
 
44
- Assignment verification uses deterministic commands only:
45
- - modified packages: `ace-test <package> all --profile 6`
46
- - monorepo gate: `ace-test-suite --target all`
53
+ **Define assignments from presets** - pick a preset such as `work-on-task` or
54
+ `release-only`, pass parameters (task refs, packages), and run
55
+ `ace-assign create --task ...` or `ace-assign create --yaml ...`. Steps are
56
+ ordered by [composition rules](.ace-defaults/assign/catalog/composition-rules.yml).
47
57
 
48
- ## How It Works
58
+ **Run with orchestrator and fork agents** - `/as-assign-drive` walks the steps
59
+ and can fork long-running work to isolated agent subprocesses with configurable
60
+ execution defaults or per-step `fork.provider` overrides. Fork traces and
61
+ session reports stay under `.ace-local/assign/`.
49
62
 
50
- 1. Define steps from a [preset](.ace-defaults/assign/presets/work-on-task.yml) or compose from the [step catalog](.ace-defaults/assign/catalog/steps/) -- steps can nest into substeps and reference workflow instructions for execution details.
51
- 2. Expand the definition into a session with explicit per-step instructions, state tracking (`pending` → `in_progress` → `done`/`failed`), and numbered hierarchy (e.g., `010`, `010.01`, `010.01.01`).
52
- 3. Drive execution with `/as-assign-drive` -- fork long-running steps to isolated agent subprocesses, advance the queue on completion, and retry or inject fix steps on failure.
63
+ **Recover from failure without losing history** - keep failed-step lineage,
64
+ inject targeted retries or fix steps, and continue.
53
65
 
54
- ## Use Cases
66
+ **Compose assignments from templates** - use `/as-assign-compose` to build plans
67
+ from reusable patterns, then pair with [ace-task](../ace-task) for task
68
+ lifecycle, [ace-bundle](../ace-bundle) for context loading, and
69
+ [ace-review](../ace-review) for quality checks.
70
+
71
+ ## Planned waves
55
72
 
56
- **Define assignments from presets** - pick a [preset](.ace-defaults/assign/presets/) like [`work-on-task`](.ace-defaults/assign/presets/work-on-task.yml) or `release-only`, pass parameters (task refs, packages), and run `ace-assign create --task ...` or [`ace-assign create --yaml ...`](docs/usage.md) to expand them into a concrete step queue. Steps are defined in the [catalog](.ace-defaults/assign/catalog/steps/) (e.g., [`work-on-task.step.yml`](.ace-defaults/assign/catalog/steps/work-on-task.step.yml)) and ordered by [composition rules](.ace-defaults/assign/catalog/composition-rules.yml). Compose custom assignments with `/as-assign-compose`.
73
+ > **L3 status:** `ace-coworker` consumes an assignment from
74
+ > `.ace-local/coworker/`, drives it through this gem's CLI, records results
75
+ > in the task folder, and reports through `ace-hitl`. Resume after
76
+ > interruption is the remaining L3 leaf.
77
+ >
78
+ > **Planned (L5.5):** role rules, review rounds, and forge delivery workflow --
79
+ > not available yet.
57
80
 
58
- `work-on-task` release steps resolve `wfi://release/publish` from shipped workflow sources by default, and project-level `wfi://` source overrides registered under `.ace/nav/protocols/wfi-sources/` are honored by both `ace-bundle` and `ace-assign`.
81
+ ## Testing Contract
59
82
 
60
- **Run with orchestrator and fork agents** - use `/as-assign-drive` to walk through steps, forking long-running work (implementation, review, release) to isolated agent subprocesses with configurable [execution defaults](.ace-defaults/assign/config.yml) or per-step `fork.provider` overrides. Forks can run sequentially or as parallel batches, each producing inspectable traces and session reports under `.ace-local/assign/`.
83
+ - `bin/ace-test ace-assign` runs the default deterministic package loop.
84
+ - `bin/ace-test ace-assign feat` runs deterministic feature/contract coverage.
85
+ - `bin/ace-test ace-assign all` runs full package deterministic coverage.
86
+ - `bin/ace-test-e2e ace-assign` runs scenario workflows.
61
87
 
62
- **Recover from failure without losing history** - keep failed-step lineage intact, inject targeted retries or fix steps, and continue execution with auditable failure evidence.
88
+ Assignment verification uses deterministic commands only:
63
89
 
64
- **Compose assignments from templates** - use `/as-assign-compose` and `/as-assign-prepare` to build assignment plans from reusable patterns, then pair with [ace-task](../ace-task) for task lifecycle, [ace-bundle](../ace-bundle) for context loading, and [ace-review](../ace-review) for quality checks.
90
+ - modified packages: `bin/ace-test <package> all --profile 6`
91
+ - monorepo gate: `bin/ace-test-suite --target all`
65
92
 
66
93
  ---
67
94
  [Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
data/docs/exit-codes.md CHANGED
@@ -1,71 +1,63 @@
1
1
  ---
2
2
  doc-type: user
3
3
  title: CLI Exit Codes
4
- purpose: Documentation for ace-assign/docs/exit-codes.md
4
+ purpose: Exit codes for the local ace-assign lifecycle commands.
5
5
  ace-docs:
6
- last-updated: 2026-03-18
7
- last-checked: 2026-03-21
6
+ last-updated: 2026-10-17
7
+ last-checked: 2026-10-17
8
8
  ---
9
9
 
10
10
  # CLI Exit Codes
11
11
 
12
- This document describes the exit codes returned by the `ace-assign` CLI.
12
+ Exit codes returned by the local `ace-assign` lifecycle commands.
13
13
 
14
14
  ## Exit Code Reference
15
15
 
16
16
  | Code | Meaning | Example Scenario |
17
17
  |------|---------|------------------|
18
- | 0 | Success | Command executed successfully |
19
- | 1 | General error | Unhandled error, invalid step reference, finish rejected on stalled queue |
20
- | 2 | Assignment error | No active assignment or assignment not found |
21
- | 3 | Configuration not found | Config file does not exist |
22
- | 4 | Step not found | Referencing a step that does not exist |
23
- | 5 | Attempt error | Attempt conflict, rejected receipt, unauthorized identity, unavailable evidence, or illegal attempt state |
18
+ | 0 | Success | `create`, `add`, `retry`, `fail`, `status`, `step`, `start`, `finish` completed |
19
+ | 1 | General error | Invalid step reference, report rejected when no step is in progress, missing report input, unhandled error |
20
+ | 2 | Assignment error | No active assignment or unknown assignment ID |
21
+ | 3 | Configuration not found | Required config file is missing during `create` |
22
+ | 4 | Step not found | `retry` or another command references a step that does not exist |
23
+ | 5 | Lifecycle conflict or busy maintenance | A prune/start exclusion blocks the operation: conflicting lifecycle identity, unsafe exclusion artifacts, or a busy/expired maintenance exclusion |
24
+ | 130 | Interrupted | SIGINT during a command |
24
25
 
25
26
  ## Exit Code Details
26
27
 
27
- ### Exit Code 0: Success
28
- The command executed successfully. This includes:
29
- - Creating an assignment (`create`)
30
- - Adding a step (`add`)
31
- - Retrying a step (`retry`)
32
- - Marking a step as failed (`fail`)
33
- - Displaying status (`status`)
34
- - Finishing a step (`finish`)
35
-
36
28
  ### Exit Code 1: General Error
37
- An error occurred that doesn't fit into other categories:
38
- - Invalid step reference (e.g., `finish` with invalid step number)
39
- - Report rejected when queue is stalled (no step currently in progress)
40
- - Missing report input for `finish` (`--message` absent/blank and no piped stdin)
29
+
30
+ - `finish` with an invalid step number
31
+ - `finish` when no step is in progress
32
+ - `finish` with no report content (`--message` absent/blank and no piped stdin)
41
33
  - Other unhandled errors
42
34
 
43
35
  ### Exit Code 2: Assignment Error
44
- Assignment state is invalid for the requested command:
45
- - No active assignment exists. Commands that require an active assignment return this code:
46
- - `status` when no assignment has been created
47
- - `finish` when no assignment has been created
48
- - Assignment ID does not exist (for commands targeting a specific assignment)
36
+
37
+ - No active assignment for a command that needs one (`status`, `finish`)
38
+ - `--assignment` names an assignment that does not exist
49
39
 
50
40
  ### Exit Code 3: Configuration Not Found
51
- A required configuration file could not be found:
52
- - Config file does not exist when running `create`
41
+
42
+ `create` cannot read the required configuration or YAML input.
53
43
 
54
44
  ### Exit Code 4: Step Not Found
55
- The requested step reference does not exist in the target assignment:
56
- - `retry` with unknown step number
57
- - Commands that target a specific missing step
58
-
59
- ### Exit Code 5: Attempt Error
60
- An attempt, receipt, identity, or evidence problem rejected the operation:
61
- - `attempt start` with a conflicting binding for an owned subtree
62
- - `attempt finish`/`attempt reconcile` with a receipt that fails verification (wrong binding, stale head, digest mismatch, self-approval, forbidden fields)
63
- - Worker-identity attempts to accept a succeeded verdict
64
- - Unknown or missing execution-boundary identity
65
- - Reconciling a terminal attempt, or resolving uncertainty without a receipt
66
- - Unavailable or unwritable evidence storage blocking a managed effect
45
+
46
+ The requested step reference does not exist in the target assignment.
47
+
48
+ ### Exit Code 5: Lifecycle Conflict or Busy Maintenance
49
+
50
+ A local prune/start exclusion refused the operation:
51
+
52
+ - `LifecycleErrors::Conflict` -- the lifecycle identity was pruned or its
53
+ exclusion artifacts are unsafe, so a writer must not be started against it.
54
+ - `LifecycleErrors::MaintenanceBusy` -- the maintenance exclusion is busy or its
55
+ admission deadline expired.
56
+
57
+ The command is refused; there is no retry loop. Inspect and clear the exclusion
58
+ state, then rerun the operation explicitly.
67
59
 
68
60
  ## See Also
69
61
 
70
- - [Usage Guide](usage.md) for full command reference
71
- - [Getting Started](getting-started.md) for tutorial
62
+ - [Usage Guide](usage.md) for the full command reference
63
+ - [Getting Started](getting-started.md) for a tutorial
@@ -1,15 +1,20 @@
1
1
  ---
2
2
  doc-type: user
3
3
  title: Getting Started with ace-assign
4
- purpose: Tutorial for creating, running, and adapting assignment queues with ace-assign.
4
+ purpose: Tutorial for creating, running, and adapting local assignment plans with ace-assign.
5
5
  ace-docs:
6
- last-updated: 2026-03-22
7
- last-checked: 2026-03-22
6
+ last-updated: 2026-10-17
7
+ last-checked: 2026-10-17
8
8
  ---
9
9
 
10
10
  # Getting Started with ace-assign
11
11
 
12
- Use `ace-assign` to run multi-step work as a durable queue instead of ad-hoc notes.
12
+ > **State owner:** `.ace-local/assign/` -- assignment plans and step state owned
13
+ > by `ace-assign`. Steps are never copied into a second queue. See
14
+ > [docs/lab-flow.md](../../docs/lab-flow.md).
15
+
16
+ Use `ace-assign` to run multi-step work as a durable local plan instead of
17
+ ad-hoc notes.
13
18
 
14
19
  ## Prerequisites
15
20