ace-assign 0.71.0 → 0.73.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 (195) 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 +3 -2119
  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/organisms/assignment_executor.rb +0 -6
  35. data/lib/ace/assign/organisms/task_assignment_creator.rb +3 -8
  36. data/lib/ace/assign/version.rb +1 -1
  37. data/lib/ace/assign.rb +0 -6
  38. metadata +4 -176
  39. data/.ace-defaults/assign/presets/close-delivery.yml +0 -57
  40. data/.ace-defaults/assign/presets/deliver-release.yml +0 -60
  41. data/.ace-defaults/assign/presets/integrate-batch.yml +0 -72
  42. data/.ace-defaults/assign/presets/supervise-delivery.yml +0 -69
  43. data/docs/protected-authority.md +0 -282
  44. data/exe/ace-scope-ready +0 -55
  45. data/lib/ace/assign/atoms/assignment_scope.rb +0 -58
  46. data/lib/ace/assign/atoms/attempt_state_machine.rb +0 -84
  47. data/lib/ace/assign/atoms/candidate_limits.rb +0 -20
  48. data/lib/ace/assign/atoms/delivery_parameters.rb +0 -19
  49. data/lib/ace/assign/atoms/evidence_digest.rb +0 -78
  50. data/lib/ace/assign/atoms/fixed_merge_schemas.rb +0 -398
  51. data/lib/ace/assign/atoms/git_blob_batch.rb +0 -59
  52. data/lib/ace/assign/authority/assignment_definition.rb +0 -35
  53. data/lib/ace/assign/authority/assignment_inventory.rb +0 -290
  54. data/lib/ace/assign/authority/campaign_consumer_policy.rb +0 -100
  55. data/lib/ace/assign/authority/campaign_execution.rb +0 -119
  56. data/lib/ace/assign/authority/campaign_round_transfer.rb +0 -82
  57. data/lib/ace/assign/authority/candidate_blob_batch.rb +0 -55
  58. data/lib/ace/assign/authority/candidate_head_comparison.rb +0 -139
  59. data/lib/ace/assign/authority/candidate_transfer.rb +0 -357
  60. data/lib/ace/assign/authority/cleanup_result_protection.rb +0 -53
  61. data/lib/ace/assign/authority/client.rb +0 -257
  62. data/lib/ace/assign/authority/command_execution.rb +0 -180
  63. data/lib/ace/assign/authority/deployment.rb +0 -627
  64. data/lib/ace/assign/authority/deployment_history.rb +0 -146
  65. data/lib/ace/assign/authority/endcap.rb +0 -457
  66. data/lib/ace/assign/authority/endcap_attempts.rb +0 -274
  67. data/lib/ace/assign/authority/endcap_campaign_results.rb +0 -232
  68. data/lib/ace/assign/authority/endcap_campaign_rounds.rb +0 -266
  69. data/lib/ace/assign/authority/endcap_contexts.rb +0 -23
  70. data/lib/ace/assign/authority/endcap_inboxes.rb +0 -37
  71. data/lib/ace/assign/authority/endcap_prepared_work.rb +0 -80
  72. data/lib/ace/assign/authority/endcap_publication.rb +0 -41
  73. data/lib/ace/assign/authority/endcap_results.rb +0 -398
  74. data/lib/ace/assign/authority/endcap_review_requests.rb +0 -183
  75. data/lib/ace/assign/authority/endcap_reviews.rb +0 -130
  76. data/lib/ace/assign/authority/endcap_service_context.rb +0 -38
  77. data/lib/ace/assign/authority/endcap_service_settlement.rb +0 -152
  78. data/lib/ace/assign/authority/evidence_transfer.rb +0 -67
  79. data/lib/ace/assign/authority/execution_scope_observation.rb +0 -903
  80. data/lib/ace/assign/authority/fixed_publication_lifecycle.rb +0 -176
  81. data/lib/ace/assign/authority/fixed_service_lifecycle.rb +0 -594
  82. data/lib/ace/assign/authority/inbox_context_original.rb +0 -113
  83. data/lib/ace/assign/authority/launch_attempt_consumers.rb +0 -51
  84. data/lib/ace/assign/authority/launch_campaign_registration.rb +0 -214
  85. data/lib/ace/assign/authority/launch_control_channel.rb +0 -313
  86. data/lib/ace/assign/authority/launch_control_exclusions.rb +0 -127
  87. data/lib/ace/assign/authority/launch_driver.rb +0 -393
  88. data/lib/ace/assign/authority/launch_input_inhibition.rb +0 -132
  89. data/lib/ace/assign/authority/launch_lifecycle.rb +0 -997
  90. data/lib/ace/assign/authority/launch_prepared_work.rb +0 -122
  91. data/lib/ace/assign/authority/launch_review.rb +0 -91
  92. data/lib/ace/assign/authority/launch_scope_abort.rb +0 -81
  93. data/lib/ace/assign/authority/launch_scope_admission.rb +0 -215
  94. data/lib/ace/assign/authority/launch_scope_close.rb +0 -146
  95. data/lib/ace/assign/authority/launch_scope_parent.rb +0 -44
  96. data/lib/ace/assign/authority/launch_scope_release.rb +0 -859
  97. data/lib/ace/assign/authority/launch_steering.rb +0 -353
  98. data/lib/ace/assign/authority/launch_stop.rb +0 -254
  99. data/lib/ace/assign/authority/maintenance_workspace_retirement.rb +0 -229
  100. data/lib/ace/assign/authority/ordinary_attempt_start.rb +0 -137
  101. data/lib/ace/assign/authority/ordinary_client.rb +0 -70
  102. data/lib/ace/assign/authority/ordinary_completion.rb +0 -104
  103. data/lib/ace/assign/authority/ordinary_effect_settlement.rb +0 -118
  104. data/lib/ace/assign/authority/ordinary_lifecycle.rb +0 -227
  105. data/lib/ace/assign/authority/ordinary_merge_evidence.rb +0 -81
  106. data/lib/ace/assign/authority/ordinary_peer.rb +0 -54
  107. data/lib/ace/assign/authority/ordinary_progress.rb +0 -162
  108. data/lib/ace/assign/authority/ordinary_queue.rb +0 -115
  109. data/lib/ace/assign/authority/ordinary_release_artifacts.rb +0 -143
  110. data/lib/ace/assign/authority/ordinary_results.rb +0 -206
  111. data/lib/ace/assign/authority/ordinary_review_evidence.rb +0 -180
  112. data/lib/ace/assign/authority/ordinary_reviews.rb +0 -214
  113. data/lib/ace/assign/authority/ordinary_server.rb +0 -75
  114. data/lib/ace/assign/authority/ordinary_supervisor.rb +0 -99
  115. data/lib/ace/assign/authority/original_inbox_selection.rb +0 -41
  116. data/lib/ace/assign/authority/posix_acl.rb +0 -59
  117. data/lib/ace/assign/authority/prepared_input.rb +0 -130
  118. data/lib/ace/assign/authority/prepared_queue.rb +0 -185
  119. data/lib/ace/assign/authority/prepared_task_context.rb +0 -116
  120. data/lib/ace/assign/authority/prepared_work.rb +0 -309
  121. data/lib/ace/assign/authority/prepared_worker.rb +0 -69
  122. data/lib/ace/assign/authority/private_directory.rb +0 -33
  123. data/lib/ace/assign/authority/protected_assignment_context.rb +0 -226
  124. data/lib/ace/assign/authority/readiness_hook.rb +0 -120
  125. data/lib/ace/assign/authority/receipt_transfer.rb +0 -48
  126. data/lib/ace/assign/authority/release_artifact_manifest.rb +0 -91
  127. data/lib/ace/assign/authority/retained_input.rb +0 -53
  128. data/lib/ace/assign/authority/router.rb +0 -81
  129. data/lib/ace/assign/authority/server.rb +0 -131
  130. data/lib/ace/assign/authority/service_cleanup_dispatch.rb +0 -88
  131. data/lib/ace/assign/authority/service_cleanup_evidence.rb +0 -180
  132. data/lib/ace/assign/authority/service_delivery_evidence.rb +0 -101
  133. data/lib/ace/assign/authority/service_evidence.rb +0 -286
  134. data/lib/ace/assign/authority/service_publication_evidence.rb +0 -110
  135. data/lib/ace/assign/authority/socket_server.rb +0 -255
  136. data/lib/ace/assign/authority/task_context_entry.rb +0 -32
  137. data/lib/ace/assign/authority/transfer_codec.rb +0 -189
  138. data/lib/ace/assign/cli/commands/attempt/base.rb +0 -84
  139. data/lib/ace/assign/cli/commands/attempt/evidence.rb +0 -28
  140. data/lib/ace/assign/cli/commands/attempt/finish.rb +0 -51
  141. data/lib/ace/assign/cli/commands/attempt/reconcile.rb +0 -49
  142. data/lib/ace/assign/cli/commands/attempt/start.rb +0 -45
  143. data/lib/ace/assign/cli/commands/attempt/status.rb +0 -54
  144. data/lib/ace/assign/cli/commands/authority/inbox_context_principal.rb +0 -25
  145. data/lib/ace/assign/cli/commands/authority/inbox_context_selection.rb +0 -28
  146. data/lib/ace/assign/cli/commands/authority/launch.rb +0 -97
  147. data/lib/ace/assign/cli/commands/authority/serve.rb +0 -31
  148. data/lib/ace/assign/cli/commands/authority/status.rb +0 -26
  149. data/lib/ace/assign/cli/commands/authority/task_context.rb +0 -31
  150. data/lib/ace/assign/cli/commands/authority/task_context_principal.rb +0 -25
  151. data/lib/ace/assign/cli/commands/authority/task_context_selection.rb +0 -30
  152. data/lib/ace/assign/cli/commands/authority/terminate.rb +0 -29
  153. data/lib/ace/assign/cli/commands/authority/worker.rb +0 -23
  154. data/lib/ace/assign/cli/commands/campaign_export_result.rb +0 -55
  155. data/lib/ace/assign/cli/commands/campaign_record_round.rb +0 -57
  156. data/lib/ace/assign/cli/commands/delivery.rb +0 -107
  157. data/lib/ace/assign/cli/commands/inbox_bind.rb +0 -34
  158. data/lib/ace/assign/cli/commands/protected_submission.rb +0 -61
  159. data/lib/ace/assign/cli/commands/resume.rb +0 -38
  160. data/lib/ace/assign/cli/commands/submit_candidate.rb +0 -34
  161. data/lib/ace/assign/cli/commands/submit_result.rb +0 -61
  162. data/lib/ace/assign/models/attempt.rb +0 -178
  163. data/lib/ace/assign/models/attempt_binding.rb +0 -116
  164. data/lib/ace/assign/models/evidence_event.rb +0 -86
  165. data/lib/ace/assign/models/execution_receipt.rb +0 -139
  166. data/lib/ace/assign/molecules/attempt_reconciler.rb +0 -127
  167. data/lib/ace/assign/molecules/attempt_store.rb +0 -201
  168. data/lib/ace/assign/molecules/canonical_attempt_state.rb +0 -151
  169. data/lib/ace/assign/molecules/canonical_evidence.rb +0 -170
  170. data/lib/ace/assign/molecules/canonical_read_commands.rb +0 -84
  171. data/lib/ace/assign/molecules/canonical_read_snapshot.rb +0 -313
  172. data/lib/ace/assign/molecules/evidence_calculator.rb +0 -237
  173. data/lib/ace/assign/molecules/evidence_journal.rb +0 -1899
  174. data/lib/ace/assign/molecules/execution_identity_resolver.rb +0 -137
  175. data/lib/ace/assign/molecules/execution_scope_lineage.rb +0 -345
  176. data/lib/ace/assign/molecules/fixed_effect_reference.rb +0 -31
  177. data/lib/ace/assign/molecules/installed_journal_read.rb +0 -143
  178. data/lib/ace/assign/molecules/journal_input_inhibition.rb +0 -78
  179. data/lib/ace/assign/molecules/journal_mutation.rb +0 -274
  180. data/lib/ace/assign/molecules/journal_prompt_mutation.rb +0 -241
  181. data/lib/ace/assign/molecules/ordinary_merge_cli.rb +0 -68
  182. data/lib/ace/assign/molecules/ordinary_merge_contract.rb +0 -410
  183. data/lib/ace/assign/molecules/original_launch_binding.rb +0 -37
  184. data/lib/ace/assign/molecules/proposal_journal.rb +0 -179
  185. data/lib/ace/assign/molecules/protected_control_exclusion.rb +0 -303
  186. data/lib/ace/assign/molecules/protected_workspace_exclusion.rb +0 -330
  187. data/lib/ace/assign/molecules/protected_workspace_provisioner.rb +0 -164
  188. data/lib/ace/assign/molecules/receipt_verifier.rb +0 -320
  189. data/lib/ace/assign/molecules/terminal_scope_receipt.rb +0 -88
  190. data/lib/ace/assign/organisms/attempt_coordinator.rb +0 -1374
  191. data/lib/ace/assign/organisms/delivery_coordinator.rb +0 -342
  192. data/lib/ace/assign/organisms/ordinary_driver.rb +0 -310
  193. data/lib/ace/assign/organisms/ordinary_merge_consumer.rb +0 -365
  194. data/lib/ace/assign/organisms/prepared_work_builder.rb +0 -194
  195. 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